This commit was manufactured by cvs2svn to create tag 'newlib-csl-
sourcerygxx-3_4_4-25'.

Sprout from cr-0x5f1 2006-07-25 08:39:58 UTC nobody 'This commit was manufactured by cvs2svn to create branch 'cr-0x5f1'.'
Cherrypick from master 2006-08-15 18:23:11 UTC Thiemo Seufer <ths@networkno.de> '	[ ChangeLog ]':
    ChangeLog
    config.rpath
    config.sub
    texinfo/texinfo.tex
Delete:
    include/COPYING
    include/ChangeLog
    include/ChangeLog-9103
    include/MAINTAINERS
    include/alloca-conf.h
    include/ansidecl.h
    include/aout/ChangeLog
    include/aout/adobe.h
    include/aout/aout64.h
    include/aout/ar.h
    include/aout/dynix3.h
    include/aout/encap.h
    include/aout/host.h
    include/aout/hp.h
    include/aout/hp300hpux.h
    include/aout/hppa.h
    include/aout/ranlib.h
    include/aout/reloc.h
    include/aout/stab.def
    include/aout/stab_gnu.h
    include/aout/sun4.h
    include/bfdlink.h
    include/bin-bugs.h
    include/bout.h
    include/coff/ChangeLog
    include/coff/ChangeLog-9103
    include/coff/alpha.h
    include/coff/apollo.h
    include/coff/arm.h
    include/coff/aux-coff.h
    include/coff/ecoff.h
    include/coff/external.h
    include/coff/go32exe.h
    include/coff/h8300.h
    include/coff/h8500.h
    include/coff/i386.h
    include/coff/i860.h
    include/coff/i960.h
    include/coff/ia64.h
    include/coff/internal.h
    include/coff/m68k.h
    include/coff/m88k.h
    include/coff/maxq.h
    include/coff/mcore.h
    include/coff/mips.h
    include/coff/mipspe.h
    include/coff/or32.h
    include/coff/pe.h
    include/coff/powerpc.h
    include/coff/rs6000.h
    include/coff/rs6k64.h
    include/coff/sh.h
    include/coff/sparc.h
    include/coff/sym.h
    include/coff/symconst.h
    include/coff/ti.h
    include/coff/tic30.h
    include/coff/tic4x.h
    include/coff/tic54x.h
    include/coff/tic80.h
    include/coff/w65.h
    include/coff/we32k.h
    include/coff/xcoff.h
    include/coff/z80.h
    include/coff/z8k.h
    include/demangle.h
    include/dis-asm.h
    include/dyn-string.h
    include/elf/ChangeLog
    include/elf/ChangeLog-9103
    include/elf/alpha.h
    include/elf/arc.h
    include/elf/arm.h
    include/elf/avr.h
    include/elf/bfin.h
    include/elf/common.h
    include/elf/cr16c.h
    include/elf/cris.h
    include/elf/crx.h
    include/elf/d10v.h
    include/elf/d30v.h
    include/elf/dlx.h
    include/elf/dwarf.h
    include/elf/dwarf2.h
    include/elf/external.h
    include/elf/fr30.h
    include/elf/frv.h
    include/elf/h8.h
    include/elf/hppa.h
    include/elf/i370.h
    include/elf/i386.h
    include/elf/i860.h
    include/elf/i960.h
    include/elf/ia64.h
    include/elf/internal.h
    include/elf/ip2k.h
    include/elf/iq2000.h
    include/elf/m32c.h
    include/elf/m32r.h
    include/elf/m68hc11.h
    include/elf/m68k.h
    include/elf/mcore.h
    include/elf/mips.h
    include/elf/mmix.h
    include/elf/mn10200.h
    include/elf/mn10300.h
    include/elf/msp430.h
    include/elf/mt.h
    include/elf/openrisc.h
    include/elf/or32.h
    include/elf/pj.h
    include/elf/ppc.h
    include/elf/ppc64.h
    include/elf/reloc-macros.h
    include/elf/s390.h
    include/elf/sh.h
    include/elf/sparc.h
    include/elf/v850.h
    include/elf/vax.h
    include/elf/x86-64.h
    include/elf/xc16x.h
    include/elf/xstormy16.h
    include/elf/xtensa.h
    include/fibheap.h
    include/filenames.h
    include/floatformat.h
    include/fnmatch.h
    include/fopen-bin.h
    include/fopen-same.h
    include/fopen-vms.h
    include/gdb/ChangeLog
    include/gdb/callback.h
    include/gdb/fileio.h
    include/gdb/remote-sim.h
    include/gdb/signals.h
    include/gdb/sim-arm.h
    include/gdb/sim-d10v.h
    include/gdb/sim-frv.h
    include/gdb/sim-h8300.h
    include/gdb/sim-m32c.h
    include/gdb/sim-ppc.h
    include/gdb/sim-sh.h
    include/gdbm.h
    include/getopt.h
    include/hashtab.h
    include/hp-symtab.h
    include/ieee.h
    include/libiberty.h
    include/md5.h
    include/nlm/ChangeLog
    include/nlm/alpha-ext.h
    include/nlm/common.h
    include/nlm/external.h
    include/nlm/i386-ext.h
    include/nlm/internal.h
    include/nlm/ppc-ext.h
    include/nlm/sparc32-ext.h
    include/oasys.h
    include/objalloc.h
    include/obstack.h
    include/opcode/ChangeLog
    include/opcode/ChangeLog-9103
    include/opcode/alpha.h
    include/opcode/arc.h
    include/opcode/arm.h
    include/opcode/avr.h
    include/opcode/bfin.h
    include/opcode/cgen-bitset.h
    include/opcode/cgen.h
    include/opcode/convex.h
    include/opcode/cris.h
    include/opcode/crx.h
    include/opcode/d10v.h
    include/opcode/d30v.h
    include/opcode/dlx.h
    include/opcode/h8300.h
    include/opcode/hppa.h
    include/opcode/i370.h
    include/opcode/i386.h
    include/opcode/i860.h
    include/opcode/i960.h
    include/opcode/ia64.h
    include/opcode/m68hc11.h
    include/opcode/m68k.h
    include/opcode/m88k.h
    include/opcode/maxq.h
    include/opcode/mips.h
    include/opcode/mmix.h
    include/opcode/mn10200.h
    include/opcode/mn10300.h
    include/opcode/msp430.h
    include/opcode/np1.h
    include/opcode/ns32k.h
    include/opcode/or32.h
    include/opcode/pdp11.h
    include/opcode/pj.h
    include/opcode/pn.h
    include/opcode/ppc.h
    include/opcode/pyr.h
    include/opcode/s390.h
    include/opcode/sparc.h
    include/opcode/tahoe.h
    include/opcode/tic30.h
    include/opcode/tic4x.h
    include/opcode/tic54x.h
    include/opcode/tic80.h
    include/opcode/v850.h
    include/opcode/vax.h
    include/os9k.h
    include/partition.h
    include/progress.h
    include/safe-ctype.h
    include/sort.h
    include/splay-tree.h
    include/symcat.h
    include/ternary.h
    include/xregex.h
    include/xregex2.h
    include/xtensa-config.h
    include/xtensa-isa-internal.h
    include/xtensa-isa.h
    libiberty/COPYING.LIB
    libiberty/ChangeLog
    libiberty/Makefile.in
    libiberty/README
    libiberty/_doprnt.c
    libiberty/aclocal.m4
    libiberty/alloca.c
    libiberty/argv.c
    libiberty/asprintf.c
    libiberty/at-file.texi
    libiberty/atexit.c
    libiberty/basename.c
    libiberty/bcmp.c
    libiberty/bcopy.c
    libiberty/bsearch.c
    libiberty/bzero.c
    libiberty/calloc.c
    libiberty/choose-temp.c
    libiberty/clock.c
    libiberty/concat.c
    libiberty/config.h-vms
    libiberty/config.in
    libiberty/config/mh-aix
    libiberty/config/mh-cxux7
    libiberty/config/mh-fbsd21
    libiberty/config/mh-openedition
    libiberty/config/mh-windows
    libiberty/configure
    libiberty/configure.ac
    libiberty/copying-lib.texi
    libiberty/copysign.c
    libiberty/cp-demangle.c
    libiberty/cp-demangle.h
    libiberty/cp-demint.c
    libiberty/cplus-dem.c
    libiberty/dyn-string.c
    libiberty/fdmatch.c
    libiberty/ffs.c
    libiberty/fibheap.c
    libiberty/floatformat.c
    libiberty/fnmatch.c
    libiberty/fnmatch.txh
    libiberty/fopen_unlocked.c
    libiberty/functions.texi
    libiberty/gather-docs
    libiberty/getcwd.c
    libiberty/getopt.c
    libiberty/getopt1.c
    libiberty/getpagesize.c
    libiberty/getpwd.c
    libiberty/getruntime.c
    libiberty/gettimeofday.c
    libiberty/hashtab.c
    libiberty/hex.c
    libiberty/index.c
    libiberty/insque.c
    libiberty/lbasename.c
    libiberty/libiberty.texi
    libiberty/lrealpath.c
    libiberty/maint-tool
    libiberty/make-relative-prefix.c
    libiberty/make-temp-file.c
    libiberty/makefile.vms
    libiberty/md5.c
    libiberty/memchr.c
    libiberty/memcmp.c
    libiberty/memcpy.c
    libiberty/memmove.c
    libiberty/mempcpy.c
    libiberty/memset.c
    libiberty/mkstemps.c
    libiberty/msdos.c
    libiberty/objalloc.c
    libiberty/obstack.c
    libiberty/obstacks.texi
    libiberty/partition.c
    libiberty/pex-common.c
    libiberty/pex-common.h
    libiberty/pex-djgpp.c
    libiberty/pex-msdos.c
    libiberty/pex-one.c
    libiberty/pex-unix.c
    libiberty/pex-win32.c
    libiberty/pexecute.c
    libiberty/pexecute.txh
    libiberty/physmem.c
    libiberty/putenv.c
    libiberty/random.c
    libiberty/regex.c
    libiberty/rename.c
    libiberty/rindex.c
    libiberty/safe-ctype.c
    libiberty/setenv.c
    libiberty/sigsetmask.c
    libiberty/snprintf.c
    libiberty/sort.c
    libiberty/spaces.c
    libiberty/splay-tree.c
    libiberty/stpcpy.c
    libiberty/stpncpy.c
    libiberty/strcasecmp.c
    libiberty/strchr.c
    libiberty/strdup.c
    libiberty/strerror.c
    libiberty/strncasecmp.c
    libiberty/strncmp.c
    libiberty/strndup.c
    libiberty/strrchr.c
    libiberty/strsignal.c
    libiberty/strstr.c
    libiberty/strtod.c
    libiberty/strtol.c
    libiberty/strtoul.c
    libiberty/strverscmp.c
    libiberty/ternary.c
    libiberty/testsuite/Makefile.in
    libiberty/testsuite/demangle-expected
    libiberty/testsuite/test-demangle.c
    libiberty/testsuite/test-expandargv.c
    libiberty/testsuite/test-pexecute.c
    libiberty/tmpnam.c
    libiberty/unlink-if-ordinary.c
    libiberty/vasprintf.c
    libiberty/vfork.c
    libiberty/vfprintf.c
    libiberty/vmsbuild.com
    libiberty/vprintf.c
    libiberty/vsnprintf.c
    libiberty/vsprintf.c
    libiberty/waitpid.c
    libiberty/xatexit.c
    libiberty/xexit.c
    libiberty/xmalloc.c
    libiberty/xmemdup.c
    libiberty/xstrdup.c
    libiberty/xstrerror.c
    libiberty/xstrndup.c
diff --git a/ChangeLog b/ChangeLog
index c509360..ab436ff 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-08-15  Thiemo Seufer  <ths@mips.com>
+            Nigel Stephens  <nigel@mips.com>
+            David Ung  <davidu@mips.com>
+
+	* config.sub: Add support for sde as alias of mipsisa32-sde-elf.
+
 2006-07-25  Paolo Bonzini  <bonzini@gnu.org>
 
 	Sync from GCC:
diff --git a/config.rpath b/config.rpath
new file mode 100755
index 0000000..937edf5
--- /dev/null
+++ b/config.rpath
@@ -0,0 +1,548 @@
+#! /bin/sh
+# Output a system dependent set of variables, describing how to set the
+# run time search path of shared libraries in an executable.
+#
+#   Copyright 1996-2003 Free Software Foundation, Inc.
+#   Taken from GNU libtool, 2001
+#   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+#   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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+#   As a special exception to the GNU General Public License, if you
+#   distribute this file as part of a program that contains a
+#   configuration script generated by Autoconf, you may include it under
+#   the same distribution terms that you use for the rest of that program.
+#
+# The first argument passed to this file is the canonical host specification,
+#    CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or
+#    CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
+# should be set by the caller.
+#
+# The set of defined variables is at the end of this script.
+
+# Known limitations:
+# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
+#   than 256 bytes, otherwise the compiler driver will dump core. The only
+#   known workaround is to choose shorter directory names for the build
+#   directory and/or the installation directory.
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+shrext=.so
+
+host="$1"
+host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
+
+wl=
+if test "$GCC" = yes; then
+  wl='-Wl,'
+else
+  case "$host_os" in
+    aix*)
+      wl='-Wl,'
+      ;;
+    mingw* | pw32* | os2*)
+      ;;
+    hpux9* | hpux10* | hpux11*)
+      wl='-Wl,'
+      ;;
+    irix5* | irix6* | nonstopux*)
+      wl='-Wl,'
+      ;;
+    newsos6)
+      ;;
+    linux*)
+      case $CC in
+        icc|ecc)
+          wl='-Wl,'
+          ;;
+        ccc)
+          wl='-Wl,'
+          ;;
+      esac
+      ;;
+    osf3* | osf4* | osf5*)
+      wl='-Wl,'
+      ;;
+    sco3.2v5*)
+      ;;
+    solaris*)
+      wl='-Wl,'
+      ;;
+    sunos4*)
+      wl='-Qoption ld '
+      ;;
+    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+      wl='-Wl,'
+      ;;
+    sysv4*MP*)
+      ;;
+    uts4*)
+      ;;
+  esac
+fi
+
+# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
+
+hardcode_libdir_flag_spec=
+hardcode_libdir_separator=
+hardcode_direct=no
+hardcode_minus_L=no
+
+case "$host_os" in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+esac
+
+ld_shlibs=yes
+if test "$with_gnu_ld" = yes; then
+  case "$host_os" in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+        ld_shlibs=no
+      fi
+      ;;
+    amigaos*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can use
+      # them.
+      ld_shlibs=no
+      ;;
+    beos*)
+      if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+    cygwin* | mingw* | pw32*)
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec='-L$libdir'
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+    netbsd*)
+      ;;
+    solaris* | sysv5*)
+      if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
+        ld_shlibs=no
+      elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+    sunos4*)
+      hardcode_direct=yes
+      ;;
+    *)
+      if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+  esac
+  if test "$ld_shlibs" = yes; then
+    # Unlike libtool, we use -rpath here, not --rpath, since the documented
+    # option of GNU ld is called -rpath, not --rpath.
+    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+  fi
+else
+  case "$host_os" in
+    aix3*)
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L=yes
+      if test "$GCC" = yes; then
+        # Neither direct hardcoding nor static linking is supported with a
+        # broken collect2.
+        hardcode_direct=unsupported
+      fi
+      ;;
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+        # On IA64, the linker does run time linking by default, so we don't
+        # have to do anything special.
+        aix_use_runtimelinking=no
+      else
+        aix_use_runtimelinking=no
+        # Test if we are trying to use run time linking or normal
+        # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+        # need to do runtime linking.
+        case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+          for ld_flag in $LDFLAGS; do
+            if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+              aix_use_runtimelinking=yes
+              break
+            fi
+          done
+        esac
+      fi
+      hardcode_direct=yes
+      hardcode_libdir_separator=':'
+      if test "$GCC" = yes; then
+        case $host_os in aix4.[012]|aix4.[012].*)
+          collect2name=`${CC} -print-prog-name=collect2`
+          if test -f "$collect2name" && \
+            strings "$collect2name" | grep resolve_lib_name >/dev/null
+          then
+            # We have reworked collect2
+            hardcode_direct=yes
+          else
+            # We have old collect2
+            hardcode_direct=unsupported
+            hardcode_minus_L=yes
+            hardcode_libdir_flag_spec='-L$libdir'
+            hardcode_libdir_separator=
+          fi
+        esac
+      fi
+      # Begin _LT_AC_SYS_LIBPATH_AIX.
+      echo 'int main () { return 0; }' > conftest.c
+      ${CC} ${LDFLAGS} conftest.c -o conftest
+      aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+      if test -z "$aix_libpath"; then
+        aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+      fi
+      if test -z "$aix_libpath"; then
+        aix_libpath="/usr/lib:/lib"
+      fi
+      rm -f conftest.c conftest
+      # End _LT_AC_SYS_LIBPATH_AIX.
+      if test "$aix_use_runtimelinking" = yes; then
+        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+      else
+        if test "$host_cpu" = ia64; then
+          hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+        else
+          hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+        fi
+      fi
+      ;;
+    amigaos*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      # see comment about different semantics on the GNU ld section
+      ld_shlibs=no
+      ;;
+    bsdi4*)
+      ;;
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec=' '
+      libext=lib
+      ;;
+    darwin* | rhapsody*)
+      if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then
+        hardcode_direct=no
+      fi
+      ;;
+    dgux*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      ;;
+    freebsd1*)
+      ld_shlibs=no
+      ;;
+    freebsd2.2*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      ;;
+    freebsd2*)
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      ;;
+    freebsd*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      ;;
+    hpux9*)
+      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_direct=yes
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L=yes
+      ;;
+    hpux10* | hpux11*)
+      if test "$with_gnu_ld" = no; then
+        case "$host_cpu" in
+          hppa*64*)
+            hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+            hardcode_libdir_separator=:
+            hardcode_direct=no
+            ;;
+          ia64*)
+            hardcode_libdir_flag_spec='-L$libdir'
+            hardcode_direct=no
+            # hardcode_minus_L: Not really in the search PATH,
+            # but as the default location of the library.
+            hardcode_minus_L=yes
+            ;;
+          *)
+            hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+            hardcode_libdir_separator=:
+            hardcode_direct=yes
+            # hardcode_minus_L: Not really in the search PATH,
+            # but as the default location of the library.
+            hardcode_minus_L=yes
+            ;;
+        esac
+      fi
+      ;;
+    irix5* | irix6* | nonstopux*)
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+    netbsd*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      ;;
+    newsos6)
+      hardcode_direct=yes
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+    openbsd*)
+      hardcode_direct=yes
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+        hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+      else
+        case "$host_os" in
+          openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+            hardcode_libdir_flag_spec='-R$libdir'
+            ;;
+          *)
+            hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+            ;;
+        esac
+      fi
+      ;;
+    os2*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      ;;
+    osf3*)
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+    osf4* | osf5*)
+      if test "$GCC" = yes; then
+        hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      else
+        # Both cc and cxx compiler support -rpath directly
+        hardcode_libdir_flag_spec='-rpath $libdir'
+      fi
+      hardcode_libdir_separator=:
+      ;;
+    sco3.2v5*)
+      ;;
+    solaris*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      ;;
+    sunos4*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      ;;
+    sysv4)
+      case $host_vendor in
+        sni)
+          hardcode_direct=yes # is this really true???
+          ;;
+        siemens)
+          hardcode_direct=no
+          ;;
+        motorola)
+          hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+          ;;
+      esac
+      ;;
+    sysv4.3*)
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+        ld_shlibs=yes
+      fi
+      ;;
+    sysv4.2uw2*)
+      hardcode_direct=yes
+      hardcode_minus_L=no
+      ;;
+    sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
+      ;;
+    sysv5*)
+      hardcode_libdir_flag_spec=
+      ;;
+    uts4*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      ;;
+    *)
+      ld_shlibs=no
+      ;;
+  esac
+fi
+
+# Check dynamic linker characteristics
+# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
+libname_spec='lib$name'
+case "$host_os" in
+  aix3*)
+    ;;
+  aix4* | aix5*)
+    ;;
+  amigaos*)
+    ;;
+  beos*)
+    ;;
+  bsdi4*)
+    ;;
+  cygwin* | mingw* | pw32*)
+    shrext=.dll
+    ;;
+  darwin* | rhapsody*)
+    shrext=.dylib
+    ;;
+  dgux*)
+    ;;
+  freebsd1*)
+    ;;
+  freebsd*)
+    ;;
+  gnu*)
+    ;;
+  hpux9* | hpux10* | hpux11*)
+    case "$host_cpu" in
+      ia64*)
+        shrext=.so
+        ;;
+      hppa*64*)
+        shrext=.sl
+        ;;
+      *)
+        shrext=.sl
+        ;;
+    esac
+    ;;
+  irix5* | irix6* | nonstopux*)
+    case "$host_os" in
+      irix5* | nonstopux*)
+        libsuff= shlibsuff=
+        ;;
+      *)
+        case $LD in
+          *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
+          *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
+          *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
+          *) libsuff= shlibsuff= ;;
+        esac
+        ;;
+    esac
+    ;;
+  linux*oldld* | linux*aout* | linux*coff*)
+    ;;
+  linux*)
+    ;;
+  netbsd*)
+    ;;
+  newsos6)
+    ;;
+  nto-qnx)
+    ;;
+  openbsd*)
+    ;;
+  os2*)
+    libname_spec='$name'
+    shrext=.dll
+    ;;
+  osf3* | osf4* | osf5*)
+    ;;
+  sco3.2v5*)
+    ;;
+  solaris*)
+    ;;
+  sunos4*)
+    ;;
+  sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+    ;;
+  sysv4*MP*)
+    ;;
+  uts4*)
+    ;;
+esac
+
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
+shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
+escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+
+sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
+
+# How to pass a linker flag through the compiler.
+wl="$escaped_wl"
+
+# Static library suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally "so").
+shlibext="$shlibext"
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator="$hardcode_libdir_separator"
+
+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct="$hardcode_direct"
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L="$hardcode_minus_L"
+
+EOF
diff --git a/config.sub b/config.sub
index 4d936e2..7ee5e9fe 100755
--- a/config.sub
+++ b/config.sub
@@ -909,6 +909,10 @@
 	sb1el)
 		basic_machine=mipsisa64sb1el-unknown
 		;;
+	sde)
+		basic_machine=mipsisa32-sde
+		os=-elf
+		;;
 	sei)
 		basic_machine=mips-sei
 		os=-seiux
diff --git a/include/COPYING b/include/COPYING
deleted file mode 100644
index 623b625..0000000
--- a/include/COPYING
+++ /dev/null
@@ -1,340 +0,0 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year  name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/include/ChangeLog b/include/ChangeLog
deleted file mode 100644
index 75f1ed2..0000000
--- a/include/ChangeLog
+++ /dev/null
@@ -1,593 +0,0 @@
-2006-07-10  Jakub Jelinek  <jakub@redhat.com>
-
-	* bfdlink.h (struct bfd_link_info): Add emit_hash and
-	emit_gnu_hash bitfields.
-
-2006-04-11  Jim Blandy  <jimb@codesourcery.com>
-
-	* libiberty.h (pex_input_file, pex_input_pipe): New declarations.
-
-2006-04-06  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* bfdlink.h (bfd_link_info): Replace need_relax_finalize with
-	relax_pass.
-
-2006-03-25  Bernd Schmidt  <bernd.schmidt@analog.com>
-
-	* elf/bfin.h (R_BFIN_GOT17M4, R_BFIN_GOTHI, R_BFIN_GOTLO,
-	R_BFIN_FUNCDESC, R_BFIN_FUNCDESC_GOT17M4,  R_BFIN_FUNCDESC_GOTHI,
-	R_BFIN_FUNCDESC_GOTLO, R_BFIN_FUNCDESC_VALUE,
-	R_BFIN_FUNCDESC_GOTOFF17M4, R_BFIN_FUNCDESC_GOTOFFHI,
-	R_BFIN_FUNCDESC_GOTOFFLO, R_BFIN_GOTOFF17M4, R_BFIN_GOTOFFHI,
-	R_BFIN_GOTOFFLO): New relocs.
-	(EF_BFIN_PIC, EF_BFIN_FDPIC, EF_BFIN_PIC_FLAGS): New macros.
-
-2006-03-23  Michael Matz  <matz@suse.de>
-
-	* elf/x86-64.h: Add the new relocations with their official
-	numbers.
-
-2006-02-17  Shrirang Khisti  <shrirangk@kpitcummins.com>
-            Anil Paranjape   <anilp1@kpitcummins.com>
-            Shilin Shakti    <shilins@kpitcummins.com>
-
-	* dis-asm.h (print_insn_xc16c): New prototype.
-
-2006-02-06  Steve Ellcey  <sje@cup.hp.com>
-
-	* elf/ia64.h (SHF_IA_64_HP_TLS): New.
-
-2006-01-18  DJ Delorie  <dj@redhat.com>
-
-	* md5.h: Include ansidecl.h
-
-2006-01-17  Andreas Schwab  <schwab@suse.de>
-
-	PR binutils/1486
-	* dis-asm.h (struct disassemble_info): Add
-	disassembler_needs_relocs.
-
-2006-01-09  Bob Wilson  <bob.wilson@acm.org>
-
-	* xtensa-config.h (XCHAL_HAVE_MUL32_HIGH): Define.
-
-2005-12-30  Bob Wilson  <bob.wilson@acm.org>
-
-	* xtensa-config.h (XCHAL_HAVE_WIDE_BRANCHES): New.
-
-2005-12-16  Nathan Sidwell  <nathan@codesourcery.com>
-
-	Second part of ms1 to mt renaming.
-	* dis-asm.h (print_insn_mt): Renamed.
-
-2005-12-12  Nathan Sidwell  <nathan@codesourcery.com>
-
-	* elf/mt.h: Renamed from ms1.h
-
-2005-12-10  Terry Laurenzo  <tlaurenzo@gmail.com>
-
-	PR java/9861
-	* demangle.h : Add DMGL_RET_POSTFIX define to enable alternative
-	output format for return types
-
-2005-11-07  Nathan Sidwell  <nathan@codesourcery.com>
-
-	Add ms2.
-	* elf/ms1.h (EF_MS1_CPU_MS2): New.
-
-2005-11-06  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
-
-	* elf/hppa.h (R_PARISC_DIR64WR, R_PARISC_DIR64DR): Remove relocs.
-
-2005-11-03  Alan Modra  <amodra@bigpond.net.au>
-
-	* bfdlink.h (struct bfd_link_order): Tweak comment.
-
-2005-10-31  Mark Kettenis  <kettenis@gnu.org>
-
-	* floatformat.h (enum floatformat_byteorders): Add
-	floatformat_vax.
-	(floatformat_vax_aingle, floatformat_vax_double): Declare.
-
-2005-10-28  Dave Brolley  <brolley@redhat.com>
-
-	Contribute the following changes:
-	2003-09-29  Dave Brolley  <brolley@redhat.com>
-
-	* dis-asm.h (disassemble_info): insn_sets now (void *) to allow for
-	more exotic underlying types to be used.
-
-2005-10-25  Arnold Metselaar  <arnold.metselaar@planet.nl>
-
-	disasm.h: Add declaration for print_insn_z80
-
-2005-09-30  Catherine Moore  <clm@cm00re.com>
-
-	* dis-asm.h (print_insn_bfin): Declare.
-	* opcode/bfin.h: New file.
-
-2005-09-26  Mark Mitchell  <mark@codesourcery.com>
-
-	* libiberty.h (expandargv): New function.
-
-2005-08-18  Alan Modra  <amodra@bigpond.net.au>
-
-	* bfdlink.h: Remove mention of a29k.
-	* dis-asm.h: Remove a29k support.
-	* aout/encap.h: Likewise.
-
-2005-08-17  Mark Kettenis  <kettenis@gnu.org>
-
-	* floatformat.h (struct floatformat): Change type of large
-	argument for is_valid member to `const void *'.
-	(floatformat_to_double): Change type of second argument to `const
-	void *'.
-	(floatformat_from_double): Change type of last argument to `void
-	*'.
-	(floatformat_is_valid): Change type of last argument to `const
-	void *'.
-
-2005-07-14  Jim Blandy  <jimb@redhat.com>
-
-	* dis-asm.h (print_insn_m32c): New declaration.
-
-2005-07-12  Ben Elliston  <bje@au.ibm.com>
-
-	* xregex2.h (regexec): Qualify this prototype with __extension__
-	when compiling with GNU C.
-
-2005-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* dis-asm.h (fprintf_ftype): Add format attribute.
-
-2005-07-03  Steve Ellcey  <sje@cup.hp.com>
-
-	PR other/13906
-	* ansidecl.h (ATTRIBUTE_ALIGNED_ALIGNOF): New.
-	* md5.h (md5_uintptr): New.
-	(md5_ctx): Align buffer field.
-
-2005-06-30  Daniel Berlin  <dberlin@dberlin.org>
-
-	* hashtab.h (HTAB_DELETED_ENTRY): New macro.
-	(HTAB_EMPTY_ENTRY): New macro.
-
-2005-06-20  Geoffrey Keating  <geoffk@apple.com>
-
-	* libiberty.h (strverscmp): Prototype. 
-
-2005-06-17  Jakub Jelinek  <jakub@redhat.com>
-
-	* elf/external.h (GRP_ENTRY_SIZE): Define.
-
-2005-06-08  Zack Weinberg  <zack@codesourcery.com>
-
-	* dis-asm.h (get_arm_regnames): Update prototype.
-
-2005-06-07  Aldy Hernandez  <aldyh@redhat.com>
-	    Michael Snyder  <msnyder@redhat.com>
-	    Stan Cox  <scox@redhat.com>
-
-	* dis-asm.h: Externalize print_insn_ms1.
-
-2005-06-06  Gabriel Dos Reis  <gdr@integrable-solutions.net>
-
-	* libiberty.h (XOBFINISH): New.
-
-2005-06-03  Alan Modra  <amodra@bigpond.net.au>
-
-	* bfdlink.h (struct bfd_link_callbacks): Add einfo.
-
-2005-06-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* libiberty.h (vsnprintf): Add format attribute.
-
-2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* ansidecl.h: Add ATTRIBUTE_FPTR_PRINTF.
-
-2005-05-28  Eli Zaretskii  <eliz@gnu.org>
-
-	* libiberty.h: (snprintf) [!HAVE_DECL_SNPRINTF]: Declare if
-	needed.
-	(vsnprintf) [!HAVE_DECL_VSNPRINTF]: Declare if needed.
-
-2005-05-25  Richard Henderson  <rth@redhat.com>
-
-	* demangle.h (DEMANGLE_COMPONENT_HIDDEN_ALIAS): New.
-
-2005-05-24  Gabriel Dos Reis  <gdr@integrable-solutions.net>
-
-	* libiberty.h (ACONCAT): Properly cast value of alloca().
-
-	* ansidecl.h (ATTRIBUTE_UNUSED_LABEL): Don't define if
-	__cplusplus.
-
-2005-05-12  Steve Ellcey  <sje@cup.hp.com>
-
-	libiberty.h: Do not define empty basename prototype.
-
-2005-05-10  Nick Clifton  <nickc@redhat.com>
-
-	* Update the address and phone number of the FSF organization in
-	the GPL notices in the following files:
-	COPYING, ansidecl.h, bfdlink.h, bout.h, demangle.h, dis-asm.h,
-	dyn-string.h, fibheap.h, filenames.h, floatformat.h,
-	fnmatch.h, gdbm.h, getopt.h, hashtab.h, hp-symtab.h, ieee.h,
-	libiberty.h, md5.h, oasys.h, objalloc.h, obstack.h, os9k.h,
-	partition.h, progress.h, safe-ctype.h, sort.h, splay-tree.h,
-	symcat.h, ternary.h, xregex2.h, xtensa-config.h,
-	xtensa-isa-internal.h, xtensa-isa.h
-
-2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* libiberty.h (unlock_std_streams): New.
-
-2005-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* hashtab.h, libiberty.h, objalloc.h, splay-tree.h, ternary.h:
-	Don't use the PTR macro.
-
-	* sort.h: Don't use the PARAMS macro.
-
-2005-04-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* libiberty.h (unlock_stream): New.
-
-2005-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* libiberty.h (fopen_unlocked, fdopen_unlocked, freopen_unlocked):
-	Remove parameter names.
-
-2005-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* libiberty.h (fopen_unlocked, fdopen_unlocked, freopen_unlocked):
-	Provide prototypes for new functions.
-
-2005-03-29  Ian Lance Taylor  <ian@airs.com>
-
-	* libiberty.h: Fix indentation.
-
-2005-03-28  Ian Lance Taylor  <ian@airs.com>
-
-	* libiberty.h: Include <stdio.h>.
-	(PEX_RECORD_TIMES, PEX_USE_PIPES, PEX_SAVE_TEMPS): Define.
-	(PEX_LAST, PEX_SEARCH, PEX_SUFFIX, PEX_STDERR_TO_STDOUT): Define.
-	(PEX_BINARY_INPUT, PEX_BINARY_OUTPUT): Define.
-	(pex_init, pex_run, pex_read_output): Declare.
-	(pex_get_status, pex_get_times, pex_free, pex_one): Declare.
-	(struct pex_time): Define.
-
-2005-03-28  Mark Mitchell <mark@codesourcery.com>
-
-	* libiberty.h (ffs): Declare, if necessary.
-
-2005-03-27  Gabriel Dos Reis  <gdr@integreable-solutions.net>
-
-	* ternary.h: Don't use PARAMS anymore.
-
-2005-03-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
-
-	* md5.h: Remove definition and uses of __P.
-	* dyn-string.h: Remove uses of PARAMS.
-	* fibheap.h: Likewise.
-	* floatformat.h: Likewise.
-	* hashtab.h: Likewise.
-
-2005-03-26  Gabriel Dos Reis  <gdr@integrable-solutions.net>
-
-	* demangle.h: Remove uses of PARAMS.
-
-	* libiberty.h (ANSI_PROTOTYPES): Remove guard since
-	ANSI_PROTOTYPES is always assumed.
-	Remove uses of PARAMS throughout.
-
-2005-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* libiberty.h (xstrndup): Declare.
-
-2005-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* libiberty.h (make_relative_prefix): Add ATTRIBUTE_MALLOC.
-
-2005-03-22  Bob Wilson  <bob.wilson@acm.org>
-
-	* xtensa-isa.h: Update a comment and whitespace.
-
-2005-03-16  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* bfdlink.h (bfd_link_info): Add gc_sections.
-
-2005-03-09  Mark Mitchell  <mark@codesourcery.com>
-
-	* libiberty.h (gettimeofday): Declare.
-
-2005-03-01  Jan Beulich  <jbeulich@novell.com>
-
-	* libiberty.h: Declare unlink_if_ordinary.
-
-2005-02-21  Alan Modra  <amodra@bigpond.net.au>
-
-	* xtensa-isa-internal.h (xtensa_length_decode_fn): Warning fix.
-	* xtensa-isa.h (xtensa_insnbuf_to_chars): Likewise.
-	(xtensa_insnbuf_from_chars, xtensa_isa_length_from_chars): Likewise.
-
-2005-02-14  Paolo Bonzini  <bonzini@gnu.org>
-
-	PR bootstrap/19818
-	* ansidecl.h (PARAMS): Guard from redefinition.
-
-2005-02-03  Alan Modra  <amodra@bigpond.net.au>
-
-	* bfdlink.h (struct bfd_link_hash_entry): Add u.undef.weak.
-
-2005-02-01  Alan Modra  <amodra@bigpond.net.au>
-
-	* bfdlink.h (bfd_link_repair_undef_list): Declare.
-
-2005-01-10  Andreas Schwab  <schwab@suse.de>
-
-	* dis-asm.h (struct disassemble_info): Add skip_zeroes and
-	skip_zeroes_at_end.
-
-2004-12-11  Ben Elliston  <bje@au.ibm.com>
-
-	* fibheap.h (struct fibnode): Only use unsigned long bitfields
-	when __GNUC__ is defined and ints are less than 32-bits wide.
-
-2004-11-04  Paul Brook  <paul@codesourcery.com>
-
-	* bfdlink.h (bfd_link_info): Add default_imported_symver.
-
-2004-11-12  Bob Wilson  <bob.wilson@acm.org>
-
-	* xtensa-isa-internal.h (xtensa_interface_internal): Add class_id.
-	* xtensa-isa.h (xtensa_interface_class_id): New prototype.
-
-2004-11-08  Inderpreet Singh   <inderpreetb@nioda.hcltech.com>
-	    Vineet Sharma      <vineets@noida.hcltech.com>
-
-	* dis-asm.h: Add prototype for print_insn_maxq_little.
-
-2004-10-26  Paul Brook  <paul@codesourcery.com>
-
-	* bfdlink.h (struct bfd_link_info): Add create_default_symver.
-
-2004-10-21  H.J. Lu  <hongjiu.lu@intel.com>
-
-	PR 463
-	* bfdlink.h (bfd_link_callbacks): Add a pointer to struct
-	bfd_link_hash_entry to reloc_overflow.
-
-2004-10-07  Bob Wilson  <bob.wilson@acm.org>
-
-	* xtensa-config.h (XSHAL_USE_ABSOLUTE_LITERALS,
-	XCHAL_HAVE_PREDICTED_BRANCHES, XCHAL_INST_FETCH_WIDTH): New.
-	(XCHAL_EXTRA_SA_SIZE, XCHAL_EXTRA_SA_ALIGN): Delete.
-
-	* xtensa-isa-internal.h (ISA_INTERFACE_VERSION): Delete.
-	(config_sturct struct): Delete.
-	(XTENSA_OPERAND_IS_REGISTER, XTENSA_OPERAND_IS_PCRELATIVE,
-	XTENSA_OPERAND_IS_INVISIBLE, XTENSA_OPERAND_IS_UNKNOWN,
-	XTENSA_OPCODE_IS_BRANCH, XTENSA_OPCODE_IS_JUMP,
-	XTENSA_OPCODE_IS_LOOP, XTENSA_OPCODE_IS_CALL,
-	XTENSA_STATE_IS_EXPORTED, XTENSA_INTERFACE_HAS_SIDE_EFFECT): Define.
-	(xtensa_format_encode_fn, xtensa_get_slot_fn, xtensa_set_slot_fn): New.
-	(xtensa_insn_decode_fn): Rename to ...
-	(xtensa_opcode_decode_fn): ... this.
-	(xtensa_immed_decode_fn, xtensa_immed_encode_fn, xtensa_do_reloc_fn,
-	xtensa_undo_reloc_fn): Update.
-	(xtensa_encoding_template_fn): Delete.
-	(xtensa_opcode_encode_fn, xtensa_format_decode_fn,
-	xtensa_length_decode_fn): New.
-	(xtensa_format_internal, xtensa_slot_internal): New types.
-	(xtensa_operand_internal): Delete operand_kind, inout, isPCRelative,
-	get_field, and set_field fields.  Add name, field_id, regfile,
-	num_regs, and flags fields.
-	(xtensa_arg_internal): New type.
-	(xtensa_iclass_internal): Change operands field to array of
-	xtensa_arg_internal.  Add num_stateOperands, stateOperands,
-	num_interfaceOperands, and interfaceOperands fields.
-	(xtensa_opcode_internal): Delete length, template, and iclass fields.
-	Add iclass_id, flags, encode_fns, num_funcUnit_uses, and funcUnit_uses.
-	(opname_lookup_entry): Delete.
-	(xtensa_regfile_internal, xtensa_interface_internal,
-	xtensa_funcUnit_internal, xtensa_state_internal,
-	xtensa_sysreg_internal, xtensa_lookup_entry): New.
-	(xtensa_isa_internal): Replace opcode_table field with opcodes field.
-	Change type of opname_lookup_table.  Delete num_modules,
-	module_opcode_base, module_decode_fn, config, and has_density fields.
-	Add num_formats, formats, format_decode_fn, length_decode_fn,
-	num_slots, slots, num_fields, num_operands, operands, num_iclasses,
-	iclasses, num_regfiles, regfiles, num_states, states,
-	state_lookup_table, num_sysregs, sysregs, sysreg_lookup_table,
-	max_sysreg_num, sysreg_table, num_interfaces, interfaces,
-	interface_lookup_table, num_funcUnits, funcUnits and
-	funcUnit_lookup_table fields.
-	(xtensa_isa_module, xtensa_isa_modules): Delete.
-	(xtensa_isa_name_compare): New prototype.
-	(xtisa_errno, xtisa_error_msg): New.
-	* xtensa-isa.h (XTENSA_ISA_VERSION): Define.
-	(xtensa_isa): Change type.
-	(xtensa_operand): Delete.
-	(xtensa_format, xtensa_regfile, xtensa_state, xtensa_sysreg,
-	xtensa_interface, xtensa_funcUnit, xtensa_isa_status,
-	xtensa_funcUnit_use): New types.
-	(libisa_module_specifier): Delete.
-	(xtensa_isa_errno, xtensa_isa_error_msg): New prototypes.
-	(xtensa_insnbuf_free, xtensa_insnbuf_to_chars,
-	xtensa_insnbuf_from_chars): Update prototypes.
-	(xtensa_load_isa, xtensa_extend_isa, xtensa_default_isa,
-	xtensa_insn_maxlength, xtensa_num_opcodes, xtensa_decode_insn,
-	xtensa_encode_insn, xtensa_insn_length,
-	xtensa_insn_length_from_first_byte, xtensa_num_operands,
-	xtensa_operand_kind, xtensa_encode_result,
-	xtensa_operand_isPCRelative): Delete.
-	(xtensa_isa_init, xtensa_operand_inout, xtensa_operand_get_field,
-	xtensa_operand_set_field, xtensa_operand_encode,
-	xtensa_operand_decode, xtensa_operand_do_reloc,
-	xtensa_operand_undo_reloc): Update prototypes.
-	(xtensa_isa_maxlength, xtensa_isa_length_from_chars,
-	xtensa_isa_num_pipe_stages, xtensa_isa_num_formats,
-	xtensa_isa_num_opcodes, xtensa_isa_num_regfiles, xtensa_isa_num_states,
-	xtensa_isa_num_sysregs, xtensa_isa_num_interfaces,
-	xtensa_isa_num_funcUnits, xtensa_format_name, xtensa_format_lookup,
-	xtensa_format_decode, xtensa_format_encode, xtensa_format_length,
-	xtensa_format_num_slots, xtensa_format_slot_nop_opcode,
-	xtensa_format_get_slot, xtensa_format_set_slot, xtensa_opcode_decode,
-	xtensa_opcode_encode, xtensa_opcode_is_branch, xtensa_opcode_is_jump,
-	xtensa_opcode_is_loop, xtensa_opcode_is_call,
-	xtensa_opcode_num_operands, xtensa_opcode_num_stateOperands,
-	xtensa_opcode_num_interfaceOperands, xtensa_opcode_num_funcUnit_uses,
-	xtensa_opcode_funcUnit_use, xtensa_operand_name,
-	xtensa_operand_is_visible, xtensa_operand_is_register,
-	xtensa_operand_regfile, xtensa_operand_num_regs,
-	xtensa_operand_is_known_reg, xtensa_operand_is_PCrelative,
-	xtensa_stateOperand_state, xtensa_stateOperand_inout,
-	xtensa_interfaceOperand_interface, xtensa_regfile_lookup,
-	xtensa_regfile_lookup_shortname, xtensa_regfile_name,
-	xtensa_regfile_shortname, xtensa_regfile_view_parent,
-	xtensa_regfile_num_bits, xtensa_regfile_num_entries,
-	xtensa_state_lookup, xtensa_state_name, xtensa_state_num_bits,
-	xtensa_state_is_exported, xtensa_sysreg_lookup,
-	xtensa_sysreg_lookup_name, xtensa_sysreg_name, xtensa_sysreg_number,
-	xtensa_sysreg_is_user, xtensa_interface_lookup, xtensa_interface_name,
-	xtensa_interface_num_bits, xtensa_interface_inout,
-	xtensa_interface_has_side_effect, xtensa_funcUnit_lookup,
-	xtensa_funcUnit_name, xtensa_funcUnit_num_copies): New prototypes.
-2004-10-07  Jeff Baker  <jbaker@qnx.com>
-
-	* bfdlink.h (bfd_link_info): Add bitfield: warn_shared_textrel.
-
-2004-09-17  Alan Modra  <amodra@bigpond.net.au>
-
-	* bfdlink.h (struct bfd_link_hash_entry): Move und_next into elements
-	of union.
-
-2004-09-13  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
-
-	* libiberty.h (basename): Prototype for __MINGW32__.
-
-2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* ansidecl.h (ATTRIBUTE_SENTINEL): Define.
-	* libiberty.h (concat, reconcat, concat_length, concat_copy,
-	concat_copy2): Use ATTRIBUTE_SENTINEL.
-
-2004-08-13  Alan Modra  <amodra@bigpond.net.au>
-
-	* bfdlink.h (struct bfd_link_callbacks): Remove "error_handler".
-	(LD_DEFINITION_IN_DISCARDED_SECTION): Delete.
-
-2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
-
-	* libiberty.h (XDELETE, XDELETEVEC, XRESIZEVEC): Remove any
-	const-qualification before disposal.
-
-2004-07-24  Bernardo Innocenti  <bernie@develer.com>
-
-	* ansidecl.h (ARG_UNUSED): New Macro.
-
-2004-07-23  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* bin-bugs.h (REPORT_BUGS_TO): Set to
-	"<URL:http://www.sourceware.org/bugzilla/>".
-
-2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
-
-	* ansidecl.h (ATTRIBUTE_PURE): New.
-
-2004-07-13  Bernardo Innocenti  <bernie@develer.com>
-
-	* libiberty.h (XNEW, XCNEW, XNEWVEC, XCNEWVEC, XOBNEW): Move here from
-	libcpp/internal.h.
-	(XDELETE, XRESIZEVEC, XDELETEVEC, XNEWVAR, XCNEWVAR, XRESIZEVAR): New
-	macros.
-
-2004-07-13  Bernardo Innocenti  <bernie@develer.com>
-
-	* libiberty.h (ASTRDUP): Add casts required for stricter
-	type conversion rules of C++.
-	* obstack.h (obstack_free): Likewise.
-
-2004-07-07  Tomer Levi  <Tomer.Levi@nsc.com>
-
-	* dis-asm.h (print_insn_crx): Declare.
-
-2004-06-24  Alan Modra  <amodra@bigpond.net.au>
-
-	* bfdlink.h (struct bfd_link_order): Update comment.
-
-2004-05-11  Jakub Jelinek  <jakub@redhat.com>
-
-	* bfdlink.h (struct bfd_link_info): Add relro, relro_start and
-	relro_end fields.
-
-2004-05-04  Andreas Jaeger  <aj@suse.de>
-
-	* demangle.h: Do not use C++ reserved keyword typename as
-	parameter for cplus_demangle_fill_builtin_type.
-
-2004-04-22  Richard Henderson  <rth@redhat.com>
-
-	* hashtab.h (struct htab): Add size_prime_index.
-
-2004-04-13  Jeff Law  <law@redhat.com>
-
-	* hashtab.h (htab_remove_elt_with_hash): Prototype new function.
-
-2004-03-30  Zack Weinberg  <zack@codesourcery.com>
-
-	* hashtab.h, splay-tree.h: Use new shorter form of GTY markers.
-
-2004-03-25  Stan Shebs  <shebs@apple.com>
-
-	* mpw/: Remove subdirectory and everything in it.
-
-2004-03-23  Alan Modra  <amodra@bigpond.net.au>
-
-	PR 51.
-	* bfdlink.h (struct bfd_link_info): Add wrap_char.
-
-2004-03-20  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* bfdlink.h (bfd_link_info): Correct comments for the
-	unresolved_syms_in_objects field.
-
-2004-02-24  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* dyn-string.h: Update copyright date.
-
-2004-02-23  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* dyn-string.h: Remove test of IN_LIBGCC2 and IN_GLIBCPP_V3 and
-	the associated #defines.
-
-2004-01-12  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* demangle.h: Instead of checking ANSI_PROTOTYPES, just include
-	"libiberty.h".
-
-	* demangle.h: If ANSI_PROTOTYPES is defined, include <stddef.h>.
-
-	* demangle.h (enum demangle_component_type): Define.
-	(struct demangle_operator_info): Declare.
-	(struct demangle_builtin_type_info): Declare.
-	(struct demangle_component): Define.
-	(cplus_demangle_fill_component): Declare.
-	(cplus_demangle_fill_name): Declare.
-	(cplus_demangle_fill_builtin_type): Declare.
-	(cplus_demangle_fill_operator): Declare.
-	(cplus_demangle_fill_extended_operator): Declare.
-	(cplus_demangle_fill_ctor, cplus_demangle_fill_dtor): Declare.
-	(cplus_demangle_v3_components): Declare.
-	(cplus_demangle_print): Declare.
-
-For older changes see ChangeLog-9103
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/include/ChangeLog-9103 b/include/ChangeLog-9103
deleted file mode 100644
index f4f7aa1..0000000
--- a/include/ChangeLog-9103
+++ /dev/null
@@ -1,2682 +0,0 @@
-2003-12-19  Andreas Tobler  <a.tobler@schweiz.ch>
-
-	* include/fibheap.h (fibnode): Use __extension__ for
-	bit-fields mark and degree if __GNUC__.
-
-2003-12-18  Kazu Hirata  <kazu@cs.umass.edu>
-
-	* include/fibheap.h (fibnode): Use unsigned long int for
-	bit-fields if __GNUC__ is defined.
-
-2003-12-19  Andreas Tobler  <a.tobler@schweiz.ch>
-
-	* fibheap.h (fibnode): Use __extension__ for
-	bit-fields mark and degree if __GNUC__.
-
-2003-12-18  Kazu Hirata  <kazu@cs.umass.edu>
-
-	* fibheap.h (fibnode): Use unsigned long int for
-	bit-fields if __GNUC__ is defined.
-
-2003-12-04  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* bfdlink.h (bfd_link_info): Change relax_finalizing to
-	need_relax_finalize.
-
-2003-12-03  Alan Modra  <amodra@bigpond.net.au>
-
-	* bfdlink.h (struct bfd_link_hash_entry): Rename "next" to "und_next".
-
-2003-12-02  Alan Modra  <amodra@bigpond.net.au>
-
-	* bfdlink.h (struct bfd_link_info): Remove mpc860c0 field.
-
-2003-11-14  Nick Clifton  <nickc@redhat.com>
-
-	* dis-asm.h (struct disassemble_info): Add new field
-	'symbol_is_valid' which is a function which can tell the
-	disassembler to skip certain symbols as they should not be
-	displayed to the user.
-	(arm_symbol_is_valid): New prototype.  This is the ARM
-	specific function for the symbol_is_valid field.
-	(generic_symbol_is_valid): New prototype.  This is the default
-	function pointed to by the symbol_is_valid field.
-
-2003-11-06  Bruno Rohee  <bruno@rohee.com>
-
-	* hp-symtab.h: Fix "the the" typo.
-
-2003-10-24  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* bfdlink.h (bfd_elf_version_expr): Add "symbol" and remove
-	"wildcard".
-
-2003-10-22  Joseph S. Myers  <jsm@polyomino.org.uk>
-
-	* obstack.h: Merge the following change from gnulib:
-	2003-10-21  Paul Eggert  <eggert@twinsun.com>
-	* obstack.h (obstack_1grow_fast): Properly parenthesize arg.
-	(obstack_ptr_grow_fast, obstack_int_grow_fast):
-	Don't use lvalue casts, as GCC plans to remove support for them
-	in GCC 3.5.  Reported by Joseph S. Myers.  This bug
-	was also present in the non-GCC version, indicating that this
-	code had always been buggy and had never been widely used.
-	(obstack_1grow, obstack_ptr_grow, obstack_int_grow, obstack_blank):
-	Use the fast variant of each macro, rather than copying the
-	definiens of the fast variant; that way, we'll be more likely to
-	catch future bugs in the fast variants.
-
-2003-10-22  Jakub Jelinek  <jakub@redhat.com>
-
-	* bfdlink.h (struct bfd_elf_version_expr): Remove match field.
-	Add wildcard and mask fields.
-	(BFD_ELF_VERSION_C_TYPE): Define.
-	(BFD_ELF_VERSION_CXX_TYPE): Likewise.
-	(BFD_ELF_VERSION_JAVA_TYPE): Likewise.
-	(struct bfd_elf_version_expr_head): New.
-	(struct bfd_elf_version_tree): Add match field.
-	Change type of globals and locals fields
-	to struct bfd_elf_version_expr_head.
-
-2003-09-22  Andrew Cagney  <cagney@redhat.com>
-
-	* floatformat.h (struct floatformat): Add field "is_valid".
-
-2003-09-15  Andrew Cagney  <cagney@redhat.com>
-
-	* floatformat.h (floatformat_to_double): Make input buffer constant.
-	(floatformat_from_double, floatformat_is_valid): Ditto.
-
-2003-09-15  Andrew Cagney  <cagney@redhat.com>
-
-	* floatformat.h (struct floatformat): Make "exp_bias" signed.
-
-2003-09-15  Daniel Jacobowitz  <drow@mvista.com>
-
-	* floatformat.h (floatformat_is_valid): Add prototype.
-
-2003-08-27  Andrew Cagney  <cagney@redhat.com>
-
-	* dis-asm.h (init_disassemble_info): Declare.
-	(INIT_DISASSEMBLE_INFO): Redefine as a call to
-	init_disassemble_info.
-	(INIT_DISASSEMBLE_INFO_NO_ARCH): Ditto.
-
-2003-08-20  Nick Clifton  <nickc@redhat.com>
-
-	* bfdlink.h (enum report_method): New enum.  Describes how to
-	report something.
-	(struct bfd_link_info): Delete fields 'no_undefined' and
-	'allow_shlib_undefined'.  Replace with
-	'unresolved_symbols_in_objects' and
-	'unresolved_symbols_in_shared_libs'.
-
-2003-08-07  Alan Modra  <amodra@bigpond.net.au>
-
-	* bfdlink.h: Remove PARAMS macro.  Replace PTR with void *.
-	* dis-asm.h: Likewise.
-
-2003-07-09  Bob Wilson  <bob.wilson@acm.org>
-
-	* xtensa-config.h: Undef all macros before defining them.
-
-2003-07-06  H.J. Lu <hongjiu.lu@intel.com>
-
-	* demangle.h: Support C++.
-
-2003-07-01  Zack Weinberg  <zack@codesourcery.com>
-
-	* filenames.h: New file imported from binutils.
-
-2003-06-30  Bob Wilson  <bob.wilson@acm.org>
-
-	* xtensa-config.h: New file imported from binutils.
-
-2003-06-30  Bob Wilson  <bob.wilson@acm.org>
-
-	* xtensa-config.h (XCHAL_HAVE_CONST16, XCHAL_HAVE_ABS,
-	XCHAL_HAVE_ADDX, XCHAL_HAVE_L32R): Define.
-
-2003-06-25  Alan Modra  <amodra@bigpond.net.au>
-
-	* bfdlink.h: Correct spelling of "relocatable".
-
-2003-06-22  Zack Weinberg  <zack@codesourcery.com>
-
-	* safe-ctype.h (HC_UNKNOWN, HC_ASCII, HC_EBCDIC): Rename to
-	HOST_CHARSET_UNKNOWN, HOST_CHARSET_ASCII, HOST_CHARSET_EBCDIC
-	respectively.
-
-2003-06-21  Zack Weinberg  <zack@codesourcery.com>
-
-	* safe-ctype.h (HC_UNKNOWN, HC_ASCII, HC_EBCDIC, HOST_CHARSET):
-	New #defines.
-
-2003-06-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* ansidecl.h: Delete HAVE_LONG_DOUBLE GCC bootstrap support.
-
-2003-05-23  Jakub Jelinek  <jakub@redhat.com>
-
-	* bfdlink.h (struct bfd_link_info): Add execstack and noexecstack.
-
-2003-06-03  H.J. Lu <hongjiu.lu@intel.com>
-
-	* bfdlink.h (LD_DEFINITION_IN_DISCARDED_SECTION): New.
-
-2003-05-30  Ulrich Drepper  <drepper@redhat.com>
-	    Jakub Jelinek  <jakub@redhat.com>
-
-	* bfdlink.h (struct bfd_link_info): Add pie and executable
-	bits.
-
-2003-05-21  Nick Clifton  <nickc@redhat.com>
-
-	* bfdlink.h (struct bfd_link_hash_table): Fix typo in comment.
-
-2003-05-15  Jim Blandy  <jimb@redhat.com>
-
-	* libiberty.h (hex_value): Make the value an unsigned int, to
-	avoid unexpected sign-extension when cast to unsigned types larger
-	than int --- like bfd_vma, on some platforms.
-	(_hex_value): Update declaration.
-
-2003-05-09  Alan Modra  <amodra@bigpond.net.au>
-
-	* xtensa-isa-internal.h (xtensa_isa_module_struct): Remove const on
-	gen_num_opcodes_fn return type.
-
-2003-05-07  Jason Merrill  <jason@redhat.com>
-
-	* hashtab.h (iterative_hash): Prototype.
-	(iterative_hash_object): New macro.
-
-2003-04-28  H.J. Lu <hjl@gnu.org>
-
-	* bfdlink.h (bfd_link_info): Add relax_finalizing.
-
-2003-04-23  H.J. Lu <hjl@gnu.org>
-
-	* bfdlink.h (bfd_link_callbacks): Add error_handler.
-
-2003-04-02  Bob Wilson  <bob.wilson@acm.org>
-
-	* xtensa-config.h: Remove comment indicating that this is a
-	generated file.
-
-2003-04-01  Bob Wilson  <bob.wilson@acm.org>
-
-	* dis-asm.h (print_insn_xtensa): Declare.
-	* xtensa-config.h: New file.
-	* xtensa-isa-internal.h: Likewise.
-	* xtensa-isa.h: Likewise.
-
-2003-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* ansidecl.h (ATTRIBUTE_NONNULL, ATTRIBUTE_NULL_PRINTF,
-	ATTRIBUTE_NULL_PRINTF_1, ATTRIBUTE_NULL_PRINTF_2,
-	ATTRIBUTE_NULL_PRINTF_3, ATTRIBUTE_NULL_PRINTF_4,
-	ATTRIBUTE_NULL_PRINTF_5): New.
-	(ATTRIBUTE_PRINTF): Add ATTRIBUTE_NONNULL.
-
-2003-03-17  Jan Hubicka  <jh@suse.cz>
-
-	* hashtab.h (htab_traverse_noresize): Declare.
-
-2003-02-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* libiberty.h: Document return value of physmem routines.
-
-2003-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* libiberty.h (physmem_total, physmem_available): Prototype.
-
-2003-02-20  Daniel Jacobowitz  <drow@mvista.com>
-
-	* libiberty.h (lrealpath): Add declaration.
-
-2003-01-31  Grant Grundler  <grundler@dsl2.external.hp.com>
-
-	* hppa.h (ldwa, ldda): Add ordered opcodes.
-
-2003-01-26  Daniel Jacobowitz  <drow@mvista.com>
-
-	* hashtab.h (htab_alloc_with_arg, htab_free_with_arg): Add new types.
-	(struct htab): Add alloc_arg, alloc_with_arg_f, free_with_arg_f.
-	(htab_create_alloc_ex): New prototype.
-	(htab_set_functions_ex): New prototype.
-
-2002-07-17  Geoffrey Keating  <geoffk@redhat.com>
-
-	* splay-tree.h (GTY): Define if undefined.
-	(splay_tree_allocate_fn): Return PTR for compatibility, not void *.
-	(struct splay_tree_node_s): Support gengtype.
-	(struct splay_tree_s): Likewise.  Make allocate_data a PTR,
-	not a void *.
-
-2002-01-02  Ben Elliston  <bje@redhat.com>
-
-	* dis-asm.h (print_insn_iq2000): Declare.
-
-2002-12-24    Dmitry Diky <diwil@mail.ru>
-
-	* dis-asm.h: Add msp430 disassembler prototype.
-
-2002-12-27  Chris Demetriou  <cgd@broadcom.com>
-
-	* dis-asm.h (print_mips_disassembler_options): Prototype.
-
-2002-12-23  Alan Modra  <amodra@bigpond.net.au>
-
-	* bfdlink.h (struct bfd_link_info): Add "strip_discarded".
-
-2002-12-20  Alan Modra  <amodra@bigpond.net.au>
-
-	* bfdlink.h (struct bfd_link_info): Replace bfd_boolean fields with
-	bit-fields.  Rearrange to put all like types together.
-
-2002-11-30  Alan Modra  <amodra@bigpond.net.au>
-
-	* bfdlink.h: Replace boolean with bfd_boolean.  Formatting.
-
-2002-11-23  Simon Burge  <simonb@wasabisystems.com>
-
-	* libiberty.h (basename): Add NetBSD to the list.
-
-2002-11-22  Daniel Jacobowitz  <drow@mvista.com>
-
-	* libiberty.h (make_relative_prefix): Add prototype.
-
-2002-11-14  Egor Duda  <deo@logos-m.ru>
-
-	* bfdlink.h (struct bfd_link_info): Add new boolean
-	field pei386_runtime_pseudo_reloc.
-
-2002-10-26  Roger Sayle  <roger@eyesopen.com>
-
-	* partition.h:  Close the extern "C" scope when compiling with C++.
-
-2002-10-26  Roger Sayle  <roger@eyesopen.com>
-	    DJ Delorie <dj@redhat.com>
-
-	PR bootstrap/8351
-	* getopt.h: Avoid prototyping getopt with no arguments in C++.
-
-2002-10-24  Nathan Tallent  <eraxxon@alumni.rice.edu>
-
-	* ansidecl.h (__STDC__): Add (__alpha && __cplusplus) to the
-	list of	platform compilers that may look, smell and act
-	like __STDC__ but that may not define it.
-
-2002-10-11  David O'Brien  <obrien@FreeBSD.org>
-
-	* getopt.h: getopt is in unistd.h (based on SUSv2).
-
-2002-09-26  Andrew Cagney  <ac131313@redhat.com>
-
-	* regs/: Delete directory.
-
-2002-09-19  Alexandre Oliva  <aoliva@redhat.com>
-
-	* libiberty.h (asprintf, vasprintf): Don't declare them if the
-	corresponding HAVE_DECL_ macro is 1.
-
-2002-09-19  Nathan Tallent  <eraxxon@alumni.rice.edu>
-
-	* dis-asm.h: Remove (errant) trailing semicolon (;) from the
-	extern "C" { } declaration.
-
-2002-09-04  Nick Clifton  <nickc@redhat.com>
-
-	* dis-asm.h (print_ppc_disassembler_options): Prototype.
-
-2002-08-28  Michael Hayes <m.hayes@elec.canterbury.ac.nz>
-
-	* dis-asm.h: Add standard disassembler for tic4x.
-
-2002-08-07  H.J. Lu <hjl@gnu.org>
-
-	* bfdlink.h (bfd_link_info): Add allow_undefined_version.
-	(bfd_elf_version_expr): Add symver and script.
-
-2002-07-31  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
-
-	* bfdlink.h (bfd_link_common_skip_ar_symbols): New enum.
-	(struct bfd_link_info): Add new field 'common_skip_ar_symbols'.
-
-2002-07-19  Denis Chertykov  <denisc@overta.ru>
-	    Matthew Green  <mrg@redhat.com>
-
-	* dis-asm.h (print_insn_ip2k): Declare.
-
-2002-07-01  Alan Modra  <amodra@bigpond.net.au>
-
-	* bfdlink.h (struct bfd_sym_chain): Declare.
-	(struct bfd_link_info): Add gc_sym_list.  Formatting fixes.
-
-2002-06-25  Alan Modra  <amodra@bigpond.net.au>
-
-	* demangle.h: #include "ansidecl.h" rather than #include <ansidecl.h>.
-	* fibheap.h: Likewise.
-	* hashtab.h: Likewise.
-	* partition.h: Likewise.
-	* sort.h: Likewise.
-	* splay-tree.h: Likewise.
-
-2002-06-24  Alan Modra  <amodra@bigpond.net.au>
-
-	* libiberty.h (basename): Don't declare if HAVE_DECL_BASENAME.
-	* getopt.h (getopt): Don't declare if HAVE_DECL_GETOPT.
-
-2002-06-18  Dave Brolley  <brolley@redhat.com>
-
-	From Catherine Moore:
-	* dis-asm.h (print_insn_frv): New prototype.
-
-2002-06-09  Andrew Cagney  <cagney@redhat.com>
-
-	* remote-sim.h: Move to directory gdb/.
-	* callback.h: Move to directory gdb/.
-
-2002-06-07  Charles Wilson  <cwilson@ece.gatech.edu>
-
-	* bfdlink.h (struct bfd_link_info): Change type of
-	pei386_auto_import field to int so that -1 can mean enabled by
-	default and 1 can mean enabled by command line switch.
-
-2002-06-06  DJ Delorie  <dj@redhat.com>
-
-	* hashtab.h (htab): Rearrange new members for backward
-	compatibility.
-	(htab_create): Don't use a macro that requires other headers.
-
-2002-06-05  Geoffrey Keating  <geoffk@redhat.com>
-
-	* hashtab.h (htab_create): Restore prototype for backward
-	compatibility.
-	(htab_try_create): Likewise.
-
-2002-05-22  Geoffrey Keating  <geoffk@redhat.com>
-
-	* hashtab.h (struct htab): Update for change to length specifier.
-
-2002-05-10  Geoffrey Keating  <geoffk@redhat.com>
-
-	* hashtab.h (GTY): Define if undefined.
-	(htab_alloc): New typedef.
-	(htab_free): New typedef.
-	(struct htab): Support gengtype; allow user-specified memory
-	allocation.
-	(htab_create_alloc): New.
-	(htab_create): Replace with #define.
-	(htab_try_create): Delete.
-
-2002-05-28  Kuang Hwa Lin <kuang@sbcglobal.net>
-
-	* dis-asm.h: Prototype print_insn_dlx.
-
-2002-05-23  Andrew Cagney  <ac131313@redhat.com>
-
-	* sim-d10v.h: Delete file.  Moved to include/gdb/.
-
-2002-05-21  H.J. Lu  (hjl@gnu.org)
-
-	* bfdlink.h (bfd_link_info): Add allow_multiple_definition.
-
-2002-05-17  J"orn Rennecke <joern.rennecke@superh.com>
-
-	* dis-asm.h (print_insn_shl, print_insn_sh64l): Remove prototype.
-
-2002-04-16  David S. Miller  <davem@redhat.com>
-
-	* xregex2.h (__restrict_arr): Define to __restrict on GCC
-	3.1 and later.  Do not redefine.
-
-2002-04-01  Phil Edwards  <pme@gcc.gnu.org>
-
-	* dyn-string.h:  Also allow IN_GLIBCPP_V3 to redefine names.
-
-2002-03-10  Daniel Jacobowitz <drow@mvista.com>
-
-	* gdb: New directory.
-
-2002-03-06  Andrew Cagney  <ac131313@redhat.com>
-
-	* floatformat.h (floatformat_arm_ext): Delete declaration.
-
-2002-02-21  Jim Blandy  <jimb@redhat.com>
-
-	Allow the user to specify functions for allocating memory for
-	splay tree roots and nodes.
-	* splay-tree.h (splay_tree_allocate_fn, splay_tree_deallocate_fn):
-	New types.
-	(splay_tree): New fields: `allocate', `deallocate', and
-	`allocate_data'.
-	(splay_tree_new_with_allocator): New function declaration.
-
-2002-02-15  Alan Modra  <amodra@bigpond.net.au>
-
-	Support arbitrary length fill patterns.
-	* bfdlink.h (enum bfd_link_order_type): Remove bfd_fill_link_order.
-	(struct bfd_link_order): Remove fill.  Add data.size.
-
-2002-02-08  Alexandre Oliva  <aoliva@redhat.com>
-
-	Contribute sh64-elf.
-	2000-11-25  Hans-Peter Nilsson  <hpn@cygnus.com>
-	* dis-asm.h (print_insn_sh64): New prototype.
-	(print_insn_sh64l): New prototype.
-	(print_insn_sh64x_media): New prototype.
-
-2002-02-05  Frank Ch. Eigler  <fche@redhat.com>
-
-	* dis-asm.h (disassemble_info): New field `insn_sets'.
-	(INIT_DISASSEMBLE_INFO): Clear it.
-
-2002-02-05  Jason Merrill  <jason@redhat.com>
-
-	* demangle.h (cplus_demangle_v3): Add "options" parm.
-	(cplus_demangle_v3_type): Remove prototype.
-	(DMGL_VERBOSE): New macro.
-	(DMGL_TYPES): New macro.
-
-2002-02-02  H.J. Lu  (hjl@gnu.org)
-
-	* demangle.h (cplus_demangle_v3_type): New prototype.
-
-2002-01-31  Ivan Guzvinec  <ivang@opencores.org>
-
-	* dis-asm.h : Add support for or32 targets
-
-2002-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* libiberty.h (C_alloca): Add ATTRIBUTE_MALLOC.
-
-2002-01-27  David O'Brien  <obrien@FreeBSD.org>
-
-	* cgen.h (BFD_VERSION): Use BFD_VERSION_DATE instead.
-
-2001-12-14  Nick Clifton  <nickc@cambridge.redhat.com>
-
-	* dis-asm.h (INIT_DISASSEMBLE_INFO_NO_ARCH): Initialise the
-	disassembler_options field (to NULL).
-
-2001-12-13  Jakub Jelinek  <jakub@redhat.com>
-
-	* bfdlink.h (struct bfd_link_info): Add eh_frame_hdr field.
-
-2001-12-07  Geoffrey Keating  <geoffk@redhat.com>
-
-	* dis-asm.h (print_insn_xstormy16): Declare.
-
-2001-12-06  Richard Henderson  <rth@redhat.com>
-
-	* demangle.h (no_demangling): New.
-	(NO_DEMANGLING_STYLE_STRING): New.
-
-2001-11-14  Alan Modra  <amodra@bigpond.net.au>
-
-	* dis-asm.h (print_insn_i386): Declare.
-
-2001-11-11  Timothy Wall  <twall@alum.mit.edu>
-
-	* dis-asm.h: Fix comment to refer to octets rather than bytes.
-
-2001-10-30  Hans-Peter Nilsson  <hp@bitrange.com>
-
-	* dis-asm.h (print_insn_mmix): Add prototype.
-
-2001-10-24  Neil Booth  <neil@daikokuya.demon.co.uk>
-
-	* safe-ctype.h (_sch_isbasic, IS_ISOBASIC): New.
-
-2001-10-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* libiberty.h (hex_init): Revert delete.
-
-	* libiberty.h (_hex_value): Const-ify.
-	(hex_init): Delete.
-
-2001-10-16  Christopher Faylor  <cgf@redhat.com>
-
-	* filenames.h: Add cygwin to the list of dosish style path systems.
-
-2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* demangle.h (demangler_engine): Const-ify.
-	* libiberty.h (buildargv): Likewise.
-
-2001-10-03  Vassili Karpov  <malc@pulsesoft.com>
-
-	* bfdlink.h (struct bfd_link_info): Add nocopyreloc field.
-
-2001-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* libiberty.h (reconcat): New function.
-
-2001-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* libiberty.h (concat, concat_length, concat_copy, concat_copy2,
-	ACONCAT): Improve comments.
-
-2001-09-18  Alan Modra  <amodra@bigpond.net.au>
-
-	* objalloc.h (OBJALLOC_ALIGN): Define using offsetof.
-
-2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* libiberty.h (concat_length, concat_copy, concat_copy2,
-	libiberty_concat_ptr, ACONCAT): New.
-
-	* libiberty.h (ASTRDUP): New macro.
-	libiberty_optr, libiberty_nptr, libiberty_len): Declare.
-
-2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* ansidecl.h: Update comments reflecting previous change.
-
-2001-08-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* ansidecl.h (VA_OPEN, VA_CLOSE): Allow multiple uses.
-
-2001-08-25  Nick Clifton  <nickc@cambridge.redhat.com>
-
-	* bfdlink.h (struct bfd_link_info): Change 'spare_dynamic_tags' to
-	unsigned to remove a compile time warning message.
-
-2001-08-24  H.J. Lu  <hjl@gnu.org>
-
-	* bfdlink.h (bfd_link_hash_table_type): New. The linker hash
-	table type, bfd_link_generic_hash_table and
-	bfd_link_elf_hash_table.
-	(bfd_link_hash_table): Add a new field, type, for the linker
-	hash table type.
-
-2001-08-23  Jakub Jelinek  <jakub@redhat.com>
-
-	* bfdlink.h (struct bfd_link_info): Add combreloc and
-	spare_dynamic_tags fields.
-
-2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
-
-	* dyn-string.h, fibheap.h, partition.h, sort.h, splay-tree.h:
-	replace "GNU CC" with "GCC".
-
-2001-08-21  Richard Henderson  <rth@redhat.com>
-
-	* fibheap.h: Tidy formatting.
-	(fibnode_t): Limit degree to 31 bits to avoid warning.
-
-2001-08-20  Daniel Berlin  <dan@cgsoftware.com>
-
-	* fibheap.h: New file. Fibonacci heap.
-
-2001-08-20  Andrew Cagney  <ac131313@redhat.com>
-
-	* floatformat.h (floatformat_arm_ext): Document as deprecated.
-	(floatformat_arm_ext_big, floatformat_arm_ext_littlebyte_bigword)
-	(floatformat_ia64_spill_little, floatformat_ia64_quad_little)
-	(floatformat_ia64_spill_big, floatformat_ia64_quad_big)
-	(floatformat_m88110_harris_ext): Declare.
-
-2001-08-18  Zack Weinberg  <zackw@panix.com>
-
-	* ansidecl.h: Reorganize for readability, remove documentation
-	of obsolete macros, document PARAMS and VPARAMS.  Add new
-	macros VA_OPEN, VA_CLOSE, and VA_FIXEDARG for nicer variadic
-	function implementation.
-
-2001-08-16  Richard Henderson  <rth@redhat.com>
-
-	* hashtab.h (htab_hash_string): Declare.
-
-2001-08-10  Andrew Cagney  <ac131313@redhat.com>
-
-	* libiberty.h (lbasename): Change function declaration to return a
-	const char pointer.
-
-2001-08-02  Mark Kettenis  <kettenis@gnu.org>
-
-	* xregex.h (_REGEX_RE_COMP): Define.
-	(re_comp): Define to xre_comp.
-	(re_exec): Define to xre_exec.
-
-2001-08-02  Charles Wilson  <cwilson@ece.gatech.edu>
-
-	* bfdlink.h (struct bfd_link_info): add new boolean
-	field pei386_auto_import.
-
-2001-07-18  Andreas Jaeger  <aj@suse.de>
-
-	* xregex2.h: Place under LGPL version 2.1.
-
-2001-07-10  Jeff Johnston  <jjohnstn@redhat.com>
-
-	* xregex.h: New file to support libiberty regex.
-	* xregex2.h: Ditto.
-
-2001-06-15  Hans-Peter Nilsson  <hp@axis.com>
-
-	* bfdlink.h (struct bfd_link_info): New member export_dynamic.
-
-2001-05-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
-
-	* partition.h: Fix misspelling of `implementation'.
-
-2001-05-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* ansidecl.h (NULL_PTR): Delete.
-
-2001-05-07  Zack Weinberg  <zackw@stanford.edu>
-
-	* demangle.h: Use PARAMS for all prototypes.
-	* ternary.h: Use PARAMS for all prototypes.  Use PTR, not void *.
-	Make arguments constant where possible.
-
-2001-05-07  Mark Mitchell  <mark@codesourcery.com>
-
-	* splay-tree.h (splay_tree_max): New function.
-	(splay_tree_min): Likewise.
-
-2001-04-27  Johan Rydberg  <jrydberg@opencores.org>
-
-	* dis-asm.h (print_insn_openrisc): Add prototype.
-
-2001-04-15  Daniel Berlin  <dan@cgsoftware.com>
-
-	* ternary.h: New file - Ternary search tree header.
-
-2001-04-13  Jakub Jelinek  <jakub@redhat.com>
-
-	* bfdlink.h (bfd_link_discard): Add discard_sec_merge.
-
-2001-04-03  Zack Weinberg  <zackw@stanford.edu>
-
-	* ansidecl.h: All logic from gcc/gansidecl.h moved here.
-
-2001-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* libiberty.h (alloca): Handle setting C_ALLOCA.
-
-2001-03-20  Jim Blandy  <jimb@redhat.com>
-
-	* demangle.h (enum gnu_v3_constructor_kinds,
-	is_gnu_v3_mangled_ctor, enum gnu_v3_destructor_kinds,
-	is_gnu_v3_mangled_dtor): New declarations.
-
-2001-03-14  Nick Clifton  <nickc@redhat.com>
-
-	* ansidecl.h: Fix copyright dates.
-	* demangle.h: Fix copyright dates.
-	* floatformat.h: Fix copyright dates.
-	* fnmatch.h: Fix copyright dates.
-	* getopt.h: Fix copyright dates.
-	* libiberty.h: Add FSF copyright notice.
-	* md5.h: Fix copyright dates.
-	* obstack.h: Fix copyright dates.
-	* splay-tree.h: Fix copyright dates.
-
-2001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
-	    John David Anglin  <dave@hiauly1.hia.nrc.ca>
-
-	* libiberty.h: Add lbasename.
-
-2001-03-06  Zack Weinberg  <zackw@stanford.edu>
-
-	* libiberty.h: Prototype C_alloca; define alloca to either
-	__builtin_alloca or C_alloca as appropriate.
-
-2001-03-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
-
-	* safe-ctype.h (_sch_test): Cast enum bit to unsigned short int for pcc
-	compatibility.
-
-2001-02-18  lars brinkhoff  <lars@nocrew.org>
-
-	* dis-asm.h: Add PDP-11 target.
-
-2001-02-09  Martin Schwidefsky  <schwidefsky@de.ibm.com>
-
-	* dis-asm.h: Add linux target for S/390.
-
-2001-01-11  Peter Targett  <peter.targett@arccores.com>
-
-	* dis-asm.h (arc_get_disassembler): Correct declaration.
-
-2001-01-09  Philip Blundell  <philb@gnu.org>
-
-	* bin-bugs.h (REPORT_BUGS_TO): Set to `bug-binutils@gnu.org'.
-
-2000-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
-
-	* COPYING: Update to current
-	ftp://ftp.gnu.org/pub/gnu/Licenses/COPYING-2.0 (fixes references
-	to 19yy as example year in copyright notice).
-
-2000-12-19  Hans-Peter Nilsson  <hp@bitrange.com>
-
-	* dis-asm.h (struct disassemble_info): New member "section".
-	(INIT_DISASSEMBLE_INFO_NO_ARCH): Initialize private_data member.
-	Initialize section member.
-
-2000-12-16  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
-
-	* safe-ctype.h: Make code work on all targets and not just on
-	targets where a char is 8 bits.
-
-2000-12-10  Fred Fish  <fnf@be.com>
-
-	* bfdlink.h (struct bfd_link_info): Add new allow_shlib_undefined
-	member to struct for systems where it is normal to have undefined
-	symbols in shared libraries at runtime and the runtime linker
-	takes care of redirecting them.
-
-2000-12-07  Zack Weinberg  <zack@wolery.stanford.edu>
-
-	* safe-ctype.h: New file.
-
-2000-12-06  Rodney Brown  <RodneyBrown@mynd.com>
-
-	* getopt.h obstack.h: Standarize copyright statement.
-
-2000-12-04  Richard Henderson  <rth@redhat.com>
-
-	* demangle.h: Change "new_abi" to "v3" everywhere.
-
-2000-11-22  Zack Weinberg  <zack@wolery.stanford.edu>
-
-	* libiberty.h: Move #includes to top.  Prototype xmalloc_failed.
-
-2000-11-15  Kenneth Block  <kenneth.block@compaq.com>
-
-	* demangle.h: Add gnat and java demangle styles.
-
-2000-11-04  Hans-Peter Nilsson  <hp@bitrange.com>
-
-	* hashtab.h (struct htab): Add member return_allocation_failure.
-	(htab_try_create): New prototype.  Mention which functions may
-	return NULL when this is used.
-
-2000-11-03  Hans-Peter Nilsson  <hp@bitrange.com>
-
-	* hashtab.h: Change void * to PTR where necessary.
-
-2000-10-11  Mark Mitchell  <mark@codesourcery.com>
-
-	* splay-tree.h (splay_tree_predecessor): Declare.
-
-2000-09-29  Hans-Peter Nilsson  <hp@axis.com>
-
-	* dis-asm.h: Declare cris_get_disassembler, not print_insn_cris.
-	Fix typo in comment.
-
-2000-09-28  John David Anglin <dave@hiauly1.hia.nrc.ca>
-
-	* alloca-conf.h: New file (copied from libiberty).
-
-2000-09-05  John David Anglin <dave@hiauly1.hia.nrc.ca>
-
-	* md5.h (md5_uint32): Choose via INT_MAX instead of UINT_MAX.
-
-2000-09-04  Alex Samuel  <samuel@codesourcery.com>
-
-	* dyn-string.h: Adjust formatting.
-	(dyn_string_insert_char): New macro.  New declaration.
-
-2000-08-28  Jason Merrill  <jason@redhat.com>
-
-	* md5.h: New file.
-
-2000-08-24  Greg McGary  <greg@mcgary.org>
-
-	* libiberty.h (ARRAY_SIZE): New macro.
-
-2000-07-29  Nick Clifton  <nickc@cygnus.com>
-
-	* os9k.h: Add copyright notice.
-	Fix formatting.
-
-2000-07-22  Jason Eckhardt  <jle@cygnus.com>
-
-	* dis-asm.h (print_insn_i860): Add prototype.
-
-2000-07-20  H.J. Lu  <hjl@gnu.org>
-
-	* bfdlink.h (bfd_link_info): Add new_dtags.
-
-2000-07-20  Hans-Peter Nilsson  <hp@axis.com>
-
-	* dis-asm.h (print_insn_cris): Declare.
-
-2000-07-19  H.J. Lu  (hjl@gnu.org)
-
-	* bfdlink.h (bfd_link_info): Add flags and flags_1.
-
-2000-06-05  DJ Delorie  <dj@redhat.com>
-
-	* MAINTAINERS: new
-
-2000-06-21  Alex Samuel  <samuel@codesourcery.com>
-
-	* dyn-string.h (dyn_string_init, dyn_string_new,
-	dyn_string_delete, dyn_string_release, dyn_string_resize,
-	dyn_string_clear, dyn_string_copy, dyn_string_copy_cstr,
-	dyn_string_prepend, dyn_string_prepend_cstr, dyn_string_insert,
-	dyn_string_insert_cstr, dyn_string_append, dyn_string_append_cstr,
-	dyn_string_append_char, dyn_string_substring_dyn_string_eq):
-	Define as same name with __cxa_ prepended, if IN_LIBGCC2.
-	(dyn_string_init, dyn_string_copy, dyn_string_copy_cstr,
-	dyn_string_prepend, dyn_string_prepend_cstr, dyn_string_insert,
-	dyn_string_insert_cstr, dyn_string_append, dyn_string_append_cstr,
-	dyn_string_append_char, dyn_string_substring): Change return type
-	to int.
-
-2000-06-18  Stephane Carrez  <stcarrez@worldnet.fr>
-
-	* dis-asm.h (print_insn_m68hc12): Define.
-	(print_insn_m68hc11): Likewise.
-
-2000-06-18  Nick Clifton  <nickc@redhat.com>
-
-	* os9k.h: Change values of MODSYNC and CRCCON due to bug report
-	from Russ Magee <rmagee@home.com>.
-
-2000-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* demangle.h (demangling_styles): Remove trailing comma in enum.
-
-	* dyn-string.h (dyn_string_append_char): Change parameter from
-	char to int.
-
-2000-06-04  Alex Samuel  <samuel@codesourcery.com>
-
-	* dyn-string.h: Move here from gcc/dyn-string.h.  Add new functions.
-
-	* demangle.h (DMGL_GNU_NEW_ABI): New macro.
-	(DMGL_STYLE_MASK): Or in DMGL_GNU_NEW_ABI.
-	(current_demangling_style): Add gnu_new_abi_demangling.
-	(GNU_NEW_ABI_DEMANGLING_STYLE_STRING): New macro.
-	(GNU_NEW_ABI_DEMANGLING): Likewise.
-	(cplus_demangle_new_abi): New declaration.
-
-Tue May 30 16:53:34 2000  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* floatformat.h (struct floatformat): Add field name.
-
-2000-05-26  Eli Zaretskii  <eliz@is.elta.co.il>
-
-	* filenames.h: New file.
-	(HAVE_DOS_BASED_FILE_SYSTEM, IS_DIR_SEPARATOR)
-	(IS_ABSOLUTE_PATH, FILENAME_CMP): New macros.
-
-2000-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* getopt.h (getopt): Also check HAVE_DECL_* when prototyping.
-
-	* libiberty.h (basename): Likewise.
-
-2000-05-17  S. Bharadwaj Yadavalli  <sby@scrugs.lkg.dec.com>
-	    Rick Gorton             <gorton@scrugs.lkg.dec.com>
-
-	* bfdlink.h (struct bfd_link_info): Add emitrelocations flag.
-
-2000-05-08  Alan Modra  <alan@linuxcare.com.au>
-
-	* dis-asm.h (print_insn_tic54x): Declare.
-
-2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
-
-	* ansidecl.h: #define __extension__ to nothing if
-	GCC_VERSION < 2008.
-
-2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* demangle.h (demangler_engine): Constify.
-
-Thu May  4 17:15:26 2000  Philippe De Muyter  <phdm@macqel.be>
-
-	* sort.h (sys/types.h): File included unconditionnaly.
-	(stddef.h): File include only #ifdef __STDC__.
-
-2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
-
-	* symcat.h: Remove #endif label.
-
-2000-04-28  Kenneth Block  <block@zk3.dec.com>
-	    Jason Merrill  <jason@casey.cygnus.com>
-
-	* demangle.h (libiberty_demanglers): new table for different styles.
-	(cplus_demangle_set_style): New function for setting style.
-	(cplus_demangle_name_to_style): New function to translate name.
-
-2000-04-24  Mark Mitchell  <mark@codesourcery.com>
-
-	* hashtab.h (hash_pointer): Declare.
-	(eq_pointer): Likewise.
-
-2000-04-23  Mark Mitchell  <mark@codesourcery.com>
-
-	* sort.h: New file.
-
-Fri Apr 21 13:20:53 2000  Richard Henderson  <rth@cygnus.com>
-			  David Mosberger  <davidm@hpl.hp.com>
-
-	* dis-asm.h (print_insn_ia64): Declare.
-
-Tue Apr 18 16:22:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* hashtab.h (enum insert_option): New type.
-	(htab_find_slot, htab_find_slot_with_hash): Use it.
-
-2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* symcat.h: Honor autoconf macro HAVE_STRINGIZE.  Add
-	comments/caveats with regard to traditional C behavior.
-
-2000-04-05  Richard Henderson  <rth@cygnus.com>
-
-	* splay-tree.h (splay_tree_remove): Declare.
-
-2000-04-04  Alan Modra  <alan@linuxcare.com.au>
-
-	* bin-bugs.h (REPORT_BUGS_TO): Remove translated part.
-
-2000-04-03  Alan Modra  <alan@linuxcare.com.au>
-
-	* bin-bugs.h: New file.
-
-2000-03-30  Mark Mitchell  <mark@codesourcery.com>
-
-	* hashtab.h (hashval_t): New type.
-	(htab_find_with_hash): Use it as an argument.
-	(htab_find_slot_with_hash): Likewise.
-
-2000-03-27  Denis Chertykov  <denisc@overta.ru>
-
-	* dis-asm.h (print_insn_avr): Declare.
-
-2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
-
-	* hashtab.h (htab_trav): Modify type so that first arg is of type
-	void **.
-	(htab_find_with_hash, htab_find_slot_with_hash): Declare new
-	functions.
-
-2000-03-09  Alex Samuel  <samuel@codesourcery.com>
-
-	* partition.h: New file.
-
-2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
-
-	* hashtab.h (struct htab): Add del_f.
-	(htab_del): New type.
-	(htab_create): Add fourth argument.
-
-2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
-
-	* hashtab.h (hash_table_t): Rename to htab_t.
-	(struct hash_table): Rename to struct htab.  Shorten element
-	names.  Reorder elements by size.
-	(htab_hash, htab_eq, htab_trav): New typedefs for the callback
-	function pointers.
-	(hash_table_entry_t): Discard; just use void * for element
-	type.
-
-2000-03-01  H.J. Lu  <hjl@gnu.org>
-
-	* bfdlink.h (bfd_link_callbacks): Add a boolean arg to
-	the undefined_symbol callback.
-
-2000-02-23  Linas Vepstas <linas@linas.org>
-
-	* dis-asm.h (print_insn_i370): Declare.
-
-Tue Feb 22 15:19:54 2000  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* remote-sim.h (sim_trace): Document return values.
-	(sim_set_trace): Declare.  Deprecate.
-
-2000-02-21  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* dis-asm.h (struct disassemble_info): Change `length' param of
-	read_memory_func to unsigned.  Change type of `buffer_length' and
-	`octets_per_byte' to unsigned.
-	(buffer_read_memory): Change `length' param to unsigned.
-
-2000-02-16  Nick Clifton  <nickc@cygnus.com>
-
-	* dis-asm.h: Add prototypes for ARM register name functions.
-
-Wed Feb  9 18:45:49 2000  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* wait.h: Delete. No longer used by GDB.
-
-Tue Feb  8 17:01:13 2000  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* remote-sim.h (sim_resume): Clarify use of SIGGNAL.
-	(sim_stop_reason): Clarify meaning of sim_signalled.
-
-2000-02-03  Timothy Wall <twall@redhat.com>
-
-	* dis-asm.h (struct disassemble_info): Added octets_per_byte
-	field and initialize it to one (1).
-
-2000-01-27  Nick Clifton  <nickc@redhat.com>
-
-	* dis-asm.h: Add prototype for disassembler_usage().
-	Add prototype for arm_disassembler_options().
-	Remove prototype for arm_toggle_regnames().
-	Add prototype for parse_arm_disassembler_option().
-
-Sat Jan  1 19:06:52 2000  Hans-Peter Nilsson  <hp@bitrange.com>
-
-	* symcat.h (STRINGX) [!__STDC__ || ALMOST_STDC]: Change "?" to "s"
-	to stringify argument s.
-
-Wed Dec 15 11:22:56 1999  Jeffrey A Law  (law@cygnus.com)
-
-	* hp-symtab.h (HP_LANGUAGE_FORTRAN): New enumeration constant.
-	(HP_LANGUAGE_F77): Define using HP_LANGUAGE_FORTRAN.
-
-1999-12-15  Doug Evans  <dje@transmeta.com>
-
-	* dis-asm.h: Enclose in extern "C" ifdef __cplusplus.
-
-1999-12-05  Mark Mitchell  <mark@codesourcery.com>
-
-	* splay-tree.h (struct splay_tree_node): Rename to ...
-	(struct splay_tree_node_s): ... this.
-	(struct splay_tree): Rename to ...
-	(struct splay_tree_s): ... this.
-
-1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* ansidecl.h (ATTRIBUTE_MALLOC): New macro.
-
-	* libiberty.h (buildargv, dupargv, concat, choose_temp_base,
-	make_temp_file, xmalloc, xcalloc, xstrdup, xmemdup): Add
-	ATTRIBUTE_MALLOC.
-	(xatexit): Remove __GNUC__ check, add ATTRIBUTE_NORETURN.
-
-1999-11-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* libiberty.h: Include stdarg.h when ANSI_PROTOTYPES is defined.
-	(asprintf, vasprintf): Provide declarations.
-
-Wed Nov 10 12:43:21 1999  Philippe De Muyter  <phdm@macqel.be>
-			  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* ansidecl.h: Define and test `GCC_VERSION', not `HAVE_GCC_VERSION'.
-
-1999-11-04      Jimmy Guo       <guo@cup.hp.com>
-
-	* hp-symtab.h (dntt_type_fparam): Add doc_ranges, misc_kind
-	fields, change location type to CORE_ADDR from int.
-	(dntt_type_const): Name the 5th field location_type.
-
-Sun Oct 24 19:11:32 1999  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* sim-d10v.h (SIM_D10V_TS2_DMAP_REGNUM): Define.
-
-1999-10-23 08:51 -0700  Zack Weinberg  <zack@bitmover.com>
-
-	* hashtab.h: Give hash_table_t a struct tag.  Add prototypes
-	for clear_hash_table_slot and traverse_hash_table.  Correct
-	prototype of all_hash_table_collisions.
-
-Sat Oct 23 19:00:13 1999  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* sim-d10v.h: New file.
-
-Fri Oct 15 01:47:51 1999  Vladimir Makarov  <vmakarov@loony.cygnus.com>
-
-	* hashtab.h: New file.
-
-1999-10-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* ansidecl.h (HAVE_GCC_VERSION): New macro.  Use it instead of
-	explicitly testing __GNUC__ and __GNUC_MINOR__.
-
-	(ATTRIBUTE_PRINTF): Use `__format__', not `format'.
-
-1999-09-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* libiberty.h (make_temp_file):  Add a prototype.
-
-Tue Sep 14 00:35:02 1999  Marc Espie <espie@cvs.openbsd.org>
-
-	* libiberty.h (basename):  OpenBSD has a correct prototype.
-	(xrealloc):  Remove outdated comment.
-
-1999-09-07  Jeff Garzik  <jgarzik@pobox.com>
-
-	* libiberty.h (xmemdup): Add prototype for new function.
-
-1999-09-04  Steve Chamberlain  <sac@pobox.com>
-
-	* dis-asm.h (print_insn_pj): Declare.
-
-1999-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* obstack.h (obstack_grow, obstack_grow0): Move (char*) casts
-	in calls to `_obstack_memcpy' from here ...
-
-	(_obstack_memcpy): ... to here, except in the __STDC__ case which
-	doesn't need it.
-
-1999-08-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* libiberty.h (getpwd): Prototype.
-
-1999-08-01  Mark Mitchell  <mark@codesourcery.com>
-
-	* splay-tree.h (splay_tree_insert): Return the new node.
-
-1999-07-11  Ian Lance Taylor  <ian@zembu.com>
-
-	* ansidecl.h: Copy attribute support macros from egcs.
-
-1999-06-22  Mark Mitchell  <mark@codesourcery.com>
-
-	* bfdlink.h (struct bfd_link_hash_entry): Add init_function and
-	fini_function.
-
-1999-06-20  Mark Mitchell  <mark@codesourcery.com>
-
-	* mips.h (Elf32_Internal_Msym): New structure.
-	(Elf32_External_Msym): Likewise.
-	(ELF32_MS_REL_INDEX): New macro.
-	(ELF32_MS_FLAGS): Likewise.
-	(ELF32_MS_INFO): Likewise.
-
-1999-06-14  Nick Clifton  <nickc@cygnus.com>
-
-	* dis-asm.h (arm_toggle_regnames): New prototype.
-	(struct diassemble_info): New field: disassembler_options.
-
-1999-04-11  Richard Henderson  <rth@cygnus.com>
-
-	* bfdlink.h (bfd_elf_version_expr): Rename `match' to `pattern'.
-	Add `match' callback function.
-
-1999-04-10  Richard Henderson  <rth@cygnus.com>
-
-	* bfdlink.h (bfd_link_info): Add no_undefined.
-
-1999-04-08  Nick Clifton  <nickc@cygnus.com>
-
-	* dis-asm.h: Add prototype for print_insn_mcore.
-
-1999-04-02  Mark Mitchell  <mark@codesourcery.com>
-
-	* splay-tree.h (splay_tree_compare_pointers): Declare.
-
-1999-03-30  Mark Mitchell  <mark@codesourcery.com>
-
-	* splay-tree.h (splay_tree_compare_ints): Declare.
-
-Wed Mar 24 12:46:29 1999  Andrew Cagney  <cagney@amy.cygnus.com>
-
-	* libiberty.h (basename): Cygwin{,32} should have the prototype.
-
-1999-02-22  Jim Lemke  <jlemke@cygnus.com>
-
-	* bfdlink.h (bfd_link_info): add field "mpc860c0".
-
-Mon Feb  1 21:05:46 1999  Catherine Moore  <clm@cygnus.com>
-
-	* dis-asm.h (print_insn_i386_att):  Declare.
-	(print_insn_i386_intel):  Declare.
-
-1998-12-30  Michael Meissner  <meissner@cygnus.com>
-
-	* dis-asm.h (INIT_DISASSEMBLE_INFO_NO_ARCH): Cast STREAM and
-	FPRINTF_FUNC to avoid compiler warnings.
-
-Wed Dec 30 16:07:14 1998  David Taylor  <taylor@texas.cygnus.com>
-
-	* dis-asm.h: change void * to PTR (two places).
-
-Mon Dec 14 09:53:31 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* demangle.h: Don't check IN_GCC anymore.
-	* splay-tree.h: Likewise.
-
-Tue Dec  8 00:30:31 1998  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>
-
-	The following changes were made by Elena Zannoni
-	<ezannoni@kwikemart.cygnus.com> and Edith Epstein
-	<eepstein@sophia.cygnus.com> as part of a project to merge in
-	changes made by HP; HP did not create ChangeLog entries.
-
-	* dis-asm.h (struct disassemble_info): change the type of stream
-	from FILE* to void*, for use with gdb's new type GDB_FILE.
-	(fprintf_ftype): change FILE* parameter type to void*.
-
-	* demangle.h: (DMGL_EDG): new macro for Kuck and Associates
-	(DMGL_STYLE_MASK): modify to include Kuck and Assoc style
-	(demangling_styles): add new edg_demangling style
-	(EDG_DEMANGLING_STYLE_STRING): new macro
-	(EDG_DEMANGLING): new macro
-	(DMGL_HP): new macro, for HP/aCC compiler.
-	(DMGL_STYLE_MASK): modify to include new HP's style.
-	(demangling_styles): add new hp_demangling value.
-	(HP_DEMANGLING_STYLE_STRING): new macro.
-	(ARM_DEMANGLING): coerce to int.
-	(HP_DEMANGLING): new macro.
-
-	* hp-symtab.h: rewritten, from HP.
-	(quick_procedure): change type of language field to unsigned int
-	(quick_module): change type of language field to unsigned int
-	(struct dntt_type_svar): add field thread_specific.
-	(hp_language): add languages modcal and dmpascal.
-
-Fri Nov 20 13:14:00 1998  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* libiberty.h (basename): Add prototype for FreeBSD.
-
-Fri Nov 13 19:19:11 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* libiberty.h: Prototype xcalloc.
-
-Sun Nov  8 17:42:25 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* ansidecl.h: Wrap problematic macros with !IN_GCC.
-
-	* demangle.h: Never define PARAMS().
-	* splay-tree.h: Likewise.
-
-Sat Nov  7 18:30:20 1998  Peter Schauer  <peter.schauer@regent.e-technik.tu-muenchen.de>
-
-	* dis-asm.h (print_insn_vax): Declare.
-
-Sat Nov  7 16:04:03 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* demangle.h: Don't include gansidecl.h.
-	* splay-tree.h: Likewise.
-
-1998-10-26 16:03  Ulrich Drepper  <drepper@cygnus.com>
-
-	* bfdlink.h (struct bfd_link_info): Add new field optimize.
-
-Thu Oct 22 19:58:00 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* splay-tree.h: Wrap function pointer parameter declarations in
-	PARAMS() macro.
-
-1998-10-21  Mark Mitchell  <mark@markmitchell.com>
-
-	* splay-tree.h: New file.
-
-Fri Oct  9 00:02:03 1998  Jeffrey A Law  (law@cygnus.com)
-
-	* Merge devo and egcs include directories.
-
-Sat Sep  5 12:16:33 1998  Jeffrey A Law  (law@cygnus.com)
-
-	* getopt.h, obstack.h: Updated from gcc.
-
-1998-08-03  Jason Molenda  (jsm@bugshack.cygnus.com)
-
-	* libiberty.h (xexit): Change decl to use modern GCC attribute
-	to indicate exit does not return.
-
-Mon Jun  1 13:48:32 1998  Jason Molenda  (crash@bugshack.cygnus.com)
-
-	* obstack.h: Update to latest FSF version.
-
-Tue Feb 24 13:05:02 1998  Doug Evans  <devans@canuck.cygnus.com>
-
-	* dis-asm.h (disassemble_info): Member `symbol' renamed to `symbols'
-	and made an "asymbol **".  New member num_symbols.
-	(INIT_DISASSEMBLE_INFO_NO_ARCH): Update.
-
-Tue Feb 17 12:32:18 1998  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* remote-sim.h (sim_fetch_register, sim_store_register): Add
-	register length parameter.  Functions return actual length of
-	register.
-
-Thu Feb 12 16:29:01 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* getopt.h: Update to latest FSF version.
-
-Wed Feb 11 16:56:06 1998  Doug Evans  <devans@canuck.cygnus.com>
-
-	* symcat.h: New file.
-
-Mon Feb  2 17:13:31 1998  Steve Haworth  <steve@pm.cse.rmit.EDU.AU>
-
-	* dis-asm.h (print_insn_tic30): Declare.
-
-Thu Jan 22 16:23:59 1998  Fred Fish <fnf@cygnus.com>
-
-	* dis-asm.h: Add flag INSN_HAS_RELOC to tell disassembly
-	function there is a reloc on this line.
-
-Mon Dec  8 11:22:23 1997  Nick Clifton  <nickc@cygnus.com>
-
-	* dis-asm.h: Remove prototype of disasm_symaddr() as this function
-	no longer exists.
-
-Tue Dec  2 10:20:53 1997  Nick Clifton  <nickc@cygnus.com>
-
-	* dis-asm.h (disasm_symaddr): New prototype.
-
-Mon Dec  1 11:29:35 1997  Doug Evans  <devans@canuck.cygnus.com>
-
-	* callback.h (CB_SYSCALL): Comment out arg names in prototypes.
-
-Wed Nov 26 16:47:58 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* callback.h (CB_SYSCALL): Consistantly use names for prototype
-	arguments.
-
-Wed Nov 26 11:39:30 1997  Doug Evans  <devans@canuck.cygnus.com>
-
-	* callback.h (CB_SYSCALL): Change byte count arguments to
-	{read,write}_mem to `int'.  New member `magic'.
-	(CB_SYSCALL_MAGIC,CB_SYSCALL_INIT): New macros.
-
-Tue Nov 25 01:35:52 1997  Doug Evans  <devans@seba.cygnus.com>
-
-	* callback.h (struct stat): Move forward decl up.
-	(host_callback): Pass stat struct pointer to stat,fstat.
-	(CB_SYS_nnn): Reorganize.
-	(CB_SYSCALL): New members p1,p2.
-	(cb_host_to_target_stat): Delete fourth arg.
-
-Sat Nov 22 23:34:15 1997  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* remote-sim.h (sim_stop_reason): Clarify sim_signalled SIGRC
-	argument.
-
-Mon Nov 17 14:00:51 1997  Doug Evans  <devans@seba.cygnus.com>
-
-	* callback.h (CB_TARGET_DEFS_MAP): Renamed from target_defs_map.
-	(host_callback): Add stat, fstat, syscall_map, errno_map, open_map,
-	signal_map, stat_map.
-	(errn_map,open_map): Renamed to cb_init_foo_map.
-	(cb_host_to_target_errno,cb_target_to_host_open): Renamed from
-	host_to_target_errno,target_to_host_open.
-	(cb_read_target_syscall_maps): Add prototype.
-	(cb_target_to_host_syscall): Likewise.
-	(cb_host_to_target_stat): Likewise.
-	(cb_syscall): Likewise.
-	(CB_SYS_{exit,open,close,read,write,lseek,unlink,getpid,kill,fstat,
-	argvlen,argv,chdir,stat,chmod,utime,time}): Define.
-	(CB_SYSCALL): New type.
-	(CB_RC): New enum.
-
-Fri Nov  7 10:34:09 1997  Rob Savoye  <rob@darkstar.cygnus.com>
-
-	* libiberty.h: Add extern "C" { so it can be used with C++
-	programs.
-	* remote-sim.h:  Add extern "C" { so it can be used with C++
-	programs.
-
-Tue Oct 14 16:07:51 1997  Nick Clifton  <nickc@cygnus.com>
-
-	* dis-asm.h (struct disassemble_info): New field
-	'symbol_at_address_func'.
-	(INIT_DISASSEMBLE_INFO_NO_ARCH): Initialise new field with
-	generic_symbol_at_address.
-
-Mon Oct 13 10:17:15 1997  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* remote-sim.h: Clarify sim_read, sim_write MEM argument.
-
-Wed Sep 24 18:03:10 1997  Stu Grossman  <grossman@babylon-5.cygnus.com>
-
-	* remote-sim.h (SIM_RC):  Add a bunch of new return codes for
-	breakpoint stuff.
-	* Add functions to tell the simulator to set/clear/enable/disable
-	intrinsic breakpoints.
-
-Thu Aug 28 19:41:42 1997  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* libiberty.h (dupargv): Add prototype.
-
-Tue Aug 26 12:25:49 1997  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* remote-sim.h (sim_create_inferior): Add ABFD arg. Document.
-
-Mon Aug 25 10:50:51 1997  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* remote-sim.h (sim_open): Add ABFD arg. Document.
-
-Fri Aug  8 16:43:56 1997  Doug Evans  <dje@canuck.cygnus.com>
-
-	* dis-asm.h (arc_get_disassembler): Declare.
-
-Wed Jul 30 11:39:50 1997  Per Bothner  <bothner@deneb.cygnus.com>
-
-	* demangle.h (DMGL_JAVA):  New option to request Java demangling.
-
-Tue Jul 22 17:59:54 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* libiberty.h (PEXECUTE_*): Define.
-	(pexecute, pwait): Declare.
-
-Fri Jun  6 13:02:33 1997  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* remote-sim.h (sim_kill): Mark as depreciated.
-
-Fri May 23 13:43:41 1997  Fred Fish  <fnf@cygnus.com>
-
-	* bfdlink.h (struct bfd_link_info): Add task_link member.
-
-Thu May 22 11:32:49 1997  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* remote-sim.h: Review documentation.  Clarify restrictions on
-	when functions can be called.
-
-Wed May 21 16:47:53 1997  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* remote-sim.h (sim_set_profile_size): Add prototype, document as
-	depreciated.
-
-Tue May 20 09:32:22 1997  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* remote-sim.h (sim_open): Add callback struct.
-	(sim_set_callbacks): Drop SIM_DESC argument. Document.
-	(sim_size): Remove recently added SIM_DESC argument. Document.
-
-Mon May 19 19:14:44 1997  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* remote-sim.h: Pass SD into sim_size.
-
-Thu May 15 01:24:16 1997  Mark Alexander  <marka@cygnus.com>
-
-	* obstack.h (obstack_specify_allocation_with_arg, obstack_chunkfun,
-	obstack_freefun): Eliminate compile warnings in gdb.
-
-Tue Apr 22 10:24:34 1997  Fred Fish  <fnf@cygnus.com>
-
-	* floatformat.h (floatformat_byteorders): Add comments for previous
-	formats and add floatformat_littlebyte_bigword, primarily for ARM.
-	Add declaration for floatformat_ieee_double_littlebyte_bigword.
-
-Fri Apr 18 13:04:49 1997  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* remote-sim.h (sim_stop): New interface - asynchronous
-	notification of a request to stop / suspend the running
-	simulation.
-
-	* remote-sim.h (enum sim_stop): Add sim_running and sim_polling as
-	states for use internal to simulators.
-
-	* callback.h (struct host_callback_strut): Put a magic number at
-	the end of the struct to allow basic checking.
-	(struct host_callback_struct ): Add poll_quit - so
-	that the console etc can be polled at regular intervals.
-
-Thu Apr 17 02:17:12 1997  Doug Evans  <dje@canuck.cygnus.com>
-
-	* remote-sim.h (struct _bfd): Declare.
-	(sim_load): Return SIM_RC.  New arg `abfd'.
-	(sim_create_inferior): Return SIM_RC.  Delete arg `start_address'.
-
-Wed Apr  2 17:09:12 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
-
-	* remote-sim.h (sim_trace, sim_size): Make these global.  They
-	will go away shortly.
-
-Wed Apr  2 15:23:49 1997  Doug Evans  <dje@canuck.cygnus.com>
-
-	* remote-sim.h (SIM_OPEN_KIND, SIM_RC): New enums.
-	(sim_open): New argument `kind'.
-
-Wed Apr  2 14:45:51 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* COPYING: Update FSF address.
-
-Fri Mar 28 15:29:54 1997  Mike Meissner  <meissner@cygnus.com>
-
-	* callback.h (top level): Include stdarg.h or varargs.h if
-	va_start is not defined.
-	(host_callback_struct): Make {,e}vprintf_filtered take a va_list
-	instead of void *, since va_list might be an array or structure
-	type.
-
-Fri Mar 28 15:44:41 1997  H.J. Lu  <hjl@gnu.ai.mit.edu>
-
-	* libiberty.h (basename): Add prototype for glibc and linux.
-
-Mon Mar 17 19:22:12 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* objalloc.h: New file.
-
-Mon Mar 17 14:57:55 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
-
-	* remote-sim.h: New file, copied in from gdb/remote-sim.h.  One
-	day this will be placed in a directory of its own.
-
-Sat Mar 15 19:00:14 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* obstack.h: Update to current FSF version.
-
-Thu Mar  6 15:46:59 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
-
-	* callback.h (struct host_callback_struct): Add callbacks -
-	flush_stdout, write_stderr, flush_stderr, vprintf_filtered,
-	evprintf_filtered.  Delete redundant callbacks - printf_filtered.
-
-Thu Feb 27 23:18:27 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* bfdlink.h (struct bfd_link_info): Remove lprefix and lprefix_len
-	fields.
-
-Tue Feb 25 00:10:49 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* dis-asm.h (INIT_DISASSEMBLE_INFO_NO_ARCH): Initialize
-	bytes_per_chunk and display_endian.
-
-Mon Feb 24 17:47:02 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	From Eric Youngdale <eric@andante.jic.com>:
-	* bfdlink.h (struct bfd_elf_version_expr): Define.
-	(struct bfd_elf_version_deps): Define.
-	(struct bfd_elf_version_tree): Define.
-
-Thu Feb  6 14:20:01 1997  Martin M. Hunt  <hunt@pizza.cygnus.com>
-
-	* dis-asm.h: (disassemble_info):  Add new fields
-	bytes_per_chunk and display_endian to control the
-	display of raw instructions.
-
-Fri Dec 27 22:17:37 1996  Fred Fish  <fnf@cygnus.com>
-
-	* dis-asm.h (print_insn_tic80): Declare.
-
-Sun Dec  8 17:11:12 1996  Doug Evans  <dje@canuck.cygnus.com>
-
-	* callback.h (host_callback): New member `error'.
-
-Wed Nov 20 00:40:23 1996  Doug Evans  <dje@canuck.cygnus.com>
-
-	* callback.h: New file, moved here from gdb.
-
-Mon Nov 18 16:34:00 1996  Dawn Perchik  <dawn@critters.cygnus.com>
-
-	* libiberty.h: Checkin again; last checkin failed due to sticky tag.
-
-Wed Nov 13 08:22:00 1996  Dawn Perchik  <dawn@critters.cygnus.com>
-
-	* libiberty.h: Revert last commit due to conflicts with hpux
-	system headers.
-
-Tue Nov 12 16:31:00 1996  Dawn Perchik  <dawn@critters.cygnus.com>
-
-	* libiberty.h: Move prototypes from argv.c here.
-
-Thu Oct 31 14:56:18 1996  Doug Evans  <dje@canuck.cygnus.com>
-
-	* ansidecl.h (VPARAMS,VA_START): Define.
-
-Fri Oct 25 12:08:04 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* dis-asm.h (disassemble_info): Add bytes_per_line field.
-	(INIT_DISASSEMBLE_INFO_NO_ARCH): Initialize bytes_per_line field.
-
-Thu Oct 24 17:10:01 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* dis-asm.h (disassemble_info): Add symbol field.
-	(INIT_DISASSEMBLE_INFO_NO_ARCH): Initialize symbol field.
-
-Thu Oct 17 11:17:40 1996  Doug Evans  <dje@canuck.cygnus.com>
-
-	* dis-asm.h (print_insn_m32r): Declare.
-
-Mon Oct 14 23:56:52 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* libiberty.h: Declare parameter types for xmalloc and xrealloc.
-
-Thu Oct  3 13:45:27 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* fnmatch.h: New file.
-
-Thu Oct  3 10:33:14 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* dis-asm.h (print_insn_mn10x00): Delete declaration.
-	(print_insn_mn10200, print_insn_mn10300): Declare.
-
-Wed Oct  2 21:24:43 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* dis-asm.h (print_insn_mn10x00): Declare.
-
-Mon Sep 30 13:56:11 1996  Fred Fish  <fnf@cygnus.com>
-
-	* libiberty.h: Remove #ifndef PRIVATE_XMALLOC.
-
-Sat Aug 31 13:27:06 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* dis-asm.h (print_insn_v850): Declare.
-
-Tue Aug 13 16:10:30 1996  Stu Grossman  (grossman@critters.cygnus.com)
-
-	* obstack.h:  Change bcopy to memcpy.  Works better on Posix
-	systems, which generally lack bcopy.
-
-Mon Aug 12 17:03:18 1996  Stu Grossman  (grossman@critters.cygnus.com)
-
-	* ansidecl.h:  Change WIN32 to _WIN32.
-
-Fri Jul 26 13:58:18 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* dis-asm.h: Add flavour field.
-	(print_insn_alpha): Declare.
-	(print_insn_alpha_osf, print_insn_alpha_vms): Don't declare.
-	(INIT_DISASSEMBLE_INFO): Initialize flavour field.
-
-Tue Jul 23 17:37:58 1996  Fred Fish  <fnf@cygnus.com>
-
-	* libiberty.h (PRIVATE_XMALLOC): Enclose xmalloc/xrealloc
-	definitions inside #ifndef so that programs that want to
-	can define PRIVATE_XMALLOC and then define xmalloc and
-	xrealloc anyway they want.
-	(basename): Document in source that we can't declare the
-	parameter type because it is declared inconsistently across
-	different systems.
-
-Mon Jul 22 13:16:13 1996  Richard Henderson  <rth@tamu.edu>
-
-	* dis-asm.h (print_insn_alpha): Don't declare.
-	(print_insn_alpha_osf, print_insn_alpha_vms): Declare.
-
-Wed Jul 17 14:45:12 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
-
-	* dis-asm.h: (print_insn_d10v): Declare.
-
-Mon Jul 15 16:55:38 1996  Stu Grossman  (grossman@critters.cygnus.com)
-
-	* dis-asm.h:  Get rid of decls for print_insn_i8086,
-	print_insn_sparc64 and print_insn_sparclite.
-	* (INIT_DISASSEMBLE_INFO):  Split into two pieces.  One,
-	INIT_DISASSEMBLE_INFO_NO_ARCH inits everything except for endian,
-	mach, and arch.
-
-Fri Jul 12 10:19:27 1996  Stu Grossman  (grossman@critters.cygnus.com)
-
-	* dis-asm.h (print_insn_i8086):  Declare.
-
-Wed Jul  3 16:02:39 1996  Stu Grossman  (grossman@critters.cygnus.com)
-
-	* dis-asm.h (print_insn_sparclite):  Declare.
-
-Tue Jun 18 16:02:46 1996  Jeffrey A. Law  <law@rtl.cygnus.com>
-
-	* dis-asm.h (print_insn_h8300s): Declare.
-
-Tue Jun 18 15:11:33 1996  Klaus Kaempf  <kkaempf@progis.de>
-
-	* fopen-vms.h: New file.
-
-Tue Jun  4 18:58:16 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* bfdlink.h (struct bfd_link_info): Add notice_all field.
-
-Fri Apr 26 10:33:12 1996  Doug Evans  <dje@canuck.cygnus.com>
-
-	* demangle.h (#ifdef IN_GCC): #include "gansidecl.h".
-	(PROTO,PTR,const): Delete.
-
-Mon Apr 22 17:27:42 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* bfdlink.h (struct bfd_link_info): Add traditional_format field.
-
-Mon Apr 15 15:16:56 1996  Doug Evans  <dje@canuck.cygnus.com>
-
-	* libiberty.h (choose_temp_base): Add prototype.
-
-Tue Mar 12 17:29:46 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* bfdlink.h (bfd_wrapped_link_hash_lookup): Declare.
-	(struct bfd_link_info): Add wrap_hash field.
-
-Wed Feb 14 16:49:17 1996  Martin Anantharaman  <martin@mail.imech.uni-duisburg.de>
-
-	* ieee.h (ieee_record_enum_type): Define
-	ieee_external_reference_info_enum.
-
-Fri Feb  2 17:09:25 1996  Doug Evans  <dje@charmed.cygnus.com>
-
-	* dis-asm.h (DISASM_RAW_INSN): Delete.
-
-Tue Jan 23 09:21:47 1996  Doug Evans  <dje@charmed.cygnus.com>
-
-	* dis-asm.h (INIT_DISASSEMBLE_INFO): Set endian to BFD_ENDIAN_UNKNOWN.
-	New argument FPRINTF_FUNC.
-
-Mon Jan 22 16:37:59 1996  Doug Evans  <dje@charmed.cygnus.com>
-
-	* dis-asm.h (disassemble_info): New members arch, mach, endian.
-	(INIT_DISASSEMBLE_INFO): Initialize them.
-	(DISASM_RAW_INSN{,FLAG}): Define.
-
-Thu Jan 18 11:32:38 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* demangle.h (cplus_demangle_opname): Change opname parameter to
-	const char *.
-	(cplus_mangle_opname): Change return type and opname parameter to
-	const char *.
-
-Fri Jan  5 00:01:22 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* ieee.h (enum ieee_record): Add ieee_asn_record_enum,
-	ieee_at_record_enum, ieee_ty_record_enum, ieee_atn_record_enum,
-	ieee_bb_record_enum, and ieee_be_record_enum.
-
-Wed Jan  3 13:12:09 1996  Fred Fish  <fnf@cygnus.com>
-
-	* obstack.h: Update copyright to 1996.
-	(_obstack_memory_used): Declare.
-	(obstack_memory_used): Define macro.
-
-Thu Dec 28 11:42:12 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* libiberty.h (xstrdup): Declare.
-
-Thu Dec 21 14:47:17 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* wait.h: Protect all macros with #ifndef.
-
-Tue Oct 24 21:45:40 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* bfdlink.h (struct bfd_link_info): Add static_link field.
-
-Tue Sep 12 16:28:04 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* bfdlink.h (struct bfd_link_callbacks): Add symbol parameter to
-	warning callback.
-
-Fri Sep  1 13:11:51 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* bfdlink.h (struct bfd_link_callbacks): Change warning callback
-	to take BFD, section, and address arguments.
-
-Thu Aug 31 16:45:12 1995  steve chamberlain  <sac@slash.cygnus.com>
-
-	* bfdlink.h (struct bfd_link_info): Remove PE stuff.
-
-Tue Aug 22 03:18:23 1995  Ken Raeburn  <raeburn@kr-laptop.cygnus.com>
-
-	* libiberty.h: Declare xstrerror.  From Pat Rankin.
-
-Mon Aug 21 18:11:36 1995  steve chamberlain  <sac@slash.cygnus.com>
-
-	* bfdlink.h (struct bfd_link_info): Remove PE stuff.
-
-Wed Aug  2 08:14:12 1995  Doug Evans  <dje@canuck.cygnus.com>
-
-	* dis-asm.h (print_insn_sparc64): Declare.
-
-Mon Jul 10 13:26:49 1995  Eric Youngdale  <eric@aib.com>
-
-	* bfdlink.h (struct bfd_link_info): Add new field symbolic.
-
-Sun Jul  2 17:48:40 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* bfdlink.h (struct bfd_link_info): Change type of base_file to
-	PTR.
-
-Thu Jun 29 00:02:45 1995  Steve Chamberlain  <sac@slash.cygnus.com>
-
-	* bfdlink.h (struct bfd_link_info): Added base_file member.
-
-Tue Jun 20 16:40:04 1995  Steve Chamberlain  <sac@slash.cygnus.com>
-
-	* ansidecl.h: win32s is ANSI enough.
-
-Thu May 18 04:25:50 1995  Ken Raeburn  <raeburn@kr-laptop.cygnus.com>
-
-	Wed May 10 14:28:16 1995 Richard Earnshaw (rearnsha@armltd.co.uk)
-
-	* dis-asm.h (print_insn_arm): Delete declaration.
-	(print_insn_{little,big}_arm): New declarations.
-
-	* floatformat.h (floatformat_arm_ext): Declare.
-
-Sat May 13 10:14:08 1995  Steve Chamberlain  <sac@slash.cygnus.com>
-
-	* bfdlink.h (subsytem, stack_heap_parameters): New.
-
-Thu May  4 14:36:42 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
-
-	* demangle.h: Don't include ansidecl.h if IN_GCC.
-
-Tue Feb 21 00:37:28 1995  Jeff Law  (law@snake.cs.utah.edu)
-
-	* hp-symtab.h: Don't use bitfield enumerations, the HP C compiler
-	does not handle them correctly.
-
-Thu Feb  9 14:20:27 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* libiberty.h (basename): Don't declare parameter type; some
-	systems have this in their header files.
-
-Wed Feb  8 17:35:38 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* bfdlink.h (struct bfd_link_hash_entry): Change format of common
-	symbol information, to remove restrictions on maximum size and
-	alignment power, by using a pointer to a structure instead.
-
-Mon Feb  6 14:55:32 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* bfdlink.h (enum bfd_link_hash_type): Rename bfd_link_hash_weak
-	to bfd_link_hash_undefweak.  Add bfd_link_hash_defweak.
-
-Mon Jan 16 21:00:23 1995  Stan Shebs  <shebs@andros.cygnus.com>
-
-	* dis-asm.h (GDB_INIT_DISASSEMBLE_INFO, etc): Remove all
-	GDB-specific definitions.
-
-Sun Jan 15 18:39:35 1995  Steve Chamberlain  <sac@splat>
-
-	* dis-asm.h (print_insn_w65): Declare.
-
-Thu Jan 12 17:51:17 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>
-
-	* libiberty.h (hex_p): Fix sense of test.
-
-Wed Jan 11 22:36:40 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>
-
-	* libiberty.h (_hex_array_size, _hex_bad, _hex_value, hex_init,
-	hex_p, hex_value): New macros and declarations, for hex.c.
-
-Fri Jan  6 17:44:14 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>
-
-	* dis-asm.h: Make idempotent.
-
-Wed Dec 14 13:08:43 1994  Stan Shebs  <shebs@andros.cygnus.com>
-
-	* progress.h: New file, empty definitions for progress macros.
-
-Fri Nov 25 00:14:05 1994  Jeff Law  (law@snake.cs.utah.edu)
-
-	* hp-symtab.h: New file describing the debug symbols emitted
-	by the HP C compilers.
-
-Fri Nov 11 15:48:37 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
-
-	* bfdlink.h (struct bfd_link_hash_entry): Change u.c.size from 24
-	to 26 bits, and change u.c.alignment_power from 8 to 6 bits.  6
-	bit in the alignment power is enough for a 64 bit address space.
-
-Mon Oct 31 13:02:51 1994  Stan Shebs  (shebs@andros.cygnus.com)
-
-	* demangle.h (cplus_mangle_opname): Declare.
-
-Tue Oct 25 11:38:02 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
-
-	* bfdlink.h (struct bfd_link_callbacks): Fix comments for
-	multiple_common field.
-
-Sun Sep 04 17:58:10 1994  Richard Earnshaw (rwe@pegasus.esprit.ec.org)
-
-	* dis-asm.h: Add support for the ARM.
-
-Wed Aug 10 12:51:41 1994  Doug Evans  (dje@canuck.cygnus.com)
-
-	* libiberty.h (strsignal): Document its existence even if we
-	can't declare it.
-
-Tue Aug  2 14:40:03 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* os9k.h: Remove u_int16, u_int32, and owner_id typedefs and
-	expand their uses.  Those names conflict with Mach headers.
-
-Fri Jul 22 14:17:12 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
-
-	* bfdlink.h (struct bfd_link_hash_entry): Change u.c.size into a
-	bitfield.  Add field u.c.alignment_power.
-
-Sun Jul 10 00:26:39 1994  Ian Dall  (dall@hfrd.dsto.gov.au)
-
-	* dis-asm.h: Add print_insn_ns32k declaration.
-
-Mon Jun 20 17:13:29 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
-
-	* bfdlink.h (bfd_link_hash_table): Make creator a const pointer.
-
-Sat Jun 18 16:09:32 1994  Stan Shebs  (shebs@andros.cygnus.com)
-
-	* demangle.h (cplus_demangle_opname): Declare.
-
-Thu Jun 16 15:19:03 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* bfdlink.h (struct bfd_link_info): Add new field shared.
-
-Mon Jun  6 14:39:44 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* bfdlink.h (struct bfd_link_hash_entry): Remove written field:
-	not needed for all backends.
-
-Thu Apr 28 19:06:50 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
-
-	* dis-asm.h (disassembler): Declare.
-
-Fri Apr  1 00:38:17 1994  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
-
-	* obstack.h: Delete use of IN_GCC to control whether
-	stddef.h or gstddef.h is included.
-
-Tue Mar 22 13:06:02 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* bfdlink.h (enum bfd_link_order_type): Add bfd_data_link_order.
-	(struct bfd_link_order): Add data field to union.
-
-Mon Mar 21 18:45:26 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* bfdlink.h (struct bfd_link_callbacks): Change bitsize argument
-	to add_to_set to reloc.  Remove bitsize argument from constructor.
-	Comment that reloc_overflow, reloc_dangerous and unattached_reloc
-	must handle NULL pointers for reloc location.
-	(enum bfd_link_order_type): Add bfd_section_reloc_link_order and
-	bfd_symbol_reloc_link_order.
-	(struct bfd_link_order): Add reloc field to union.
-	(struct bfd_link_order_reloc): Define.
-
-Mon Mar 14 12:27:50 1994  Ian Lance Taylor  (ian@cygnus.com)
-
-	* ieee-float.h: Removed; no longer used.
-
-Tue Mar  1 18:10:49 1994  Kung Hsu  (kung@mexican.cygnus.com)
-
-	* os9k.h: os9000 target specific header file, the header of the
-	object file is used now.
-
-Sun Feb 27 21:52:26 1994  Jim Kingdon  (kingdon@deneb.cygnus.com)
-
-	* floatformat.h: New file, intended to replace ieee-float.h.
-
-Sun Feb 20 17:15:42 1994  Ian Lance Taylor  (ian@lisa.cygnus.com)
-
-	* ansidecl.h (ANSI_PROTOTYPES): Define if using ANSI prototypes.
-
-Wed Feb 16 01:07:12 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* libiberty.h: Don't declare strsignal, to avoid conflicts with
-	Solaris system header files.
-
-Sat Feb 12 22:11:32 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
-
-	* libiberty.h (xexit): Use __volatile__ to avoid losing if
-	compiling with gcc -traditional.
-
-Thu Feb 10 14:05:41 1994  Ian Lance Taylor  (ian@cygnus.com)
-
-	* libiberty.h: New file.  Declares functions provided by
-	libiberty.
-
-Tue Feb  8 05:19:52 1994  David J. Mackenzie  (djm@thepub.cygnus.com)
-
-	Handle obstack_chunk_alloc returning NULL.  This allows
-	obstacks to be used by libraries, without forcing them
-	to call exit or longjmp.
-	* obstack.h (struct obstack): Add alloc_failed flag.
-	_obstack_begin, _obstack_begin_1): Declare to return int, not void.
-	(obstack_finish): If alloc_failed, return NULL.
-	(obstack_base, obstack_next_free, objstack_object_size):
-	If alloc_failed, return 0.
-	(obstack_grow, obstack_grow0, obstack_1grow, obstack_ptr_grow,
-	obstack_int_grow, obstack_blank): If alloc_failed, do nothing that
-	could corrupt the obstack.
-
-Mon Jan 24 15:06:05 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* bfdlink.h (struct bfd_link_callbacks): Add name, reloc_name and
-	addend argments to reloc_overflow callback.
-
-Fri Jan 21 19:13:12 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* dis-asm.h (print_insn_big_powerpc, print_insn_little_powerpc,
-	print_insn_rs6000): Declare.
-
-Thu Jan  6 14:15:55 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* bfdlink.h (struct bfd_link_callbacks): Add bitsize argument to
-	add_to_set field.  Add new callback named constructor.
-
-Thu Dec 30 10:44:06 1993  Ian Lance Taylor  (ian@rtl.cygnus.com)
-
-	* bfdlink.h: New file for new BFD linker backend routines.
-
-Mon Nov 29 10:43:57 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* dis-asm.h (enum dis_insn_tyupe): Remove non-ANSI trailing comma.
-
-Sat Oct  2 20:42:26 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* dis-asm.h: Move comment to right place.
-
-Mon Aug  9 19:03:35 1993  David J. Mackenzie  (djm@thepub.cygnus.com)
-
-	* obstack.h (obstack_chunkfun, obstack_freefun): Add defns from
-	previous version.  Are these Cygnus local changes?
-
-Fri Aug  6 17:05:47 1993  David J. Mackenzie  (djm@thepub.cygnus.com)
-
-	* getopt.h, obstack.h: Update to latest FSF version.
-
-Mon Aug  2 14:45:29 1993  John Gilmore  (gnu@cygnus.com)
-
-	* dis-asm.h:  Move enum outside of struct defn to avoid warnings.
-
-Mon Aug  2 08:49:30 1993  Stu Grossman  (grossman at cygnus.com)
-
-	* wait.h (WEXITSTATUS, WSTOPSIG): Mask down to 8 bits.  This is
-	for systems that store stuff into the high 16 bits of a wait
-	status.
-
-Fri Jul 30 18:38:02 1993  John Gilmore  (gnu@cygnus.com)
-
-	* dis-asm.h:  Add new fields insn_info_valid, branch_delay_insns,
-	data_size, insn_type, target, target2.  These are used to return
-	information from the instruction decoders back to the calling
-	program.  Add comments, make more readable.
-
-Mon Jul 19 22:14:14 1993  Fred Fish  (fnf@deneb.cygnus.com)
-
-	* nlm:  New directory containing NLM/NetWare includes.
-
-Thu Jul 15 12:10:04 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
-
-	* dis-asm.h (struct disassemble_info): New field application_data.
-
-Thu Jul 15 12:41:15 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* dis-asm.h: Added declaration of print_insn_m88k.
-
-Fri Jul  2 10:31:59 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* ansidecl.h: Use ANSI macros if __mips and _SYSTYPE_SVR4 are
-	defined, since RISC/OS cc handles ANSI declarations in SVR4 mode
-	but does not define __STDC__.
-
-Sun Jun 20 18:27:52 1993  Ken Raeburn  (raeburn@poseidon.cygnus.com)
-
-	* dis-asm.h: Don't need to include ansidecl.h any more.
-
-Fri Jun 18 03:22:10 1993  John Gilmore  (gnu@cygnus.com)
-
-	* oasys.h:  Eliminate "int8_type", "int16_type", "int32_type", and
-	their variants.  These changes are coordinated with corresponding
-	changes in ../bfd/oasys.c.
-
-Wed Jun 16 10:43:08 1993  Fred Fish  (fnf@cygnus.com)
-
-	* bfd.h:  Note that it has been removed.
-
-Tue Jun  8 12:16:03 1993  Steve Chamberlain  (sac@phydeaux.cygnus.com)
-
-	 Support for H8/300-H
-	* dis-asm.h (print_insn_h8300, print_insn_h8300h): Declare it.
-
-Tue Jun  1 07:35:03 1993  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
-
-	* ansidecl.h (const): Don't define it if it's already defined.
-
-Thu May 27 18:19:51 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
-
-	* dis-asm.h (print_insn_hppa): Declare it.
-
-	* bfd.h: Moved to bfd directory.  Small stub here includes it
-	without requiring "-I../bfd".
-
-Thu Apr 29 12:06:13 1993  Ken Raeburn  (raeburn@deneb.cygnus.com)
-
-	* bfd.h: Updated with BSF_FUNCTION.
-
-Mon Apr 26 18:15:50 1993  Steve Chamberlain  (sac@thepub.cygnus.com)
-
-	* bfd.h, dis-asm.h: Updated with Hitachi SH.
-
-Fri Apr 23 18:41:38 1993  Steve Chamberlain  (sac@thepub.cygnus.com)
-
-	* bfd.h: Updated with alpha changes.
-	* dis-asm.h: Added alpha.
-
-Fri Apr 16 17:35:30 1993  Jim Kingdon  (kingdon@cygnus.com)
-
-	* bfd.h: Update for signed bfd_*get_*.
-
-Thu Apr 15 09:24:21 1993  Jim Kingdon  (kingdon@cygnus.com)
-
-	* bfd.h: Updated for file_truncated error.
-
-Thu Apr  8 10:53:47 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* ansidecl.h: If no ANSI, define const to be empty.
-
-Thu Apr  1 09:00:10 1993  Jim Kingdon  (kingdon@cygnus.com)
-
-	* dis-asm.h: Declare a29k and i960 print_insn_*.
-
-	* dis-asm.h: Add print_address_func and related stuff.
-
-	* dis-asm.h (dis_asm_read_memory): Fix prototype.
-
-Wed Mar 31 17:40:16 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* dis-asm.h: Add print_insn_sparc.
-
-Wed Mar 31 17:51:42 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* bfd.h: Updated for BFD_RELOC_MIPS_GPREL and bfd_[gs]et_gp_size
-	prototypes.
-
-Wed Mar 31 16:35:12 1993  Stu Grossman  (grossman@cygnus.com)
-
-	* dis-asm.h: (disassemble_info):  Fix typo in prototype of
-	dis_asm_memory_error().
-
-Tue Mar 30 19:09:23 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* dis-asm.h (disassembler_info): Add read_memory_func,
-	memory_error_func, buffer, and length.
-	({GDB_,}INIT_DISASSEMBLE_INFO): Set them.
-	print_insn_*: Remove second argument.
-
-Tue Mar 30 14:48:55 1993  Steve Chamberlain  (sac@thepub.cygnus.com)
-
-	* bfd.h: Update for lma field of section.
-
-Tue Mar 30 12:22:55 1993  Jim Kingdon  (kingdon@cygnus.com)
-
-	* ansidecl.h: Use ANSI versions on AIX regardless of __STDC__.
-
-Fri Mar 19 14:49:49 1993  Steve Chamberlain  (sac@thepub.cygnus.com)
-
-	* dis-asm.h: Add h8500.
-
-Thu Mar 18 13:49:09 1993  Per Bothner  (bothner@rtl.cygnus.com)
-
-	* ieee-float.h:  Moved from ../gdb.
-	* dis-asm.h:  New file.  Interface to dis-assembler.
-
-Thu Mar 11 10:52:57 1993  Fred Fish  (fnf@cygnus.com)
-
-	* demangle.h (DMGL_NO_OPTS):  Add define (set to 0) to use
-	in place of bare 0, for readability reasons.
-
-Tue Mar  2 17:50:11 1993  Fred Fish  (fnf@cygnus.com)
-
-	* demangle.h:  Replace all references to cfront with ARM.
-
-Tue Feb 23 12:21:14 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* bfd.h: Update for new elements in JUMP_TABLE.
-
-Tue Feb 16 00:51:30 1993  John Gilmore  (gnu@cygnus.com)
-
-	* bfd.h:  Update for BFD_VERSION 2.1.
-
-Tue Jan 26 11:49:20 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* bfd.h: Update for SEC_IS_COMMON flag.
-
-Tue Jan 19 12:25:12 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* bfd.h: Update for bfd_asymbol_value bug fix.
-
-Fri Jan  8 16:37:18 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* bfd.h: Update to include ECOFF tdata and target_flavour.
-
-Sun Dec 27 17:52:30 1992  Fred Fish  (fnf@cygnus.com)
-
-	* bfd.h:  Add declaration for bfd_get_size().
-
-Tue Dec 22 22:42:46 1992  Fred Fish  (fnf@cygnus.com)
-
-	* demangle.h:  Protect file from multiple inclusions with
-	#if !defined(DEMANGLE_H)...#define DEMANGLE_H...#endif.
-
-Mon Dec 21 21:25:50 1992  Stu Grossman  (grossman at cygnus.com)
-
-	* bfd.h:  Update to get hppa_core_struct from bfd.c.
-
-Thu Dec 17 00:42:35 1992  John Gilmore  (gnu@cygnus.com)
-
-	* bfd.h:  Update to get tekhex tdata name change from bfd.
-
-Mon Nov  9 23:55:42 1992  John Gilmore  (gnu@cygnus.com)
-
-	* ansidecl.h:  Update comments to discourage use of EXFUN.
-
-Thu Nov  5 16:35:44 1992  Ian Lance Taylor  (ian@cygnus.com)
-
-	* bfd.h: Update to bring in SEC_SHARED_LIBRARY.
-
-Thu Nov  5 03:21:32 1992  John Gilmore  (gnu@cygnus.com)
-
-	* bfd.h:  Update to match EXFUN, bfd_seclet_struct, and SDEF
-	cleanups in bfd.
-
-Wed Nov  4 07:28:05 1992  Ken Raeburn  (raeburn@cygnus.com)
-
-	* bout.h (N_CALLNAME, N_BALNAME): Define as char-type values, so
-	widening works consistently.
-
-Fri Oct 16 03:17:08 1992  John Gilmore  (gnu@cygnus.com)
-
-	* getopt.h:  Update to Revised Standard FSF Version.
-
-Thu Oct 15 21:43:22 1992  K. Richard Pixley  (rich@sendai.cygnus.com)
-
-	* getopt.h (struct option): use the provided enum for has_arg.
-
-	* demangle.h (AUTO_DEMANGLING, GNU_DEMANGLING,
-	  LUCID_DEMANGLING): ultrix compilers require enums to be
-	  enums and ints to be ints and casts where they meet.  cast some
-	  enums into ints.
-
-Thu Oct 15 04:35:51 1992  John Gilmore  (gnu@cygnus.com)
-
-	* bfd.h:  Update after comment changes.
-
-Thu Oct  8 09:03:02 1992  Steve Chamberlain  (sac@thepub.cygnus.com)
-
-	* bfd.h (bfd_get_symbol_leading_char): new macro for getting in xvec
-
-Thu Sep  3 09:10:50 1992  Stu Grossman  (grossman at cygnus.com)
-
-	* bfd.h (struct reloc_howto_struct):  size needs to be signed if
-	it's going to hold negative values.
-
-Sun Aug 30 17:50:27 1992  Per Bothner  (bothner@rtl.cygnus.com)
-
-	* demangle.h:  New file, moved from ../gdb.  Made independent
-	of gdb.  Allow demangling style option to be passed as a
-	parameter to cplus_demangle(), but using the
-	current_demangling_style global as the default.
-
-Sat Aug 29 10:07:55 1992  Fred Fish  (fnf@cygnus.com)
-
-	* obstack.h:  Merge comment change from current FSF version.
-
-Thu Aug 27 12:59:29 1992  Brendan Kehoe  (brendan@cygnus.com)
-
-	* bfd.h: add we32k
-
-Tue Aug 25 15:07:47 1992  Steve Chamberlain  (sac@thepub.cygnus.com)
-
-	* bfd.h: new after Z8000 stuff
-
-Mon Aug 17 09:01:23 1992  Ken Raeburn  (raeburn@cygnus.com)
-
-	* bfd.h: Regenerated after page/segment size changes.
-
-Sat Aug  1 13:46:31 1992  Fred Fish  (fnf@cygnus.com)
-
-	* obstack.h: Merge changes from current FSF version.
-
-Mon Jul 20 21:06:23 1992  Fred Fish  (fnf@cygnus.com)
-
-	* obstack.h (area_id, flags):  Remove, replace with extra_arg,
-	use_extra_arg, and maybe_empty_object.
-	* obstack.h (OBSTACK_MAYBE_EMPTY_OBJECT, OBSTACK_MMALLOC_LIKE):
-	Remove, replaced by maybe_empty_object and use_extra_arg bitfields.
-	* obstack.h (obstack_full_begin, _obstack_begin):  Remove area_id
-	and flags arguments.
-	* obstack.h (obstack_alloc_arg):  New macro to set extra_arg.
-
-Thu Jul 16 08:12:44 1992  Steve Chamberlain  (sac@thepub.cygnus.com)
-
-	* bfd.h: new after adding BFD_IS_RELAXABLE
-
-Sat Jul  4 03:22:23 1992  John Gilmore  (gnu at cygnus.com)
-
-	* bfd.h:  Regen after adding BSF_FILE.
-
-Mon Jun 29 14:18:36 1992  Fred Fish  (fnf at sunfish)
-
-	* obstack.h:  Convert bcopy() use to memcpy(), which is more
-	portable, more standard, and can take advantage of gcc's builtin
-	functions for increased performance.
-
-Thu Jun 25 04:46:08 1992  John Gilmore  (gnu at cygnus.com)
-
-	* ansidecl.h (PARAMS):  Incorporate this macro from gdb's defs.h.
-	It's a cleaner way to forward-declare function prototypes.
-
-Fri Jun 19 15:46:32 1992  Stu Grossman  (grossman at cygnus.com)
-
-	* bfd.h:  HPPA merge.
-
-Tue Jun 16 21:30:56 1992  K. Richard Pixley  (rich@cygnus.com)
-
-	* getopt.h: gratuitous white space changes merged from other prep
-	  releases.
-
-Thu Jun 11 01:10:55 1992  John Gilmore  (gnu at cygnus.com)
-
-	* bfd.h:  Regen'd from bfd.c after removing elf_core_tdata_struct.
-
-Mon May 18 17:29:03 1992  K. Richard Pixley  (rich@cygnus.com)
-
-	* getopt.h: merged changes from make-3.62.11.
-
-	* getopt.h: merged changes from grep-1.6 (alpha).
-
-Fri May  8 14:53:32 1992  K. Richard Pixley  (rich@cygnus.com)
-
-	* getopt.h: merged changes from bison-1.18.
-
-Sat Mar 14 17:25:20 1992  Fred Fish  (fnf@cygnus.com)
-
-	* obstack.h:  Add "area_id" and "flags" members to obstack
-	structure.  Add obstack_chunkfun() and obstack_freefun() to
-	set functions explicitly.  Convert maybe_empty_object to
-	a bit in "flags".
-
-Thu Feb 27 22:01:02 1992  Per Bothner  (bothner@cygnus.com)
-
-	* wait.h (WIFSTOPPED):  Add IBM rs6000-specific version.
-
-Fri Feb 21 20:49:20 1992  John Gilmore  (gnu at cygnus.com)
-
-	* obstack.h:  Add obstack_full_begin.
-	* bfd.h, obstack.h:  Protolint.
-
-Thu Jan 30 01:18:42 1992  John Gilmore  (gnu at cygnus.com)
-
-	* bfd.h:  Remove comma from enum declaration.
-
-Mon Jan 27 22:01:13 1992  Steve Chamberlain  (sac at cygnus.com)
-
-	* bfd.h : new target entr, bfd_relax_section
-
-Wed Dec 18 17:19:44 1991  Stu Grossman  (grossman at cygnus.com)
-
-	* bfd.h, ieee.h:  ANSIfy enums.
-
-Thu Dec 12 20:59:56 1991  John Gilmore  (gnu at cygnus.com)
-
-	* fopen-same.h, fopen-bin.h:  New files for configuring
-	whether fopen distinguishes binary files or not.  For use
-	by host-dependent config files.
-
-Sat Nov 30 20:46:43 1991  Steve Chamberlain  (sac at rtl.cygnus.com)
-
-	* bfd.h: change the documentation format.
-
-	* created coff, elf and opcode and aout directories. Moved:
-
-	aout64.h	==> aout/aout64.h
-	ar.h		==> aout/ar.h
-	a.out.encap.h	==> aout/encap.h
-	a.out.host.h	==> aout/host.h
-	a.out.hp.h	==> aout/hp.h
-	a.out.sun4.h	==> aout/sun4.h
-	ranlib.h	==> aout/ranlib.h
-	reloc.h		==> aout/reloc.h
-	stab.def	==> aout/stab.def
-	stab.gnu.h	==> aout/stab_gnu.h
-
-	coff-a29k.h	==> coff/a29k.h
-	coff-h8300.h	==> coff/h8300.h
-	coff-i386.h	==> coff/i386.h
-	coff-i960.h	==> coff/i960.h
-	internalcoff.h	==> coff/internal.h
-	coff-m68k.h	==> coff/m68k.h
-	coff-m88k.h	==> coff/m88k.h
-	coff-mips.h	==> coff/mips.h
-	coff-rs6000.h	==> coff/rs6000.h
-
-	elf-common.h	==> elf/common.h
-	dwarf.h		==> elf/dwarf.h
-	elf-external.h	==> elf/external.h
-	elf-internal.h  ==> elf/internal.h
-
-	a29k-opcode.h	==> opcode/a29k.h
-	arm-opcode.h	==> opcode/arm.h
-	h8300-opcode.h	==> opcode/h8300.h
-	i386-opcode.h	==> opcode/i386.h
-	i860-opcode.h	==> opcode/i860.h
-	i960-opcode.h	==> opcode/i960.h
-	m68k-opcode.h	==> opcode/m68k.h
-	m88k-opcode.h	==> opcode/m88k.h
-	mips-opcode.h	==> opcode/mips.h
-	np1-opcode.h	==> opcode/np1.h
-	ns32k-opcode.h	==> opcode/ns32k.h
-	pn-opcode.h	==> opcode/pn.h
-	pyr-opcode.h	==> opcode/pyr.h
-	sparc-opcode.h	==> opcode/sparc.h
-	tahoe-opcode.h	==> opcode/tahoe.h
-	vax-opcode.h	==> opcode/vax.h
-
-
-
-Wed Nov 27 10:38:31 1991  Steve Chamberlain  (sac at rtl.cygnus.com)
-
-	* internalcoff.h: (internal_scnhdr) took out #def dependency, now
-	s_nreloc and s_nlnno are always long. 	(internal_reloc): allways
-	has an offset field now.
-
-Fri Nov 22 08:12:58 1991  John Gilmore  (gnu at cygnus.com)
-
-	* coff-rs6000.h:  Lint; use unsigned chars for external fields.
-	* internalcoff.h:  Lint; cast storage classes to signed char.
-
-Thu Nov 21 21:01:05 1991  Per Bothner  (bothner at cygnus.com)
-
-	* stab.def: Remove the GNU extended type codes (e.g. N_SETT).
-	* aout64.h:  The heuristic for distinguishing between
-	sunos-style and bsd-style ZMAGIC files (wrt. where the
-	text segment starts) is moved into (the default definition of)
-	the macro N_HEADER_IN_TEXT.  This definition is only used
-	if no other definition is used - e.g. bfd/newsos3.c defines
-	N_HEADER_IN_TEXT(x) to be always 0 (as before).
-
-Thu Nov 21 11:53:03 1991  John Gilmore  (gnu at cygnus.com)
-
-	* aout64.h (N_TXTADDR, N_TXTOFF, N_TXTSIZE):  New definitions
-	that should handle all uses.  LOGICAL_ versions deleted.
-	Eliminate N_HEADER_IN_TEXT, using a_entry to determine which
-	kind of zmagic a.out file we are looking at.
-	* coff-rs6000.h:  Typo.
-
-Tue Nov 19 18:43:37 1991  Per Bothner  (bothner at cygnus.com)
-
-	(Note:  This is a revised entry, as was aout64.h.)
-	* aout64.h:  Some cleanups of N_TXTADDR and N_TXTOFF:
-	Will now work for both old- and new-style ZMAGIC files,
-	depending on N_HEADER_IN_TEXT macro.
-	Add LOGICAL_TXTADDR, LOICAL_TXTOFF and LOGICAL_TXTSIZE
-	that don't count the exec header as part
-	of the text segment, to be consistent with bfd.
-	* a.out.sun4.h:  Simplified/fixed for previous change.
-
-Mon Nov 18 00:02:06 1991  Fred Fish  (fnf at cygnus.com)
-
-	* dwarf.h:  Update to DWARF draft 5 version from gcc2.
-
-Thu Nov 14 19:44:59 1991  Per Bothner  (bothner at cygnus.com)
-
-	* stab.def:  Added defs for extended GNU symbol types,
-	such as N_SETT.  These are normally ifdef'd out (because
-	of conflicts with a.out.gnu.h), but are used by bfb_stab_name().
-
-Thu Nov 14 19:17:03 1991  Fred Fish  (fnf at cygnus.com)
-
-	* elf-common.h:  Add defines to support ELF symbol table code.
-
-Mon Nov 11 19:01:06 1991  Fred Fish  (fnf at cygnus.com)
-
-	* elf-internal.h, elf-external.h, elf-common.h:  Add support for
-	note sections, which are used in ELF core files to hold copies
-	of various /proc structures.
-
-Thu Nov  7 08:58:26 1991  Steve Chamberlain  (sac at cygnus.com)
-
-	* internalcoff.h: took out the M88 dependency in the lineno
-	struct.
-	* coff-m88k.h: defines GET_LINENO_LNNO and PUT_LINENO_LNNO to use
-	32bit linno entries.
-	* a29k-opcode.h: fixed encoding of mtacc
-
-Sun Nov  3 11:54:22 1991  Per Bothner  (bothner at cygnus.com)
-
-	* bfd.h: Updated from ../bfd/bfd-in.h (q.v).
-
-Fri Nov  1 11:13:53 1991  John Gilmore  (gnu at cygnus.com)
-
-	* internalcoff.h:  Add x_csect defines.
-
-Fri Oct 25 03:18:20 1991  John Gilmore  (gnu at cygnus.com)
-
-	* Rename COFF-related files in `coff-ARCH.h' form.
-	coff-a29k.h, coff-i386.h, coff-i960.h, coff-m68k.h, coff-m88k.h,
-	coff-mips.h, coff-rs6000.h to be exact.
-
-Thu Oct 24 22:11:11 1991  John Gilmore  (gnu at cygnus.com)
-
-	RS/6000 support, by Metin G. Ozisik, Mimi Phûông-Thåo Võ, and
-	John Gilmore.
-
-	* a.out.gnu.h:  Update slightly.
-	* bfd.h:  Add new error code, fix doc, add bfd_arch_rs6000.
-	* internalcoff.h:  Add more F_ codes for filehdr.  Add
-	rs/6000-dependent fields to aouthdr.  Add storage classes
-	to syments.  Add 6000-specific auxent.  Add r_size in reloc.
-	* rs6000coff.c:  New file.
-
-Thu Oct 24 04:13:20 1991  Fred Fish  (fnf at cygnus.com)
-
-	* dwarf.h: New file for dwarf support.  Copied from gcc2
-	distribution.
-
-Wed Oct 16 13:31:45 1991  John Gilmore  (gnu at cygnus.com)
-
-	* aout64.h:  Remove PAGE_SIZE defines; they are target-dependent.
-	Add N_FN_SEQ for N_FN symbol type used on Sequent machines.
-	* stab.def:  Include N_FN_SEQ in table.
-	* bout.h:  External formats of structures use unsigned chars.
-
-Fri Oct 11 12:40:43 1991  Steve Chamberlain  (steve at cygnus.com)
-
-	* bfd.h:upgrade from bfd.c
-	* internalcoff.h: add n_name, n_zeroes and n_offset macros
-	* amdcoff.h: Define OMAGIC and AOUTHDRSZ.
-
-Fri Oct 11 10:58:06 1991  Per Bothner  (bothner at cygnus.com)
-
-	* a.out.host.h: Change SEGMENT_SIZE to 0x1000 for Sony.
-	* bfd.h (align_power): Add (actually move) comment.
-
-Tue Oct  8 15:29:32 1991  Per Bothner  (bothner at cygnus.com)
-
-	* sys/h-rtbsd.h: Define MISSING_VFPRINT (for binutils/bucomm.c).
-
-Sun Oct  6 19:24:39 1991  John Gilmore  (gnu at cygnus.com)
-
-	* aout64.h:  Move struct internal_exec to ../bfd/libaout.h so
-	it can be shared by all `a.out-family' code.  Rename
-	EXTERNAL_LIST_SIZE to EXTERNAL_NLIST_SIZE.  Use basic types
-	for nlist members, and make strx integral rather than pointer.
-	More commentary on n_type values.
-	* bout.h:  Provide a struct external_exec rather than an
-	internal_exec.
-	* m68kcoff.h:  Remove `tagentries' which snuck in from the i960
-	COFF port.
-
-Fri Oct  4 01:25:59 1991  John Gilmore  (gnu at cygnus.com)
-
-	* h8300-opcode.h:  Remove `_enum' from the typedef for an enum.
-	* bfd.h:  Update to match bfd changes.
-
-	* sys/h-i386mach.h, sysdep.h:  Add 386 Mach host support.
-
-Tue Oct  1 04:58:42 1991  John Gilmore  (gnu at cygnus.com)
-
-	* bfd.h, elf-common.h, elf-external.h, elf-internal.h:
-	Add preliminary ELF support, sufficient for GDB, from Fred Fish.
-	* sysdep.h, sys/h-amix.h:  Support Amiga SVR4.
-
-	* sys/h-vaxult.h:  Make it work.  (David Taylor <taylor@think.com>)
-	* a.out.vax.h:  Remove unused and confusing file.
-
-Mon Sep 30 12:52:35 1991  Per Bothner  (bothner at cygnus.com)
-
-	* sysdep.h: Define NEWSOS3_SYS, and use it.
-
-Fri Sep 20 13:38:21 1991  John Gilmore  (gnu at cygnus.com)
-
-	* a.out.gnu.h (N_FN):  Its value *really is* 0x1F.
-	Fix it, and add comments warning about or-ing N_EXT with it
-	and/or N_WARNING.
-	* aout64.h (N_FN):  Fix value, add comments about N_EXT.
-	* stab.def (table at end):  Update to show all the type
-	values <0x20, including low order bits.  Move N_FN to
-	its rightful place.
-
-Tue Sep 17 17:41:37 1991  Stu Grossman  (grossman at cygnus.com)
-
-	* sys/h-irix3.h:  sgi/irix support.
-
-Tue Sep 17 07:52:59 1991  John Gilmore  (gnu at cygint.cygnus.com)
-
-	* stab.def (N_DEFD):  Add GNU Modula-2 debug stab, from Andrew
-	Beers.
-
-Thu Sep 12 14:12:59 1991  John Gilmore  (gnu at cygint.cygnus.com)
-
-	* internalcoff.h (SYMNMLEN, FILNMLEN, DIMNUM):  Define these
-	for internalcoff, separately from the various external coff's.
-	* amdcoff.h, bcs88kcoff.h, i386coff.h, intel-coff.h, m68kcoff.h,
-	m88k-bcs.h: Prefix SYMNMLEN, FILNMLEN, and DIMNUM with E_'s for
-	the external struct definitions.
-	* ecoff.h: Remove these #define's, kludge no longer needed.
-
-	* sys/h-ultra3.h:  Add new Ultracomputer host.
-	* sysdep.h:  Add ULTRA3_SYM1_SYS and use it.
-
-Tue Sep 10 10:11:46 1991  John Gilmore  (gnu at cygint.cygnus.com)
-
-	* i386coff.h (LINESZ):  Always 6, not based on sizeof().
-	(Fix from Peter Schauer <pes@regent.e-technik.tu-muenchen.de>.)
-
-Wed Sep  4 08:58:37 1991  John Gilmore  (gnu at cygint.cygnus.com)
-
-	* a.out.gnu.h, aout64.h:  Add N_WARNING.  Change N_FN to 0x0E,
-	to match SunOS and BSD.  Add N_COMM as 0x12 for SunOS shared lib
-	support.
-	* stab.def:  Add N_COMM to table, fix overlap comment.
-
-Tue Sep  3 06:29:20 1991  John Gilmore  (gnu at cygint.cygnus.com)
-
-	Merge with latest FSF versions of these files.
-
-	* stab.gnu.h:  Add LAST_UNUSED_STAB_CODE.
-	* stab.def:  Update to GPL2.  Move N_WARNING out, since not a
-	debug symbol.  Change comments, and reorder table to numeric
-	order.  Update final table comment.
-	(N_DSLINE, N_BSLINE):  Renumber from 0x66 and 0x68, to 0x46 and 0x48.
-
-	* obstack.h:  GPL2.  Merge.
-
-Fri Aug 23 01:54:23 1991  John Gilmore  (gnu at cygint.cygnus.com)
-
-	* a.out.gnu.h, a.out.sun4.h:  Make SEGMENT_SIZE able to depend
-	on the particular a.out being examined.
-	* a.out.sun4.h:  Define segment sizes for Sun-3's and Sun-4's.
-	* FIXME:  a.out.gnu.h is almost obsolete.
-	* FIXME:  a.out.sun4.h should be renamed a.out.sun.h now.
-
-Wed Aug 21 20:32:13 1991  John Gilmore  (gnu at cygint.cygnus.com)
-
-	* Start a ChangeLog for the includes directory.
-
-	* a.out.gnu.h (N_FN):  Fix value -- was 15, should be 0x1E.
-	* stab.def:  Update allocation table in comments at end,
-	to reflect reality as I know it.
-
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/include/MAINTAINERS b/include/MAINTAINERS
deleted file mode 100644
index d59a3bd..0000000
--- a/include/MAINTAINERS
+++ /dev/null
@@ -1 +0,0 @@
-See ../binutils/MAINTAINERS
diff --git a/include/alloca-conf.h b/include/alloca-conf.h
deleted file mode 100644
index 9c3eea3..0000000
--- a/include/alloca-conf.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#include "config.h"
-
-#if defined(__GNUC__) && !defined(C_ALLOCA)
-# ifndef alloca
-#  define alloca __builtin_alloca
-# endif
-#else /* ! defined (__GNUC__) */
-#  ifdef _AIX
- #pragma alloca
-#  else
-#  if defined(HAVE_ALLOCA_H) && !defined(C_ALLOCA)
-#   include <alloca.h>
-#  else /* ! defined (HAVE_ALLOCA_H) */
-#   ifdef __STDC__
-extern PTR alloca (size_t);
-#   else /* ! defined (__STDC__) */
-extern PTR alloca ();
-#   endif /* ! defined (__STDC__) */
-#  endif /* ! defined (HAVE_ALLOCA_H) */
-#  ifdef _WIN32
-#   include <malloc.h>
-#  endif
-# endif /* ! defined (_AIX) */
-#endif /* ! defined (__GNUC__) */
diff --git a/include/ansidecl.h b/include/ansidecl.h
deleted file mode 100644
index a1a765d..0000000
--- a/include/ansidecl.h
+++ /dev/null
@@ -1,371 +0,0 @@
-/* ANSI and traditional C compatability macros
-   Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
-   Free Software Foundation, Inc.
-   This file is part of the GNU C 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* ANSI and traditional C compatibility macros
-
-   ANSI C is assumed if __STDC__ is #defined.
-
-   Macro		ANSI C definition	Traditional C definition
-   -----		---- - ----------	----------- - ----------
-   ANSI_PROTOTYPES	1			not defined
-   PTR			`void *'		`char *'
-   PTRCONST		`void *const'		`char *'
-   LONG_DOUBLE		`long double'		`double'
-   const		not defined		`'
-   volatile		not defined		`'
-   signed		not defined		`'
-   VA_START(ap, var)	va_start(ap, var)	va_start(ap)
-
-   Note that it is safe to write "void foo();" indicating a function
-   with no return value, in all K+R compilers we have been able to test.
-
-   For declaring functions with prototypes, we also provide these:
-
-   PARAMS ((prototype))
-   -- for functions which take a fixed number of arguments.  Use this
-   when declaring the function.  When defining the function, write a
-   K+R style argument list.  For example:
-
-	char *strcpy PARAMS ((char *dest, char *source));
-	...
-	char *
-	strcpy (dest, source)
-	     char *dest;
-	     char *source;
-	{ ... }
-
-
-   VPARAMS ((prototype, ...))
-   -- for functions which take a variable number of arguments.  Use
-   PARAMS to declare the function, VPARAMS to define it.  For example:
-
-	int printf PARAMS ((const char *format, ...));
-	...
-	int
-	printf VPARAMS ((const char *format, ...))
-	{
-	   ...
-	}
-
-   For writing functions which take variable numbers of arguments, we
-   also provide the VA_OPEN, VA_CLOSE, and VA_FIXEDARG macros.  These
-   hide the differences between K+R <varargs.h> and C89 <stdarg.h> more
-   thoroughly than the simple VA_START() macro mentioned above.
-
-   VA_OPEN and VA_CLOSE are used *instead of* va_start and va_end.
-   Immediately after VA_OPEN, put a sequence of VA_FIXEDARG calls
-   corresponding to the list of fixed arguments.  Then use va_arg
-   normally to get the variable arguments, or pass your va_list object
-   around.  You do not declare the va_list yourself; VA_OPEN does it
-   for you.
-
-   Here is a complete example:
-
-	int
-	printf VPARAMS ((const char *format, ...))
-	{
-	   int result;
-
-	   VA_OPEN (ap, format);
-	   VA_FIXEDARG (ap, const char *, format);
-
-	   result = vfprintf (stdout, format, ap);
-	   VA_CLOSE (ap);
-
-	   return result;
-	}
-
-
-   You can declare variables either before or after the VA_OPEN,
-   VA_FIXEDARG sequence.  Also, VA_OPEN and VA_CLOSE are the beginning
-   and end of a block.  They must appear at the same nesting level,
-   and any variables declared after VA_OPEN go out of scope at
-   VA_CLOSE.  Unfortunately, with a K+R compiler, that includes the
-   argument list.  You can have multiple instances of VA_OPEN/VA_CLOSE
-   pairs in a single function in case you need to traverse the
-   argument list more than once.
-
-   For ease of writing code which uses GCC extensions but needs to be
-   portable to other compilers, we provide the GCC_VERSION macro that
-   simplifies testing __GNUC__ and __GNUC_MINOR__ together, and various
-   wrappers around __attribute__.  Also, __extension__ will be #defined
-   to nothing if it doesn't work.  See below.
-
-   This header also defines a lot of obsolete macros:
-   CONST, VOLATILE, SIGNED, PROTO, EXFUN, DEFUN, DEFUN_VOID,
-   AND, DOTS, NOARGS.  Don't use them.  */
-
-#ifndef	_ANSIDECL_H
-#define _ANSIDECL_H	1
-
-/* Every source file includes this file,
-   so they will all get the switch for lint.  */
-/* LINTLIBRARY */
-
-/* Using MACRO(x,y) in cpp #if conditionals does not work with some
-   older preprocessors.  Thus we can't define something like this:
-
-#define HAVE_GCC_VERSION(MAJOR, MINOR) \
-  (__GNUC__ > (MAJOR) || (__GNUC__ == (MAJOR) && __GNUC_MINOR__ >= (MINOR)))
-
-and then test "#if HAVE_GCC_VERSION(2,7)".
-
-So instead we use the macro below and test it against specific values.  */
-
-/* This macro simplifies testing whether we are using gcc, and if it
-   is of a particular minimum version. (Both major & minor numbers are
-   significant.)  This macro will evaluate to 0 if we are not using
-   gcc at all.  */
-#ifndef GCC_VERSION
-#define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
-#endif /* GCC_VERSION */
-
-#if defined (__STDC__) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(_WIN32) || (defined(__alpha) && defined(__cplusplus))
-/* All known AIX compilers implement these things (but don't always
-   define __STDC__).  The RISC/OS MIPS compiler defines these things
-   in SVR4 mode, but does not define __STDC__.  */
-/* eraxxon@alumni.rice.edu: The Compaq C++ compiler, unlike many other
-   C++ compilers, does not define __STDC__, though it acts as if this
-   was so. (Verified versions: 5.7, 6.2, 6.3, 6.5) */
-
-#define ANSI_PROTOTYPES	1
-#define PTR		void *
-#define PTRCONST	void *const
-#define LONG_DOUBLE	long double
-
-/* PARAMS is often defined elsewhere (e.g. by libintl.h), so wrap it in
-   a #ifndef.  */
-#ifndef PARAMS
-#define PARAMS(ARGS)		ARGS
-#endif
-
-#define VPARAMS(ARGS)		ARGS
-#define VA_START(VA_LIST, VAR)	va_start(VA_LIST, VAR)
-
-/* variadic function helper macros */
-/* "struct Qdmy" swallows the semicolon after VA_OPEN/VA_FIXEDARG's
-   use without inhibiting further decls and without declaring an
-   actual variable.  */
-#define VA_OPEN(AP, VAR)	{ va_list AP; va_start(AP, VAR); { struct Qdmy
-#define VA_CLOSE(AP)		} va_end(AP); }
-#define VA_FIXEDARG(AP, T, N)	struct Qdmy
- 
-#undef const
-#undef volatile
-#undef signed
-
-/* inline requires special treatment; it's in C99, and GCC >=2.7 supports
-   it too, but it's not in C89.  */
-#undef inline
-#if __STDC_VERSION__ > 199901L
-/* it's a keyword */
-#else
-# if GCC_VERSION >= 2007
-#  define inline __inline__   /* __inline__ prevents -pedantic warnings */
-# else
-#  define inline  /* nothing */
-# endif
-#endif
-
-/* These are obsolete.  Do not use.  */
-#ifndef IN_GCC
-#define CONST		const
-#define VOLATILE	volatile
-#define SIGNED		signed
-
-#define PROTO(type, name, arglist)	type name arglist
-#define EXFUN(name, proto)		name proto
-#define DEFUN(name, arglist, args)	name(args)
-#define DEFUN_VOID(name)		name(void)
-#define AND		,
-#define DOTS		, ...
-#define NOARGS		void
-#endif /* ! IN_GCC */
-
-#else	/* Not ANSI C.  */
-
-#undef  ANSI_PROTOTYPES
-#define PTR		char *
-#define PTRCONST	PTR
-#define LONG_DOUBLE	double
-
-#define PARAMS(args)		()
-#define VPARAMS(args)		(va_alist) va_dcl
-#define VA_START(va_list, var)	va_start(va_list)
-
-#define VA_OPEN(AP, VAR)		{ va_list AP; va_start(AP); { struct Qdmy
-#define VA_CLOSE(AP)			} va_end(AP); }
-#define VA_FIXEDARG(AP, TYPE, NAME)	TYPE NAME = va_arg(AP, TYPE)
-
-/* some systems define these in header files for non-ansi mode */
-#undef const
-#undef volatile
-#undef signed
-#undef inline
-#define const
-#define volatile
-#define signed
-#define inline
-
-#ifndef IN_GCC
-#define CONST
-#define VOLATILE
-#define SIGNED
-
-#define PROTO(type, name, arglist)	type name ()
-#define EXFUN(name, proto)		name()
-#define DEFUN(name, arglist, args)	name arglist args;
-#define DEFUN_VOID(name)		name()
-#define AND		;
-#define DOTS
-#define NOARGS
-#endif /* ! IN_GCC */
-
-#endif	/* ANSI C.  */
-
-/* Define macros for some gcc attributes.  This permits us to use the
-   macros freely, and know that they will come into play for the
-   version of gcc in which they are supported.  */
-
-#if (GCC_VERSION < 2007)
-# define __attribute__(x)
-#endif
-
-/* Attribute __malloc__ on functions was valid as of gcc 2.96. */
-#ifndef ATTRIBUTE_MALLOC
-# if (GCC_VERSION >= 2096)
-#  define ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
-# else
-#  define ATTRIBUTE_MALLOC
-# endif /* GNUC >= 2.96 */
-#endif /* ATTRIBUTE_MALLOC */
-
-/* Attributes on labels were valid as of gcc 2.93. */
-#ifndef ATTRIBUTE_UNUSED_LABEL
-# if (!defined (__cplusplus) && GCC_VERSION >= 2093)
-#  define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED
-# else
-#  define ATTRIBUTE_UNUSED_LABEL
-# endif /* !__cplusplus && GNUC >= 2.93 */
-#endif /* ATTRIBUTE_UNUSED_LABEL */
-
-#ifndef ATTRIBUTE_UNUSED
-#define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
-#endif /* ATTRIBUTE_UNUSED */
-
-/* Before GCC 3.4, the C++ frontend couldn't parse attributes placed after the
-   identifier name.  */
-#if ! defined(__cplusplus) || (GCC_VERSION >= 3004)
-# define ARG_UNUSED(NAME) NAME ATTRIBUTE_UNUSED
-#else /* !__cplusplus || GNUC >= 3.4 */
-# define ARG_UNUSED(NAME) NAME
-#endif /* !__cplusplus || GNUC >= 3.4 */
-
-#ifndef ATTRIBUTE_NORETURN
-#define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
-#endif /* ATTRIBUTE_NORETURN */
-
-/* Attribute `nonnull' was valid as of gcc 3.3.  */
-#ifndef ATTRIBUTE_NONNULL
-# if (GCC_VERSION >= 3003)
-#  define ATTRIBUTE_NONNULL(m) __attribute__ ((__nonnull__ (m)))
-# else
-#  define ATTRIBUTE_NONNULL(m)
-# endif /* GNUC >= 3.3 */
-#endif /* ATTRIBUTE_NONNULL */
-
-/* Attribute `pure' was valid as of gcc 3.0.  */
-#ifndef ATTRIBUTE_PURE
-# if (GCC_VERSION >= 3000)
-#  define ATTRIBUTE_PURE __attribute__ ((__pure__))
-# else
-#  define ATTRIBUTE_PURE
-# endif /* GNUC >= 3.0 */
-#endif /* ATTRIBUTE_PURE */
-
-/* Use ATTRIBUTE_PRINTF when the format specifier must not be NULL.
-   This was the case for the `printf' format attribute by itself
-   before GCC 3.3, but as of 3.3 we need to add the `nonnull'
-   attribute to retain this behavior.  */
-#ifndef ATTRIBUTE_PRINTF
-#define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) ATTRIBUTE_NONNULL(m)
-#define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2)
-#define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3)
-#define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4)
-#define ATTRIBUTE_PRINTF_4 ATTRIBUTE_PRINTF(4, 5)
-#define ATTRIBUTE_PRINTF_5 ATTRIBUTE_PRINTF(5, 6)
-#endif /* ATTRIBUTE_PRINTF */
-
-/* Use ATTRIBUTE_FPTR_PRINTF when the format attribute is to be set on
-   a function pointer.  Format attributes were allowed on function
-   pointers as of gcc 3.1.  */
-#ifndef ATTRIBUTE_FPTR_PRINTF
-# if (GCC_VERSION >= 3001)
-#  define ATTRIBUTE_FPTR_PRINTF(m, n) ATTRIBUTE_PRINTF(m, n)
-# else
-#  define ATTRIBUTE_FPTR_PRINTF(m, n)
-# endif /* GNUC >= 3.1 */
-# define ATTRIBUTE_FPTR_PRINTF_1 ATTRIBUTE_FPTR_PRINTF(1, 2)
-# define ATTRIBUTE_FPTR_PRINTF_2 ATTRIBUTE_FPTR_PRINTF(2, 3)
-# define ATTRIBUTE_FPTR_PRINTF_3 ATTRIBUTE_FPTR_PRINTF(3, 4)
-# define ATTRIBUTE_FPTR_PRINTF_4 ATTRIBUTE_FPTR_PRINTF(4, 5)
-# define ATTRIBUTE_FPTR_PRINTF_5 ATTRIBUTE_FPTR_PRINTF(5, 6)
-#endif /* ATTRIBUTE_FPTR_PRINTF */
-
-/* Use ATTRIBUTE_NULL_PRINTF when the format specifier may be NULL.  A
-   NULL format specifier was allowed as of gcc 3.3.  */
-#ifndef ATTRIBUTE_NULL_PRINTF
-# if (GCC_VERSION >= 3003)
-#  define ATTRIBUTE_NULL_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n)))
-# else
-#  define ATTRIBUTE_NULL_PRINTF(m, n)
-# endif /* GNUC >= 3.3 */
-# define ATTRIBUTE_NULL_PRINTF_1 ATTRIBUTE_NULL_PRINTF(1, 2)
-# define ATTRIBUTE_NULL_PRINTF_2 ATTRIBUTE_NULL_PRINTF(2, 3)
-# define ATTRIBUTE_NULL_PRINTF_3 ATTRIBUTE_NULL_PRINTF(3, 4)
-# define ATTRIBUTE_NULL_PRINTF_4 ATTRIBUTE_NULL_PRINTF(4, 5)
-# define ATTRIBUTE_NULL_PRINTF_5 ATTRIBUTE_NULL_PRINTF(5, 6)
-#endif /* ATTRIBUTE_NULL_PRINTF */
-
-/* Attribute `sentinel' was valid as of gcc 3.5.  */
-#ifndef ATTRIBUTE_SENTINEL
-# if (GCC_VERSION >= 3005)
-#  define ATTRIBUTE_SENTINEL __attribute__ ((__sentinel__))
-# else
-#  define ATTRIBUTE_SENTINEL
-# endif /* GNUC >= 3.5 */
-#endif /* ATTRIBUTE_SENTINEL */
-
-
-#ifndef ATTRIBUTE_ALIGNED_ALIGNOF
-# if (GCC_VERSION >= 3000)
-#  define ATTRIBUTE_ALIGNED_ALIGNOF(m) __attribute__ ((__aligned__ (__alignof__ (m))))
-# else
-#  define ATTRIBUTE_ALIGNED_ALIGNOF(m)
-# endif /* GNUC >= 3.0 */
-#endif /* ATTRIBUTE_ALIGNED_ALIGNOF */
-
-/* We use __extension__ in some places to suppress -pedantic warnings
-   about GCC extensions.  This feature didn't work properly before
-   gcc 2.8.  */
-#if GCC_VERSION < 2008
-#define __extension__
-#endif
-
-#endif	/* ansidecl.h	*/
diff --git a/include/aout/ChangeLog b/include/aout/ChangeLog
deleted file mode 100644
index e00c698..0000000
--- a/include/aout/ChangeLog
+++ /dev/null
@@ -1,219 +0,0 @@
-2005-05-10  Nick Clifton  <nickc@redhat.com>
-
-	* Update the address and phone number of the FSF organization in
-	the GPL notices in the following files:
-	adobe.h, aout64.h, ar.h, dynix3.h, encap.h, host.h, hp.h,
-	ranlib.h, reloc.h, stab.def, stab_gnu.h, sun4.h
-
-2004-01-06  Mark Kettenis  <kettenis@gnu.org>
-
-	* stab.def: Add N_PATCH to DO definition.
-
-2003-03-06  Elias Athanasopoulos  <elathan@phys.uoa.gr>
-
-	* aout64.h (BYTES_IN_WORD): Define if necessary.
-
-2001-09-18  Alan Modra  <amodra@bigpond.net.au>
-
-	* aout64.h: Formatting fixes.
-	(N_TXTADDR): Evaluate to a bfd_vma.
-	(N_DATADDR): Avoid negative unsigned warning.
-	* hp300hpux.h: Formatting fixes.
-	(N_DATADDR): Avoid negative unsigned warning.
-
-2000-04-03  Hans-Peter Nilsson  <hp@axis.com>
-
-	* aout64.h (RELOC_EXT_BITS_EXTERN_BIG): Wrap definition in #ifndef.
-	(RELOC_EXT_BITS_EXTERN_LITTLE): Ditto.
-	(RELOC_EXT_BITS_TYPE_BIG): Ditto.
-	(RELOC_EXT_BITS_TYPE_SH_BIG): Ditto.
-	(RELOC_EXT_BITS_TYPE_LITTLE): Ditto.
-	(RELOC_EXT_BITS_TYPE_SH_LITTLE): Ditto.
-
-1999-07-12  Ian Lance Taylor  <ian@zembu.com>
-
-	* aout64.h (N_SHARED_LIB): Define as 0 if TEXT_START_ADDR is
-	defined as 0.
-
-1998-06-28  Peter Schauer  <pes@regent.e-technik.tu-muenchen.de>
-
-	* stab.def:  Add N_ALIAS from SunPro F77.
-
-1996-03-11  Ian Lance Taylor  <ian@cygnus.com>
-
-	* stab.def: Use __define_stab_duplicate rather than __define_stab
-	for duplicate entries N_BROWS and N_MOD2.
-	* stab_gnu.h (__define_stab_duplicate): Define before including
-	stab.def.
-
-1995-10-27  Niklas Hallqvist  <niklas@appli.se>
-
-	* aout64.h, host.h, hp300hpux.h, sun4.h: Changed PAGE_SIZE to
-	TARGET_PAGE_SIZE.
-
-1995-09-12  Ian Lance Taylor  <ian@cygnus.com>
-
-	* sun4.h (struct internal_sun4_dynamic_link): Change all fields
-	from long to unsigned long.
-
-1995-07-12  Ken Raeburn  <raeburn@kr-pc.cygnus.com>
-
-	* sun4.h (PAGE_SIZE): Undefine before defining.
-
-1994-09-04  Richard Earnshaw (rwe@pegasus.esprit.ec.org)
-
-	* aout64.h: Only define QMAGIC if it isn't already defined.
-
-1994-06-16  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* aout64.h (BMAGIC): Define.
-
-1994-06-11  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	Add weak symbols as an extension to a.out.
-	* aout64.h (N_WEAKU, N_WEAKA, N_WEAKT, N_WEAKD, N_WEAKB): Define.
-	* stab.def: Update symbol value table.
-
-1994-06-02  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* sun4.h (EXTERNAL_SUN4_DYNAMIC_DEBUGGER_SIZE): Correct from 28 to
-	24.  Fix up ld_got comment.
-
-1994-03-30  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
-
-	* dynix3.h:  Cleanup, adapt to current bfd version.
-
-1994-02-26  Ian Lance Taylor  (ian@cygnus.com)
-
-	* aout64.h: Add casts to avoid warnings from SVR4 cc.
-
-1994-02-11  Stan Shebs  (shebs@andros.cygnus.com)
-
-	* ar.h (ARMAG, ARMAGB, ARFMAG): Change '\n' to '\012', for greater
-	portability.
-
-1994-01-21  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* sun4.h: Added information about SunOS shared libraries.
-
-1994-01-07  Jim Kingdon  (kingdon@deneb.cygnus.com)
-
-	* aout64.h (N_TXTADDR): Add comment regarding OMAGIC and NMAGIC.
-
-1993-12-25  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* aout64.h (N_DATOFF): Don't pad (revert change of 8 Jul 1993).
-
-1993-11-16  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* aout64.h: New macros ZMAGIC_DISK_BLOCK_SIZE and N_DISK_BLOCK_SIZE
-	for Linux ZMAGIC.
-	(N_TXTOFF, N_DATOFF): Use them.
-
-1993-11-04  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
-
-	* aout64.h (RELOC_STD_BITS_RELATIVE_LITTLE): Fixed value to match
-	sun3 system; used to overlap other fields.
-	(RELOC_STD_BITS_JMPTABLE_LITTLE): Likewise.
-
-1993-11-03  David J. Mackenzie  (djm@thepub.cygnus.com)
-
-	* aout64.h (RELOC_STD_BITS_BASEREL_LITTLE): Make it 0x10 (Ken's
-	suggestion) to avoid conflict with RELOC_STD_BITS_EXTERN_LITTLE.
-
-1993-10-29  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* hp300hpux.h (N_SHARED_LIB): Define to be 0.
-
-1993-09-13  John Gilmore  (gnu@cygnus.com)
-
-	* ar.h (ARMAP_TIME_OFFSET):  Add and describe.
-
-Mon Aug 23  Sean Fagan  (sef@cygnus.com)
-
-	* aout64.h [ARCH_SIZE != 64]: Allow N_BADMAG to be overridden.
-
-1993-08-16  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* stab_gnu.h: Include aout/stab.def not just stab.def.
-
-1993-07-18  Jim Kingdon  (kingdon@rtl.cygnus.com)
-
-	* dynix3.h: New, for symmetry running dynix.
-
-1993-07-08  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* aout64.h (N_BADMAG): Recognize QMAGIC.
-	N_TXTOFF, N_TXTADDR, N_TXTSIZE: Special code for QMAGIC.
-	N_DATOFF: Pad text size if we need to.
-
-1993-06-18  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* stab.def (N_ECOML): Fix comment.
-
-1993-05-31  Jim Kingdon  (kingdon@cygnus.com)
-
-	* stab.def: Remove Solaris information on N_FUN stabstring grammar;
-	I've transferred it to gdb/doc/stabs.texinfo, where it belongs.
-
-1993-05-10  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
-
-	* hp300hpux.h: Patch from Glenn Engel for linker problem and
-	compatibility fix:
-	(OMAGIC, NMAGIC): New definitions.
-	(SHAREMAGIC): Deleted.
-	(HPUX_DOT_O_MAGIC): New macro.
-	(_N_BADMAG): Adjusted.
-	(N_HEADER_IN_TEXT, N_DATADDR): New macros.
-
-1993-04-29  Ken Raeburn  (raeburn@deneb.cygnus.com)
-
-	* hp300hpux.h: New file from Glenn Engel, glenne@lsid.hp.com.
-
-1993-04-27  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
-
-	* aout64.h (struct external_exec, *MAGIC, N_BADMAG): Don't define
-	if `external_exec' is already defined as a macro.
-	(N_DATOFF, N_TRELOFF, N_DRELOFF, N_SYMOFF, N_STROFF): Don't define
-	if already defined.
-	(struct external_nlist, EXTERNAL_NLIST_SIZE): Don't define if
-	`external_nlist' is already defined as a macro.
-
-1992-08-15  John Gilmore  (gnu@cygnus.com)
-
-	* adobe.h:  Add description of a.out.adobe format.
-
-1992-07-03  John Gilmore  (gnu at cygnus.com)
-
-	* stab.def:  Update more Solaris definitions.
-	* stab_gnu.h:  Add N_SO language types, and Solaris basic float types.
-
-1992-06-14  John Gilmore  (gnu at cygnus.com)
-
-	* stab.def:  Update descriptions of Solaris-2 stabs; add N_UNDF.
-
-1992-06-11  John Gilmore  (gnu at cygnus.com)
-
-	* stab.def:  Add N_OBJ and N_OPT from Solaris-2.
-
-1992-01-30  John Gilmore  (gnu at cygnus.com)
-
-	* aout64.h: N_TXTSIZE needs some more parentheses.
-	I don't trust C precedence.
-
-1991-12-18  Per Bothner  (bothner at cygnus.com)
-
-	* aout64.h:  Move common sunos-specific test
-	to recognize shared libraries into new macro N_SHARED_LIB.
-	Use it to simplify & reformat N_TXTADDR, N_TXTOFF, N_TXTSIZE.
-
-1991-11-30  Steve Chamberlain  (sac at rtl.cygnus.com)
-
-	* aout64.h, ar.h, encap.h, host.h, hp.h, ranlib.h, reloc.h,
-	stab.def, stab_gnu.h, sun4.h: All moved from the devo/include
-	directory.
-
-
-Local Variables:
-version-control: never
-End:
diff --git a/include/aout/adobe.h b/include/aout/adobe.h
deleted file mode 100644
index 2e81240..0000000
--- a/include/aout/adobe.h
+++ /dev/null
@@ -1,313 +0,0 @@
-/* `a.out.adobe' differences from standard a.out files
-
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef __A_OUT_ADOBE_H__
-#define __A_OUT_ADOBE_H__
-
-#define	BYTES_IN_WORD	4
-
-/* Struct external_exec is the same.  */
-
-/* This is the layout on disk of the 32-bit or 64-bit exec header. */
-
-struct external_exec 
-{
-  bfd_byte e_info[4];		/* magic number and stuff		*/
-  bfd_byte e_text[BYTES_IN_WORD]; /* length of text section in bytes	*/
-  bfd_byte e_data[BYTES_IN_WORD]; /* length of data section in bytes	*/
-  bfd_byte e_bss[BYTES_IN_WORD]; /* length of bss area in bytes 		*/
-  bfd_byte e_syms[BYTES_IN_WORD]; /* length of symbol table in bytes 	*/
-  bfd_byte e_entry[BYTES_IN_WORD]; /* start address 			*/
-  bfd_byte e_trsize[BYTES_IN_WORD]; /* length of text relocation info	*/
-  bfd_byte e_drsize[BYTES_IN_WORD]; /* length of data relocation info 	*/
-};
-
-#define	EXEC_BYTES_SIZE	(4 + BYTES_IN_WORD * 7)
-
-/* Magic numbers for a.out files */
-
-#undef	ZMAGIC
-#define	ZMAGIC	0xAD0BE		/* Cute, eh?  */
-#undef	OMAGIC
-#undef	NMAGIC
-
-#define N_BADMAG(x)	  ((x).a_info != ZMAGIC)
-
-/* By default, segment size is constant.  But some machines override this
-   to be a function of the a.out header (e.g. machine type).  */
-#ifndef	N_SEGSIZE
-#define	N_SEGSIZE(x)	SEGMENT_SIZE
-#endif
-#undef N_SEGSIZE   /* FIXMEXXXX */
-
-/* Segment information for the a.out.Adobe format is specified after the
-   file header.  It contains N segment descriptors, followed by one with
-   a type of zero.  
-
-   The actual text of the segments starts at N_TXTOFF in the file,
-   regardless of how many or how few segment headers there are.  */
-
-struct external_segdesc {
-	unsigned char e_type[1];
-	unsigned char e_size[3];
-	unsigned char e_virtbase[4];
-	unsigned char e_filebase[4];
-};
-
-struct internal_segdesc {
-	unsigned int	a_type:8;	/* Segment type N_TEXT, N_DATA, 0 */
-	unsigned int 	a_size:24;	/* Segment size */
-	bfd_vma		a_virtbase;	/* Virtual address */
-	unsigned int	a_filebase;	/* Base address in object file */
-};
-
-#define N_TXTADDR(x) \
-
-/* This is documented to be at 1024, but appears to really be at 2048.
-   FIXME?!  */
-#define N_TXTOFF(x)	2048
-
-#define	N_TXTSIZE(x) ((x).a_text)
-
-#define N_DATADDR(x)
-
-#define N_BSSADDR(x)
-
-/* Offsets of the various portions of the file after the text segment.  */
-
-#define N_DATOFF(x)	( N_TXTOFF(x) + N_TXTSIZE(x) )
-#define N_TRELOFF(x)	( N_DATOFF(x) + (x).a_data )
-#define N_DRELOFF(x)	( N_TRELOFF(x) + (x).a_trsize )
-#define N_SYMOFF(x)	( N_DRELOFF(x) + (x).a_drsize )
-#define N_STROFF(x)	( N_SYMOFF(x) + (x).a_syms )
-
-/* Symbols */
-struct external_nlist {
-  bfd_byte e_strx[BYTES_IN_WORD];	/* index into string table of name */
-  bfd_byte e_type[1];			/* type of symbol */
-  bfd_byte e_other[1];			/* misc info (usually empty) */
-  bfd_byte e_desc[2];			/* description field */
-  bfd_byte e_value[BYTES_IN_WORD];	/* value of symbol */
-};
-
-#define EXTERNAL_NLIST_SIZE (BYTES_IN_WORD+4+BYTES_IN_WORD)
-
-struct internal_nlist {
-  unsigned long n_strx;			/* index into string table of name */
-  unsigned char n_type;			/* type of symbol */
-  unsigned char n_other;		/* misc info (usually empty) */
-  unsigned short n_desc;		/* description field */
-  bfd_vma n_value;			/* value of symbol */
-};
-
-/* The n_type field is the symbol type, containing:  */
-
-#define N_UNDF	0	/* Undefined symbol */
-#define N_ABS 	2	/* Absolute symbol -- defined at particular addr */
-#define N_TEXT 	4	/* Text sym -- defined at offset in text seg */
-#define N_DATA 	6	/* Data sym -- defined at offset in data seg */
-#define N_BSS 	8	/* BSS  sym -- defined at offset in zero'd seg */
-#define	N_COMM	0x12	/* Common symbol (visible after shared lib dynlink) */
-#define N_FN	0x1f	/* File name of .o file */
-#define	N_FN_SEQ 0x0C	/* N_FN from Sequent compilers (sigh) */
-/* Note: N_EXT can only be usefully OR-ed with N_UNDF, N_ABS, N_TEXT,
-   N_DATA, or N_BSS.  When the low-order bit of other types is set,
-   (e.g. N_WARNING versus N_FN), they are two different types.  */
-#define N_EXT 	1	/* External symbol (as opposed to local-to-this-file) */
-#define N_TYPE  0x1e
-#define N_STAB 	0xe0	/* If any of these bits are on, it's a debug symbol */
-
-#define N_INDR 0x0a
-
-/* The following symbols refer to set elements.
-   All the N_SET[ATDB] symbols with the same name form one set.
-   Space is allocated for the set in the text section, and each set
-   elements value is stored into one word of the space.
-   The first word of the space is the length of the set (number of elements).
-
-   The address of the set is made into an N_SETV symbol
-   whose name is the same as the name of the set.
-   This symbol acts like a N_DATA global symbol
-   in that it can satisfy undefined external references.  */
-
-/* These appear as input to LD, in a .o file.  */
-#define	N_SETA	0x14		/* Absolute set element symbol */
-#define	N_SETT	0x16		/* Text set element symbol */
-#define	N_SETD	0x18		/* Data set element symbol */
-#define	N_SETB	0x1A		/* Bss set element symbol */
-
-/* This is output from LD.  */
-#define N_SETV	0x1C		/* Pointer to set vector in data area.  */
-
-/* Warning symbol. The text gives a warning message, the next symbol
-   in the table will be undefined. When the symbol is referenced, the
-   message is printed.  */
-
-#define	N_WARNING 0x1e
-
-/* Relocations 
-
-  There	are two types of relocation flavours for a.out systems,
-  standard and extended. The standard form is used on systems where the
-  instruction has room for all the bits of an offset to the operand, whilst
-  the extended form is used when an address operand has to be split over n
-  instructions. Eg, on the 68k, each move instruction can reference
-  the target with a displacement of 16 or 32 bits. On the sparc, move
-  instructions use an offset of 14 bits, so the offset is stored in
-  the reloc field, and the data in the section is ignored.
-*/
-
-/* This structure describes a single relocation to be performed.
-   The text-relocation section of the file is a vector of these structures,
-   all of which apply to the text section.
-   Likewise, the data-relocation section applies to the data section.  */
-
-struct reloc_std_external {
-  bfd_byte r_address[BYTES_IN_WORD];	/* offset of of data to relocate */
-  bfd_byte r_index[3];	/* symbol table index of symbol 	*/
-  bfd_byte r_type[1];	/* relocation type			*/
-};
-
-#define	RELOC_STD_BITS_PCREL_BIG	0x80
-#define	RELOC_STD_BITS_PCREL_LITTLE	0x01
-
-#define	RELOC_STD_BITS_LENGTH_BIG	0x60
-#define	RELOC_STD_BITS_LENGTH_SH_BIG	5	/* To shift to units place */
-#define	RELOC_STD_BITS_LENGTH_LITTLE	0x06
-#define	RELOC_STD_BITS_LENGTH_SH_LITTLE	1
-
-#define	RELOC_STD_BITS_EXTERN_BIG	0x10
-#define	RELOC_STD_BITS_EXTERN_LITTLE	0x08
-
-#define	RELOC_STD_BITS_BASEREL_BIG	0x08
-#define	RELOC_STD_BITS_BASEREL_LITTLE	0x08
-
-#define	RELOC_STD_BITS_JMPTABLE_BIG	0x04
-#define	RELOC_STD_BITS_JMPTABLE_LITTLE	0x04
-
-#define	RELOC_STD_BITS_RELATIVE_BIG	0x02
-#define	RELOC_STD_BITS_RELATIVE_LITTLE	0x02
-
-#define	RELOC_STD_SIZE	(BYTES_IN_WORD + 3 + 1)		/* Bytes per relocation entry */
-
-struct reloc_std_internal
-{
-  bfd_vma r_address;		/* Address (within segment) to be relocated.  */
-  /* The meaning of r_symbolnum depends on r_extern.  */
-  unsigned int r_symbolnum:24;
-  /* Nonzero means value is a pc-relative offset
-     and it should be relocated for changes in its own address
-     as well as for changes in the symbol or section specified.  */
-  unsigned int r_pcrel:1;
-  /* Length (as exponent of 2) of the field to be relocated.
-     Thus, a value of 2 indicates 1<<2 bytes.  */
-  unsigned int r_length:2;
-  /* 1 => relocate with value of symbol.
-     r_symbolnum is the index of the symbol
-     in files the symbol table.
-     0 => relocate with the address of a segment.
-     r_symbolnum is N_TEXT, N_DATA, N_BSS or N_ABS
-     (the N_EXT bit may be set also, but signifies nothing).  */
-  unsigned int r_extern:1;
-  /* The next three bits are for SunOS shared libraries, and seem to
-     be undocumented.  */
-  unsigned int r_baserel:1;	/* Linkage table relative */
-  unsigned int r_jmptable:1;	/* pc-relative to jump table */
-  unsigned int r_relative:1;	/* "relative relocation" */
-  /* unused */
-  unsigned int r_pad:1;		/* Padding -- set to zero */
-};
-
-
-/* EXTENDED RELOCS  */
-
-struct reloc_ext_external {
-  bfd_byte r_address[BYTES_IN_WORD];	/* offset of of data to relocate 	*/
-  bfd_byte r_index[3];	/* symbol table index of symbol 	*/
-  bfd_byte r_type[1];	/* relocation type			*/
-  bfd_byte r_addend[BYTES_IN_WORD];	/* datum addend				*/
-};
-
-#define	RELOC_EXT_BITS_EXTERN_BIG	0x80
-#define	RELOC_EXT_BITS_EXTERN_LITTLE	0x01
-
-#define	RELOC_EXT_BITS_TYPE_BIG		0x1F
-#define	RELOC_EXT_BITS_TYPE_SH_BIG	0
-#define	RELOC_EXT_BITS_TYPE_LITTLE	0xF8
-#define	RELOC_EXT_BITS_TYPE_SH_LITTLE	3
-
-/* Bytes per relocation entry */
-#define	RELOC_EXT_SIZE	(BYTES_IN_WORD + 3 + 1 + BYTES_IN_WORD)
-
-enum reloc_type
-{
-  /* simple relocations */
-  RELOC_8,			/* data[0:7] = addend + sv 		*/
-  RELOC_16,			/* data[0:15] = addend + sv 		*/
-  RELOC_32,			/* data[0:31] = addend + sv 		*/
-  /* pc-rel displacement */
-  RELOC_DISP8,			/* data[0:7] = addend - pc + sv 	*/
-  RELOC_DISP16,			/* data[0:15] = addend - pc + sv 	*/
-  RELOC_DISP32,			/* data[0:31] = addend - pc + sv 	*/
-  /* Special */
-  RELOC_WDISP30,		/* data[0:29] = (addend + sv - pc)>>2 	*/
-  RELOC_WDISP22,		/* data[0:21] = (addend + sv - pc)>>2 	*/
-  RELOC_HI22,			/* data[0:21] = (addend + sv)>>10 	*/
-  RELOC_22,			/* data[0:21] = (addend + sv) 		*/
-  RELOC_13,			/* data[0:12] = (addend + sv)		*/
-  RELOC_LO10,			/* data[0:9] = (addend + sv)		*/
-  RELOC_SFA_BASE,		
-  RELOC_SFA_OFF13,
-  /* P.I.C. (base-relative) */
-  RELOC_BASE10,  		/* Not sure - maybe we can do this the */
-  RELOC_BASE13,			/* right way now */
-  RELOC_BASE22,
-  /* for some sort of pc-rel P.I.C. (?) */
-  RELOC_PC10,
-  RELOC_PC22,
-  /* P.I.C. jump table */
-  RELOC_JMP_TBL,
-  /* reputedly for shared libraries somehow */
-  RELOC_SEGOFF16,
-  RELOC_GLOB_DAT,
-  RELOC_JMP_SLOT,
-  RELOC_RELATIVE,
-
-  RELOC_11,	
-  RELOC_WDISP2_14,
-  RELOC_WDISP19,
-  RELOC_HHI22,			/* data[0:21] = (addend + sv) >> 42     */
-  RELOC_HLO10,			/* data[0:9] = (addend + sv) >> 32      */
-  
-  /* 29K relocation types */
-  RELOC_JUMPTARG,
-  RELOC_CONST,
-  RELOC_CONSTH,
-  
-  NO_RELOC
-  };
-
-
-struct reloc_internal {
-  bfd_vma r_address;		/* offset of of data to relocate 	*/
-  long	r_index;		/* symbol table index of symbol 	*/
-  enum reloc_type r_type;	/* relocation type			*/
-  bfd_vma r_addend;		/* datum addend				*/
-};
-
-#endif				/* __A_OUT_ADOBE_H__ */
diff --git a/include/aout/aout64.h b/include/aout/aout64.h
deleted file mode 100644
index 2e289b3..0000000
--- a/include/aout/aout64.h
+++ /dev/null
@@ -1,519 +0,0 @@
-/* `a.out' object-file definitions, including extensions to 64-bit fields
-
-   Copyright 1999, 2000, 2001, 2003 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef __A_OUT_64_H__
-#define __A_OUT_64_H__
-
-#ifndef BYTES_IN_WORD
-#define BYTES_IN_WORD 4
-#endif
-
-/* This is the layout on disk of the 32-bit or 64-bit exec header.  */
-
-#ifndef external_exec
-struct external_exec 
-{
-  bfd_byte e_info[4];		    /* Magic number and stuff.  */
-  bfd_byte e_text[BYTES_IN_WORD];   /* Length of text section in bytes.  */
-  bfd_byte e_data[BYTES_IN_WORD];   /* Length of data section in bytes.  */
-  bfd_byte e_bss[BYTES_IN_WORD];    /* Length of bss area in bytes.  */
-  bfd_byte e_syms[BYTES_IN_WORD];   /* Length of symbol table in bytes.  */
-  bfd_byte e_entry[BYTES_IN_WORD];  /* Start address.  */
-  bfd_byte e_trsize[BYTES_IN_WORD]; /* Length of text relocation info.  */
-  bfd_byte e_drsize[BYTES_IN_WORD]; /* Length of data relocation info.  */
-};
-
-#define	EXEC_BYTES_SIZE	(4 + BYTES_IN_WORD * 7)
-
-/* Magic numbers for a.out files.  */
-
-#if ARCH_SIZE==64
-#define OMAGIC 0x1001		/* Code indicating object file.  */
-#define ZMAGIC 0x1002		/* Code indicating demand-paged executable.  */
-#define NMAGIC 0x1003		/* Code indicating pure executable.  */
-
-/* There is no 64-bit QMAGIC as far as I know.  */
-
-#define N_BADMAG(x)	  (N_MAGIC(x) != OMAGIC		\
-			&& N_MAGIC(x) != NMAGIC		\
-  			&& N_MAGIC(x) != ZMAGIC)
-#else
-#define OMAGIC 0407		/* Object file or impure executable.  */
-#define NMAGIC 0410		/* Code indicating pure executable.  */
-#define ZMAGIC 0413		/* Code indicating demand-paged executable.  */
-#define BMAGIC 0415		/* Used by a b.out object.  */
-
-/* This indicates a demand-paged executable with the header in the text.
-   It is used by 386BSD (and variants) and Linux, at least.  */
-#ifndef QMAGIC
-#define QMAGIC 0314
-#endif
-# ifndef N_BADMAG
-#  define N_BADMAG(x)	  (N_MAGIC(x) != OMAGIC		\
-			&& N_MAGIC(x) != NMAGIC		\
-  			&& N_MAGIC(x) != ZMAGIC \
-		        && N_MAGIC(x) != QMAGIC)
-# endif /* N_BADMAG */
-#endif
-
-#endif
-
-#ifdef QMAGIC
-#define N_IS_QMAGIC(x) (N_MAGIC (x) == QMAGIC)
-#else
-#define N_IS_QMAGIC(x) (0)
-#endif
-
-/* The difference between TARGET_PAGE_SIZE and N_SEGSIZE is that TARGET_PAGE_SIZE is
-   the finest granularity at which you can page something, thus it
-   controls the padding (if any) before the text segment of a ZMAGIC
-   file.  N_SEGSIZE is the resolution at which things can be marked as
-   read-only versus read/write, so it controls the padding between the
-   text segment and the data segment (in memory; on disk the padding
-   between them is TARGET_PAGE_SIZE).  TARGET_PAGE_SIZE and N_SEGSIZE are the same
-   for most machines, but different for sun3.  */
-
-/* By default, segment size is constant.  But some machines override this
-   to be a function of the a.out header (e.g. machine type).  */
-
-#ifndef	N_SEGSIZE
-#define	N_SEGSIZE(x)	SEGMENT_SIZE
-#endif
-
-/* Virtual memory address of the text section.
-   This is getting very complicated.  A good reason to discard a.out format
-   for something that specifies these fields explicitly.  But til then...
-
-   * OMAGIC and NMAGIC files:
-       (object files: text for "relocatable addr 0" right after the header)
-       start at 0, offset is EXEC_BYTES_SIZE, size as stated.
-   * The text address, offset, and size of ZMAGIC files depend
-     on the entry point of the file:
-     * entry point below TEXT_START_ADDR:
-       (hack for SunOS shared libraries)
-       start at 0, offset is 0, size as stated.
-     * If N_HEADER_IN_TEXT(x) is true (which defaults to being the
-       case when the entry point is EXEC_BYTES_SIZE or further into a page):
-       no padding is needed; text can start after exec header.  Sun
-       considers the text segment of such files to include the exec header;
-       for BFD's purposes, we don't, which makes more work for us.
-       start at TEXT_START_ADDR + EXEC_BYTES_SIZE, offset is EXEC_BYTES_SIZE,
-       size as stated minus EXEC_BYTES_SIZE.
-     * If N_HEADER_IN_TEXT(x) is false (which defaults to being the case when
-       the entry point is less than EXEC_BYTES_SIZE into a page (e.g. page
-       aligned)): (padding is needed so that text can start at a page boundary)
-       start at TEXT_START_ADDR, offset TARGET_PAGE_SIZE, size as stated.
-
-    Specific configurations may want to hardwire N_HEADER_IN_TEXT,
-    for efficiency or to allow people to play games with the entry point.
-    In that case, you would #define N_HEADER_IN_TEXT(x) as 1 for sunos,
-    and as 0 for most other hosts (Sony News, Vax Ultrix, etc).
-    (Do this in the appropriate bfd target file.)
-    (The default is a heuristic that will break if people try changing
-    the entry point, perhaps with the ld -e flag.)
-
-    * QMAGIC is always like a ZMAGIC for which N_HEADER_IN_TEXT is true,
-    and for which the starting address is TARGET_PAGE_SIZE (or should this be
-    SEGMENT_SIZE?) (TEXT_START_ADDR only applies to ZMAGIC, not to QMAGIC).  */
-
-/* This macro is only relevant for ZMAGIC files; QMAGIC always has the header
-   in the text.  */
-#ifndef N_HEADER_IN_TEXT
-#define N_HEADER_IN_TEXT(x) \
-  (((x).a_entry & (TARGET_PAGE_SIZE-1)) >= EXEC_BYTES_SIZE)
-#endif
-
-/* Sun shared libraries, not linux.  This macro is only relevant for ZMAGIC
-   files.  */
-#ifndef N_SHARED_LIB
-#if defined (TEXT_START_ADDR) && TEXT_START_ADDR == 0
-#define N_SHARED_LIB(x) (0)
-#else
-#define N_SHARED_LIB(x) ((x).a_entry < TEXT_START_ADDR)
-#endif
-#endif
-
-/* Returning 0 not TEXT_START_ADDR for OMAGIC and NMAGIC is based on
-   the assumption that we are dealing with a .o file, not an
-   executable.  This is necessary for OMAGIC (but means we don't work
-   right on the output from ld -N); more questionable for NMAGIC.  */
-
-#ifndef N_TXTADDR
-#define N_TXTADDR(x) \
-    (/* The address of a QMAGIC file is always one page in,		\
-        with the header in the text.  */				\
-     N_IS_QMAGIC (x)							\
-     ? (bfd_vma) TARGET_PAGE_SIZE + EXEC_BYTES_SIZE			\
-     : (N_MAGIC (x) != ZMAGIC						\
-	? (bfd_vma) 0	/* Object file or NMAGIC.  */			\
-	: (N_SHARED_LIB (x)						\
-	   ? (bfd_vma) 0						\
-	   : (N_HEADER_IN_TEXT (x)					\
-	      ? (bfd_vma) TEXT_START_ADDR + EXEC_BYTES_SIZE		\
-	      : (bfd_vma) TEXT_START_ADDR))))
-#endif
-
-/* If N_HEADER_IN_TEXT is not true for ZMAGIC, there is some padding
-   to make the text segment start at a certain boundary.  For most
-   systems, this boundary is TARGET_PAGE_SIZE.  But for Linux, in the
-   time-honored tradition of crazy ZMAGIC hacks, it is 1024 which is
-   not what TARGET_PAGE_SIZE needs to be for QMAGIC.  */
-
-#ifndef ZMAGIC_DISK_BLOCK_SIZE
-#define ZMAGIC_DISK_BLOCK_SIZE TARGET_PAGE_SIZE
-#endif
-
-#define N_DISK_BLOCK_SIZE(x) \
-  (N_MAGIC(x) == ZMAGIC ? ZMAGIC_DISK_BLOCK_SIZE : TARGET_PAGE_SIZE)
-
-/* Offset in an a.out of the start of the text section. */
-#ifndef N_TXTOFF
-#define N_TXTOFF(x)							\
-    (/* For {O,N,Q}MAGIC, no padding.  */				\
-     N_MAGIC (x) != ZMAGIC						\
-     ? EXEC_BYTES_SIZE							\
-     : (N_SHARED_LIB (x)						\
-	? 0								\
-	: (N_HEADER_IN_TEXT (x)						\
-	   ? EXEC_BYTES_SIZE		/* No padding.  */		\
-	   : ZMAGIC_DISK_BLOCK_SIZE	/* A page of padding.  */)))
-#endif
-/* Size of the text section.  It's always as stated, except that we
-   offset it to `undo' the adjustment to N_TXTADDR and N_TXTOFF
-   for ZMAGIC files that nominally include the exec header
-   as part of the first page of text.  (BFD doesn't consider the
-   exec header to be part of the text segment.)  */
-#ifndef N_TXTSIZE
-#define	N_TXTSIZE(x) \
-  (/* For QMAGIC, we don't consider the header part of the text section.  */\
-   N_IS_QMAGIC (x)							\
-   ? (x).a_text - EXEC_BYTES_SIZE					\
-   : ((N_MAGIC (x) != ZMAGIC || N_SHARED_LIB (x))			\
-      ? (x).a_text							\
-      : (N_HEADER_IN_TEXT (x)						\
-	 ? (x).a_text - EXEC_BYTES_SIZE	/* No padding.  */		\
-	 : (x).a_text			/* A page of padding.  */ )))
-#endif
-/* The address of the data segment in virtual memory.
-   It is the text segment address, plus text segment size, rounded
-   up to a N_SEGSIZE boundary for pure or pageable files.  */
-#ifndef N_DATADDR
-#define N_DATADDR(x) \
-  (N_MAGIC (x) == OMAGIC						\
-   ? (N_TXTADDR (x) + N_TXTSIZE (x))					\
-   : (N_SEGSIZE (x) + ((N_TXTADDR (x) + N_TXTSIZE (x) - 1)		\
-		       & ~ (bfd_vma) (N_SEGSIZE (x) - 1))))
-#endif
-/* The address of the BSS segment -- immediately after the data segment.  */
-
-#define N_BSSADDR(x)	(N_DATADDR (x) + (x).a_data)
-
-/* Offsets of the various portions of the file after the text segment.  */
-
-/* For {Q,Z}MAGIC, there is padding to make the data segment start on
-   a page boundary.  Most of the time the a_text field (and thus
-   N_TXTSIZE) already contains this padding.  It is possible that for
-   BSDI and/or 386BSD it sometimes doesn't contain the padding, and
-   perhaps we should be adding it here.  But this seems kind of
-   questionable and probably should be BSDI/386BSD-specific if we do
-   do it.
-
-   For NMAGIC (at least for hp300 BSD, probably others), there is
-   padding in memory only, not on disk, so we must *not* ever pad here
-   for NMAGIC.  */
-
-#ifndef N_DATOFF
-#define N_DATOFF(x)	(N_TXTOFF (x) + N_TXTSIZE (x))
-#endif
-#ifndef N_TRELOFF
-#define N_TRELOFF(x)	(N_DATOFF (x) + (x).a_data)
-#endif
-#ifndef N_DRELOFF
-#define N_DRELOFF(x)	(N_TRELOFF (x) + (x).a_trsize)
-#endif
-#ifndef N_SYMOFF
-#define N_SYMOFF(x)	(N_DRELOFF (x) + (x).a_drsize)
-#endif
-#ifndef N_STROFF
-#define N_STROFF(x)	(N_SYMOFF (x) + (x).a_syms)
-#endif
-
-/* Symbols */
-#ifndef external_nlist
-struct external_nlist
-{
-  bfd_byte e_strx[BYTES_IN_WORD];	/* Index into string table of name.  */
-  bfd_byte e_type[1];			/* Type of symbol.  */
-  bfd_byte e_other[1];			/* Misc info (usually empty).  */
-  bfd_byte e_desc[2];			/* Description field.  */
-  bfd_byte e_value[BYTES_IN_WORD];	/* Value of symbol.  */
-};
-#define EXTERNAL_NLIST_SIZE (BYTES_IN_WORD+4+BYTES_IN_WORD)
-#endif
-
-struct internal_nlist
-{
-  unsigned long n_strx;			/* Index into string table of name.  */
-  unsigned char n_type;			/* Type of symbol.  */
-  unsigned char n_other;		/* Misc info (usually empty).  */
-  unsigned short n_desc;		/* Description field.  */
-  bfd_vma n_value;			/* Value of symbol.  */
-};
-
-/* The n_type field is the symbol type, containing:  */
-
-#define N_UNDF	0	/* Undefined symbol.  */
-#define N_ABS 	2	/* Absolute symbol -- defined at particular addr.  */
-#define N_TEXT 	4	/* Text sym -- defined at offset in text seg.  */
-#define N_DATA 	6	/* Data sym -- defined at offset in data seg.  */
-#define N_BSS 	8	/* BSS  sym -- defined at offset in zero'd seg.  */
-#define	N_COMM	0x12	/* Common symbol (visible after shared lib dynlink).  */
-#define N_FN	0x1f	/* File name of .o file.  */
-#define	N_FN_SEQ 0x0C	/* N_FN from Sequent compilers (sigh).  */
-/* Note: N_EXT can only be usefully OR-ed with N_UNDF, N_ABS, N_TEXT,
-   N_DATA, or N_BSS.  When the low-order bit of other types is set,
-   (e.g. N_WARNING versus N_FN), they are two different types.  */
-#define N_EXT 	1	/* External symbol (as opposed to local-to-this-file).  */
-#define N_TYPE  0x1e
-#define N_STAB 	0xe0	/* If any of these bits are on, it's a debug symbol.  */
-
-#define N_INDR 0x0a
-
-/* The following symbols refer to set elements.
-   All the N_SET[ATDB] symbols with the same name form one set.
-   Space is allocated for the set in the text section, and each set
-   elements value is stored into one word of the space.
-   The first word of the space is the length of the set (number of elements).
-
-   The address of the set is made into an N_SETV symbol
-   whose name is the same as the name of the set.
-   This symbol acts like a N_DATA global symbol
-   in that it can satisfy undefined external references.  */
-
-/* These appear as input to LD, in a .o file.  */
-#define	N_SETA	0x14		/* Absolute set element symbol.  */
-#define	N_SETT	0x16		/* Text set element symbol.  */
-#define	N_SETD	0x18		/* Data set element symbol.  */
-#define	N_SETB	0x1A		/* Bss set element symbol.  */
-
-/* This is output from LD.  */
-#define N_SETV	0x1C		/* Pointer to set vector in data area.  */
-
-/* Warning symbol. The text gives a warning message, the next symbol
-   in the table will be undefined. When the symbol is referenced, the
-   message is printed.  */
-
-#define	N_WARNING 0x1e
-
-/* Weak symbols.  These are a GNU extension to the a.out format.  The
-   semantics are those of ELF weak symbols.  Weak symbols are always
-   externally visible.  The N_WEAK? values are squeezed into the
-   available slots.  The value of a N_WEAKU symbol is 0.  The values
-   of the other types are the definitions.  */
-#define N_WEAKU	0x0d		/* Weak undefined symbol.  */
-#define N_WEAKA 0x0e		/* Weak absolute symbol.  */
-#define N_WEAKT 0x0f		/* Weak text symbol.  */
-#define N_WEAKD 0x10		/* Weak data symbol.  */
-#define N_WEAKB 0x11		/* Weak bss symbol.  */
-
-/* Relocations 
-
-  There	are two types of relocation flavours for a.out systems,
-  standard and extended. The standard form is used on systems where the
-  instruction has room for all the bits of an offset to the operand, whilst
-  the extended form is used when an address operand has to be split over n
-  instructions. Eg, on the 68k, each move instruction can reference
-  the target with a displacement of 16 or 32 bits. On the sparc, move
-  instructions use an offset of 14 bits, so the offset is stored in
-  the reloc field, and the data in the section is ignored.  */
-
-/* This structure describes a single relocation to be performed.
-   The text-relocation section of the file is a vector of these structures,
-   all of which apply to the text section.
-   Likewise, the data-relocation section applies to the data section.  */
-
-struct reloc_std_external
-{
-  bfd_byte r_address[BYTES_IN_WORD];	/* Offset of of data to relocate.  */
-  bfd_byte r_index[3];			/* Symbol table index of symbol.  */
-  bfd_byte r_type[1];			/* Relocation type.  */
-};
-
-#define	RELOC_STD_BITS_PCREL_BIG	((unsigned int) 0x80)
-#define	RELOC_STD_BITS_PCREL_LITTLE	((unsigned int) 0x01)
-
-#define	RELOC_STD_BITS_LENGTH_BIG	((unsigned int) 0x60)
-#define	RELOC_STD_BITS_LENGTH_SH_BIG	5
-#define	RELOC_STD_BITS_LENGTH_LITTLE	((unsigned int) 0x06)
-#define	RELOC_STD_BITS_LENGTH_SH_LITTLE	1
-
-#define	RELOC_STD_BITS_EXTERN_BIG	((unsigned int) 0x10)
-#define	RELOC_STD_BITS_EXTERN_LITTLE	((unsigned int) 0x08)
-
-#define	RELOC_STD_BITS_BASEREL_BIG	((unsigned int) 0x08)
-#define	RELOC_STD_BITS_BASEREL_LITTLE	((unsigned int) 0x10)
-
-#define	RELOC_STD_BITS_JMPTABLE_BIG	((unsigned int) 0x04)
-#define	RELOC_STD_BITS_JMPTABLE_LITTLE	((unsigned int) 0x20)
-
-#define	RELOC_STD_BITS_RELATIVE_BIG	((unsigned int) 0x02)
-#define	RELOC_STD_BITS_RELATIVE_LITTLE	((unsigned int) 0x40)
-
-#define	RELOC_STD_SIZE	(BYTES_IN_WORD + 3 + 1)		/* Bytes per relocation entry.  */
-
-struct reloc_std_internal
-{
-  bfd_vma r_address;		/* Address (within segment) to be relocated.  */
-  /* The meaning of r_symbolnum depends on r_extern.  */
-  unsigned int r_symbolnum:24;
-  /* Nonzero means value is a pc-relative offset
-     and it should be relocated for changes in its own address
-     as well as for changes in the symbol or section specified.  */
-  unsigned int r_pcrel:1;
-  /* Length (as exponent of 2) of the field to be relocated.
-     Thus, a value of 2 indicates 1<<2 bytes.  */
-  unsigned int r_length:2;
-  /* 1 => relocate with value of symbol.
-     r_symbolnum is the index of the symbol
-     in files the symbol table.
-     0 => relocate with the address of a segment.
-     r_symbolnum is N_TEXT, N_DATA, N_BSS or N_ABS
-     (the N_EXT bit may be set also, but signifies nothing).  */
-  unsigned int r_extern:1;
-  /* The next three bits are for SunOS shared libraries, and seem to
-     be undocumented.  */
-  unsigned int r_baserel:1;	/* Linkage table relative.  */
-  unsigned int r_jmptable:1;	/* pc-relative to jump table.  */
-  unsigned int r_relative:1;	/* "relative relocation".  */
-  /* unused */
-  unsigned int r_pad:1;		/* Padding -- set to zero.  */
-};
-
-
-/* EXTENDED RELOCS.   */
-
-struct reloc_ext_external
-{
-  bfd_byte r_address[BYTES_IN_WORD];	/* Offset of of data to relocate.  */
-  bfd_byte r_index[3];			/* Symbol table index of symbol.  */
-  bfd_byte r_type[1];			/* Relocation type.  */
-  bfd_byte r_addend[BYTES_IN_WORD];	/* Datum addend.  */
-};
-
-#ifndef RELOC_EXT_BITS_EXTERN_BIG
-#define	RELOC_EXT_BITS_EXTERN_BIG	((unsigned int) 0x80)
-#endif
-
-#ifndef RELOC_EXT_BITS_EXTERN_LITTLE
-#define	RELOC_EXT_BITS_EXTERN_LITTLE	((unsigned int) 0x01)
-#endif
-
-#ifndef RELOC_EXT_BITS_TYPE_BIG
-#define	RELOC_EXT_BITS_TYPE_BIG		((unsigned int) 0x1F)
-#endif
-
-#ifndef RELOC_EXT_BITS_TYPE_SH_BIG
-#define	RELOC_EXT_BITS_TYPE_SH_BIG	0
-#endif
-
-#ifndef RELOC_EXT_BITS_TYPE_LITTLE
-#define	RELOC_EXT_BITS_TYPE_LITTLE	((unsigned int) 0xF8)
-#endif
-
-#ifndef RELOC_EXT_BITS_TYPE_SH_LITTLE
-#define	RELOC_EXT_BITS_TYPE_SH_LITTLE	3
-#endif
-
-/* Bytes per relocation entry.  */
-#define	RELOC_EXT_SIZE	(BYTES_IN_WORD + 3 + 1 + BYTES_IN_WORD)
-
-enum reloc_type
-{
-  /* Simple relocations.  */
-  RELOC_8,			/* data[0:7] = addend + sv 		*/
-  RELOC_16,			/* data[0:15] = addend + sv 		*/
-  RELOC_32,			/* data[0:31] = addend + sv 		*/
-  /* PC-rel displacement.  */
-  RELOC_DISP8,			/* data[0:7] = addend - pc + sv 	*/
-  RELOC_DISP16,			/* data[0:15] = addend - pc + sv 	*/
-  RELOC_DISP32,			/* data[0:31] = addend - pc + sv 	*/
-  /* Special.  */
-  RELOC_WDISP30,		/* data[0:29] = (addend + sv - pc)>>2 	*/
-  RELOC_WDISP22,		/* data[0:21] = (addend + sv - pc)>>2 	*/
-  RELOC_HI22,			/* data[0:21] = (addend + sv)>>10 	*/
-  RELOC_22,			/* data[0:21] = (addend + sv) 		*/
-  RELOC_13,			/* data[0:12] = (addend + sv)		*/
-  RELOC_LO10,			/* data[0:9] = (addend + sv)		*/
-  RELOC_SFA_BASE,		
-  RELOC_SFA_OFF13,
-  /* P.I.C. (base-relative).  */
-  RELOC_BASE10,  		/* Not sure - maybe we can do this the */
-  RELOC_BASE13,			/* right way now */
-  RELOC_BASE22,
-  /* For some sort of pc-rel P.I.C. (?)  */
-  RELOC_PC10,
-  RELOC_PC22,
-  /* P.I.C. jump table.  */
-  RELOC_JMP_TBL,
-  /* Reputedly for shared libraries somehow.  */
-  RELOC_SEGOFF16,
-  RELOC_GLOB_DAT,
-  RELOC_JMP_SLOT,
-  RELOC_RELATIVE,
-
-  RELOC_11,	
-  RELOC_WDISP2_14,
-  RELOC_WDISP19,
-  RELOC_HHI22,			/* data[0:21] = (addend + sv) >> 42     */
-  RELOC_HLO10,			/* data[0:9] = (addend + sv) >> 32      */
-  
-  /* 29K relocation types.  */
-  RELOC_JUMPTARG,
-  RELOC_CONST,
-  RELOC_CONSTH,
-  
-  /* All the new ones I can think of, for sparc v9.  */
-  RELOC_64,			/* data[0:63] = addend + sv 		*/
-  RELOC_DISP64,			/* data[0:63] = addend - pc + sv 	*/
-  RELOC_WDISP21,		/* data[0:20] = (addend + sv - pc)>>2 	*/
-  RELOC_DISP21,			/* data[0:20] = addend - pc + sv        */
-  RELOC_DISP14,			/* data[0:13] = addend - pc + sv 	*/
-  /* Q .
-     What are the other ones,
-     Since this is a clean slate, can we throw away the ones we dont
-     understand ? Should we sort the values ? What about using a
-     microcode format like the 68k ?  */
-  NO_RELOC
-  };
-
-
-struct reloc_internal
-{
-  bfd_vma r_address;		/* Offset of of data to relocate.  */
-  long	r_index;		/* Symbol table index of symbol.  */
-  enum reloc_type r_type;	/* Relocation type.  */
-  bfd_vma r_addend;		/* Datum addend.  */
-};
-
-/* Q.
-   Should the length of the string table be 4 bytes or 8 bytes ?
-
-   Q.
-   What about archive indexes ?  */
-
-#endif				/* __A_OUT_64_H__ */
diff --git a/include/aout/ar.h b/include/aout/ar.h
deleted file mode 100644
index 0d0aad2..0000000
--- a/include/aout/ar.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* archive file definition for GNU software
-
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* So far this is correct for BSDish archives.  Don't forget that
-   files must begin on an even byte boundary. */
-
-#ifndef __GNU_AR_H__
-#define __GNU_AR_H__
-
-/* Note that the usual '\n' in magic strings may translate to different
-   characters, as allowed by ANSI.  '\012' has a fixed value, and remains
-   compatible with existing BSDish archives. */
-
-#define ARMAG  "!<arch>\012"	/* For COFF and a.out archives */
-#define ARMAGB "!<bout>\012"	/* For b.out archives */
-#define SARMAG 8
-#define ARFMAG "`\012"
-
-/* The ar_date field of the armap (__.SYMDEF) member of an archive
-   must be greater than the modified date of the entire file, or 
-   BSD-derived linkers complain.  We originally write the ar_date with
-   this offset from the real file's mod-time.  After finishing the
-   file, we rewrite ar_date if it's not still greater than the mod date.  */
-
-#define ARMAP_TIME_OFFSET       60
-
-struct ar_hdr {
-  char ar_name[16];		/* name of this member */
-  char ar_date[12];		/* file mtime */
-  char ar_uid[6];		/* owner uid; printed as decimal */
-  char ar_gid[6];		/* owner gid; printed as decimal */
-  char ar_mode[8];		/* file mode, printed as octal   */
-  char ar_size[10];		/* file size, printed as decimal */
-  char ar_fmag[2];		/* should contain ARFMAG */
-};
-
-#endif /* __GNU_AR_H__ */
diff --git a/include/aout/dynix3.h b/include/aout/dynix3.h
deleted file mode 100644
index e7c5110..0000000
--- a/include/aout/dynix3.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/* a.out specifics for Sequent Symmetry running Dynix 3.x
-
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef A_OUT_DYNIX3_H
-#define A_OUT_DYNIX3_H
-
-#define external_exec dynix_external_exec
-
-/* struct exec for Dynix 3
- 
-   a_gdtbl and a_bootstrap are only for standalone binaries.
-   Shared data fields are not supported by the kernel as of Dynix 3.1,
-   but are supported by Dynix compiler programs.  */
-struct dynix_external_exec
-  {
-    unsigned char e_info[4];
-    unsigned char e_text[4];
-    unsigned char e_data[4];
-    unsigned char e_bss[4];
-    unsigned char e_syms[4];
-    unsigned char e_entry[4];
-    unsigned char e_trsize[4];
-    unsigned char e_drsize[4];
-    unsigned char e_g_code[8];
-    unsigned char e_g_data[8];
-    unsigned char e_g_desc[8];
-    unsigned char e_shdata[4];
-    unsigned char e_shbss[4];
-    unsigned char e_shdrsize[4];
-    unsigned char e_bootstrap[44];
-    unsigned char e_reserved[12];
-    unsigned char e_version[4];
-  };
-
-#define	EXEC_BYTES_SIZE	(128)
-
-/* All executables under Dynix are demand paged with read-only text,
-   Thus no NMAGIC.
-  
-   ZMAGIC has a page of 0s at virtual 0,
-   XMAGIC has an invalid page at virtual 0.  */
-#define OMAGIC	0x12eb		/* .o */
-#define ZMAGIC	0x22eb		/* zero @ 0, demand load */
-#define XMAGIC	0x32eb		/* invalid @ 0, demand load */
-#define SMAGIC	0x42eb		/* standalone, not supported here */
-
-#define N_BADMAG(x) ((OMAGIC != N_MAGIC(x)) && \
-		     (ZMAGIC != N_MAGIC(x)) && \
-		     (XMAGIC != N_MAGIC(x)) && \
-		     (SMAGIC != N_MAGIC(x)))
-
-#define N_ADDRADJ(x) ((ZMAGIC == N_MAGIC(x) || XMAGIC == N_MAGIC(x)) ? 0x1000 : 0)
-
-#define N_TXTOFF(x) (EXEC_BYTES_SIZE)
-#define N_DATOFF(x) (N_TXTOFF(x) + N_TXTSIZE(x))
-#define N_SHDATOFF(x) (N_DATOFF(x) + (x).a_data)
-#define N_TRELOFF(x) (N_SHDATOFF(x) + (x).a_shdata)
-#define N_DRELOFF(x) (N_TRELOFF(x) + (x).a_trsize)
-#define N_SHDRELOFF(x) (N_DRELOFF(x) + (x).a_drsize)
-#define N_SYMOFF(x) (N_SHDRELOFF(x) + (x).a_shdrsize)
-#define N_STROFF(x) (N_SYMOFF(x) + (x).a_syms)
-
-#define N_TXTADDR(x) \
-	(((OMAGIC == N_MAGIC(x)) || (SMAGIC == N_MAGIC(x))) ? 0 \
-	 : TEXT_START_ADDR + EXEC_BYTES_SIZE)
-
-#define N_TXTSIZE(x) \
-	(((OMAGIC == N_MAGIC(x)) || (SMAGIC == N_MAGIC(x))) ? ((x).a_text) \
-	 : ((x).a_text - N_ADDRADJ(x) - EXEC_BYTES_SIZE))
-
-#endif /* A_OUT_DYNIX3_H */
diff --git a/include/aout/encap.h b/include/aout/encap.h
deleted file mode 100644
index be8e88c..0000000
--- a/include/aout/encap.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/* Yet Another Try at encapsulating bsd object files in coff.
-   Copyright 1988, 1989, 1991 Free Software Foundation, Inc.
-   Written by Pace Willisson 12/9/88
-
-   This file is obsolete.  It needs to be converted to just define a bunch
-   of stuff that BFD can use to do coff-encapsulated files.  --gnu@cygnus.com
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/*
- * We only use the coff headers to tell the kernel
- * how to exec the file.  Therefore, the only fields that need to 
- * be filled in are the scnptr and vaddr for the text and data
- * sections, and the vaddr for the bss.  As far as coff is concerned,
- * there is no symbol table, relocation, or line numbers.
- *
- * A normal bsd header (struct exec) is placed after the coff headers,
- * and before the real text.  I defined a the new fields 'a_machtype'
- * and a_flags.  If a_machtype is M_386, and a_flags & A_ENCAP is
- * true, then the bsd header is preceeded by a coff header.  Macros
- * like N_TXTOFF and N_TXTADDR use this field to find the bsd header.
- * 
- * The only problem is to track down the bsd exec header.  The
- * macros HEADER_OFFSET, etc do this.
- */
-
-#define N_FLAGS_COFF_ENCAPSULATE 0x20 /* coff header precedes bsd header */
-
-/* Describe the COFF header used for encapsulation.  */
-
-struct coffheader
-{
-  /* filehdr */
-  unsigned short f_magic;
-  unsigned short f_nscns;
-  long f_timdat;
-  long f_symptr;
-  long f_nsyms;
-  unsigned short f_opthdr;
-  unsigned short f_flags;
-  /* aouthdr */
-  short magic;
-  short vstamp;
-  long tsize;
-  long dsize;
-  long bsize;
-  long entry;
-  long text_start;
-  long data_start;
-  struct coffscn
-    {
-      char s_name[8];
-      long s_paddr;
-      long s_vaddr;
-      long s_size;
-      long s_scnptr;
-      long s_relptr;
-      long s_lnnoptr;
-      unsigned short s_nreloc;
-      unsigned short s_nlnno;
-      long s_flags;
-    } scns[3];
-};
-
-/* Describe some of the parameters of the encapsulation,
-   including how to find the encapsulated BSD header.  */
-
-/* FIXME, this is dumb.  The same tools can't handle a.outs for different
-   architectures, just because COFF_MAGIC is different; so you need a
-   separate GNU nm for every architecture!!?  Unfortunately, it needs to
-   be this way, since the COFF_MAGIC value is determined by the kernel
-   we're trying to fool here.  */
-   
-#define COFF_MAGIC_I386 0514 /* I386MAGIC */
-#define COFF_MAGIC_M68K 0520 /* MC68MAGIC */
-
-#ifdef COFF_MAGIC
-short __header_offset_temp;
-#define HEADER_OFFSET(f) \
-	(__header_offset_temp = 0, \
-	 fread ((char *)&__header_offset_temp, sizeof (short), 1, (f)), \
-	 fseek ((f), -sizeof (short), 1), \
-	 __header_offset_temp==COFF_MAGIC ? sizeof(struct coffheader) : 0)
-#else
-#define HEADER_OFFSET(f) 0
-#endif
-
-#define HEADER_SEEK(f) (fseek ((f), HEADER_OFFSET((f)), 1))
-
-/* Describe the characteristics of the BSD header
-   that appears inside the encapsulation.  */
-
-/* Encapsulated coff files that are linked ZMAGIC have a text segment
-   offset just past the header (and a matching TXTADDR), excluding
-   the headers from the text segment proper but keeping the physical
-   layout and the virtual memory layout page-aligned.
-
-   Non-encapsulated a.out files that are linked ZMAGIC have a text
-   segment that starts at 0 and an N_TXTADR similarly offset to 0.
-   They too are page-aligned with each other, but they include the
-   a.out header as part of the text. 
-
-   The _N_HDROFF gets sizeof struct exec added to it, so we have
-   to compensate here.  See <a.out.gnu.h>.  */
-
-#undef _N_HDROFF
-#undef N_TXTADDR
-#undef N_DATADDR
-
-#define _N_HDROFF(x) ((N_FLAGS(x) & N_FLAGS_COFF_ENCAPSULATE) ? \
-		      sizeof (struct coffheader) : 0)
-
-/* Address of text segment in memory after it is loaded.  */
-#define N_TXTADDR(x) \
-	((N_FLAGS(x) & N_FLAGS_COFF_ENCAPSULATE) ? \
-	 sizeof (struct coffheader) + sizeof (struct exec) : 0)
-#define SEGMENT_SIZE 0x400000
-
-#define N_DATADDR(x) \
-	((N_FLAGS(x) & N_FLAGS_COFF_ENCAPSULATE) ? \
-	 (SEGMENT_SIZE + ((N_TXTADDR(x)+(x).a_text-1) & ~(SEGMENT_SIZE-1))) : \
-	 (N_TXTADDR(x)+(x).a_text))
diff --git a/include/aout/host.h b/include/aout/host.h
deleted file mode 100644
index 8807108..0000000
--- a/include/aout/host.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* host.h - Parameters about the a.out format, based on the host system
-   on which the program is compiled. 
-
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* Address of data segment in memory after it is loaded.
-   It is up to you to define SEGMENT_SIZE on machines not listed here.  */
-#ifndef SEGMENT_SIZE
-
-#if defined(hp300) || defined(pyr)
-#define SEGMENT_SIZE page_size
-#endif
-
-#ifdef	sony
-#define	SEGMENT_SIZE	0x1000
-#endif	/* Sony.  */
-
-#ifdef is68k
-#define SEGMENT_SIZE 0x20000
-#endif
-
-#if defined(m68k) && defined(PORTAR)
-#define TARGET_PAGE_SIZE 0x400
-#define SEGMENT_SIZE TARGET_PAGE_SIZE
-#endif
-
-#endif /*!defined(SEGMENT_SIZE)*/
-
diff --git a/include/aout/hp.h b/include/aout/hp.h
deleted file mode 100644
index 96471c7..0000000
--- a/include/aout/hp.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Special version of <a.out.h> for use under hp-ux.
-   Copyright 1988, 1991 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* THIS FILE IS OBSOLETE.  It needs to be revised as a variant "external"
-   a.out format for use with BFD.  */
-
-/* The `exec' structure and overall layout must be close to HP's when
-   we are running on an HP system, otherwise we will not be able to
-   execute the resulting file. */
-
-/* Allow this file to be included twice. */
-#ifndef __GNU_EXEC_MACROS__
-
-struct exec
-{
-  unsigned short a_machtype;	/* machine type */
-  unsigned short a_magic;	/* magic number */
-  unsigned long a_spare1;
-  unsigned long a_spare2;
-  unsigned long a_text;		/* length of text, in bytes */
-  unsigned long a_data;		/* length of data, in bytes */
-  unsigned long a_bss;		/* length of uninitialized data area for file, in bytes */
-  unsigned long a_trsize;	/* length of relocation info for text, in bytes */
-  unsigned long a_drsize;	/* length of relocation info for data, in bytes */
-  unsigned long a_spare3;	/* HP = pascal interface size */
-  unsigned long a_spare4;	/* HP = symbol table size */
-  unsigned long a_spare5;	/* HP = debug name table size */
-  unsigned long a_entry;	/* start address */
-  unsigned long a_spare6;	/* HP = source line table size */
-  unsigned long a_spare7;	/* HP = value table size */
-  unsigned long a_syms;		/* length of symbol table data in file, in bytes */
-  unsigned long a_spare8;
-};
-
-/* Tell a.out.gnu.h not to define `struct exec'.  */
-#define __STRUCT_EXEC_OVERRIDE__
-
-#include "../a.out.gnu.h"
-
-#undef N_MAGIC
-#undef N_MACHTYPE
-#undef N_FLAGS
-#undef N_SET_INFO
-#undef N_SET_MAGIC
-#undef N_SET_MACHTYPE
-#undef N_SET_FLAGS
-
-#define N_MAGIC(exec) ((exec) . a_magic)
-#define N_MACHTYPE(exec) ((exec) . a_machtype)
-#define N_SET_MAGIC(exec, magic) (((exec) . a_magic) = (magic))
-#define N_SET_MACHTYPE(exec, machtype) (((exec) . a_machtype) = (machtype))
-
-#undef N_BADMAG
-#define N_BADMAG(x) ((_N_BADMAG (x)) || (_N_BADMACH (x)))
-
-#define _N_BADMACH(x)							\
-(((N_MACHTYPE (x)) != HP9000S200_ID) &&					\
- ((N_MACHTYPE (x)) != HP98x6_ID))
-
-#define HP98x6_ID 0x20A
-#define HP9000S200_ID 0x20C
-
-#undef _N_HDROFF
-#define _N_HDROFF(x) (SEGMENT_SIZE - (sizeof (struct exec)))
-
-#define SEGMENT_SIZE 0x1000
-
-#endif /* __GNU_EXEC_MACROS__ */
diff --git a/include/aout/hp300hpux.h b/include/aout/hp300hpux.h
deleted file mode 100644
index 1174761..0000000
--- a/include/aout/hp300hpux.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Special version of <a.out.h> for use under hp-ux.
-   Copyright 1988, 1993, 1995, 2001 Free Software Foundation, Inc. */
-
-struct hp300hpux_exec_bytes
-{
-  unsigned char e_info[4];   /* a_machtype/a_magic */
-  unsigned char e_spare1[4];
-  unsigned char e_spare2[4];
-  unsigned char e_text[4];   /* length of text, in bytes */
-  unsigned char e_data[4];   /* length of data, in bytes */
-  unsigned char e_bss[4];    /* length of uninitialized data area , in bytes */
-  unsigned char e_trsize[4]; /* length of relocation info for text, in bytes*/
-  unsigned char e_drsize[4]; /* length of relocation info for data, in bytes*/
-  unsigned char e_passize[4];/* HP = pascal interface size */
-  unsigned char e_syms[4];   /* HP = symbol table size */
-  unsigned char e_spare5[4]; /* HP = debug name table size */
-  unsigned char e_entry[4];  /* start address */
-  unsigned char e_spare6[4]; /* HP = source line table size */
-  unsigned char e_supsize[4];/* HP = value table size */
-  unsigned char e_drelocs[4];
-  unsigned char e_extension[4]; /* file offset of extension */
-};
-#define	EXEC_BYTES_SIZE	64
-
-struct hp300hpux_nlist_bytes
-  {
-    unsigned char e_value[4];
-    unsigned char e_type[1];
-    unsigned char e_length[1];	/* length of ascii symbol name */
-    unsigned char e_almod[2];	/* alignment mod */
-    unsigned char e_shlib[2];   /* info about dynamic linking */
-  };
-#define EXTERNAL_NLIST_SIZE 10
-
-struct hp300hpux_reloc
-  {
-    unsigned char r_address[4];/* offset of of data to relocate */
-    unsigned char r_index[2];  /* symbol table index of symbol         */
-    unsigned char r_type[1];   /* relocation type                      */
-    unsigned char r_length[1]; /* length of item to reloc              */
-  };
-
-struct hp300hpux_header_extension
-{
-    unsigned char e_syms[4];
-    unsigned char unique_headers[12*4];
-    unsigned char e_header[2];   /* type of header */
-    unsigned char e_version[2];  /* version        */
-    unsigned char e_size[4];     /* bytes following*/
-    unsigned char e_extension[4];/* file offset of next extension */
-};
-#define EXTERNAL_EXTENSION_HEADER_SIZE (16*4)
-
-/* hpux separates object files (0x106) and impure executables (0x107)  */
-/* but the bfd code does not distinguish between them. Since we want to*/
-/* read hpux .o files, we add an special define and use it below in    */
-/* offset and address calculations.                                    */
-
-#define HPUX_DOT_O_MAGIC 0x106
-#define OMAGIC 0x107       /* object file or impure executable.  */
-#define NMAGIC 0x108       /* Code indicating pure executable.   */
-#define ZMAGIC 0x10B       /* demand-paged executable.           */
-
-#define N_HEADER_IN_TEXT(x) 0
-
-#if 0 /* libaout.h only uses the lower 8 bits */
-#define HP98x6_ID 0x20A
-#define HP9000S200_ID 0x20C
-#endif
-#define HP98x6_ID 0x0A
-#define HP9000S200_ID 0x0C
-
-#define N_BADMAG(x) ((_N_BADMAG (x)) || (_N_BADMACH (x)))
-
-#define N_DATADDR(x) \
-  ((N_MAGIC (x) == OMAGIC || N_MAGIC (x) == HPUX_DOT_O_MAGIC)		\
-   ? (N_TXTADDR (x) + N_TXTSIZE (x))					\
-   : (N_SEGSIZE (x) + ((N_TXTADDR (x) + N_TXTSIZE (x) - 1)		\
-		       & ~ (bfd_vma) (N_SEGSIZE (x) - 1))))
-
-#define _N_BADMACH(x) \
-  (((N_MACHTYPE (x)) != HP9000S200_ID) && ((N_MACHTYPE (x)) != HP98x6_ID))
-
-#define _N_BADMAG(x)	  (N_MAGIC(x) != HPUX_DOT_O_MAGIC \
-                        && N_MAGIC(x) != OMAGIC		\
-			&& N_MAGIC(x) != NMAGIC		\
-  			&& N_MAGIC(x) != ZMAGIC )
-
-#undef _N_HDROFF
-#define _N_HDROFF(x) (SEGMENT_SIZE - (sizeof (struct exec)))
-
-#undef N_DATOFF
-#undef N_PASOFF
-#undef N_SYMOFF
-#undef N_SUPOFF
-#undef N_TRELOFF
-#undef N_DRELOFF
-#undef N_STROFF
-
-#define N_DATOFF(x)	( N_TXTOFF(x) + N_TXTSIZE(x) )
-#define N_PASOFF(x)     ( N_DATOFF(x) + (x).a_data)
-#define N_SYMOFF(x)	( N_PASOFF(x)   /* + (x).a_passize*/ )
-#define N_SUPOFF(x)     ( N_SYMOFF(x) + (x).a_syms )
-#define N_TRELOFF(x)	( N_SUPOFF(x)    /* + 0 (x).a_supsize*/ )
-#define N_DRELOFF(x)	( N_TRELOFF(x) + (x).a_trsize )
-#define N_EXTHOFF(x)    ( N_DRELOFF(x)   /*  + 0 (x).a_drsize */)
-#define N_STROFF(x)	( 0 /* no string table */ )
-
-/* use these when the file has gnu symbol tables */
-#define N_GNU_TRELOFF(x) (N_DATOFF(x) + (x).a_data)
-#define N_GNU_DRELOFF(x) (N_GNU_TRELOFF(x) + (x).a_trsize)
-#define N_GNU_SYMOFF(x)  (N_GNU_DRELOFF(x) + (x).a_drsize)
-
-#define TARGET_PAGE_SIZE 0x1000
-#define SEGMENT_SIZE 0x1000
-#define TEXT_START_ADDR 0
-
-#undef N_SHARED_LIB
-#define N_SHARED_LIB(x)  ( 0 /* no shared libraries */ )
diff --git a/include/aout/hppa.h b/include/aout/hppa.h
deleted file mode 100644
index 7e185de..0000000
--- a/include/aout/hppa.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#include "filehdr.h"
-#include "aouthdr.h"
-#include "scnhdr.h"
-#include "spacehdr.h"
-#include "syms.h"
-
-
diff --git a/include/aout/ranlib.h b/include/aout/ranlib.h
deleted file mode 100644
index 8695b05..0000000
--- a/include/aout/ranlib.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* ranlib.h -- archive library index member definition for GNU.
-   Copyright 1990, 1991 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* The Symdef member of an archive contains two things:
-   a table that maps symbol-string offsets to file offsets,
-   and a symbol-string table.  All the symbol names are
-   run together (each with trailing null) in the symbol-string
-   table.  There is a single longword bytecount on the front
-   of each of these tables.  Thus if we have two symbols,
-   "foo" and "_bar", that are in archive members at offsets
-   200 and 900, it would look like this:
-        16		; byte count of index table
-  	0		; offset of "foo" in string table
-  	200		; offset of foo-module in file
-  	4		; offset of "bar" in string table
-  	900		; offset of bar-module in file
-  	9		; byte count of string table
-  	"foo\0_bar\0"	; string table  */
-
-#define	RANLIBMAG	"__.SYMDEF"	/* Archive file name containing index */
-#define	RANLIBSKEW	3		/* Creation time offset */
-
-/* Format of __.SYMDEF:
-   First, a longword containing the size of the 'symdef' data that follows.
-   Second, zero or more 'symdef' structures.
-   Third, a longword containing the length of symbol name strings.
-   Fourth, zero or more symbol name strings (each followed by a null).  */
-
-struct symdef
-  {
-    union
-      {
-	unsigned long string_offset;	/* In the file */
-	char *name;			/* In memory, sometimes */
-      } s;
-    /* this points to the front of the file header (AKA member header --
-       a struct ar_hdr), not to the front of the file or into the file).
-       in other words it only tells you which file to read */       
-    unsigned long file_offset;
-  };
-
-/* Compatability with BSD code */
-
-#define	ranlib	symdef
-#define	ran_un	s
-#define	ran_strx string_offset
-#define	ran_name name
-#define	ran_off	file_offset
diff --git a/include/aout/reloc.h b/include/aout/reloc.h
deleted file mode 100644
index c4ce1c4..0000000
--- a/include/aout/reloc.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* reloc.h -- Header file for relocation information.
-   Copyright 1989, 1990, 1991 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* Relocation types for a.out files using reloc_info_extended
-   (SPARC and AMD 29000). */
-
-#ifndef _RELOC_H_READ_
-#define _RELOC_H_READ_ 1
-
-enum reloc_type
-  {
-    RELOC_8,        RELOC_16,        RELOC_32, /* simple relocations */
-    RELOC_DISP8,    RELOC_DISP16,    RELOC_DISP32, /* pc-rel displacement */
-    RELOC_WDISP30,  RELOC_WDISP22,
-    RELOC_HI22,     RELOC_22,
-    RELOC_13,       RELOC_LO10,
-    RELOC_SFA_BASE, RELOC_SFA_OFF13,
-    RELOC_BASE10,   RELOC_BASE13,    RELOC_BASE22, /* P.I.C. (base-relative) */
-    RELOC_PC10,     RELOC_PC22,	/* for some sort of pc-rel P.I.C. (?) */
-    RELOC_JMP_TBL,		/* P.I.C. jump table */
-    RELOC_SEGOFF16,		/* reputedly for shared libraries somehow */
-    RELOC_GLOB_DAT,  RELOC_JMP_SLOT, RELOC_RELATIVE,
-    RELOC_11,
-    RELOC_WDISP2_14,
-    RELOC_WDISP19,
-    RELOC_HHI22,
-    RELOC_HLO10,
-    
-    /* 29K relocation types */
-    RELOC_JUMPTARG, RELOC_CONST,     RELOC_CONSTH,
-    
-    RELOC_WDISP14, RELOC_WDISP21,
-    
-    NO_RELOC
-    };
-
-#define	RELOC_TYPE_NAMES \
-"8",		"16",		"32",		"DISP8",	\
-"DISP16",	"DISP32",	"WDISP30",	"WDISP22",	\
-"HI22",		"22",		"13",		"LO10",		\
-"SFA_BASE",	"SFAOFF13",	"BASE10",	"BASE13",	\
-"BASE22",	"PC10",		"PC22",		"JMP_TBL",	\
-"SEGOFF16",	"GLOB_DAT",	"JMP_SLOT",	"RELATIVE",	\
-"11",		"WDISP2_14",	"WDISP19", 	"HHI22",	\
-"HLO10",							\
-"JUMPTARG",	"CONST",	"CONSTH",	"WDISP14",	\
-"WDISP21",	\
-"NO_RELOC"
-
-#endif /* _RELOC_H_READ_ */
-
-/* end of reloc.h */
diff --git a/include/aout/stab.def b/include/aout/stab.def
deleted file mode 100644
index 04ad1f1..0000000
--- a/include/aout/stab.def
+++ /dev/null
@@ -1,271 +0,0 @@
-/* Table of DBX symbol codes for the GNU system.
-   Copyright 1988, 1991, 1992, 1993, 1994, 1996, 1998, 2004
-   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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* New stab from Solaris 2.  This uses an n_type of 0, which in a.out files
-   overlaps the N_UNDF used for ordinary symbols.  In ELF files, the
-   debug information is in a different file section, so there is no conflict.
-   This symbol's n_value gives the size of the string section associated
-   with this file.  The symbol's n_strx (relative to the just-updated
-   string section start address) gives the name of the source file,
-   e.g. "foo.c", without any path information.  The symbol's n_desc gives
-   the count of upcoming symbols associated with this file (not including
-   this one).  */
-/* __define_stab (N_UNDF, 0x00, "UNDF")  */
-
-/* Global variable.  Only the name is significant.
-   To find the address, look in the corresponding external symbol.  */
-__define_stab (N_GSYM, 0x20, "GSYM")
-
-/* Function name for BSD Fortran.  Only the name is significant.
-   To find the address, look in the corresponding external symbol.  */
-__define_stab (N_FNAME, 0x22, "FNAME")
-
-/* Function name or text-segment variable for C.  Value is its address.
-   Desc is supposedly starting line number, but GCC doesn't set it
-   and DBX seems not to miss it.  */
-__define_stab (N_FUN, 0x24, "FUN")
-
-/* Data-segment variable with internal linkage.  Value is its address.
-   "Static Sym".  */
-__define_stab (N_STSYM, 0x26, "STSYM")
-
-/* BSS-segment variable with internal linkage.  Value is its address.  */
-__define_stab (N_LCSYM, 0x28, "LCSYM")
-
-/* Name of main routine.  Only the name is significant.  */
-__define_stab (N_MAIN, 0x2a, "MAIN")
-
-/* Solaris2:  Read-only data symbols.  */
-__define_stab (N_ROSYM, 0x2c, "ROSYM")
-
-/* Global symbol in Pascal.
-   Supposedly the value is its line number; I'm skeptical.  */
-__define_stab (N_PC, 0x30, "PC")
-
-/* Number of symbols:  0, files,,funcs,lines according to Ultrix V4.0. */
-__define_stab (N_NSYMS, 0x32, "NSYMS")
-
-/* "No DST map for sym: name, ,0,type,ignored"  according to Ultrix V4.0. */
-__define_stab (N_NOMAP, 0x34, "NOMAP")
-
-/* New stab from Solaris 2.  Like N_SO, but for the object file.  Two in
-   a row provide the build directory and the relative path of the .o from it.
-   Solaris2 uses this to avoid putting the stabs info into the linked
-   executable; this stab goes into the ".stab.index" section, and the debugger
-   reads the real stabs directly from the .o files instead.  */
-__define_stab (N_OBJ, 0x38, "OBJ")
-
-/* New stab from Solaris 2.  Options for the debugger, related to the
-   source language for this module.  E.g. whether to use ANSI
-   integral promotions or traditional integral promotions.  */
-__define_stab (N_OPT, 0x3c, "OPT")
-
-/* Register variable.  Value is number of register.  */
-__define_stab (N_RSYM, 0x40, "RSYM")
-
-/* Modula-2 compilation unit.  Can someone say what info it contains?  */
-__define_stab (N_M2C, 0x42, "M2C")
-
-/* Line number in text segment.  Desc is the line number;
-   value is corresponding address.  On Solaris2, the line number is
-   relative to the start of the current function.  */
-__define_stab (N_SLINE, 0x44, "SLINE")
-
-/* Similar, for data segment.  */
-__define_stab (N_DSLINE, 0x46, "DSLINE")
-
-/* Similar, for bss segment.  */
-__define_stab (N_BSLINE, 0x48, "BSLINE")
-
-/* Sun's source-code browser stabs.  ?? Don't know what the fields are.
-   Supposedly the field is "path to associated .cb file".  THIS VALUE
-   OVERLAPS WITH N_BSLINE!  */
-__define_stab_duplicate (N_BROWS, 0x48, "BROWS")
-
-/* GNU Modula-2 definition module dependency.  Value is the modification time
-   of the definition file.  Other is non-zero if it is imported with the
-   GNU M2 keyword %INITIALIZE.  Perhaps N_M2C can be used if there
-   are enough empty fields? */
-__define_stab(N_DEFD, 0x4a, "DEFD")
-
-/* New in Solaris2.  Function start/body/end line numbers.  */
-__define_stab(N_FLINE, 0x4C, "FLINE")
-
-/* THE FOLLOWING TWO STAB VALUES CONFLICT.  Happily, one is for Modula-2
-   and one is for C++.   Still,... */
-/* GNU C++ exception variable.  Name is variable name.  */
-__define_stab (N_EHDECL, 0x50, "EHDECL")
-/* Modula2 info "for imc":  name,,0,0,0  according to Ultrix V4.0.  */
-__define_stab_duplicate (N_MOD2, 0x50, "MOD2")
-
-/* GNU C++ `catch' clause.  Value is its address.  Desc is nonzero if
-   this entry is immediately followed by a CAUGHT stab saying what exception
-   was caught.  Multiple CAUGHT stabs means that multiple exceptions
-   can be caught here.  If Desc is 0, it means all exceptions are caught
-   here.  */
-__define_stab (N_CATCH, 0x54, "CATCH")
-
-/* Structure or union element.  Value is offset in the structure.  */
-__define_stab (N_SSYM, 0x60, "SSYM")
-
-/* Solaris2:  Last stab emitted for module.  */
-__define_stab (N_ENDM, 0x62, "ENDM")
-
-/* Name of main source file.
-   Value is starting text address of the compilation.
-   If multiple N_SO's appear, the first to contain a trailing / is the
-   compilation directory.  The first to not contain a trailing / is the
-   source file name, relative to the compilation directory.  Others (perhaps
-   resulting from cfront) are ignored.
-   On Solaris2, value is undefined, but desc is a source-language code.  */
-
-__define_stab (N_SO, 0x64, "SO")
-
-/* SunPro F77:  Name of alias.  */
-__define_stab (N_ALIAS, 0x6c, "ALIAS")
-
-/* Automatic variable in the stack.  Value is offset from frame pointer.
-   Also used for type descriptions.  */
-__define_stab (N_LSYM, 0x80, "LSYM")
-
-/* Beginning of an include file.  Only Sun uses this.
-   In an object file, only the name is significant.
-   The Sun linker puts data into some of the other fields.  */
-__define_stab (N_BINCL, 0x82, "BINCL")
-
-/* Name of sub-source file (#include file).
-   Value is starting text address of the compilation.  */
-__define_stab (N_SOL, 0x84, "SOL")
-
-/* Parameter variable.  Value is offset from argument pointer.
-   (On most machines the argument pointer is the same as the frame pointer.  */
-__define_stab (N_PSYM, 0xa0, "PSYM")
-
-/* End of an include file.  No name.
-   This and N_BINCL act as brackets around the file's output.
-   In an object file, there is no significant data in this entry.
-   The Sun linker puts data into some of the fields.  */
-__define_stab (N_EINCL, 0xa2, "EINCL")
-
-/* Alternate entry point.  Value is its address.  */
-__define_stab (N_ENTRY, 0xa4, "ENTRY")
-
-/* Beginning of lexical block.
-   The desc is the nesting level in lexical blocks.
-   The value is the address of the start of the text for the block.
-   The variables declared inside the block *precede* the N_LBRAC symbol.
-   On Solaris2, the value is relative to the start of the current function.  */
-__define_stab (N_LBRAC, 0xc0, "LBRAC")
-
-/* Place holder for deleted include file.  Replaces a N_BINCL and everything
-   up to the corresponding N_EINCL.  The Sun linker generates these when
-   it finds multiple identical copies of the symbols from an include file.
-   This appears only in output from the Sun linker.  */
-__define_stab (N_EXCL, 0xc2, "EXCL")
-
-/* Modula-2 scope information.  Can someone say what info it contains?  */
-__define_stab (N_SCOPE, 0xc4, "SCOPE")
-
-/* Solaris2: Patch Run Time Checker.  */
-__define_stab (N_PATCH, 0xd0, "PATCH")
-
-/* End of a lexical block.  Desc matches the N_LBRAC's desc.
-   The value is the address of the end of the text for the block.
-   On Solaris2, the value is relative to the start of the current function.  */
-__define_stab (N_RBRAC, 0xe0, "RBRAC")
-
-/* Begin named common block.  Only the name is significant.  */
-__define_stab (N_BCOMM, 0xe2, "BCOMM")
-
-/* End named common block.  Only the name is significant
-   (and it should match the N_BCOMM).  */
-__define_stab (N_ECOMM, 0xe4, "ECOMM")
-
-/* Member of a common block; value is offset within the common block.
-   This should occur within a BCOMM/ECOMM pair.  */
-__define_stab (N_ECOML, 0xe8, "ECOML")
-
-/* Solaris2: Pascal "with" statement: type,,0,0,offset */
-__define_stab (N_WITH, 0xea, "WITH")
-
-/* These STAB's are used on Gould systems for Non-Base register symbols
-   or something like that.  FIXME.  I have assigned the values at random
-   since I don't have a Gould here.  Fixups from Gould folk welcome... */
-__define_stab (N_NBTEXT, 0xF0, "NBTEXT")
-__define_stab (N_NBDATA, 0xF2, "NBDATA")
-__define_stab (N_NBBSS,  0xF4, "NBBSS")
-__define_stab (N_NBSTS,  0xF6, "NBSTS")
-__define_stab (N_NBLCS,  0xF8, "NBLCS")
-
-/* Second symbol entry containing a length-value for the preceding entry.
-   The value is the length.  */
-__define_stab (N_LENG, 0xfe, "LENG")
-
-/* The above information, in matrix format.
-
-			STAB MATRIX
-	_________________________________________________
-	| 00 - 1F are not dbx stab symbols		|
-	| In most cases, the low bit is the EXTernal bit|
-
-	| 00 UNDEF  | 02 ABS	| 04 TEXT   | 06 DATA	|
-	| 01  |EXT  | 03  |EXT	| 05  |EXT  | 07  |EXT	|
-
-	| 08 BSS    | 0A INDR	| 0C FN_SEQ | 0E WEAKA	|
-	| 09  |EXT  | 0B 	| 0D WEAKU  | 0F WEAKT	|
-
-	| 10 WEAKD  | 12 COMM	| 14 SETA   | 16 SETT	|
-	| 11 WEAKB  | 13	| 15 	    | 17	|
-
-	| 18 SETD   | 1A SETB	| 1C SETV   | 1E WARNING|
-	| 19	    | 1B	| 1D 	    | 1F FN	|
-
-	|_______________________________________________|
-	| Debug entries with bit 01 set are unused.	|
-	| 20 GSYM   | 22 FNAME	| 24 FUN    | 26 STSYM	|
-	| 28 LCSYM  | 2A MAIN	| 2C ROSYM  | 2E	|
-	| 30 PC	    | 32 NSYMS	| 34 NOMAP  | 36	|
-	| 38 OBJ    | 3A	| 3C OPT    | 3E	|
-	| 40 RSYM   | 42 M2C	| 44 SLINE  | 46 DSLINE |
-	| 48 BSLINE*| 4A DEFD	| 4C FLINE  | 4E	|
-	| 50 EHDECL*| 52	| 54 CATCH  | 56        |
-	| 58        | 5A        | 5C        | 5E	|
-	| 60 SSYM   | 62 ENDM	| 64 SO	    | 66 	|
-	| 68 	    | 6A	| 6C ALIAS  | 6E	|
-	| 70	    | 72	| 74	    | 76	|
-	| 78	    | 7A	| 7C	    | 7E	|
-	| 80 LSYM   | 82 BINCL	| 84 SOL    | 86	|
-	| 88	    | 8A	| 8C	    | 8E	|
-	| 90	    | 92	| 94	    | 96	|
-	| 98	    | 9A	| 9C	    | 9E	|
-	| A0 PSYM   | A2 EINCL	| A4 ENTRY  | A6	|
-	| A8	    | AA	| AC	    | AE	|
-	| B0	    | B2	| B4	    | B6	|
-	| B8	    | BA	| BC	    | BE	|
-	| C0 LBRAC  | C2 EXCL	| C4 SCOPE  | C6	|
-	| C8	    | CA	| CC	    | CE	|
-	| D0 PATCH  | D2	| D4	    | D6	|
-	| D8	    | DA	| DC	    | DE	|
-	| E0 RBRAC  | E2 BCOMM	| E4 ECOMM  | E6	|
-	| E8 ECOML  | EA WITH	| EC	    | EE	|
-	| F0	    | F2	| F4	    | F6	|
-	| F8	    | FA	| FC	    | FE LENG	|
-	+-----------------------------------------------+
- * 50 EHDECL is also MOD2.
- * 48 BSLINE is also BROWS.
- */
diff --git a/include/aout/stab_gnu.h b/include/aout/stab_gnu.h
deleted file mode 100644
index 29dc990..0000000
--- a/include/aout/stab_gnu.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* gnu_stab.h  Definitions for GNU extensions to STABS
-
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-#ifndef __GNU_STAB__
-
-/* Indicate the GNU stab.h is in use.  */
-
-#define __GNU_STAB__
-
-#define __define_stab(NAME, CODE, STRING) NAME=CODE,
-#define __define_stab_duplicate(NAME, CODE, STRING) NAME=CODE,
-
-enum __stab_debug_code
-{
-#include "aout/stab.def"
-LAST_UNUSED_STAB_CODE
-};
-
-#undef __define_stab
-
-/* Definitions of "desc" field for N_SO stabs in Solaris2.  */
-
-#define	N_SO_AS		1
-#define	N_SO_C		2
-#define	N_SO_ANSI_C	3
-#define	N_SO_CC		4	/* C++ */
-#define	N_SO_FORTRAN	5
-#define	N_SO_PASCAL	6
-
-/* Solaris2: Floating point type values in basic types.  */
-
-#define	NF_NONE		0
-#define	NF_SINGLE	1	/* IEEE 32-bit */
-#define	NF_DOUBLE	2	/* IEEE 64-bit */
-#define	NF_COMPLEX	3	/* Fortran complex */
-#define	NF_COMPLEX16	4	/* Fortran double complex */
-#define	NF_COMPLEX32	5	/* Fortran complex*16 */
-#define	NF_LDOUBLE	6	/* Long double (whatever that is) */
-
-#endif /* __GNU_STAB_ */
diff --git a/include/aout/sun4.h b/include/aout/sun4.h
deleted file mode 100644
index 8cf0517..0000000
--- a/include/aout/sun4.h
+++ /dev/null
@@ -1,235 +0,0 @@
-/* SPARC-specific values for a.out files 
-
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* Some systems, e.g., AIX, may have defined this in header files already
-   included.  */
-#undef  TARGET_PAGE_SIZE
-#define TARGET_PAGE_SIZE	0x2000		/* 8K.  aka NBPG in <sys/param.h> */
-/* Note that some SPARCs have 4K pages, some 8K, some others.  */
-
-#define SEG_SIZE_SPARC	TARGET_PAGE_SIZE
-#define	SEG_SIZE_SUN3	0x20000		/* Resolution of r/w protection hw */
-
-#define TEXT_START_ADDR	TARGET_PAGE_SIZE	/* Location 0 is not accessible */
-#define N_HEADER_IN_TEXT(x) 1
-
-/* Non-default definitions of the accessor macros... */
-
-/* Segment size varies on Sun-3 versus Sun-4.  */
-
-#define N_SEGSIZE(x)	(N_MACHTYPE(x) == M_SPARC?	SEG_SIZE_SPARC:	\
-			 N_MACHTYPE(x) == M_68020?	SEG_SIZE_SUN3:	\
-			/* Guess? */			TARGET_PAGE_SIZE)
-
-/* Virtual Address of text segment from the a.out file.  For OMAGIC,
-   (almost always "unlinked .o's" these days), should be zero.
-   Sun added a kludge so that shared libraries linked ZMAGIC get
-   an address of zero if a_entry (!!!) is lower than the otherwise
-   expected text address.  These kludges have gotta go!
-   For linked files, should reflect reality if we know it.  */
-
-/* This differs from the version in aout64.h (which we override by defining
-   it here) only for NMAGIC (we return TEXT_START_ADDR+EXEC_BYTES_SIZE;
-   they return 0).  */
-
-#define N_TXTADDR(x) \
-    (N_MAGIC(x)==OMAGIC? 0 \
-     : (N_MAGIC(x) == ZMAGIC && (x).a_entry < TEXT_START_ADDR)? 0 \
-     : TEXT_START_ADDR+EXEC_BYTES_SIZE)
-
-/* When a file is linked against a shared library on SunOS 4, the
-   dynamic bit in the exec header is set, and the first symbol in the
-   symbol table is __DYNAMIC.  Its value is the address of the
-   following structure.  */
-
-struct external_sun4_dynamic
-{
-  /* The version number of the structure.  SunOS 4.1.x creates files
-     with version number 3, which is what this structure is based on.
-     According to gdb, version 2 is similar.  I believe that version 2
-     used a different type of procedure linkage table, and there may
-     have been other differences.  */
-  bfd_byte ld_version[4];
-  /* The virtual address of a 28 byte structure used in debugging.
-     The contents are filled in at run time by ld.so.  */
-  bfd_byte ldd[4];
-  /* The virtual address of another structure with information about
-     how to relocate the executable at run time.  */
-  bfd_byte ld[4];
-};
-
-/* The size of the debugging structure pointed to by the debugger
-   field of __DYNAMIC.  */
-#define EXTERNAL_SUN4_DYNAMIC_DEBUGGER_SIZE (24)
-
-/* The structure pointed to by the linker field of __DYNAMIC.  As far
-   as I can tell, most of the addresses in this structure are offsets
-   within the file, but some are actually virtual addresses.  */
-
-struct internal_sun4_dynamic_link
-{
-  /* Linked list of loaded objects.  This is filled in at runtime by
-     ld.so and probably by dlopen.  */
-  unsigned long ld_loaded;
-
-  /* The address of the list of names of shared objects which must be
-     included at runtime.  Each entry in the list is 16 bytes: the 4
-     byte address of the string naming the object (e.g., for -lc this
-     is "c"); 4 bytes of flags--the high bit is whether to search for
-     the object using the library path; the 2 byte major version
-     number; the 2 byte minor version number; the 4 byte address of
-     the next entry in the list (zero if this is the last entry).  The
-     version numbers seem to only be non-zero when doing library
-     searching.  */
-  unsigned long ld_need;
-
-  /* The address of the path to search for the shared objects which
-     must be included.  This points to a string in PATH format which
-     is generated from the -L arguments to the linker.  According to
-     the man page, ld.so implicitly adds ${LD_LIBRARY_PATH} to the
-     beginning of this string and /lib:/usr/lib:/usr/local/lib to the
-     end.  The string is terminated by a null byte.  This field is
-     zero if there is no additional path.  */
-  unsigned long ld_rules;
-
-  /* The address of the global offset table.  This appears to be a
-     virtual address, not a file offset.  The first entry in the
-     global offset table seems to be the virtual address of the
-     sun4_dynamic structure (the same value as the __DYNAMIC symbol).
-     The global offset table is used for PIC code to hold the
-     addresses of variables.  A dynamically linked file which does not
-     itself contain PIC code has a four byte global offset table.  */
-  unsigned long ld_got;
-
-  /* The address of the procedure linkage table.  This appears to be a
-     virtual address, not a file offset.
-
-     On a SPARC, the table is composed of 12 byte entries, each of
-     which consists of three instructions.  The first entry is
-         sethi %hi(0),%g1
-	 jmp %g1
-	 nop
-     These instructions are changed by ld.so into a jump directly into
-     ld.so itself.  Each subsequent entry is
-         save %sp, -96, %sp
-	 call <address of first entry in procedure linkage table>
-	 <reloc_number | 0x01000000>
-     The reloc_number is the number of the reloc to use to resolve
-     this entry.  The reloc will be a JMP_SLOT reloc against some
-     symbol that is not defined in this object file but should be
-     defined in a shared object (if it is not, ld.so will report a
-     runtime error and exit).  The constant 0x010000000 turns the
-     reloc number into a sethi of %g0, which does nothing since %g0 is
-     hardwired to zero.
-
-     When one of these entries is executed, it winds up calling into
-     ld.so.  ld.so looks at the reloc number, available via the return
-     address, to determine which entry this is.  It then looks at the
-     reloc and patches up the entry in the table into a sethi and jmp
-     to the real address followed by a nop.  This means that the reloc
-     lookup only has to happen once, and it also means that the
-     relocation only needs to be done if the function is actually
-     called.  The relocation is expensive because ld.so must look up
-     the symbol by name.
-
-     The size of the procedure linkage table is given by the ld_plt_sz
-     field.  */
-  unsigned long ld_plt;
-
-  /* The address of the relocs.  These are in the same format as
-     ordinary relocs.  Symbol index numbers refer to the symbols
-     pointed to by ld_stab.  I think the only way to determine the
-     number of relocs is to assume that all the bytes from ld_rel to
-     ld_hash contain reloc entries.  */
-  unsigned long ld_rel;
-
-  /* The address of a hash table of symbols.  The hash table has
-     roughly the same number of entries as there are dynamic symbols;
-     I think the only way to get the exact size is to assume that
-     every byte from ld_hash to ld_stab is devoted to the hash table.
-
-     Each entry in the hash table is eight bytes.  The first four
-     bytes are a symbol index into the dynamic symbols.  The second
-     four bytes are the index of the next hash table entry in the
-     bucket.  The ld_buckets field gives the number of buckets, say B.
-     The first B entries in the hash table each start a bucket which
-     is chained through the second four bytes of each entry.  A value
-     of zero ends the chain.
-
-     The hash function is simply
-         h = 0;
-         while (*string != '\0')
-	   h = (h << 1) + *string++;
-	 h &= 0x7fffffff;
-
-     To look up a symbol, compute the hash value of the name.  Take
-     the modulos of hash value and the number of buckets.  Start at
-     that entry in the hash table.  See if the symbol (from the first
-     four bytes of the hash table entry) has the name you are looking
-     for.  If not, use the chain field (the second four bytes of the
-     hash table entry) to move on to the next entry in this bucket.
-     If the chain field is zero you have reached the end of the
-     bucket, and the symbol is not in the hash table.  */ 
-  unsigned long ld_hash;
-
-  /* The address of the symbol table.  This is a list of
-     external_nlist structures.  The string indices are relative to
-     the ld_symbols field.  I think the only way to determine the
-     number of symbols is to assume that all the bytes between ld_stab
-     and ld_symbols are external_nlist structures.  */
-  unsigned long ld_stab;
-
-  /* I don't know what this is for.  It seems to always be zero.  */
-  unsigned long ld_stab_hash;
-
-  /* The number of buckets in the hash table.  */
-  unsigned long ld_buckets;
-
-  /* The address of the symbol string table.  The first string in this
-     string table need not be the empty string.  */
-  unsigned long ld_symbols;
-
-  /* The size in bytes of the symbol string table.  */
-  unsigned long ld_symb_size;
-
-  /* The size in bytes of the text segment.  */
-  unsigned long ld_text;
-
-  /* The size in bytes of the procedure linkage table.  */
-  unsigned long ld_plt_sz;
-};
-
-/* The external form of the structure.  */
-
-struct external_sun4_dynamic_link
-{
-  bfd_byte ld_loaded[4];
-  bfd_byte ld_need[4];
-  bfd_byte ld_rules[4];
-  bfd_byte ld_got[4];
-  bfd_byte ld_plt[4];
-  bfd_byte ld_rel[4];
-  bfd_byte ld_hash[4];
-  bfd_byte ld_stab[4];
-  bfd_byte ld_stab_hash[4];
-  bfd_byte ld_buckets[4];
-  bfd_byte ld_symbols[4];
-  bfd_byte ld_symb_size[4];
-  bfd_byte ld_text[4];
-  bfd_byte ld_plt_sz[4];
-};
diff --git a/include/bfdlink.h b/include/bfdlink.h
deleted file mode 100644
index 761bd05..0000000
--- a/include/bfdlink.h
+++ /dev/null
@@ -1,724 +0,0 @@
-/* bfdlink.h -- header file for BFD link routines
-   Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-   2003, 2004, 2005 Free Software Foundation, Inc.
-   Written by Steve Chamberlain and Ian Lance Taylor, 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef BFDLINK_H
-#define BFDLINK_H
-
-/* Which symbols to strip during a link.  */
-enum bfd_link_strip
-{
-  strip_none,		/* Don't strip any symbols.  */
-  strip_debugger,	/* Strip debugging symbols.  */
-  strip_some,		/* keep_hash is the list of symbols to keep.  */
-  strip_all		/* Strip all symbols.  */
-};
-
-/* Which local symbols to discard during a link.  This is irrelevant
-   if strip_all is used.  */
-enum bfd_link_discard
-{
-  discard_sec_merge,	/* Discard local temporary symbols in SEC_MERGE
-			   sections.  */
-  discard_none,		/* Don't discard any locals.  */
-  discard_l,		/* Discard local temporary symbols.  */
-  discard_all		/* Discard all locals.  */
-};
-
-/* Describes the type of hash table entry structure being used.
-   Different hash table structure have different fields and so
-   support different linking features.  */
-enum bfd_link_hash_table_type
-  {
-    bfd_link_generic_hash_table,
-    bfd_link_elf_hash_table
-  };
-
-/* These are the possible types of an entry in the BFD link hash
-   table.  */
-
-enum bfd_link_hash_type
-{
-  bfd_link_hash_new,		/* Symbol is new.  */
-  bfd_link_hash_undefined,	/* Symbol seen before, but undefined.  */
-  bfd_link_hash_undefweak,	/* Symbol is weak and undefined.  */
-  bfd_link_hash_defined,	/* Symbol is defined.  */
-  bfd_link_hash_defweak,	/* Symbol is weak and defined.  */
-  bfd_link_hash_common,		/* Symbol is common.  */
-  bfd_link_hash_indirect,	/* Symbol is an indirect link.  */
-  bfd_link_hash_warning		/* Like indirect, but warn if referenced.  */
-};
-
-enum bfd_link_common_skip_ar_aymbols
-{
-  bfd_link_common_skip_none,
-  bfd_link_common_skip_text,
-  bfd_link_common_skip_data,
-  bfd_link_common_skip_all
-};
-
-/* The linking routines use a hash table which uses this structure for
-   its elements.  */
-
-struct bfd_link_hash_entry
-{
-  /* Base hash table entry structure.  */
-  struct bfd_hash_entry root;
-
-  /* Type of this entry.  */
-  enum bfd_link_hash_type type;
-
-  /* A union of information depending upon the type.  */
-  union
-    {
-      /* Nothing is kept for bfd_hash_new.  */
-      /* bfd_link_hash_undefined, bfd_link_hash_undefweak.  */
-      struct
-	{
-	  /* Undefined and common symbols are kept in a linked list through
-	     this field.  This field is present in all of the union element
-	     so that we don't need to remove entries from the list when we
-	     change their type.  Removing entries would either require the
-	     list to be doubly linked, which would waste more memory, or
-	     require a traversal.  When an undefined or common symbol is
-	     created, it should be added to this list, the head of which is in
-	     the link hash table itself.  As symbols are defined, they need
-	     not be removed from the list; anything which reads the list must
-	     doublecheck the symbol type.
-
-	     Weak symbols are not kept on this list.
-
-	     Defined and defweak symbols use this field as a reference marker.
-	     If the field is not NULL, or this structure is the tail of the
-	     undefined symbol list, the symbol has been referenced.  If the
-	     symbol is undefined and becomes defined, this field will
-	     automatically be non-NULL since the symbol will have been on the
-	     undefined symbol list.  */
-	  struct bfd_link_hash_entry *next;
-	  bfd *abfd;		/* BFD symbol was found in.  */
-	  bfd *weak;		/* BFD weak symbol was found in.  */
-	} undef;
-      /* bfd_link_hash_defined, bfd_link_hash_defweak.  */
-      struct
-	{
-	  struct bfd_link_hash_entry *next;
-	  asection *section;	/* Symbol section.  */
-	  bfd_vma value;	/* Symbol value.  */
-	} def;
-      /* bfd_link_hash_indirect, bfd_link_hash_warning.  */
-      struct
-	{
-	  struct bfd_link_hash_entry *next;
-	  struct bfd_link_hash_entry *link;	/* Real symbol.  */
-	  const char *warning;	/* Warning (bfd_link_hash_warning only).  */
-	} i;
-      /* bfd_link_hash_common.  */
-      struct
-	{
-	  struct bfd_link_hash_entry *next;
-	  /* The linker needs to know three things about common
-	     symbols: the size, the alignment, and the section in
-	     which the symbol should be placed.  We store the size
-	     here, and we allocate a small structure to hold the
-	     section and the alignment.  The alignment is stored as a
-	     power of two.  We don't store all the information
-	     directly because we don't want to increase the size of
-	     the union; this structure is a major space user in the
-	     linker.  */
-	  struct bfd_link_hash_common_entry
-	    {
-	      unsigned int alignment_power;	/* Alignment.  */
-	      asection *section;		/* Symbol section.  */
-	    } *p;
-	  bfd_size_type size;	/* Common symbol size.  */
-	} c;
-    } u;
-};
-
-/* This is the link hash table.  It is a derived class of
-   bfd_hash_table.  */
-
-struct bfd_link_hash_table
-{
-  /* The hash table itself.  */
-  struct bfd_hash_table table;
-  /* The back end which created this hash table.  This indicates the
-     type of the entries in the hash table, which is sometimes
-     important information when linking object files of different
-     types together.  */
-  const bfd_target *creator;
-  /* A linked list of undefined and common symbols, linked through the
-     next field in the bfd_link_hash_entry structure.  */
-  struct bfd_link_hash_entry *undefs;
-  /* Entries are added to the tail of the undefs list.  */
-  struct bfd_link_hash_entry *undefs_tail;
-  /* The type of the link hash table.  */
-  enum bfd_link_hash_table_type type;
-};
-
-/* Look up an entry in a link hash table.  If FOLLOW is TRUE, this
-   follows bfd_link_hash_indirect and bfd_link_hash_warning links to
-   the real symbol.  */
-extern struct bfd_link_hash_entry *bfd_link_hash_lookup
-  (struct bfd_link_hash_table *, const char *, bfd_boolean create,
-   bfd_boolean copy, bfd_boolean follow);
-
-/* Look up an entry in the main linker hash table if the symbol might
-   be wrapped.  This should only be used for references to an
-   undefined symbol, not for definitions of a symbol.  */
-
-extern struct bfd_link_hash_entry *bfd_wrapped_link_hash_lookup
-  (bfd *, struct bfd_link_info *, const char *, bfd_boolean,
-   bfd_boolean, bfd_boolean);
-
-/* Traverse a link hash table.  */
-extern void bfd_link_hash_traverse
-  (struct bfd_link_hash_table *,
-    bfd_boolean (*) (struct bfd_link_hash_entry *, void *),
-    void *);
-
-/* Add an entry to the undefs list.  */
-extern void bfd_link_add_undef
-  (struct bfd_link_hash_table *, struct bfd_link_hash_entry *);
-
-/* Remove symbols from the undefs list that don't belong there.  */
-extern void bfd_link_repair_undef_list
-  (struct bfd_link_hash_table *table);
-
-struct bfd_sym_chain
-{
-  struct bfd_sym_chain *next;
-  const char *name;
-};
-
-/* How to handle unresolved symbols.
-   There are four possibilities which are enumerated below:  */
-enum report_method
-{
-  /* This is the initial value when then link_info structure is created.
-     It allows the various stages of the linker to determine whether they
-     allowed to set the value.  */
-  RM_NOT_YET_SET = 0,
-  RM_IGNORE,
-  RM_GENERATE_WARNING,
-  RM_GENERATE_ERROR
-};
-
-/* This structure holds all the information needed to communicate
-   between BFD and the linker when doing a link.  */
-
-struct bfd_link_info
-{
-  /* TRUE if BFD should generate a relocatable object file.  */
-  unsigned int relocatable: 1;
-
-  /* TRUE if BFD should generate relocation information in the final
-     executable.  */
-  unsigned int emitrelocations: 1;
-
-  /* TRUE if BFD should generate a "task linked" object file,
-     similar to relocatable but also with globals converted to
-     statics.  */
-  unsigned int task_link: 1;
-
-  /* TRUE if BFD should generate a shared object.  */
-  unsigned int shared: 1;
-
-  /* TRUE if BFD should pre-bind symbols in a shared object.  */
-  unsigned int symbolic: 1;
-
-  /* TRUE if BFD should export all symbols in the dynamic symbol table
-     of an executable, rather than only those used.  */
-  unsigned int export_dynamic: 1;
-
-  /* TRUE if shared objects should be linked directly, not shared.  */
-  unsigned int static_link: 1;
-
-  /* TRUE if the output file should be in a traditional format.  This
-     is equivalent to the setting of the BFD_TRADITIONAL_FORMAT flag
-     on the output file, but may be checked when reading the input
-     files.  */
-  unsigned int traditional_format: 1;
-
-  /* TRUE if we want to produced optimized output files.  This might
-     need much more time and therefore must be explicitly selected.  */
-  unsigned int optimize: 1;
-
-  /* TRUE if ok to have multiple definition.  */
-  unsigned int allow_multiple_definition: 1;
-
-  /* TRUE if ok to have version with no definition.  */
-  unsigned int allow_undefined_version: 1;
-
-  /* TRUE if a default symbol version should be created and used for
-     exported symbols.  */
-  unsigned int create_default_symver: 1;
-
-  /* TRUE if a default symbol version should be created and used for
-     imported symbols.  */
-  unsigned int default_imported_symver: 1;
-
-  /* TRUE if symbols should be retained in memory, FALSE if they
-     should be freed and reread.  */
-  unsigned int keep_memory: 1;
-
-  /* TRUE if every symbol should be reported back via the notice
-     callback.  */
-  unsigned int notice_all: 1;
-
-  /* TRUE if executable should not contain copy relocs.
-     Setting this true may result in a non-sharable text segment.  */
-  unsigned int nocopyreloc: 1;
-
-  /* TRUE if the new ELF dynamic tags are enabled. */
-  unsigned int new_dtags: 1;
-
-  /* TRUE if non-PLT relocs should be merged into one reloc section
-     and sorted so that relocs against the same symbol come together.  */
-  unsigned int combreloc: 1;
-
-  /* TRUE if .eh_frame_hdr section and PT_GNU_EH_FRAME ELF segment
-     should be created.  */
-  unsigned int eh_frame_hdr: 1;
-
-  /* TRUE if global symbols in discarded sections should be stripped.  */
-  unsigned int strip_discarded: 1;
-
-  /* TRUE if generating a position independent executable.  */
-  unsigned int pie: 1;
-
-  /* TRUE if generating an executable, position independent or not.  */
-  unsigned int executable : 1;
-
-  /* TRUE if PT_GNU_STACK segment should be created with PF_R|PF_W|PF_X
-     flags.  */
-  unsigned int execstack: 1;
-
-  /* TRUE if PT_GNU_STACK segment should be created with PF_R|PF_W
-     flags.  */
-  unsigned int noexecstack: 1;
-
-  /* TRUE if PT_GNU_RELRO segment should be created.  */
-  unsigned int relro: 1;
-
-  /* TRUE if we should warn when adding a DT_TEXTREL to a shared object.  */
-  unsigned int warn_shared_textrel: 1;
-
-  /* TRUE if unreferenced sections should be removed.  */
-  unsigned int gc_sections: 1;
-
-  /* TRUE if .hash section should be created.  */
-  unsigned int emit_hash: 1;
-
-  /* TRUE if .gnu.hash section should be created.  */
-  unsigned int emit_gnu_hash: 1;
-
-  /* What to do with unresolved symbols in an object file.
-     When producing executables the default is GENERATE_ERROR.
-     When producing shared libraries the default is IGNORE.  The
-     assumption with shared libraries is that the reference will be
-     resolved at load/execution time.  */
-  enum report_method unresolved_syms_in_objects;
-
-  /* What to do with unresolved symbols in a shared library.
-     The same defaults apply.  */
-  enum report_method unresolved_syms_in_shared_libs;
-
-  /* Which symbols to strip.  */
-  enum bfd_link_strip strip;
-
-  /* Which local symbols to discard.  */
-  enum bfd_link_discard discard;
-
-  /* Criteria for skipping symbols when detemining
-     whether to include an object from an archive. */
-  enum bfd_link_common_skip_ar_aymbols common_skip_ar_aymbols;
-
-  /* Char that may appear as the first char of a symbol, but should be
-     skipped (like symbol_leading_char) when looking up symbols in
-     wrap_hash.  Used by PowerPC Linux for 'dot' symbols.  */
-  char wrap_char;
-
-  /* Function callbacks.  */
-  const struct bfd_link_callbacks *callbacks;
-
-  /* Hash table handled by BFD.  */
-  struct bfd_link_hash_table *hash;
-
-  /* Hash table of symbols to keep.  This is NULL unless strip is
-     strip_some.  */
-  struct bfd_hash_table *keep_hash;
-
-  /* Hash table of symbols to report back via the notice callback.  If
-     this is NULL, and notice_all is FALSE, then no symbols are
-     reported back.  */
-  struct bfd_hash_table *notice_hash;
-
-  /* Hash table of symbols which are being wrapped (the --wrap linker
-     option).  If this is NULL, no symbols are being wrapped.  */
-  struct bfd_hash_table *wrap_hash;
-
-  /* The list of input BFD's involved in the link.  These are chained
-     together via the link_next field.  */
-  bfd *input_bfds;
-
-  /* If a symbol should be created for each input BFD, this is section
-     where those symbols should be placed.  It must be a section in
-     the output BFD.  It may be NULL, in which case no such symbols
-     will be created.  This is to support CREATE_OBJECT_SYMBOLS in the
-     linker command language.  */
-  asection *create_object_symbols_section;
-
-  /* List of global symbol names that are starting points for marking
-     sections against garbage collection.  */
-  struct bfd_sym_chain *gc_sym_list;
-
-  /* If a base output file is wanted, then this points to it */
-  void *base_file;
-
-  /* The function to call when the executable or shared object is
-     loaded.  */
-  const char *init_function;
-
-  /* The function to call when the executable or shared object is
-     unloaded.  */
-  const char *fini_function;
-
-  /* Number of relaxation passes.  Usually only one relaxation pass
-     is needed.  But a backend can have as many relaxation passes as
-     necessary.  During bfd_relax_section call, it is set to the
-     current pass, starting from 0.  */
-  int relax_pass;
-
-  /* Non-zero if auto-import thunks for DATA items in pei386 DLLs
-     should be generated/linked against.  Set to 1 if this feature
-     is explicitly requested by the user, -1 if enabled by default.  */
-  int pei386_auto_import;
-
-  /* Non-zero if runtime relocs for DATA items with non-zero addends
-     in pei386 DLLs should be generated.  Set to 1 if this feature
-     is explicitly requested by the user, -1 if enabled by default.  */
-  int pei386_runtime_pseudo_reloc;
-
-  /* How many spare .dynamic DT_NULL entries should be added?  */
-  unsigned int spare_dynamic_tags;
-
-  /* May be used to set DT_FLAGS for ELF. */
-  bfd_vma flags;
-
-  /* May be used to set DT_FLAGS_1 for ELF. */
-  bfd_vma flags_1;
-
-  /* Start and end of RELRO region.  */
-  bfd_vma relro_start, relro_end;
-};
-
-/* This structures holds a set of callback functions.  These are
-   called by the BFD linker routines.  Except for einfo, the first
-   argument to each callback function is the bfd_link_info structure
-   being used and each function returns a boolean value.  If the
-   function returns FALSE, then the BFD function which called it should
-   return with a failure indication.  */
-
-struct bfd_link_callbacks
-{
-  /* A function which is called when an object is added from an
-     archive.  ABFD is the archive element being added.  NAME is the
-     name of the symbol which caused the archive element to be pulled
-     in.  */
-  bfd_boolean (*add_archive_element)
-    (struct bfd_link_info *, bfd *abfd, const char *name);
-  /* A function which is called when a symbol is found with multiple
-     definitions.  NAME is the symbol which is defined multiple times.
-     OBFD is the old BFD, OSEC is the old section, OVAL is the old
-     value, NBFD is the new BFD, NSEC is the new section, and NVAL is
-     the new value.  OBFD may be NULL.  OSEC and NSEC may be
-     bfd_com_section or bfd_ind_section.  */
-  bfd_boolean (*multiple_definition)
-    (struct bfd_link_info *, const char *name,
-     bfd *obfd, asection *osec, bfd_vma oval,
-     bfd *nbfd, asection *nsec, bfd_vma nval);
-  /* A function which is called when a common symbol is defined
-     multiple times.  NAME is the symbol appearing multiple times.
-     OBFD is the BFD of the existing symbol; it may be NULL if this is
-     not known.  OTYPE is the type of the existing symbol, which may
-     be bfd_link_hash_defined, bfd_link_hash_defweak,
-     bfd_link_hash_common, or bfd_link_hash_indirect.  If OTYPE is
-     bfd_link_hash_common, OSIZE is the size of the existing symbol.
-     NBFD is the BFD of the new symbol.  NTYPE is the type of the new
-     symbol, one of bfd_link_hash_defined, bfd_link_hash_common, or
-     bfd_link_hash_indirect.  If NTYPE is bfd_link_hash_common, NSIZE
-     is the size of the new symbol.  */
-  bfd_boolean (*multiple_common)
-    (struct bfd_link_info *, const char *name,
-     bfd *obfd, enum bfd_link_hash_type otype, bfd_vma osize,
-     bfd *nbfd, enum bfd_link_hash_type ntype, bfd_vma nsize);
-  /* A function which is called to add a symbol to a set.  ENTRY is
-     the link hash table entry for the set itself (e.g.,
-     __CTOR_LIST__).  RELOC is the relocation to use for an entry in
-     the set when generating a relocatable file, and is also used to
-     get the size of the entry when generating an executable file.
-     ABFD, SEC and VALUE identify the value to add to the set.  */
-  bfd_boolean (*add_to_set)
-    (struct bfd_link_info *, struct bfd_link_hash_entry *entry,
-     bfd_reloc_code_real_type reloc, bfd *abfd, asection *sec, bfd_vma value);
-  /* A function which is called when the name of a g++ constructor or
-     destructor is found.  This is only called by some object file
-     formats.  CONSTRUCTOR is TRUE for a constructor, FALSE for a
-     destructor.  This will use BFD_RELOC_CTOR when generating a
-     relocatable file.  NAME is the name of the symbol found.  ABFD,
-     SECTION and VALUE are the value of the symbol.  */
-  bfd_boolean (*constructor)
-    (struct bfd_link_info *, bfd_boolean constructor, const char *name,
-     bfd *abfd, asection *sec, bfd_vma value);
-  /* A function which is called to issue a linker warning.  For
-     example, this is called when there is a reference to a warning
-     symbol.  WARNING is the warning to be issued.  SYMBOL is the name
-     of the symbol which triggered the warning; it may be NULL if
-     there is none.  ABFD, SECTION and ADDRESS identify the location
-     which trigerred the warning; either ABFD or SECTION or both may
-     be NULL if the location is not known.  */
-  bfd_boolean (*warning)
-    (struct bfd_link_info *, const char *warning, const char *symbol,
-     bfd *abfd, asection *section, bfd_vma address);
-  /* A function which is called when a relocation is attempted against
-     an undefined symbol.  NAME is the symbol which is undefined.
-     ABFD, SECTION and ADDRESS identify the location from which the
-     reference is made. FATAL indicates whether an undefined symbol is
-     a fatal error or not. In some cases SECTION may be NULL.  */
-  bfd_boolean (*undefined_symbol)
-    (struct bfd_link_info *, const char *name, bfd *abfd,
-     asection *section, bfd_vma address, bfd_boolean fatal);
-  /* A function which is called when a reloc overflow occurs. ENTRY is
-     the link hash table entry for the symbol the reloc is against.
-     NAME is the name of the local symbol or section the reloc is
-     against, RELOC_NAME is the name of the relocation, and ADDEND is
-     any addend that is used.  ABFD, SECTION and ADDRESS identify the
-     location at which the overflow occurs; if this is the result of a
-     bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
-     ABFD will be NULL.  */
-  bfd_boolean (*reloc_overflow)
-    (struct bfd_link_info *, struct bfd_link_hash_entry *entry,
-     const char *name, const char *reloc_name, bfd_vma addend,
-     bfd *abfd, asection *section, bfd_vma address);
-  /* A function which is called when a dangerous reloc is performed.
-     MESSAGE is an appropriate message.
-     ABFD, SECTION and ADDRESS identify the location at which the
-     problem occurred; if this is the result of a
-     bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
-     ABFD will be NULL.  */
-  bfd_boolean (*reloc_dangerous)
-    (struct bfd_link_info *, const char *message,
-     bfd *abfd, asection *section, bfd_vma address);
-  /* A function which is called when a reloc is found to be attached
-     to a symbol which is not being written out.  NAME is the name of
-     the symbol.  ABFD, SECTION and ADDRESS identify the location of
-     the reloc; if this is the result of a
-     bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
-     ABFD will be NULL.  */
-  bfd_boolean (*unattached_reloc)
-    (struct bfd_link_info *, const char *name,
-     bfd *abfd, asection *section, bfd_vma address);
-  /* A function which is called when a symbol in notice_hash is
-     defined or referenced.  NAME is the symbol.  ABFD, SECTION and
-     ADDRESS are the value of the symbol.  If SECTION is
-     bfd_und_section, this is a reference.  */
-  bfd_boolean (*notice)
-    (struct bfd_link_info *, const char *name,
-     bfd *abfd, asection *section, bfd_vma address);
-  /* General link info message.  */
-  void (*einfo)
-    (const char *fmt, ...);
-};
-
-/* The linker builds link_order structures which tell the code how to
-   include input data in the output file.  */
-
-/* These are the types of link_order structures.  */
-
-enum bfd_link_order_type
-{
-  bfd_undefined_link_order,	/* Undefined.  */
-  bfd_indirect_link_order,	/* Built from a section.  */
-  bfd_data_link_order,		/* Set to explicit data.  */
-  bfd_section_reloc_link_order,	/* Relocate against a section.  */
-  bfd_symbol_reloc_link_order	/* Relocate against a symbol.  */
-};
-
-/* This is the link_order structure itself.  These form a chain
-   attached to the output section whose contents they are describing.  */
-
-struct bfd_link_order
-{
-  /* Next link_order in chain.  */
-  struct bfd_link_order *next;
-  /* Type of link_order.  */
-  enum bfd_link_order_type type;
-  /* Offset within output section.  */
-  bfd_vma offset;
-  /* Size within output section.  */
-  bfd_size_type size;
-  /* Type specific information.  */
-  union
-    {
-      struct
-	{
-	  /* Section to include.  If this is used, then
-	     section->output_section must be the section the
-	     link_order is attached to, section->output_offset must
-	     equal the link_order offset field, and section->size
-	     must equal the link_order size field.  Maybe these
-	     restrictions should be relaxed someday.  */
-	  asection *section;
-	} indirect;
-      struct
-	{
-	  /* Size of contents, or zero when contents size == size
-	     within output section.
-	     A non-zero value allows filling of the output section
-	     with an arbitrary repeated pattern.  */
-	  unsigned int size;
-	  /* Data to put into file.  */
-	  bfd_byte *contents;
-	} data;
-      struct
-	{
-	  /* Description of reloc to generate.  Used for
-	     bfd_section_reloc_link_order and
-	     bfd_symbol_reloc_link_order.  */
-	  struct bfd_link_order_reloc *p;
-	} reloc;
-    } u;
-};
-
-/* A linker order of type bfd_section_reloc_link_order or
-   bfd_symbol_reloc_link_order means to create a reloc against a
-   section or symbol, respectively.  This is used to implement -Ur to
-   generate relocs for the constructor tables.  The
-   bfd_link_order_reloc structure describes the reloc that BFD should
-   create.  It is similar to a arelent, but I didn't use arelent
-   because the linker does not know anything about most symbols, and
-   any asymbol structure it creates will be partially meaningless.
-   This information could logically be in the bfd_link_order struct,
-   but I didn't want to waste the space since these types of relocs
-   are relatively rare.  */
-
-struct bfd_link_order_reloc
-{
-  /* Reloc type.  */
-  bfd_reloc_code_real_type reloc;
-
-  union
-    {
-      /* For type bfd_section_reloc_link_order, this is the section
-	 the reloc should be against.  This must be a section in the
-	 output BFD, not any of the input BFDs.  */
-      asection *section;
-      /* For type bfd_symbol_reloc_link_order, this is the name of the
-	 symbol the reloc should be against.  */
-      const char *name;
-    } u;
-
-  /* Addend to use.  The object file should contain zero.  The BFD
-     backend is responsible for filling in the contents of the object
-     file correctly.  For some object file formats (e.g., COFF) the
-     addend must be stored into in the object file, and for some
-     (e.g., SPARC a.out) it is kept in the reloc.  */
-  bfd_vma addend;
-};
-
-/* Allocate a new link_order for a section.  */
-extern struct bfd_link_order *bfd_new_link_order (bfd *, asection *);
-
-/* These structures are used to describe version information for the
-   ELF linker.  These structures could be manipulated entirely inside
-   BFD, but it would be a pain.  Instead, the regular linker sets up
-   these structures, and then passes them into BFD.  */
-
-/* Glob pattern for a version.  */
-
-struct bfd_elf_version_expr
-{
-  /* Next glob pattern for this version.  */
-  struct bfd_elf_version_expr *next;
-  /* Glob pattern.  */
-  const char *pattern;
-  /* NULL for a glob pattern, otherwise a straight symbol.  */
-  const char *symbol;
-  /* Defined by ".symver".  */
-  unsigned int symver : 1;
-  /* Defined by version script.  */
-  unsigned int script : 1;
-  /* Pattern type.  */
-#define BFD_ELF_VERSION_C_TYPE		1
-#define BFD_ELF_VERSION_CXX_TYPE	2
-#define BFD_ELF_VERSION_JAVA_TYPE	4
-  unsigned int mask : 3;
-};
-
-struct bfd_elf_version_expr_head
-{
-  /* List of all patterns, both wildcards and non-wildcards.  */
-  struct bfd_elf_version_expr *list;
-  /* Hash table for non-wildcards.  */
-  void *htab;
-  /* Remaining patterns.  */
-  struct bfd_elf_version_expr *remaining;
-  /* What kind of pattern types are present in list (bitmask).  */
-  unsigned int mask;
-};
-
-/* Version dependencies.  */
-
-struct bfd_elf_version_deps
-{
-  /* Next dependency for this version.  */
-  struct bfd_elf_version_deps *next;
-  /* The version which this version depends upon.  */
-  struct bfd_elf_version_tree *version_needed;
-};
-
-/* A node in the version tree.  */
-
-struct bfd_elf_version_tree
-{
-  /* Next version.  */
-  struct bfd_elf_version_tree *next;
-  /* Name of this version.  */
-  const char *name;
-  /* Version number.  */
-  unsigned int vernum;
-  /* Regular expressions for global symbols in this version.  */
-  struct bfd_elf_version_expr_head globals;
-  /* Regular expressions for local symbols in this version.  */
-  struct bfd_elf_version_expr_head locals;
-  /* List of versions which this version depends upon.  */
-  struct bfd_elf_version_deps *deps;
-  /* Index of the version name.  This is used within BFD.  */
-  unsigned int name_indx;
-  /* Whether this version tree was used.  This is used within BFD.  */
-  int used;
-  /* Matching hook.  */
-  struct bfd_elf_version_expr *(*match)
-    (struct bfd_elf_version_expr_head *head,
-     struct bfd_elf_version_expr *prev, const char *sym);
-};
-
-#endif
diff --git a/include/bin-bugs.h b/include/bin-bugs.h
deleted file mode 100644
index 63901b0..0000000
--- a/include/bin-bugs.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#ifndef REPORT_BUGS_TO
-#define REPORT_BUGS_TO	"<URL:http://www.sourceware.org/bugzilla/>"
-#endif
diff --git a/include/bout.h b/include/bout.h
deleted file mode 100644
index 66a7bcf..0000000
--- a/include/bout.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/* This file is a modified version of 'a.out.h'.  It is to be used in all
-   GNU tools modified to support the i80960 (or tools that operate on
-   object files created by such tools).
-   
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
- 
-/* All i80960 development is done in a CROSS-DEVELOPMENT environment.  I.e.,
-   object code is generated on, and executed under the direction of a symbolic
-   debugger running on, a host system.  We do not want to be subject to the
-   vagaries of which host it is or whether it supports COFF or a.out format,
-   or anything else.  We DO want to:
-  
-  	o always generate the same format object files, regardless of host.
- 
- 	o have an 'a.out' header that we can modify for our own purposes
- 	  (the 80960 is typically an embedded processor and may require
- 	  enhanced linker support that the normal a.out.h header can't
- 	  accommodate).
- 
-  As for byte-ordering, the following rules apply:
- 
- 	o Text and data that is actually downloaded to the target is always
- 	  in i80960 (little-endian) order.
- 
- 	o All other numbers (in the header, symbols, relocation directives)
- 	  are in host byte-order:  object files CANNOT be lifted from a
- 	  little-end host and used on a big-endian (or vice versa) without
- 	  modification.
-  ==> THIS IS NO LONGER TRUE USING BFD.  WE CAN GENERATE ANY BYTE ORDER
-      FOR THE HEADER, AND READ ANY BYTE ORDER.  PREFERENCE WOULD BE TO
-      USE LITTLE-ENDIAN BYTE ORDER THROUGHOUT, REGARDLESS OF HOST.  <==
- 
- 	o The downloader ('comm960') takes care to generate a pseudo-header
- 	  with correct (i80960) byte-ordering before shipping text and data
- 	  off to the NINDY monitor in the target systems.  Symbols and
- 	  relocation info are never sent to the target.  */
-
-#define BMAGIC	0415
-/* We don't accept the following (see N_BADMAG macro).
-   They're just here so GNU code will compile.  */
-#define	OMAGIC	0407		/* old impure format */
-#define	NMAGIC	0410		/* read-only text */
-#define	ZMAGIC	0413		/* demand load format */
-
-/* FILE HEADER
-  	All 'lengths' are given as a number of bytes.
-  	All 'alignments' are for relinkable files only;  an alignment of
-  		'n' indicates the corresponding segment must begin at an
-  		address that is a multiple of (2**n).  */
-struct external_exec
-  {
-    /* Standard stuff */
-    unsigned char e_info[4];	/* Identifies this as a b.out file */
-    unsigned char e_text[4];	/* Length of text */
-    unsigned char e_data[4];	/* Length of data */
-    unsigned char e_bss[4];	/* Length of uninitialized data area */
-    unsigned char e_syms[4];	/* Length of symbol table */
-    unsigned char e_entry[4];	/* Runtime start address */
-    unsigned char e_trsize[4];	/* Length of text relocation info */
-    unsigned char e_drsize[4];	/* Length of data relocation info */
-
-    /* Added for i960 */
-    unsigned char e_tload[4];	/* Text runtime load address */
-    unsigned char e_dload[4];	/* Data runtime load address */
-    unsigned char e_talign[1];	/* Alignment of text segment */
-    unsigned char e_dalign[1];	/* Alignment of data segment */
-    unsigned char e_balign[1];	/* Alignment of bss segment */
-    unsigned char e_relaxable[1];/* Assembled with enough info to allow linker to relax */
-  };
-
-#define	EXEC_BYTES_SIZE	(sizeof (struct external_exec))
-
-/* These macros use the a_xxx field names, since they operate on the exec
-   structure after it's been byte-swapped and realigned on the host machine.  */
-#define N_BADMAG(x)	(((x).a_info)!=BMAGIC)
-#define N_TXTOFF(x)	EXEC_BYTES_SIZE
-#define N_DATOFF(x)	( N_TXTOFF(x) + (x).a_text )
-#define N_TROFF(x)	( N_DATOFF(x) + (x).a_data )
-#define N_TRELOFF	N_TROFF
-#define N_DROFF(x)	( N_TROFF(x) + (x).a_trsize )
-#define N_DRELOFF	N_DROFF
-#define N_SYMOFF(x)	( N_DROFF(x) + (x).a_drsize )
-#define N_STROFF(x)	( N_SYMOFF(x) + (x).a_syms )
-#define N_DATADDR(x)	( (x).a_dload )    
-
-/* Address of text segment in memory after it is loaded.  */
-#if !defined (N_TXTADDR)
-#define N_TXTADDR(x) 0
-#endif
-
-/* A single entry in the symbol table.  */
-struct nlist
-  {
-    union
-      {
-	char*          n_name;
-	struct nlist * n_next;
-	long	       n_strx;	/* Index into string table	*/
-      } n_un;
-
-    unsigned char n_type;	/* See below				*/
-    char	  n_other;	/* Used in i80960 support -- see below	*/
-    short	  n_desc;
-    unsigned long n_value;
-  };
-
-
-/* Legal values of n_type.  */
-#define N_UNDF	0	/* Undefined symbol	*/
-#define N_ABS	2	/* Absolute symbol	*/
-#define N_TEXT	4	/* Text symbol		*/
-#define N_DATA	6	/* Data symbol		*/
-#define N_BSS	8	/* BSS symbol		*/
-#define N_FN	31	/* Filename symbol	*/
-
-#define N_EXT	1	/* External symbol (OR'd in with one of above)	*/
-#define N_TYPE	036	/* Mask for all the type bits			*/
-#define N_STAB	0340	/* Mask for all bits used for SDB entries 	*/
-
-/* MEANING OF 'n_other'
- 
-  If non-zero, the 'n_other' fields indicates either a leaf procedure or
-  a system procedure, as follows:
- 
- 	1 <= n_other <= 32 :
- 		The symbol is the entry point to a system procedure.
- 		'n_value' is the address of the entry, as for any other
- 		procedure.  The system procedure number (which can be used in
- 		a 'calls' instruction) is (n_other-1).  These entries come from
- 		'.sysproc' directives.
- 
- 	n_other == N_CALLNAME
- 		the symbol is the 'call' entry point to a leaf procedure.
- 		The *next* symbol in the symbol table must be the corresponding
- 		'bal' entry point to the procedure (see following).  These
- 		entries come from '.leafproc' directives in which two different
- 		symbols are specified (the first one is represented here).
- 	
- 
- 	n_other == N_BALNAME
- 		the symbol is the 'bal' entry point to a leaf procedure.
- 		These entries result from '.leafproc' directives in which only
- 		one symbol is specified, or in which the same symbol is
- 		specified twice.
- 
-  Note that an N_CALLNAME entry *must* have a corresponding N_BALNAME entry,
-  but not every N_BALNAME entry must have an N_CALLNAME entry.  */
-#define N_CALLNAME	((char)-1)
-#define N_BALNAME	((char)-2)
-#define IS_CALLNAME(x)	(N_CALLNAME == (x))
-#define IS_BALNAME(x)	(N_BALNAME == (x))
-#define IS_OTHER(x)	((x)>0 && (x) <=32)
-
-#define b_out_relocation_info relocation_info
-struct relocation_info
-  {
-    int	 r_address;	/* File address of item to be relocated.  */
-    unsigned
-#define r_index r_symbolnum
-    r_symbolnum:24,	/* Index of symbol on which relocation is based,
-			   if r_extern is set.  Otherwise set to
-			   either N_TEXT, N_DATA, or N_BSS to
-			   indicate section on which relocation is
-			   based.  */
-      r_pcrel:1,	/* 1 => relocate PC-relative; else absolute
-			   On i960, pc-relative implies 24-bit
-			   address, absolute implies 32-bit.  */
-      r_length:2,	/* Number of bytes to relocate:
-			   0 => 1 byte
-			   1 => 2 bytes -- used for 13 bit pcrel
-			   2 => 4 bytes.  */
-      r_extern:1,
-      r_bsr:1,		/* Something for the GNU NS32K assembler.  */
-      r_disp:1,		/* Something for the GNU NS32K assembler.  */
-      r_callj:1,	/* 1 if relocation target is an i960 'callj'.  */
-      r_relaxable:1;	/* 1 if enough info is left to relax the data.  */
-};
diff --git a/include/coff/ChangeLog b/include/coff/ChangeLog
deleted file mode 100644
index f41c115..0000000
--- a/include/coff/ChangeLog
+++ /dev/null
@@ -1,70 +0,0 @@
-2006-02-05  Arnold Metselaar  <arnold.metselaar@planet.nl>
-
-	* internal.h: Add relocation number R_IMM24 for Z80.
-
-2005-10-25  Arnold Metselaar  <arnold.metselaar@planet.nl>
-
-	* internal.h: Add relocation number for Z80
-	* z80.h: New file.
-
-2005-08-18  Alan Modra  <amodra@bigpond.net.au>
-
-	* a29k.h: Delete.
-
-2005-07-14  Daniel Marques  <marques@cs.cornell.edu>
-
-	* alpha.h (ALPHA_ECOFF_COMPRESSEDMAG): Define.
-	* ecoff.h (ALPHA_MAGIC_COMPRESSED): Define.
-
-2005-05-10  Nick Clifton  <nickc@redhat.com>
-
-	* Update the address and phone number of the FSF organization in
-	the GPL notices in the following files:
-	a29k.h,	alpha.h, apollo.h, arm.h, aux-coff.h, ecoff.h, external.h,
-	go32exe.h, h8300.h, h8500.h, i386.h, i860.h, i960.h, ia64.h,
-	internal.h, m68k.h, m88k.h, maxq.h, mcore.h, mips.h, mipspe.h,
-	or32.h, pe.h, powerpc.h, rs6k64.h, sh.h, sparc.h, ti.h, tic30.h,
-	tic4x.h, tic54x.h, tic80.h, w65.h, we32k.h, xcoff.h, z8k.h
-	
-2005-02-21  Alan Modra  <amodra@bigpond.net.au>
-
-	* xcoff.h (struct xcoff_loader_info): Warning fix.
-
-2005-01-10  Inderpreet Singh <inderpreetb@noida.hcltech.com>
-
-	* maxq.h (F_MAXQ10, F_MAXQ20): Define.
-
-2004-11-08  Inderpreet Singh   <inderpreetb@nioda.hcltech.com>
-	    Vineet Sharma      <vineets@noida.hcltech.com>
-
-	* maxq.h: New file: Defintions for the maxq port.
-
-2004-11-08  Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com>
-
-	* pe.h (IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY): Define.
-	(IMAGE_WEAK_EXTERN_SEARCH_LIBRARY): Same.
-	(IMAGE_WEAK_EXTERN_SEARCH_ALIAS): Same.
-
-2004-08-13  Mark Kettenis  <kettenis@gnu.org>
-
-	* symconst.h (langMax): Fix typo in comment.
-
-2004-04-23  Chris Demetriou  <cgd@broadcom.com>
-
-	* mips.h (MIPS_R_RELHI, MIPS_R_RELLO, MIPS_R_SWITCH): Remove
-	(MIPS_R_PCREL16): Update comment.
-	* ecoff.h (struct ecoff_value_adjust): Remove structure.
-	(struct ecoff_debug_info): Remove 'adjust' member.
-
-2004-04-20  DJ Delorie  <dj@redhat.com>
-
-	* internal.h (R_SECREL32): Add.
-
-For older changes see ChangeLog-9103
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/include/coff/ChangeLog-9103 b/include/coff/ChangeLog-9103
deleted file mode 100644
index 98a7784..0000000
--- a/include/coff/ChangeLog-9103
+++ /dev/null
@@ -1,1177 +0,0 @@
-2005-04-13  H.J. Lu  <hongjiu.lu@intel.com>
-
-	Moved from ../ChangeLog
-
-	2003-04-04  Svein E. Seldal  <Svein.Seldal@solidas.com>
-	* tic4x.h: Namespace cleanup. Replace s/c4x/tic4x
-	and s/c3x/tic3x/
-
-	2003-01-20  Svein E. Seldal  <Svein.Seldal@solidas.com>
-	* tic4x.h (TICOFF_TARGET_MACHINE_GET): Fixed define bug
-	* ti.h (TICOFF_TARGET_MACHINE_GET): Added macros
-
-	2002-08-28  Michael Hayes <m.hayes@elec.canterbury.ac.nz>
-	* internal.h: Add new relocation types.
-	* ti.h: Add file-header flags for tic4x code.
-	* tic4x.h: New file
-
-2003-12-02  Graham Reed <grahamr@algorithmics.com>
-
-	* internal.h (C_WEAKEXT): Add alternative value for AIX 5.2
-	based targets.
-
-2003-08-23  Jason Eckhardt  <jle@rice.edu>
-
-	* coff/i860.h (COFF860_R_PAIR, COFF860_R_LOW0, COFF860_R_LOW1,
-	COFF860_R_LOW2, COFF860_R_LOW3, COFF860_R_LOW4, COFF860_R_SPLIT0,
-	COFF860_R_SPLIT1, COFF860_R_SPLIT2, COFF860_R_HIGHADJ,
-	COFF860_R_BRADDR): Define new relocation constants and document.
-	Minor formatting adjustments.
-
-2003-08-07  Alan Modra  <amodra@bigpond.net.au>
-
-	* ti.h (GET_SCNHDR_NRELOC): Rename PTR param to LOC.
-	(PUT_SCNHDR_NRELOC, GET_SCNHDR_NLNNO, PUT_SCNHDR_NLNNO): Likewise.
-	(GET_SCNHDR_FLAGS, PUT_SCNHDR_FLAGS): Likewise.
-	(GET_SCNHDR_PAGE, PUT_SCNHDR_PAGE): Likewise.
-
-2003-07-17  Jeff Muizelaar  <muizelaar@rogers.com>
-
-	* pe.h: (IMAGE_FILE_NET_RUN_FROM_SWAP): Define.
-	(IMAGE_FILE_MACHINE_WCEMIPSV2): Define.
-	(IMAGE_FILE_MACHINE_SH3DSP): Define.
-	(IMAGE_FILE_MACHINE_SH3E): Define.
-	(IMAGE_FILE_MACHINE_SH5): Define.
-	(IMAGE_FILE_MACHINE_AM33): Define.
-	(IMAGE_FILE_MACHINE_POWERPCFP): Define.
-	(IMAGE_FILE_MACHINE_AXP64): Define.
-	(IMAGE_FILE_MACHINE_TRICORE): Define.
-	(IMAGE_FILE_MACHINE_CEF): Define.
-	(IMAGE_FILE_MACHINE_EBC): Define.
-	(IMAGE_FILE_MACHINE_AMD64): Define.
-	(IMAGE_FILE_MACHINE_M32R): Define.
-	(IMAGE_FILE_MACHINE_CEE): Define.
-
-2003-07-14  Christian Groessler  <chris@groessler.org>
-
-        * i860.h (AOUTSZ): Define for i860 coff.
-
-2003-06-29  Andreas Jaeger  <aj@suse.de>
-
-	* xcoff.h (struct __rtinit ): Convert to ISO C90 prototypes.
-
-	* ecoff.h: Convert to ISO C90 prototypes.  Replace PTR by void *.
-
-2003-04-24 Dhananjay Deshpande <dhananjayd@kpitcummins.com>
-
-	* coff/h8300.h (H8300HNMAGIC, H8300SNMAGIC): New.
-	(H8300HNBADMAG, H8300SNBADMAG): New.
-
-2003-04-15  Rohit Kumar Srivastava <rohits@kpitcummins.com>
-
-	* sh.h: Replace occurrances of 'Hitachi' with 'Renesas'.
-	* h8300.h: Likewise.
-	* h8500.h: Likewise.
-
-2003-03-25  Stan Cox   <scox@redhat.com>
-	    Nick Clifton  <nickc@redhat.com>
-
-	Contribute support for Intel's iWMMXt chip - an	ARM variant:
-
-	* arm.h (ARM_NOTE_SECTION): Define.
-
-2002-11-30  Alan Modra  <amodra@bigpond.net.au>
-
-	* ecoff.h: Replace boolean with bfd_boolean.
-	* xcoff.h: Likewise.
-
-2002-03-18  Tom Rix  <trix@redhat.com>
-
-	* rs6k64.h: Add U64_TOCMAGIC, AIX 5 64 bit magic number.
-
-2002-02-01  Tom Rix  <trix@redhat.com>
-
-	* xcoff.h: Conditionally support <aiaff> for pre AIX 4.3.
-
-2002-01-31  Ivan Guzvinec  <ivang@opencores.org>
-
-	* or32.h: New file.
-
-2001-12-24  Tom Rix  <trix@redhat.com>
-
-	* xcoff.h (xcoff_big_format_p): Make <bigaf> the default archive
-	format.
-	(XCOFFARMAG_ELEMENT_SIZE, XCOFFARMAGBIG_ELEMENT_SIZE): Define for
-	archive header ascii elements.
-
-2001-12-17  Tom Rix  <trix@redhat.com>
-
-	* xcoff.h :  Add .except and .typchk section string and styp flags.
-	Fix xcoff_big_format_p macro.
-
-2001-12-16  Tom Rix  <trix@redhat.com>
-
-	* xcoff.h : Clean up formatting.
-
-2002-01-15  Richard Earnshaw  <rearnsha@arm.com>
-
-	* arm.h (F_VFP_FLOAT): Define.
-
-2001-11-11  Timothy Wall  <twall@alum.mit.edu>
-
-	* ti.h: Move arch-specific stuff from here...
-	(COFF_ADJUST_SYM_IN/OUT): Optionally put page flag into symbol
-	value.
-	* tic54x.h: ...to here.
-
-2001-10-26  Christian Groessler  <cpg@aladdin.de>
-
-	* external.h (GET_LINENO_LNNO): Fix usage of H_GET_32/16.
-	(PUT_LINENO_LNNO): Likewise with H_PUT_32/16.
-
-2001-09-21  Nick Clifton  <nickc@cambridge.redhat.com>
-
-	* ti.h (GET_SCNHDR_PAGE): Fix compile time warning.
-
-2001-09-18  Alan Modra  <amodra@bigpond.net.au>
-
-	* external.h (GET_LINENO_LNNO): Use H_GET_32/16.
-	(PUT_LINENO_LNNO): Use H_PUT_32/16.
-	* m88k.h (GET_LNSZ_SIZE, GET_LNSZ_LNNO, GET_SCN_NRELOC,
-	GET_SCN_NLINNO): Use H_GET_32.
-	(PUT_LNSZ_LNNO, PUT_LNSZ_SIZE, PUT_SCN_NRELOC, PUT_SCN_NLINNO):
-	Use H_PUT_32.
-	* ti.h: Formatting fixes.  Make use of H_GET_* and H_PUT_* throughout.
-	* xcoff.h: White space changes.
-
-2001-09-05  Tom Rix <trix@redhat.com>
-
-	* xcoff.h : Add XCOFF_SYSCALL32 and XCOFF_SYSCALL64 hash table flags.
-
-2001-08-27  Andreas Jaeger  <aj@suse.de>
-
-	* xcoff.h (struct __rtinit): Make proper prototype for rtl.
-
-Fri Aug 24 01:18:51 2001  J"orn Rennecke <amylaar@redhat.com>
-
-	* internal.h (R_JMP2, R_JMPL2, R_MOVL2): Comment spelling fix.
-
-2001-04-05  Tom Rix <trix@redhat.com>
-
-	* rs6000.h : move xcoff32 external structures from xcofflink.
-	* rs6k64.h : move xcoff64 external structures from xcofflink.
-	* internal.h : promote 32 bit structure elements to 64 bit
-	for xcoff64 support
-	* xcoff.h : New file.
-
-2001-03-23  Nick Clifton  <nickc@redhat.com>
-
-	* a29k.h: Fix compile time warning.
-	* external.h: Fix compile time warning.
-	* m88k.h: Fix compile time warning.
-
-2001-03-13  Nick Clifton  <nickc@redhat.com>
-
-	* external.h: New file. Common structure definitions found in
-	other COFF header files.
-
-	* a29k.h: Use external.h.
-	* apollo.h: Use external.h.
-	* arm.h: Use external.h.
-	* h8300.h: Use external.h.
-	* h8500.h: Use external.h.
-	* i386.h: Use external.h.
-	* i860.h: Use external.h.
-	* ia64.h: Use external.h.
-	* m68k.h: Use external.h.
-	* m88k.h: Use external.h.
-	* mcore.h: Use external.h.
-	* mips.h: Use external.h.
-	* mipspe.h: Use external.h.
-	* powerpc.h: Use external.h.
-	* rs6000.h: Use external.h.
-	* rs6k64.h: Use external.h.
-	* sh.h: Use external.h.
-	* sparc.h: Use external.h.
-	* tic30.h: Use external.h.
-	* tic80.h: Use external.h.
-	* w65.h: Use external.h.
-	* we32k.h: Use external.h.
-	* z8k.h: Use external.h.
-
-2001-02-09  David Mosberger  <davidm@hpl.hp.com>
-
-	* pe.h (PEPAOUTSZ): Rename from PEP64AOUTSZ.
-	Rename from PEPAOUTHDR.
-
-2001-01-23  H.J. Lu  <hjl@gnu.org>
-
-	* pe.h (struct external_PEI_DOS_hdr): New.
-	(struct external_PEI_IMAGE_hdr): New.
-
-2000-12-11  Alan Modra  <alan@linuxcare.com.au>
-
-	* ti.h (OCTETS_PER_BYTE_POWER): Change #warning to #error.
-
-2000-12-08  Alan Modra  <alan@linuxcare.com.au>
-
-	* ti.h (OCTETS_PER_BYTE_POWER): Change #warn to #warning.
-
-2000-06-30  DJ Delorie  <dj@cygnus.com>
-
-	* pe.h: Clarify a comment.
-
-2000-05-05  Clinton Popetz  <cpopetz@cygnus.com>
-
-	* rs6k64.h (U802TOC64MAGIC): Change to U803XTOCMAGIC.
-
-2000-04-24  Clinton Popetz  <cpopetz@cygnus.com>
-
-	* rs6k64.h: New file.
-
-2000-04-17  Timothy Wall  <twall@cygnus.com>
-
-	* ti.h: Load page cleanup.
-	* intental.h: Add load page field.
-
-Mon Apr 17 16:44:01 2000  David Mosberger  <davidm@hpl.hp.com>
-
-	* pe.h (PEP64AOUTHDR): New header for PE+.
-	(PEP64AOUTSZ): New macro.
-	(IMAGE_SUBSYSTEM_UNKNOWN): New macro.
-	(IMAGE_SUBSYSTEM_NATIVE): Ditto.
-	(IMAGE_SUBSYSTEM_WINDOWS_GUI): Ditto.
-	(IMAGE_SUBSYSTEM_WINDOWS_CUI): Ditto.
-	(IMAGE_SUBSYSTEM_POSIX_CUI): Ditto.
-	(IMAGE_SUBSYSTEM_WINDOWS_CE_GUI): Ditto.
-	(IMAGE_SUBSYSTEM_EFI_APPLICATION): Ditto.
-	(IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER): Ditto.
-	(IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER): Ditto.
-	* internal.h (PE_DEF_FILE_ALIGNMENT): Define only if not defined
-	already.
-	* ia64.h: New file.
-
-2000-04-13  Alan Modra  <alan@linuxcare.com.au>
-
-	* ti.h (ADDR_MASK): Don't use ul suffix on constants.
-	(PG_MASK): Ditto.
-
-2000-04-11  Timothy Wall  <twall@cygnus.com>
-
-	* ti.h: Remove load page references until load pages are
-	reimplemented.
-	* tic54x.h: Ditto.
-
-2000-04-07  Timothy Wall  <twall@cygnus.com>
-
-	* internal.h: Fix some comments related to TI COFF (instead of tic80).
-	* ti.h: New.
-	* tic54x.h: New.
-
-Wed Apr  5 22:08:41 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* sh.h (R_SH_LOOP_START, R_SH_LOOP_END): Define.
-
-2000-03-15  Kazu Hirata  <kazu@hxi.com>
-
-	* internal.h: Fix a typo in the comment for R_MOVL2.
-
-2000-02-28  Nick Clifton  <nickc@cygnus.com>
-
-	* mipspe.h (MIPS_PE_MAGIC): Define.
-	* sh.h (SH_PE_MAGIC): Define.
-
-2000-02-22  Nick Clifton  <nickc@cygnus.com>  DJ Delorie <dj@cygnus.com>
-
-	* sh.h: Add Windows CE definitions.
-	* arm.h: Add Windows CE definitions.
-	* mipspe.h: New file: Windows CE definitions for MIPS.
-	* pe.h: Add constants for ILF support.
-
-2000-01-05  Nick Clifton  <nickc@cygnus.com>
-
-	* pe.h: Fix formatting of comments.
-	(IMAGE_FILE_AGGRESSIVE_WS_TRIM): Define.
-	(IMAGE_FILE_LARGE_ADDRESS_AWARE): Define.
-	(IMAGE_FILE_16BIT_MACHINE): Define.
-	(IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP): Define.
-	(IMAGE_FILE_UP_SYSTEM_ONLY): Define.
-	(IMAGE_FILE_MACHINE_UNKNOWN): Define.
-	(IMAGE_FILE_MACHINE_ALPHA): Define.
-	(IMAGE_FILE_MACHINE_ALPHA64): Define.
-	(IMAGE_FILE_MACHINE_I386): Define.
-	(IMAGE_FILE_MACHINE_IA64): Define.
-	(IMAGE_FILE_MACHINE_M68K): Define.
-	(IMAGE_FILE_MACHINE_MIPS16): Define.
-	(IMAGE_FILE_MACHINE_MIPSFPU): Define.
-	(IMAGE_FILE_MACHINE_MIPSFPU16): Define.
-	(IMAGE_FILE_MACHINE_POWERPC): Define.
-	(IMAGE_FILE_MACHINE_R3000): Define.
-	(IMAGE_FILE_MACHINE_R4000): Define.
-	(IMAGE_FILE_MACHINE_R10000): Define.
-	(IMAGE_FILE_MACHINE_SH3): Define.
-	(IMAGE_FILE_MACHINE_SH4): Define.
-	(IMAGE_FILE_MACHINE_THUMB): Define.
-
-1999-09-20  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* internal.h: Delete bogus R_PCLONG, duplicate R_RELBYTE and
-	R_RELWORD, and rewrite some R_* as decimal.
-
-1999-09-06  Donn Terry  <donn@interix.com>
-
-	* internal.h (DTYPE): Define.
-	* pe.h (struct external_PEI_filehdr): Rename from
-	external_PE_filehdr.  Define even if COFF_IMAGE_WITH_PE is not
-	defined.
-
-1999-07-17  Nick Clifton  <nickc@cygnus.com>
-
-	* arm.h (F_SOFT_FLOAT): Rename from F_SOFTFLOAT.
-
-1999-06-21  Philip Blundell  <pb@nexus.co.uk>
-
-	* arm.h (F_SOFTFLOAT): Define.
-
-1999-07-05  Nick Clifton  <nickc@cygnus.com>
-
-	* arm.h (F_ARM_5): Define.
-
-Wed Jun  2 18:08:18 1999  Richard Henderson  <rth@cygnus.com>
-
-	* internal.h (BEOS_EXE_IMAGE_BASE, BEOS_DLL_IMAGE_BASE): New.
-
-Mon May 17 13:35:35 1999  Stan Cox  <scox@cygnus.com>
-
-	* arm.h (F_PIC, F_ARM_2, F_ARM_2a, F_ARM_3, F_ARM_3M,
-	F_ARM_4, F_ARM_4T, F_APCS26): Changed values to distinguish
-	F_ARM_2a, F_ARM_3M, F_ARM_4T.
-
-1999-05-15  Nick Clifton  <nickc@cygnus.com>
-
-	* mcore.h (IMAGE_REL_MCORE_RVA): Define.
-
-1999-04-21  Nick Clifton  <nickc@cygnus.com>
-
-	* mcore.h (GET_LINENO_LNNO): New macro.
-	(PUT_LINENO_LNNO): New macro.
-
-1999-04-08  Nick Clifton  <nickc@cygnus.com>
-
-	* mcore.h: New header file.  Defines for Motorola's MCore
-	processor.
-
-Sun Dec  6 21:36:37 1998  Mark Elbrecht  <snowball3@usa.net>
-
-	* internal.h (C_WEAKEXT): Define.
-
-Wed Jan 27 13:35:35 1999  Stan Cox  <scox@cygnus.com>
-
-	* arm.h (F_PIC_INT, F_ARM_2, F_ARM_3, F_ARM_4, F_APCS26):
-	Changed values to avoid clashing with IMAGE_FILE_* coff header
-	flag values.
-
-Wed Apr  1 16:06:15 1998  Nick Clifton  <nickc@cygnus.com>
-
-	* internal.h: Document numbers associated with Thumb symbol
-	types.
-
-Fri Mar 27 17:16:57 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* internal.h (ISPTR, ISFCN, ISARY): Add casts to unsigned long.
-
-Mon Feb  2 17:10:38 1998  Steve Haworth  <steve@pm.cse.rmit.EDU.AU>
-
-	* tic30.h: New file.
-
-Fri Dec 12 11:49:07 1997  Fred Fish  <fnf@cygnus.com>
-
-	* tic80.h (R_MPPCR15W): New relocation type, for 15 bit PC relative
-	offsets.
-
-Tue Dec  2 10:21:40 1997  Nick Clifton  <nickc@cygnus.com>
-
-	* arm.h (COFFARM): New define.
-
-Mon Dec  1 20:24:18 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* sh.h (R_SH_SWITCH8): New.
-
-Sat Nov 22 15:10:14 1997  Nick Clifton  <nickc@cygnus.com>
-
-	* internal.h (C_THUMBEXTFUNC, C_THUMBSTATFUNC): Constants to
-	define static and external functions.
-
-	* arm.h: Add bits to support PIC and APCS-FLOAT type binaries,
-	when implemented.
-
-Fri Oct  3 14:25:17 1997  Fred Fish  <fnf@cygnus.com>
-
-	* tic80.h (R_PPL16B): Make constant uppercase for consistency.
-
-Tue Jul 22 18:18:58 1997  Robert Hoehne <robert.hoehne@Mathematik.TU-Chemnitz.DE>
-
-	* go32exe.h: New file.
-
-Tue Jul  8 12:23:55 1997  Fred Fish  <fnf@cygnus.com>
-
-	* tic80.h (TIC80_TARGET_ID): Add define.
-	* internal.h (struct internal_filehdr): Add f_target_id field.
-
-Tue Jun  3 16:44:18 1997  Nick Clifton  <nickc@cygnus.com>
-
-	* internal.h: Add storage classes for Thumb symbols
-
-Mon May 26 14:07:55 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* tic80.h (R_PPL16B): Correct value.
-
-Tue May 13 10:21:14 1997  Nick Clifton  <nickc@cygnus.com>
-
-	* arm.h (constants):   Added new flag bits F_APCS_26 and
-	F_APCS_SET for the f_flags field of the filehdr structure.  Added new
-	flags: F_APCS26, F_ARM_2, F_ARM_3, F_ARM_7, F_ARM_7T to store
-	information in the flags field of the internal_f structure used by BFD
-	routines.
-
-Sat May  3 08:24:59 1997  Fred Fish  <fnf@cygnus.com>
-
-	* internal.h (C_UEXT, C_STATLAB, C_EXTLAB, C_SYSTEM):
-	New storage classes for TIc80.
-
-Fri Apr 18 11:52:55 1997  Niklas Hallqvist  <niklas@appli.se>
-
-	* alpha.h (ALPHA_ECOFF_BADMAG): Recognize *BSD/alpha magic too.
-	(ALPHA_R_LITERALSLEAZY): Define.
-	* ecoff.h (ALPHA_MAGIC_BSD): Define.
-
-Wed Jan 29 11:31:51 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* i960.h (R_IPR13, R_ALIGN): Define.
-
-Mon Jan 27 13:34:30 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* internal.h (R_IPRMED, R_OPTCALL, R_OPTCALLX): Move definitions
-	from here...
-	* i960.h (R_IPRMED, R_OPTCALL, R_OPTCALLX): ...to here.
-
-Wed Jan 22 20:10:47 1997  Fred Fish  <fnf@cygnus.com>
-
-	* tic80.h (TIC80MAGIC): Renamed to TIC80_AOUTHDR_MAGIC.
-
-Fri Dec 27 22:05:45 1996  Fred Fish  <fnf@cygnus.com>
-
-	* tic80.h: New file for TIc80 support.
-
-Thu Dec 19 16:18:11 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* arm.h (_LIT): Define.
-
-Fri Jun 28 12:54:38 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* pe.h (FILHSZ): Define.
-
-Wed Jun 26 16:24:26 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* All files: Define FILHSZ, AOUTSZ, AOUTHDRSZ, SCNHSZ, SYMESZ,
-	AUXESZ, LINESZ, RELSZ as numeric constants rather than uses of
-	sizeof.  Define AOUTHDRSZ in all files.
-	* pe.h (AOUTSZ): Define by adding to AOUTHDRSZ.
-
-Fri Jun 21 11:17:46 1996  Richard Henderson  <rth@tamu.edu>
-
-	* alpha.h: Add declarations for relocation types added for Alpha
-	OSF/1 3.0.
-
-Tue Jun 18 16:04:29 1996  Jeffrey A. Law  <law@rtl.cygnus.com>
-
-	* h8300.h (H8300SMAGIC): Define.
-	(H8300SBADMAG): Define.
-
-Mon Jun 10 11:53:28 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* internal.h (R_BCC_INV, R_JMP_DEL): New relocations for
-	relaxing in the H8/300 series.
-
-Thu May 16 15:49:22 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* sh.h (R_SH_CODE, R_SH_DATA, R_SH_LABEL): Define.
-
-Tue May  7 00:36:39 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* internal.h (R_JMPL2): Renamed from R_JMPL_B8 to be
-	consistent with other similar relocs.
-
-	* internal.h (H8/300 specific relocs): Add comments better
-	explaining what each reloc is used for.
-	(R_MOV16B1, R_MOV16B2): Renamed from R_MOVB1 and R_MOVB2.
-	(R_MOV24B1, R_MOV24B2): Renamed from R_MOVLB1 and R_MOVLB2.
-	(R_MOVL1, R_MOVL2): New relocs.
-
-Fri May  3 13:01:12 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* internal.h (R_PCRWORD_B): Define for the h8300 relaxing
-	linker.
-
-Wed May  1 19:21:03 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* internal.h (SCNNMLEN): Define.
-	(struct internal_scnhdr): Use SCNNMLEN for s_name field.
-
-Fri Mar 29 13:41:25 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* pe.h: Define IMAGE_COMDAT codes.
-
-Wed Mar 27 17:29:42 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* arm.h (union external_auxent): Add x_checksum, x_associated, and
-	x_comdat fields to x_scn struct.
-	* i386.h (union external_auxent): Likewise.
-	* powerpc.h (union external_auxent): Likewise.
-	* internal.h (union internal_auxent): Likewise.
-
-Thu Mar 21 16:25:57 1996  David Mosberger-Tang  <davidm@azstarnet.com>
-
-	* ecoff.h (struct ecoff_find_line): Add caching fields.
-
-Thu Mar 14 15:22:44 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* internal.h (R_MEM_INDIRECT): New reloc for the h8300.
-
-Fri Feb  9 10:44:11 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* aux-coff.h: Rename from aux.h, to avoid problems on hapless DOS
-	systems which think that aux is a com port.
-
-Mon Feb  5 18:35:00 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* i960.h (F_I960HX): Define.
-
-Wed Jan 31 13:11:54 1996  Richard Henderson  <rth@tamu.edu>
-
-	* aux.h: New file.
-	* internal.h, m68k.h: Protect against multiple inclusion.
-
-Wed Nov 22 13:48:39 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* ecoff.h (_RCONST, STYP_RCONST, RELOC_SECTION_RCONST): Define.
-	(NUM_RELOC_SECTIONS): Update.
-	* symconst.h (scRConst): Define.
-
-Tue Nov 14 18:54:29 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* internal.h (C_NT_WEAK): Define.
-
-Thu Nov  9 14:08:30 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* rs6000.h (STYP_OVRFLO): Define.
-
-Tue Nov  7 14:38:45 1995  Kim Knuttila  <krk@cygnus.com>
-
-	* powerpc.h (IMAGE_NT_OPTIONAL_HDR_MAGIC): Added define.
-	* pe.h: Added defines for file level flags
-
-Mon Nov  6 17:28:01 1995  Harry Dolan  <dolan@ssd.intel.com>
-
-	* i860.h: New file, based on i386.h.
-
-Wed Nov  1 15:25:18 1995  Manfred Hollstein KS/EF4A 60/1F/110 #40283  <manfred@lts.sel.alcatel.de>
-
-	* m68k.h (PAGEMAGICEXECSWAPPED): Define.
-	(PAGEMAGICPEXECSWAPPED): Define.
-	(PAGEMAGICPEXECTSHLIB): Define.
-	(PAGEMAGICPEXECPAGED): Define.
-	(_COMMENT): DEFINE.
-	* m88k.h (_COMMENT): Define.
-
-Wed Oct 18 18:36:19 1995  Geoffrey Noer  <noer@cygnus.com>
-
-	* sym.h: #if 0'd out runtime_pdr struct because it chokes
-	Visual C++ and there aren't any references to it elsewhere in gdb.
-
-Mon Oct 16 11:12:24 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* rs6000.h (SMALL_AOUTSZ): Define.
-
-	* internal.h (XMC_TD): Define.
-
-Tue Oct 10 18:41:03 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* internal.h (struct internal_aouthdr): Add o_cputype field.
-	* rs6000.h (AOUTHDR): Rename o_resv1 to o_cputype.
-
-Mon Oct  9 14:45:46 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* rs6000.h (AOUTHDR): Add o_maxdata field.  Add comments.
-	(_PAD, _LOADER): Define.
-	(STYP_LOADER): Define.
-	* internal.h (struct internal_aouthdr): Add o_maxdata field.
-
-Thu Oct  5 10:02:57 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* ecoff.h: Define section name macros and STYP macros for various
-	Alpha sections: .got, .hash, .dynsym, .dynstr, .rel.dyn, .conflic,
-	.comment, .liblist, .dynamic.
-
-Wed Oct  4 10:56:35 1995  Kim Knuttila  <krk@cygnus.com>
-
-	* pe.h: Moved DOSMAGIC and NT_SIGNATURE defines here
-	* powerpc.h: removed DOSMAGIC, NT_SIGNATURE, and DEFAULT_* defines
-	Also removed other unused defines (various MAGIC ones)
-	* i386.h: removed DOSMAGIC, NT_SIGNATURE, and DEFAULT_* defines
-	* arm.h: removed DOSMAGIC, NT_SIGNATURE, and DEFAULT_* defines
-	* apollo.h: removed unused DEFAULT_* defines
-	* alpha.h: removed unused DEFAULT_* defines
-	* h8500.h: removed unused DEFAULT_* defines
-	* h8300.h: removed unused DEFAULT_* defines
-	* i960.h: removed unused DEFAULT_* defines
-	* m88k.h: removed unused DEFAULT_* defines
-	* we32k.h: removed unused DEFAULT_* defines
-	* rs6000.h: removed unused DEFAULT_* defines
-	* mips.h: removed unused DEFAULT_* defines
-	* m68k.h: removed unused DEFAULT_* defines
-	* z8k.h: removed unused DEFAULT_* defines
-	* w65.h: removed unused DEFAULT_* defines
-	* sparc.h: removed unused DEFAULT_* defines
-	* sh.h: removed unused DEFAULT_* defines
-
-Fri Sep 29 08:40:08 1995  Kim Knuttila  <krk@cygnus.com>
-
-	* powerpc.h: Reformatted to GNU coding conventions.
-
-Wed Sep 27 06:50:50 1995  Kim Knuttila  <krk@nellie>
-
-	* pe.h: added defines for more section characteristics
-	* powerpc.h (new file): base coff definitions for ppc PE
-
-Tue Sep 12 12:08:20 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* internal.h (struct internal_syment): Change n_numaux field from
-	char to unsigned char.
-
-Fri Sep  1 15:39:36 1995  Kazumoto Kojima  <kkojima@info.kanagawa-u.ac.jp>
-
-	* mips.h (struct rpdr_ext): Define.
-
-Thu Aug 31 16:51:50 1995  steve chamberlain  <sac@slash.cygnus.com>
-
-	* internal.h (internal_aouthdr, internal_filehdr):
-	don't indirect the pe stuff.
-
-Tue Aug 29 14:16:07 1995  steve chamberlain  <sac@slash.cygnus.com>
-
-	* i386.h (NT_DEF_RESERVE, NT_DEF_COMMIT): Make the same
-	as 'the other' compiler.
-	* internal.h (NT_IMAGE_BASE): Deleted.
-	(NT_EXE_IMAGE_BASE, NT_DLL_IMAGE_BASE): New.
-	(PE_DEF_SECTION_ALIGNMENT, PE_DEF_FILE_ALIGNMENT): New.
-	(R_IMAGEBASE): New.
-
-Mon Aug 21 18:12:19 1995  steve chamberlain  <sac@slash.cygnus.com>
-
-	* internal.h: (internal_filehdr): Moved PE stuff into
-	internal_extra_pe_filehdr.
-	(internal_aouthdr): Moved PE stuff into
-	interanl_extra_pe_aouthdr.
-
-Mon Jul 24 14:05:39 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* internal.h: Move R_SH_* relocs from here...
-	* sh.h: ...to here.
-	(R_SH_SWITCH16, R_SH_SWITCH32): Define.
-	(R_SH_USES, R_SH_COUNT, R_SH_ALIGN): Define.
-
-Thu Jun 29 00:04:25 1995  Steve Chamberlain  <sac@slash.cygnus.com>
-
-	* internal.h (NT_DEF_RESERVE, NT_DEF_COMMIT): Increase a lot.
-
-Tue May 16 15:08:20 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>
-
-	* internal.h (NT_subsystem, NT_stack_heap): Delete
-
-Tue May 16 15:08:20 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>
-
-	* internal.h (NT_subsystem, NT_stack_heap): Now extern.
-
-Sat May 13 10:14:08 1995  Steve Chamberlain  <sac@slash.cygnus.com>
-
-	* pe.h: New file.
-	* i386.h (NT_SECTION_ALIGNMENT, NT_FILE_ALIGNMENT,
-	NT_DEF_RESERVE, NT_DEF_COMMIT): New.
-	* internal.h (internal_filehdr):  New fields for PE.
-	(IMAGE_DATA_DIRECTORY): New.
-	(internal_aouthdr): New fields for PE.
-
-Tue Feb 14 17:59:37 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* ecoff.h (struct ecoff_fdrtab_entry): Define.
-	(struct ecoff_find_line): Define.
-
-Sat Feb  4 14:38:03 1995  David Mosberger-Tang  <davidm@piston.cs.arizona.edu>
-
-	* sym.h (struct pdr): field "prof" added.
-
-	* alpha.h (PDR_BITS1_PROF_*): added, macros for PDR_BITS*_RESERVED_*
-	updated accordingly.
-
-Sun Jan 15 18:38:33 1995  Steve Chamberlain  <sac@splat>
-
-	* w65.h: New file.
-
-Wed Nov 23 22:43:38 1994  Steve Chamberlain  (sac@jonny.cygnus.com)
-
-	* sh.h (SH_ARCH_MAGIC_BIG, SH_ARCH_MAGIC_LITTLE): New.
-	(SHBADMAG): Changed to suit.
-
-Tue Jul 26 17:46:08 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
-
-	* i960.h (F_I960JX): New macro.
-
-Wed Jul  6 00:48:57 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
-
-	* alpha.h:  Add definitions for alpha file header flags, encoding
-	the object type of the file.
-
-Mon Jun 20 13:47:01 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
-
-	* ecoff.h (ecoff_swap_tir_in): Remove declaration.
-	(ecoff_swap_tir_out): Likewise.
-	(ecoff_swap_rndx_in, ecoff_swap_rndx_out): Likewise.
-	(struct ecoff_debug_swap): Add new fields: swap_tir_in,
-	swap_rndx_in, swap_tir_out, swap_rndx_out, read_debug_info.
-
-Sun Jun 12 03:51:52 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
-
-	* symconst.h:  Pick up SGI define for stIndirect.
-
-Fri Apr 22 13:05:28 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* ecoff.h (REGINFO): Don't define.
-	(struct ecoff_reginfo): Don't define.
-
-	* sh.h (SH_ARCH_MAGIC): Rename from SHMAGIC.  SHMAGIC is used by
-	several targets to mean a shared library.
-	(SHBADMAG): Corresponding change.
-
-Thu Apr 14 13:00:53 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* mips.h (RELOC_BITS3_TYPE_BIG): Changed from 0x1e to 0x3e.
-	(RELOC_BITS3_TYPEHI_LITTLE): Define.
-	(RELOC_BITS3_TYPEHI_SH_LITTLE): Define.
-	(MIPS_R_PCREL16): Change value from 8 to 12 to match Irix 4.
-	(MIPS_R_RELHI): Define.
-	(MIPS_R_RELLO): Define.
-	(MIPS_R_SWITCH): Change value from 9 to 22.
-
-Thu Apr  7 14:19:35 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* mips.h (MIPS_R_SWITCH): Define.
-
-Thu Mar 31 19:28:33 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
-
-	* internal.h (internal_aouthdr): Added comments for Apollo fields.
-
-Thu Mar 31 16:28:02 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* ecoff.h (STYP_ECOFF_LIB): Define as used on Irix 4.
-
-Fri Mar 25 17:16:55 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* ecoff.h (struct ecoff_debug_info): Add adjust field.
-	(struct ecoff_value_adjust): Define.
-
-Tue Mar 22 13:22:47 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* mips.h (MIPS_R_PCREL16): Define.
-
-Sat Feb 26 10:26:38 1994  Ian Lance Taylor  (ian@cygnus.com)
-
-	* ecoff.h: Add casts to avoid warnings from SVR4 cc.
-
-Mon Feb 21 09:48:46 1994  Ian Lance Taylor  (ian@lisa.cygnus.com)
-
-	* sym.h (struct runtime_pdr): Make field adr bfd_vma, not unsigned
-	long.
-	(SYMR): Make field value bfd_vma, not long.
-
-Fri Feb  4 23:35:53 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* rs6000.h (STYP_DEBUG): Define.
-
-Wed Feb  2 14:31:37 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* internal.h (union internal_auxent): Change x_csect.x_scnlen into
-	a union of a long and a pointer to a symbol.  XCOFF sometimes uses
-	this field as a symbol index.
-
-Mon Jan 10 23:54:25 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* ecoff.h (ecoff_debug_info): Remove fields line_end,
-	external_dnr_end, external_pdr_end, external_sym_end,
-	external_opt_end, external_aux_end, ss_end, external_fdr_end.
-	Replace ifdbase with ifdmap.
-
-Wed Jan  5 17:05:36 1994  Ken Raeburn  (raeburn@deneb.cygnus.com)
-
-	* ecoff.h (STYP_EXTENDESC, STYP_COMMENT, STYP_XDATA, STYP_PDATA):
-	Define.
-
-Wed Jan  5 16:58:24 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* ecoff.h (NUM_RELOC_SECTIONS): Define.
-
-Tue Dec 21 09:24:56 1993  Ken Raeburn  (raeburn@rtl.cygnus.com)
-
-	* sparc.h (struct external_reloc): Rename field r_addend to
-	r_offset.
-
-Sat Dec 11 16:12:32 1993  Steve Chamberlain  (sac@thepub.cygnus.com)
-
-	* internal.h (R_DISP7, R_SH_IMM16): New reloc types.
-
-Tue Nov 23 14:23:19 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* ecoff.h (struct ecoff_debug_swap): Added *_end fields for all
-	the symbolic information pointers.
-
-	* sym.h: Named the EXTR structure ecoff_extr.
-
-Fri Nov 19 08:21:18 1993  Ken Raeburn  (raeburn@rover.cygnus.com)
-
-	* sparc.h (RELSZ): Use correct size.
-
-Wed Nov 17 17:18:16 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* mips.h (struct ecoff_debug_info): Define.
-
-Tue Nov  2 17:56:57 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* ecoff.h (struct ecoff_debug_swap): Define.
-
-Thu Oct 28 17:07:50 1993  Stan Shebs  (shebs@rtl.cygnus.com)
-
-	* i386.h (I386LYNXMAGIC): Rename to LYNXCOFFMAGIC.
-	* m68k.h (LYNXCOFFMAGIC): Define.
-	* sparc.h: New file.
-
-Tue Oct 19 15:34:50 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* alpha.h (external_aouthdr): Split four byte padding field into
-	two byte bldrev field and two byte padding field.
-
-	* ecoff.h (_LITA, _PDATA, _XDATA, STYP_LITA): Defined.
-
-Wed Oct 13 15:52:34 1993  Ken Raeburn  (raeburn@cygnus.com)
-
-	Sun Oct 10 17:27:10 1993  Troy Rollo (troy@cbme.unsw.edu.au)
-
-	* internal.h: Added o_sri, o_inlib and o_vid for Apollos as well
-	as R_DIR16.
-
-	* apollo.h: New file
-
-Mon Oct 11 17:16:48 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* ecoff.h (REGINFO, struct ecoff_reginfo): Define.
-
-Tue Oct  5 10:52:53 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* rs6000.h: Change non-ASCII characters in comment to octal
-	escapes.
-
-Tue Sep 28 03:27:04 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
-
-	* ecoff.h (_FINI, STYP_ECOFF_FINI):  Add to support .fini section.
-
-Fri Sep 24 11:53:53 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* mips.h (BADMAG): Recognize MIPS_MAGIC_LITTLE3 and MIPS_MAGIC_BIG3.
-	* ecoff.h: Define MIPS_MAGIC_LITTLE3 and MIPS_MAGIC_BIG3.
-
-Thu Sep 23 21:07:14 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* mips.h (BADMAG): Recognize MIPS_MAGIC_LITTLE2 and MIPS_MAGIC_BIG2.
-	* ecoff.h: Define MIPS_MAGIC_LITTLE2 and MIPS_MAGIC_BIG2.
-
-Thu Sep 16 20:27:21 1993  Jim Kingdon  (kingdon@cirdan.cygnus.com)
-
-	* sym.h, symconst.h: Add comment stating these files are not part
-	of GDB, GAS, etc.  In 1991, when we asked rms whether we could
-	include these files in GDB (although they are copyrighted by
-	someone besides the FSF), he said it was OK if they were not
-	considered part of GDB.
-
-Fri Sep 10 17:40:35 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* ecoff.h (AUX_PUT_ANY): Cast val argument to bfd_vma.
-
-	* alpha.c (external_aouthdr): Need four bytes of padding between
-	vstamp and tsize.
-
-Tue Sep  7 14:20:43 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* ecoff.h (AUX_GET_ANY, AUX_PUT_ANY): Changed to reflect further
-	change in bfd swapping routine names.
-
-Tue Sep  7 10:15:17 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* ecoff.h (AUX_GET_ANY): Change name of _do_getb32 to reflect bfd
-	changes.
-
-Fri Aug 13 14:30:32 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* ecoff.h (RELOC_SECTION_NONE): Define.
-
-Thu Aug 12 11:24:42 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* alpha.h (struct external_reloc): Add r_symndx field.
-	(RELSZ): Correct.
-	(RELOC_BITS*): Correct.
-	(ALPHA_R_*): Define.
-	* ecoff.h (RELOC_SECTION_{XDATA,PDATA,FINI,LITA,ABS}): Define.
-	(r_extern): Undefine.
-	* internal.h (struct internal_reloc): Make r_vaddr bfd_vma rather
-	than long.  Add r_extern field.
-
-	* alpha.h (PDR_BITS*): Define.
-	* sym.h (PDR): Give correct names to new fields.
-
-	* ecoff.h: Moved MIPS reloc definitions from here...
-	* mips.h: to here.
-
-Mon Aug  2 16:37:14 1993  Stu Grossman  (grossman at cygnus.com)
-
-	* i386.h:  Add Lynx magic number.
-
-Tue Aug  3 11:17:53 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* alpha.h: Corrected external symbolic debugging structures to
-	match actual usage.
-	* internal.h (internal_filehdr, internal_aouthdr,
-	internal_scnhdr): Changed type of some fields to bfd_vma so they
-	can hold 64 bits.
-	* sym.h (HDRR, FDR, PDR, EXTR): Likewise.
-	(PDR): Added new fields found on Alpha.
-	* symconst.h (magicSym2): Define; new value found on Alpha.
-
-	* ecoff.h: New file.
-	* alpha.h, mips.h: Moved common information into ecoff.h.  Moved
-	external structure definitions in from ecoff-ext.h.
-	* ecoff-ext.h: Removed; information now in alpha.h and mips.h.
-
-Sun Jul 18 21:43:59 1993  Jim Kingdon  (kingdon@rtl.cygnus.com)
-
-	* i386.h: Recognize I386PTXMAGIC.
-
-Fri Jul 16 09:54:35 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* mips.h (MIPS_AOUT_{OZ}MAGIC): Renamed from {OZ}MAGIC.
-
-Thu Jul 15 12:23:55 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* m88k.h (union external_auxent): Move x_fcn back inside x_fcnary.
-	({GET,PUT}_FCN_{LNNOPTR,ENDNDX}): Adjust accordingly.
-
-Sun Jul 11 18:00:18 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* m68k.h: Define MC68KBCSMAGIC.
-
-Thu Jun 10 11:46:28 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* mips.h (_INIT, STYP_MIPS_INIT): Define (used on Irix4).
-	(STYP_OTHER_LOAD): Define as STYP_MIPS_INIT.
-
-Wed Jun  9 15:09:09 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* mips.h (OMAGIC): Define.
-
-Tue Jun  8 12:16:03 1993  Steve Chamberlain  (sac@phydeaux.cygnus.com)
-
-	 Support for H8/300-H
-	* h8300.h: New magic number.
-	* internal.h: New relocations.
-
-Mon Apr 26 18:04:47 1993  Steve Chamberlain  (sac@thepub.cygnus.com)
-
-	* internal.h, sh.h: Support for SH.
-
-Sat Apr 24 21:34:59 1993  Jim Kingdon  (kingdon@cygnus.com)
-
-	* a29k.h: Define _LIT.
-
-Fri Apr 23 18:41:23 1993  Steve Chamberlain  (sac@thepub.cygnus.com)
-
-	* alpha.h: New file.
-
-Thu Apr  8 12:36:34 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* internal.h (C_SHADOW, C_VERSION): Copied in from m88k.h.
-	* m88k.h, i386.h, we32k.h: Don't define all the storage classes;
-	they're already in internal.h.
-
-Wed Apr  7 11:51:24 1993  Jim Kingdon  (kingdon@cygnus.com)
-
-	* internal.h: Change n_sclass to unsigned char.
-	Change C_EFCN to 0xff, change RS/6000 dbx symbols
-	to no longer be signed.
-
-Fri Mar 19 14:52:56 1993  Steve Chamberlain  (sac@thepub.cygnus.com)
-
-	* internal.h: Add H8/500 reloc types.
-
-Wed Mar 17 09:46:03 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* ecoff-ext.h (AUX_PUT_ANY): Don't use void values in branches of
-	conditional expression.
-
-Thu Mar  4 14:12:06 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* ecoff-ext.h (AUX_GET_*): Rewrote to use new macro AUX_GET_ANY.
-	(AUX_PUT_*): New macros corresponding to the AUX_GET macros.
-	(ecoff_swap_tir_out): Added prototype.
-
-	* mips.h (N_BTMASK, N_TMASK, N_BTSHFT, N_TSHIFT): Define; these
-	are needed to interpret gcc debugging output.
-
-Tue Feb  9 07:43:27 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* we32k.h (BTYPE, ISPTR, ISFCN, ISARY, DECREF): Removed
-	more definitions duplicated in internal.h.
-
-Wed Feb  3 09:18:24 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* mips.h (RELOC_BITS3_TYPE_*): Correct for big endian machines.
-
-Mon Jan 25 11:35:51 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* internal.h (internal_aouthdr): Added additional fields used only
-	by MIPS ECOFF.
-
-Thu Jan 21 10:28:38 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* mips.h (AOUTHDR): Added additional fields used by ECOFF.
-
-Tue Jan 19 12:21:19 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* i386.h, we32k.h (N_*, T_*, DT_*): Removed still more definitions
-	duplicated in internal.h.
-
-	* mips.h (RELOC_SECTION_*, ECOFF_R_*): Defined constants for ECOFF
-	relocs.
-
-Fri Jan 15 18:17:00 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* ecoff-ext.h: Added prototypes for new ECOFF swapping functions.
-	(opt_ext): New structure.
-	* mips.h (ZMAGIC): Defined to be 0413.
-	(_LIB): Defined to be ".lib"
-	(external_reloc): MIPS ECOFF relocs are only 8 bytes.  Added
-	macros to aid in swapping.
-
-Fri Jan  8 16:19:26 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* ecoff-ext.h: Added prototypes for ECOFF swapping functions.
-	* internal.h (internal_scnhdr): Always provide s_align field, not
-	just on i960.
-	(internal_reloc): Always provide r_size field, not just on
-	RS/6000.
-	* mips.h (_RDATA, _SDATA, _SBSS, _LIT4, _LIT8, STYP_RDATA,
-	STYP_SDATA, STYP_SBSS, STYP_LIT4, STYP_LIT8): Defined.
-	(CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB, MIPS_UNMARK_STAB,
-	STABS_SYMBOL): Moved in from gdb/mipsread.c.
-
-Wed Jan  6 14:01:46 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* i386.h, we32k.h: removed STYP_* defines, since they duplicated
-	those in internal.h.
-
-Tue Dec 29 15:40:07 1992  Ian Lance Taylor  (ian@cygnus.com)
-
-	* i386.h: define I386AIXMAGIC for Danbury AIX PS/2 compiler.
-
-Sat Dec 12 16:07:57 1992  Ian Lance Taylor  (ian@cygnus.com)
-
-	* i386.h: don't define BTYPE, ISPTR, ISFCN, ISARY, DECREF: they
-	are defined in internal.h.
-
-Thu Nov 12 09:52:01 1992  Steve Chamberlain  (sac@thepub.cygnus.com)
-
-	* internal.h: (internal_reloc): r_offset is now a long.
-	* z8k.h: slight comment enhancement
-
-Wed Sep 30 07:46:08 1992  Steve Chamberlain  (sac@thepub.cygnus.com)
-
-	* internal.h: changed z8k reloc types
-
-Fri Aug 28 10:16:31 1992  Brendan Kehoe  (brendan@cygnus.com)
-
-	* we32k.h: new file
-
-Thu Aug 27 13:00:01 1992  Brendan Kehoe  (brendan@cygnus.com)
-
-	* symconst.h: comment out cruft at the end of #endif
-
-Tue Aug 25 15:06:49 1992  Steve Chamberlain  (sac@thepub.cygnus.com)
-
-	* internal.h: added #define for STYP_LIT, removed from a29k and
-	h8300.
-
-	* z8k.h: added z8000 support
-
-Thu Jul 16 16:32:00 1992  Steve Chamberlain  (sac@thepub.cygnus.com)
-
-	* internal.h: added R_RELLONG_NEG reloc type
-
-Fri Jun 12 20:11:04 1992  John Gilmore  (gnu at cygnus.com)
-
-	* symconst.h:  Fix unterminated comment.
-
-Wed Jun 10 07:57:49 1992  Steve Chamberlain  (sac@thepub.cygnus.com)
-
-	* i386.h: a.out magic numbers from
-	mohring@informatik.tu-muenchen.de
-
-Mon Jun  8 20:13:33 1992  John Gilmore  (gnu at cygnus.com)
-
-	* ecoff-ext.h, mips.h:  Use unsigned chars everywhere.
-	(Suggested by Antti Miettinen.)
-
-Tue Apr 14 15:18:44 1992  John Gilmore  (gnu at cygnus.com)
-
-	* sym.h:  Add comments.
-	* symconst.h:  Merge with Fred's changes.
-
-Tue Apr 14 14:30:05 1992  Fred Fish  (fnf@cygnus.com)
-
-	* symconst.h:  Pick up SGI defines for stStruct, stUnion, stEnum,
-	langCplusplus, and langCplusplusV2.
-
-Thu Apr  2 19:47:43 1992  John Gilmore  (gnu at cygnus.com)
-
-	* sym.h, symconst.h:  MIPS has provided redistributable versions
-	of these files.  Thanks!
-	* ecoff-ext.h:  Add weakext bit to match new sym.h.
-
-Fri Mar  6 00:10:46 1992  John Gilmore  (gnu at cygnus.com)
-
-	* ecoff-ext.h:  Add relative file descriptors.
-
-Thu Feb 27 11:53:04 1992  John Gilmore  (gnu at cygnus.com)
-
-	* ecoff-ext.h:  New file for external (in-file) form of ecoff
-	symbol structures.
-
-Thu Feb  6 11:33:32 1992  Steve Chamberlain  (sac at rtl.cygnus.com)
-
-	* h8300.h: made the external_lineno l_lnno field 4 bytes wide.
-	andded GET/PUT_LINENO_LNNO macros
-
-Sat Nov 30 20:38:35 1991  Steve Chamberlain  (sac at rtl.cygnus.com)
-
-	* a29k.h, h8300.h, i386.h, i960.h, internal.h, m68k.h, m88k.h,
-	mips.h, rs6000.h: Move from above coff-<foo>.h.
-
-
-Local Variables:
-version-control: never
-End:
diff --git a/include/coff/alpha.h b/include/coff/alpha.h
deleted file mode 100644
index 7433938..0000000
--- a/include/coff/alpha.h
+++ /dev/null
@@ -1,385 +0,0 @@
-/* ECOFF support on Alpha machines.
-   coff/ecoff.h must be included before this file.
-
-   Copyright 2001, 2005 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-   
-/********************** FILE HEADER **********************/
-
-struct external_filehdr
-{
-  unsigned char f_magic[2];	/* magic number			*/
-  unsigned char f_nscns[2];	/* number of sections		*/
-  unsigned char f_timdat[4];	/* time & date stamp		*/
-  unsigned char f_symptr[8];	/* file pointer to symtab	*/
-  unsigned char f_nsyms[4];	/* number of symtab entries	*/
-  unsigned char f_opthdr[2];	/* sizeof(optional hdr)		*/
-  unsigned char f_flags[2];	/* flags			*/
-};
-
-/* Magic numbers are defined in coff/ecoff.h.  */
-#define ALPHA_ECOFF_BADMAG(x) \
-  ((x).f_magic != ALPHA_MAGIC && (x).f_magic != ALPHA_MAGIC_BSD)
-
-#define ALPHA_ECOFF_COMPRESSEDMAG(x) \
-  ((x).f_magic == ALPHA_MAGIC_COMPRESSED)
-
-/* The object type is encoded in the f_flags.  */
-#define F_ALPHA_OBJECT_TYPE_MASK	0x3000
-#define F_ALPHA_NO_SHARED		0x1000
-#define F_ALPHA_SHARABLE		0x2000
-#define F_ALPHA_CALL_SHARED		0x3000
-
-#define	FILHDR	struct external_filehdr
-#define	FILHSZ	24
-
-/********************** AOUT "OPTIONAL HEADER" **********************/
-
-typedef struct external_aouthdr
-{
-  unsigned char magic[2];	/* type of file				*/
-  unsigned char	vstamp[2];	/* version stamp			*/
-  unsigned char bldrev[2];	/* ?? */
-  unsigned char padding[2];	/* pad to quadword boundary		*/
-  unsigned char	tsize[8];	/* text size in bytes			*/
-  unsigned char	dsize[8];	/* initialized data "  "		*/
-  unsigned char	bsize[8];	/* uninitialized data "   "		*/
-  unsigned char	entry[8];	/* entry pt.				*/
-  unsigned char text_start[8];	/* base of text used for this file */
-  unsigned char data_start[8];	/* base of data used for this file */
-  unsigned char bss_start[8];	/* base of bss used for this file */
-  unsigned char gprmask[4];	/* bitmask of general registers used */
-  unsigned char fprmask[4];	/* bitmask of floating point registers used */
-  unsigned char gp_value[8];	/* value for gp register */
-} AOUTHDR;
-
-/* compute size of a header */
-
-#define AOUTSZ 80
-#define AOUTHDRSZ 80
-
-/********************** SECTION HEADER **********************/
-
-struct external_scnhdr
-{
-  unsigned char	s_name[8];	/* section name			*/
-  unsigned char	s_paddr[8];	/* physical address, aliased s_nlib */
-  unsigned char	s_vaddr[8];	/* virtual address		*/
-  unsigned char	s_size[8];	/* section size			*/
-  unsigned char	s_scnptr[8];	/* file ptr to raw data for section */
-  unsigned char	s_relptr[8];	/* file ptr to relocation	*/
-  unsigned char	s_lnnoptr[8];	/* file ptr to line numbers	*/
-  unsigned char	s_nreloc[2];	/* number of relocation entries	*/
-  unsigned char	s_nlnno[2];	/* number of line number entries*/
-  unsigned char	s_flags[4];	/* flags			*/
-};
-
-#define	SCNHDR	struct external_scnhdr
-#define	SCNHSZ	64
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc 
-{
-  unsigned char r_vaddr[8];
-  unsigned char r_symndx[4];
-  unsigned char r_bits[4];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 16
-
-/* Constants to unpack the r_bits field.  The Alpha seems to always be
-   little endian, so I haven't bothered to define big endian variants
-   of these.  */
-
-#define RELOC_BITS0_TYPE_LITTLE			0xff
-#define RELOC_BITS0_TYPE_SH_LITTLE		0
-
-#define RELOC_BITS1_EXTERN_LITTLE		0x01
-
-#define RELOC_BITS1_OFFSET_LITTLE		0x7e
-#define RELOC_BITS1_OFFSET_SH_LITTLE		1
-
-#define RELOC_BITS1_RESERVED_LITTLE		0x80
-#define RELOC_BITS1_RESERVED_SH_LITTLE		7
-#define RELOC_BITS2_RESERVED_LITTLE		0xff
-#define RELOC_BITS2_RESERVED_SH_LEFT_LITTLE	1
-#define RELOC_BITS3_RESERVED_LITTLE		0x03
-#define RELOC_BITS3_RESERVED_SH_LEFT_LITTLE	9
-
-#define RELOC_BITS3_SIZE_LITTLE			0xfc
-#define RELOC_BITS3_SIZE_SH_LITTLE		2
-
-/* The r_type field in a reloc is one of the following values.  */
-#define ALPHA_R_IGNORE		0
-#define ALPHA_R_REFLONG		1
-#define ALPHA_R_REFQUAD		2
-#define ALPHA_R_GPREL32		3
-#define ALPHA_R_LITERAL		4
-#define ALPHA_R_LITUSE		5
-#define ALPHA_R_GPDISP		6
-#define ALPHA_R_BRADDR		7
-#define ALPHA_R_HINT		8
-#define ALPHA_R_SREL16		9
-#define ALPHA_R_SREL32	       10
-#define ALPHA_R_SREL64	       11
-#define ALPHA_R_OP_PUSH	       12
-#define ALPHA_R_OP_STORE       13
-#define ALPHA_R_OP_PSUB	       14
-#define ALPHA_R_OP_PRSHIFT     15
-#define ALPHA_R_GPVALUE	       16
-#define ALPHA_R_GPRELHIGH      17
-#define ALPHA_R_GPRELLOW       18
-#define ALPHA_R_IMMED          19
-
-/* Overloaded reloc value used by Net- and OpenBSD.  */
-#define ALPHA_R_LITERALSLEAZY  17
-
-/* With ALPHA_R_LITUSE, the r_size field is one of the following values.  */
-#define ALPHA_R_LU_BASE         1
-#define ALPHA_R_LU_BYTOFF       2
-#define ALPHA_R_LU_JSR          3
-
-/* With ALPHA_R_IMMED, the r_size field is one of the following values.  */
-#define ALPHA_R_IMMED_GP_16     1
-#define ALPHA_R_IMMED_GP_HI32   2
-#define ALPHA_R_IMMED_SCN_HI32  3
-#define ALPHA_R_IMMED_BR_HI32   4
-#define ALPHA_R_IMMED_LO32      5
-
-/********************** SYMBOLIC INFORMATION **********************/
-
-/* Written by John Gilmore.  */
-
-/* ECOFF uses COFF-like section structures, but its own symbol format.
-   This file defines the symbol format in fields whose size and alignment
-   will not vary on different host systems.  */
-
-/* File header as a set of bytes */
-
-struct hdr_ext
-{
-	unsigned char 	h_magic[2];
-	unsigned char	h_vstamp[2];
-	unsigned char	h_ilineMax[4];
-	unsigned char	h_idnMax[4];
-	unsigned char	h_ipdMax[4];
-	unsigned char	h_isymMax[4];
-	unsigned char	h_ioptMax[4];
-	unsigned char	h_iauxMax[4];
-	unsigned char	h_issMax[4];
-	unsigned char	h_issExtMax[4];
-	unsigned char	h_ifdMax[4];
-	unsigned char	h_crfd[4];
-	unsigned char	h_iextMax[4];
-	unsigned char	h_cbLine[8];
-	unsigned char	h_cbLineOffset[8];
-	unsigned char	h_cbDnOffset[8];
-	unsigned char	h_cbPdOffset[8];
-	unsigned char	h_cbSymOffset[8];
-	unsigned char	h_cbOptOffset[8];
-	unsigned char	h_cbAuxOffset[8];
-	unsigned char	h_cbSsOffset[8];
-	unsigned char	h_cbSsExtOffset[8];
-	unsigned char	h_cbFdOffset[8];
-	unsigned char	h_cbRfdOffset[8];
-	unsigned char	h_cbExtOffset[8];
-};
-
-/* File descriptor external record */
-
-struct fdr_ext
-{
-	unsigned char	f_adr[8];
-	unsigned char	f_cbLineOffset[8];
-	unsigned char	f_cbLine[8];
-	unsigned char	f_cbSs[8];
-	unsigned char	f_rss[4];
-	unsigned char	f_issBase[4];
-	unsigned char	f_isymBase[4];
-	unsigned char	f_csym[4];
-	unsigned char	f_ilineBase[4];
-	unsigned char	f_cline[4];
-	unsigned char	f_ioptBase[4];
-	unsigned char	f_copt[4];
-	unsigned char	f_ipdFirst[4];
-	unsigned char	f_cpd[4];
-	unsigned char	f_iauxBase[4];
-	unsigned char	f_caux[4];
-	unsigned char	f_rfdBase[4];
-	unsigned char	f_crfd[4];
-	unsigned char	f_bits1[1];
-	unsigned char	f_bits2[3];
-	unsigned char	f_padding[4];
-};
-
-#define	FDR_BITS1_LANG_BIG		0xF8
-#define	FDR_BITS1_LANG_SH_BIG		3
-#define	FDR_BITS1_LANG_LITTLE		0x1F
-#define	FDR_BITS1_LANG_SH_LITTLE	0
-
-#define	FDR_BITS1_FMERGE_BIG		0x04
-#define	FDR_BITS1_FMERGE_LITTLE		0x20
-
-#define	FDR_BITS1_FREADIN_BIG		0x02
-#define	FDR_BITS1_FREADIN_LITTLE	0x40
-
-#define	FDR_BITS1_FBIGENDIAN_BIG	0x01
-#define	FDR_BITS1_FBIGENDIAN_LITTLE	0x80
-
-#define	FDR_BITS2_GLEVEL_BIG		0xC0
-#define	FDR_BITS2_GLEVEL_SH_BIG		6
-#define	FDR_BITS2_GLEVEL_LITTLE		0x03
-#define	FDR_BITS2_GLEVEL_SH_LITTLE	0
-
-/* We ignore the `reserved' field in bits2. */
-
-/* Procedure descriptor external record */
-
-struct pdr_ext {
-	unsigned char	p_adr[8];
-	unsigned char	p_cbLineOffset[8];
-	unsigned char	p_isym[4];
-	unsigned char	p_iline[4];
-	unsigned char	p_regmask[4];
-	unsigned char	p_regoffset[4];
-	unsigned char	p_iopt[4];
-	unsigned char	p_fregmask[4];
-	unsigned char	p_fregoffset[4];
-	unsigned char	p_frameoffset[4];
-	unsigned char	p_lnLow[4];
-	unsigned char	p_lnHigh[4];
-	unsigned char	p_gp_prologue[1];
-	unsigned char	p_bits1[1];
-	unsigned char	p_bits2[1];
-	unsigned char	p_localoff[1];
-	unsigned char	p_framereg[2];
-	unsigned char	p_pcreg[2];
-};
-
-#define PDR_BITS1_GP_USED_BIG		0x80
-#define PDR_BITS1_REG_FRAME_BIG		0x40
-#define PDR_BITS1_PROF_BIG		0x20
-#define PDR_BITS1_RESERVED_BIG		0x1f
-#define PDR_BITS1_RESERVED_SH_LEFT_BIG	8
-#define PDR_BITS2_RESERVED_BIG		0xff
-#define PDR_BITS2_RESERVED_SH_BIG	0
-
-#define PDR_BITS1_GP_USED_LITTLE	0x01
-#define PDR_BITS1_REG_FRAME_LITTLE	0x02
-#define PDR_BITS1_PROF_LITTLE		0x04
-#define PDR_BITS1_RESERVED_LITTLE	0xf8
-#define PDR_BITS1_RESERVED_SH_LITTLE	3
-#define PDR_BITS2_RESERVED_LITTLE	0xff
-#define PDR_BITS2_RESERVED_SH_LEFT_LITTLE 5
-
-/* Line numbers */
-
-struct line_ext {
-	unsigned char	l_line[4];
-};
-
-/* Symbol external record */
-
-struct sym_ext {
-	unsigned char	s_value[8];
-	unsigned char	s_iss[4];
-	unsigned char	s_bits1[1];
-	unsigned char	s_bits2[1];
-	unsigned char	s_bits3[1];
-	unsigned char	s_bits4[1];
-};
-
-#define	SYM_BITS1_ST_BIG		0xFC
-#define	SYM_BITS1_ST_SH_BIG		2
-#define	SYM_BITS1_ST_LITTLE		0x3F
-#define	SYM_BITS1_ST_SH_LITTLE		0
-
-#define	SYM_BITS1_SC_BIG		0x03
-#define	SYM_BITS1_SC_SH_LEFT_BIG	3
-#define	SYM_BITS1_SC_LITTLE		0xC0
-#define	SYM_BITS1_SC_SH_LITTLE		6
-
-#define	SYM_BITS2_SC_BIG		0xE0
-#define	SYM_BITS2_SC_SH_BIG		5
-#define	SYM_BITS2_SC_LITTLE		0x07
-#define	SYM_BITS2_SC_SH_LEFT_LITTLE	2
-
-#define	SYM_BITS2_RESERVED_BIG		0x10
-#define	SYM_BITS2_RESERVED_LITTLE	0x08
-
-#define	SYM_BITS2_INDEX_BIG		0x0F
-#define	SYM_BITS2_INDEX_SH_LEFT_BIG	16
-#define	SYM_BITS2_INDEX_LITTLE		0xF0
-#define	SYM_BITS2_INDEX_SH_LITTLE	4
-
-#define	SYM_BITS3_INDEX_SH_LEFT_BIG	8
-#define	SYM_BITS3_INDEX_SH_LEFT_LITTLE	4
-
-#define	SYM_BITS4_INDEX_SH_LEFT_BIG	0
-#define	SYM_BITS4_INDEX_SH_LEFT_LITTLE	12
-
-/* External symbol external record */
-
-struct ext_ext {
-	struct	sym_ext es_asym;
-	unsigned char	es_bits1[1];
-	unsigned char	es_bits2[3];
-	unsigned char	es_ifd[4];
-};
-
-#define	EXT_BITS1_JMPTBL_BIG		0x80
-#define	EXT_BITS1_JMPTBL_LITTLE		0x01
-
-#define	EXT_BITS1_COBOL_MAIN_BIG	0x40
-#define	EXT_BITS1_COBOL_MAIN_LITTLE	0x02
-
-#define	EXT_BITS1_WEAKEXT_BIG		0x20
-#define	EXT_BITS1_WEAKEXT_LITTLE	0x04
-
-/* Dense numbers external record */
-
-struct dnr_ext {
-	unsigned char	d_rfd[4];
-	unsigned char	d_index[4];
-};
-
-/* Relative file descriptor */
-
-struct rfd_ext {
-  unsigned char	rfd[4];
-};
-
-/* Optimizer symbol external record */
-
-struct opt_ext {
-  unsigned char o_bits1[1];
-  unsigned char o_bits2[1];
-  unsigned char o_bits3[1];
-  unsigned char o_bits4[1];
-  struct rndx_ext o_rndx;
-  unsigned char o_offset[4];
-};
-
-#define OPT_BITS2_VALUE_SH_LEFT_BIG	16
-#define OPT_BITS2_VALUE_SH_LEFT_LITTLE	0
-
-#define OPT_BITS3_VALUE_SH_LEFT_BIG	8
-#define OPT_BITS3_VALUE_SH_LEFT_LITTLE	8
-
-#define OPT_BITS4_VALUE_SH_LEFT_BIG	0
-#define OPT_BITS4_VALUE_SH_LEFT_LITTLE	16
diff --git a/include/coff/apollo.h b/include/coff/apollo.h
deleted file mode 100644
index 963c0be..0000000
--- a/include/coff/apollo.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/* coff information for Apollo M68K
-
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#define DO_NOT_DEFINE_AOUTHDR
-#define L_LNNO_SIZE 2
-#include "coff/external.h"
-
-/* Motorola 68000/68008/68010/68020 */
-#define	MC68MAGIC	0520
-#define MC68KWRMAGIC	0520	/* writeable text segments */
-#define	MC68TVMAGIC	0521
-#define MC68KROMAGIC	0521	/* readonly shareable text segments */
-#define MC68KPGMAGIC	0522	/* demand paged text segments */
-#define	M68MAGIC	0210
-#define	M68TVMAGIC	0211
-
-/* Apollo 68000-based machines have a different magic number. This comes
- * from /usr/include/apollo/filehdr.h
- */
-#define APOLLOM68KMAGIC 0627
-
-#define OMAGIC M68MAGIC
-#define M68KBADMAG(x) (((x).f_magic!=MC68MAGIC) && ((x).f_magic!=MC68KWRMAGIC) && ((x).f_magic!=MC68TVMAGIC) && \
-  ((x).f_magic!=MC68KROMAGIC) && ((x).f_magic!=MC68KPGMAGIC) && ((x).f_magic!=M68MAGIC) && ((x).f_magic!=M68TVMAGIC)  && \
-  ((x).f_magic!=APOLLOM68KMAGIC) )
-
-/********************** AOUT "OPTIONAL HEADER" **********************/
-
-typedef struct 
-{
-  char 	magic[2];		/* type of file				*/
-  char	vstamp[2];		/* version stamp			*/
-  char	tsize[4];		/* text size in bytes, padded to FW bdry*/
-  char	dsize[4];		/* initialized data "  "		*/
-  char	bsize[4];		/* uninitialized data "   "		*/
-  char	entry[4];		/* entry pt.				*/
-  char 	text_start[4];		/* base of text used for this file */
-  char 	data_start[4];		/* base of data used for this file */
-  char	o_sri[4];		/* Apollo specific - .sri data pointer */
-  char  o_inlib[4];		/* Apollo specific - .inlib data pointer */
-  char	vid[8];			/* Apollo specific - 64 bit version ID */
-}
-AOUTHDR;
-
-#define	APOLLO_COFF_VERSION_NUMBER 1 /* the value of the aouthdr magic */
-#define	AOUTHDRSZ 44
-#define AOUTSZ 44
-
-/* Apollo allowa for larger section names by allowing
-   them to be in the string table.  */
-
-/* If s_zeores is all zeroes, s_offset gives the real
-   location of the name in the string table.  */
-
-#define	s_zeroes section_name.s_name
-#define	s_offset (section_name.s_name+4)
-
-/* More names of "special" sections.  */
-#define _TV	".tv"
-#define _INIT	".init"
-#define _FINI	".fini"
-#define	_LINES	".lines"
-#define	_BLOCKS	".blocks"
-#define _SRI    ".sri"                  /* Static Resource Information (systype,
- et al.) */
-#define _MIR    ".mir"                  /* Module Information Records  */
-#define _APTV   ".aptv"                 /* Apollo-style transfer vectors. */
-#define _INLIB  ".inlib"                /* Shared Library information */
-#define _RWDI   ".rwdi"         /* Read/write data initialization directives for
- compressed sections */
-#define _UNWIND ".unwind"               /* Stack unwind information */
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_type[2];
-#ifdef M68K_COFF_OFFSET
-  char r_offset[4];
-#endif
-
-};
-
-#define RELOC struct external_reloc
-
-#ifdef M68K_COFF_OFFSET
-#define RELSZ 14
-#else
-#define RELSZ 10
-#endif
-
-/* Apollo specific STYP flags */
-
-#define STYP_RELOCATED_NOT_LOADED 0x00010000	/* Section is relocated normally during linking, but need
-                                            	   not be loaded during program execution */
-#define STYP_DEBUG              0x00020000	/* debug section */
-#define STYP_OVERLAY		0x00040000	/* Section is overlayed */
-#define STYP_INSTRUCTION    	0x00200000	/* Section contains executable code */
-
-#define STYP_ZERO		0x00800000	/* Section is initialized to zero */
-#define STYP_INSTALLED		0x02000000	/* Section should be installable in KGT */
-#define STYP_LOOK_INSTALLED	0x04000000	/* Look for section in KGT */
-#define STYP_SECALIGN1		0x08000000	/* Specially aligned section */
-#define STYP_SECALIGN2		0x10000000	/*      "       "       "    */
-#define STYP_COMPRESSED		0x20000000	/* No section data per se (s_scnptr = 0), but there are
-						   initialization directives for it in .rwdi section
-						   (used in conjunction with STYP_BSS) */
diff --git a/include/coff/arm.h b/include/coff/arm.h
deleted file mode 100644
index 750f7f2..0000000
--- a/include/coff/arm.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/* ARM COFF support for BFD.
-   Copyright 1998, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#define COFFARM 1
-
-#define L_LNNO_SIZE 2
-#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
-#include "coff/external.h"
-
-/* Bits for f_flags:
- 	F_RELFLG	relocation info stripped from file
- 	F_EXEC		file is executable (no unresolved external references)
- 	F_LNNO		line numbers stripped from file
- 	F_LSYMS		local symbols stripped from file
-        F_INTERWORK     file supports switching between ARM and Thumb instruction sets
-        F_INTERWORK_SET the F_INTERWORK bit is valid
- 	F_APCS_FLOAT	code passes float arguments in float registers
- 	F_PIC		code is reentrant/position-independent
- 	F_AR32WR	file has byte ordering of an AR32WR machine (e.g. vax)
- 	F_APCS_26	file uses 26 bit ARM Procedure Calling Standard
- 	F_APCS_SET	the F_APCS_26, F_APCS_FLOAT and F_PIC bits have been initialised
- 	F_SOFT_FLOAT	code does not use floating point instructions.  */
-
-#define F_RELFLG	(0x0001)
-#define F_EXEC		(0x0002)
-#define F_LNNO		(0x0004)
-#define F_LSYMS		(0x0008)
-#define F_INTERWORK	(0x0010)
-#define F_INTERWORK_SET	(0x0020)
-#define F_APCS_FLOAT	(0x0040)
-#undef  F_AR16WR
-#define F_PIC		(0x0080)
-#define	F_AR32WR	(0x0100)
-#define F_APCS_26	(0x0400)
-#define F_APCS_SET	(0x0800)
-#define F_SOFT_FLOAT	(0x2000)
-#define F_VFP_FLOAT	(0x4000)
-
-/* Bits stored in flags field of the internal_f structure */
-
-#define F_INTERWORK	(0x0010)
-#define F_APCS_FLOAT	(0x0040)
-#define F_PIC		(0x0080)
-#define F_APCS26	(0x1000)
-#define F_ARM_ARCHITECTURE_MASK (0x4000+0x0800+0x0400)
-#define F_ARM_2		(0x0400)
-#define F_ARM_2a	(0x0800)
-#define F_ARM_3		(0x0c00)
-#define F_ARM_3M	(0x4000)
-#define F_ARM_4		(0x4400)
-#define F_ARM_4T	(0x4800)
-#define F_ARM_5		(0x4c00)
-
-/*
-  ARMMAGIC ought to encoded the procesor type,
-  but it is too late to change it now, instead
-  the flags field of the internal_f structure
-  is used as shown above.
- 
-  XXX - NC 5/6/97.  */
-
-#define	ARMMAGIC	0xa00  /* I just made this up */
-
-#define ARMBADMAG(x) (((x).f_magic != ARMMAGIC))
-
-#define	ARMPEMAGIC	0x1c0
-#define	THUMBPEMAGIC	0x1c2
-
-#undef  ARMBADMAG
-#define ARMBADMAG(x) (((x).f_magic != ARMMAGIC) && ((x).f_magic != ARMPEMAGIC) && ((x).f_magic != THUMBPEMAGIC))
-
-#define OMAGIC          0404    /* object files, eg as output */
-#define ZMAGIC          0413    /* demand load format, eg normal ld output */
-#define STMAGIC		0401	/* target shlib */
-#define SHMAGIC		0443	/* host   shlib */
-
-/* define some NT default values */
-/*  #define NT_IMAGE_BASE        0x400000 moved to internal.h */
-#define NT_SECTION_ALIGNMENT 0x1000
-#define NT_FILE_ALIGNMENT    0x200  
-#define NT_DEF_RESERVE       0x100000
-#define NT_DEF_COMMIT        0x1000
-
-/* We use the .rdata section to hold read only data.  */
-#define _LIT	".rdata"
-
-/********************** RELOCATION DIRECTIVES **********************/
-#ifdef ARM_WINCE
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_type[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 10
-
-#else
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_type[2];
-  char r_offset[4];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 14
-#endif
-
-#define ARM_NOTE_SECTION ".note"
diff --git a/include/coff/aux-coff.h b/include/coff/aux-coff.h
deleted file mode 100644
index 5199f2c..0000000
--- a/include/coff/aux-coff.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Modifications of internal.h and m68k.h needed by A/UX
-
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-   
-   Suggested by Ian Lance Taylor <ian@cygnus.com> */
-
-#ifndef GNU_COFF_AUX_H
-#define GNU_COFF_AUX_H 1
-
-#include "coff/internal.h"
-#include "coff/m68k.h"
-
-/* Section contains 64-byte padded pathnames of shared libraries */
-#undef STYP_LIB
-#define STYP_LIB 0x200
-
-/* Section contains shared library initialization code */
-#undef STYP_INIT
-#define STYP_INIT 0x400
-
-/* Section contains .ident information */
-#undef STYP_IDENT
-#define STYP_IDENT 0x800
-
-/* Section types used by bfd and gas not defined (directly) by A/UX */
-#undef STYP_OVER
-#define STYP_OVER 0
-#undef STYP_INFO
-#define STYP_INFO STYP_IDENT
-
-/* Traditional name of the section tagged with STYP_LIB */
-#define _LIB ".lib"
-
-#endif /* GNU_COFF_AUX_H */
diff --git a/include/coff/ecoff.h b/include/coff/ecoff.h
deleted file mode 100644
index d4d3fa5..0000000
--- a/include/coff/ecoff.h
+++ /dev/null
@@ -1,410 +0,0 @@
-/* Generic ECOFF support.
-   This does not include symbol information, found in sym.h and
-   symconst.h.
-
-   Copyright 2001, 2002, 2003, 2004, 2005 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef ECOFF_H
-#define ECOFF_H
-
-/* Mips magic numbers used in filehdr.  MIPS_MAGIC_LITTLE is used on
-   little endian machines.  MIPS_MAGIC_BIG is used on big endian
-   machines.  Where is MIPS_MAGIC_1 from?  */
-#define MIPS_MAGIC_1 0x0180
-#define MIPS_MAGIC_LITTLE 0x0162
-#define MIPS_MAGIC_BIG 0x0160
-
-/* These are the magic numbers used for MIPS code compiled at ISA
-   level 2.  */
-#define MIPS_MAGIC_LITTLE2 0x0166
-#define MIPS_MAGIC_BIG2 0x0163
-
-/* These are the magic numbers used for MIPS code compiled at ISA
-   level 3.  */
-#define MIPS_MAGIC_LITTLE3 0x142
-#define MIPS_MAGIC_BIG3 0x140
-
-/* Alpha magic numbers used in filehdr.  */
-#define ALPHA_MAGIC 0x183
-#define ALPHA_MAGIC_BSD 0x185
-/* A compressed version of an ALPHA_MAGIC file created by DEC's tools.  */
-#define ALPHA_MAGIC_COMPRESSED 0x188
-
-/* Magic numbers used in a.out header.  */
-#define ECOFF_AOUT_OMAGIC 0407	/* not demand paged (ld -N).  */
-#define ECOFF_AOUT_ZMAGIC 0413	/* demand load format, eg normal ld output */
-
-/* Names of special sections.  */
-#define _TEXT   ".text"
-#define _DATA   ".data"
-#define _BSS    ".bss"
-#define _RDATA	".rdata"
-#define _SDATA	".sdata"
-#define _SBSS	".sbss"
-#define _LITA	".lita"
-#define _LIT4	".lit4"
-#define _LIT8	".lit8"
-#define _LIB	".lib"
-#define _INIT	".init"
-#define _FINI	".fini"
-#define _PDATA	".pdata"
-#define _XDATA	".xdata"
-#define _GOT	".got"
-#define _HASH	".hash"
-#define _DYNSYM	".dynsym"
-#define _DYNSTR	".dynstr"
-#define _RELDYN	".rel.dyn"
-#define _CONFLIC ".conflic"
-#define _COMMENT ".comment"
-#define _LIBLIST ".liblist"
-#define _DYNAMIC ".dynamic"
-#define _RCONST	".rconst"
-
-/* ECOFF uses some additional section flags.  */
-#define STYP_RDATA	     0x100
-#define STYP_SDATA	     0x200
-#define STYP_SBSS	     0x400
-#define STYP_GOT	    0x1000
-#define STYP_DYNAMIC	    0x2000
-#define STYP_DYNSYM	    0x4000
-#define STYP_RELDYN	    0x8000
-#define STYP_DYNSTR	   0x10000
-#define STYP_HASH	   0x20000
-#define STYP_LIBLIST	   0x40000
-#define STYP_CONFLIC	  0x100000
-#define STYP_ECOFF_FINI	 0x1000000
-#define STYP_EXTENDESC	 0x2000000 /* 0x02FFF000 bits => scn type, rest clr */
-#define STYP_LITA	 0x4000000
-#define STYP_LIT8	 0x8000000
-#define STYP_LIT4	0x10000000
-#define STYP_ECOFF_LIB	0x40000000
-#define STYP_ECOFF_INIT 0x80000000
-#define STYP_OTHER_LOAD (STYP_ECOFF_INIT | STYP_ECOFF_FINI)
-
-/* extended section types */
-#define STYP_COMMENT	 0x2100000
-#define STYP_RCONST	 0x2200000
-#define STYP_XDATA	 0x2400000
-#define STYP_PDATA	 0x2800000
-
-/* The linker needs a section to hold small common variables while
-   linking.  There is no convenient way to create it when the linker
-   needs it, so we always create one for each BFD.  We then avoid
-   writing it out.  */
-#define SCOMMON ".scommon"
-
-/* If the extern bit in a reloc is 1, then r_symndx is an index into
-   the external symbol table.  If the extern bit is 0, then r_symndx
-   indicates a section, and is one of the following values.  */
-#define RELOC_SECTION_NONE	0
-#define RELOC_SECTION_TEXT	1
-#define RELOC_SECTION_RDATA	2
-#define RELOC_SECTION_DATA	3
-#define RELOC_SECTION_SDATA	4
-#define RELOC_SECTION_SBSS	5
-#define RELOC_SECTION_BSS	6
-#define RELOC_SECTION_INIT	7
-#define RELOC_SECTION_LIT8	8
-#define RELOC_SECTION_LIT4	9
-#define RELOC_SECTION_XDATA    10
-#define RELOC_SECTION_PDATA    11
-#define RELOC_SECTION_FINI     12
-#define RELOC_SECTION_LITA     13
-#define RELOC_SECTION_ABS      14
-#define RELOC_SECTION_RCONST   15
-
-#define NUM_RELOC_SECTIONS     16
-
-/********************** STABS **********************/
-
-/* gcc uses mips-tfile to output type information in special stabs
-   entries.  These must match the corresponding definition in
-   gcc/config/mips.h.  At some point, these should probably go into a
-   shared include file, but currently gcc and gdb do not share any
-   directories. */
-#define CODE_MASK 0x8F300
-#define ECOFF_IS_STAB(sym) (((sym)->index & 0xFFF00) == CODE_MASK)
-#define ECOFF_MARK_STAB(code) ((code)+CODE_MASK)
-#define ECOFF_UNMARK_STAB(code) ((code)-CODE_MASK)
-#define STABS_SYMBOL "@stabs"
-
-/********************** COFF **********************/
-
-/* gcc also uses mips-tfile to output COFF debugging information.
-   These are the values it uses when outputting the .type directive.
-   These should also be in a shared include file.  */
-#define N_BTMASK	(017)
-#define N_TMASK		(060)
-#define N_BTSHFT	(4)
-#define N_TSHIFT	(2)
-
-/********************** AUX **********************/
-
-/* The auxiliary type information is the same on all known ECOFF
-   targets.  I can't see any reason that it would ever change, so I am
-   going to gamble and define the external structures here, in the
-   target independent ECOFF header file.  The internal forms are
-   defined in coff/sym.h, which was originally donated by MIPS
-   Computer Systems.  */
-
-/* Type information external record */
-
-struct tir_ext {
-	unsigned char	t_bits1[1];
-	unsigned char	t_tq45[1];
-	unsigned char	t_tq01[1];
-	unsigned char	t_tq23[1];
-};
-
-#define	TIR_BITS1_FBITFIELD_BIG		((unsigned int) 0x80)
-#define	TIR_BITS1_FBITFIELD_LITTLE	((unsigned int) 0x01)
-
-#define	TIR_BITS1_CONTINUED_BIG		((unsigned int) 0x40)
-#define	TIR_BITS1_CONTINUED_LITTLE	((unsigned int) 0x02)
-
-#define	TIR_BITS1_BT_BIG		((unsigned int) 0x3F)
-#define	TIR_BITS1_BT_SH_BIG		0
-#define	TIR_BITS1_BT_LITTLE		((unsigned int) 0xFC)
-#define	TIR_BITS1_BT_SH_LITTLE		2
-
-#define	TIR_BITS_TQ4_BIG		((unsigned int) 0xF0)
-#define	TIR_BITS_TQ4_SH_BIG		4
-#define	TIR_BITS_TQ5_BIG		((unsigned int) 0x0F)
-#define	TIR_BITS_TQ5_SH_BIG		0
-#define	TIR_BITS_TQ4_LITTLE		((unsigned int) 0x0F)
-#define	TIR_BITS_TQ4_SH_LITTLE		0
-#define	TIR_BITS_TQ5_LITTLE		((unsigned int) 0xF0)
-#define	TIR_BITS_TQ5_SH_LITTLE		4
-
-#define	TIR_BITS_TQ0_BIG		((unsigned int) 0xF0)
-#define	TIR_BITS_TQ0_SH_BIG		4
-#define	TIR_BITS_TQ1_BIG		((unsigned int) 0x0F)
-#define	TIR_BITS_TQ1_SH_BIG		0
-#define	TIR_BITS_TQ0_LITTLE		((unsigned int) 0x0F)
-#define	TIR_BITS_TQ0_SH_LITTLE		0
-#define	TIR_BITS_TQ1_LITTLE		((unsigned int) 0xF0)
-#define	TIR_BITS_TQ1_SH_LITTLE		4
-
-#define	TIR_BITS_TQ2_BIG		((unsigned int) 0xF0)
-#define	TIR_BITS_TQ2_SH_BIG		4
-#define	TIR_BITS_TQ3_BIG		((unsigned int) 0x0F)
-#define	TIR_BITS_TQ3_SH_BIG		0
-#define	TIR_BITS_TQ2_LITTLE		((unsigned int) 0x0F)
-#define	TIR_BITS_TQ2_SH_LITTLE		0
-#define	TIR_BITS_TQ3_LITTLE		((unsigned int) 0xF0)
-#define	TIR_BITS_TQ3_SH_LITTLE		4
-
-/* Relative symbol external record */
-
-struct rndx_ext {
-	unsigned char	r_bits[4];
-};
-
-#define	RNDX_BITS0_RFD_SH_LEFT_BIG	4
-#define	RNDX_BITS1_RFD_BIG		((unsigned int) 0xF0)
-#define	RNDX_BITS1_RFD_SH_BIG		4
-
-#define	RNDX_BITS0_RFD_SH_LEFT_LITTLE	0
-#define	RNDX_BITS1_RFD_LITTLE		((unsigned int) 0x0F)
-#define	RNDX_BITS1_RFD_SH_LEFT_LITTLE	8
-
-#define	RNDX_BITS1_INDEX_BIG		((unsigned int) 0x0F)
-#define	RNDX_BITS1_INDEX_SH_LEFT_BIG	16
-#define	RNDX_BITS2_INDEX_SH_LEFT_BIG	8
-#define	RNDX_BITS3_INDEX_SH_LEFT_BIG	0
-
-#define	RNDX_BITS1_INDEX_LITTLE		((unsigned int) 0xF0)
-#define	RNDX_BITS1_INDEX_SH_LITTLE	4
-#define	RNDX_BITS2_INDEX_SH_LEFT_LITTLE	4
-#define	RNDX_BITS3_INDEX_SH_LEFT_LITTLE	12
-
-/* Auxiliary symbol information external record */
-
-union aux_ext {
-	struct tir_ext	a_ti;
-	struct rndx_ext	a_rndx;
-	unsigned char	a_dnLow[4];
-	unsigned char	a_dnHigh[4];
-	unsigned char	a_isym[4];
-	unsigned char	a_iss[4];
-	unsigned char	a_width[4];
-	unsigned char	a_count[4];
-};
-
-#define AUX_GET_ANY(bigend, ax, field) \
-  ((bigend) ? bfd_getb32 ((ax)->field) : bfd_getl32 ((ax)->field))
-
-#define	AUX_GET_DNLOW(bigend, ax)	AUX_GET_ANY ((bigend), (ax), a_dnLow)
-#define	AUX_GET_DNHIGH(bigend, ax)	AUX_GET_ANY ((bigend), (ax), a_dnHigh)
-#define	AUX_GET_ISYM(bigend, ax)	AUX_GET_ANY ((bigend), (ax), a_isym)
-#define AUX_GET_ISS(bigend, ax)		AUX_GET_ANY ((bigend), (ax), a_iss)
-#define AUX_GET_WIDTH(bigend, ax)	AUX_GET_ANY ((bigend), (ax), a_width)
-#define AUX_GET_COUNT(bigend, ax)	AUX_GET_ANY ((bigend), (ax), a_count)
-
-#define AUX_PUT_ANY(bigend, val, ax, field) \
-  ((bigend) \
-   ? (bfd_putb32 ((bfd_vma) (val), (ax)->field), 0) \
-   : (bfd_putl32 ((bfd_vma) (val), (ax)->field), 0))
-
-#define AUX_PUT_DNLOW(bigend, val, ax) \
-  AUX_PUT_ANY ((bigend), (val), (ax), a_dnLow)
-#define AUX_PUT_DNHIGH(bigend, val, ax) \
-  AUX_PUT_ANY ((bigend), (val), (ax), a_dnHigh)
-#define AUX_PUT_ISYM(bigend, val, ax) \
-  AUX_PUT_ANY ((bigend), (val), (ax), a_isym)
-#define AUX_PUT_ISS(bigend, val, ax) \
-  AUX_PUT_ANY ((bigend), (val), (ax), a_iss)
-#define AUX_PUT_WIDTH(bigend, val, ax) \
-  AUX_PUT_ANY ((bigend), (val), (ax), a_width)
-#define AUX_PUT_COUNT(bigend, val, ax) \
-  AUX_PUT_ANY ((bigend), (val), (ax), a_count)
-
-/********************** SYMBOLS **********************/
-
-/* For efficiency, gdb deals directly with the unswapped symbolic
-   information (that way it only takes the time to swap information
-   that it really needs to read).  gdb originally retrieved the
-   information directly from the BFD backend information, but that
-   strategy, besides being sort of ugly, does not work for MIPS ELF,
-   which also uses ECOFF debugging information.  This structure holds
-   pointers to the (mostly) unswapped symbolic information.  */
-
-struct ecoff_debug_info
-{
-  /* The swapped ECOFF symbolic header.  */
-  HDRR symbolic_header;
-
-  /* Pointers to the unswapped symbolic information.  Note that the
-     pointers to external structures point to different sorts of
-     information on different ECOFF targets.  The ecoff_debug_swap
-     structure provides the sizes of the structures and the functions
-     needed to swap the information in and out.  These pointers are
-     all pointers to arrays, not single structures.  They will be NULL
-     if there are no instances of the relevant structure.  These
-     fields are also used by the assembler to output ECOFF debugging
-     information.  */
-  unsigned char *line;
-  void *external_dnr;	/* struct dnr_ext */
-  void *external_pdr;	/* struct pdr_ext */
-  void *external_sym;	/* struct sym_ext */
-  void *external_opt;	/* struct opt_ext */
-  union aux_ext *external_aux;
-  char *ss;
-  char *ssext;
-  void *external_fdr;	/* struct fdr_ext */
-  void *external_rfd;	/* struct rfd_ext */
-  void *external_ext;	/* struct ext_ext */
-
-  /* These fields are used when linking.  They may disappear at some
-     point.  */
-  char *ssext_end;
-  void *external_ext_end;
-
-  /* When linking, this field holds a mapping from the input FDR
-     numbers to the output numbers, and is used when writing out the
-     external symbols.  It is NULL if no mapping is required.  */
-  RFDT *ifdmap;
-
-  /* The swapped FDR information.  Currently this is never NULL, but
-     code using this structure should probably double-check in case
-     this changes in the future.  This is a pointer to an array, not a
-     single structure.  */
-  FDR *fdr;
-};
-
-/* These structures are used by the ECOFF find_nearest_line function.  */
-
-struct ecoff_fdrtab_entry
-{
-  /* Base address in .text of this FDR.  */
-  bfd_vma base_addr;
-  FDR *fdr;
-};
-
-struct ecoff_find_line
-{
-  /* Allocated memory to hold function and file names.  */
-  char *find_buffer;
-
-  /* FDR table, sorted by address: */
-  long fdrtab_len;
-  struct ecoff_fdrtab_entry *fdrtab;
-
-  /* Cache entry for most recently found line information.  The sect
-     field is NULL if this cache does not contain valid information.  */
-  struct
-    {
-      asection *sect;
-      bfd_vma start;
-      bfd_vma stop;
-      const char *filename;
-      const char *functionname;
-      unsigned int line_num;
-    } cache;
-};
-
-/********************** SWAPPING **********************/
-
-/* The generic ECOFF code needs to be able to swap debugging
-   information in and out in the specific format used by a particular
-   ECOFF implementation.  This structure provides the information
-   needed to do this.  */
-
-struct ecoff_debug_swap
-{
-  /* Symbol table magic number.  */
-  int sym_magic;
-  /* Alignment of debugging information.  E.g., 4.  */
-  bfd_size_type debug_align;
-  /* Sizes of external symbolic information.  */
-  bfd_size_type external_hdr_size;
-  bfd_size_type external_dnr_size;
-  bfd_size_type external_pdr_size;
-  bfd_size_type external_sym_size;
-  bfd_size_type external_opt_size;
-  bfd_size_type external_fdr_size;
-  bfd_size_type external_rfd_size;
-  bfd_size_type external_ext_size;
-  /* Functions to swap in external symbolic data.  */
-  void (*swap_hdr_in) (bfd *, void *, HDRR *);
-  void (*swap_dnr_in) (bfd *, void *, DNR *);
-  void (*swap_pdr_in) (bfd *, void *, PDR *);
-  void (*swap_sym_in) (bfd *, void *, SYMR *);
-  void (*swap_opt_in) (bfd *, void *, OPTR *);
-  void (*swap_fdr_in) (bfd *, void *, FDR *);
-  void (*swap_rfd_in) (bfd *, void *, RFDT *);
-  void (*swap_ext_in) (bfd *, void *, EXTR *);
-  void (*swap_tir_in) (int, const struct tir_ext *, TIR *);
-  void (*swap_rndx_in) (int, const struct rndx_ext *, RNDXR *);
-  /* Functions to swap out external symbolic data.  */
-  void (*swap_hdr_out) (bfd *, const HDRR *, void *);
-  void (*swap_dnr_out) (bfd *, const DNR *, void *);
-  void (*swap_pdr_out) (bfd *, const PDR *, void *);
-  void (*swap_sym_out) (bfd *, const SYMR *, void *);
-  void (*swap_opt_out) (bfd *, const OPTR *, void *);
-  void (*swap_fdr_out) (bfd *, const FDR *, void *);
-  void (*swap_rfd_out) (bfd *, const RFDT *, void *);
-  void (*swap_ext_out) (bfd *, const EXTR *, void *);
-  void (*swap_tir_out) (int, const TIR *, struct tir_ext *);
-  void (*swap_rndx_out) (int, const RNDXR *, struct rndx_ext *);
-  /* Function to read symbol data and set up pointers in
-     ecoff_debug_info structure.  The section argument is used for
-     ELF, not straight ECOFF.  */
-  bfd_boolean (*read_debug_info) (bfd *, asection *, struct ecoff_debug_info *);
-};
-
-#endif /* ! defined (ECOFF_H) */
diff --git a/include/coff/external.h b/include/coff/external.h
deleted file mode 100644
index 9e760bd..0000000
--- a/include/coff/external.h
+++ /dev/null
@@ -1,254 +0,0 @@
-/* external.h  -- External COFF structures
-   
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef COFF_EXTERNAL_H
-#define COFF_EXTERNAL_H
-
-#ifndef DO_NOT_DEFINE_FILHDR
-/********************** FILE HEADER **********************/
-
-struct external_filehdr
-  {
-    char f_magic[2];	/* magic number			*/
-    char f_nscns[2];	/* number of sections		*/
-    char f_timdat[4];	/* time & date stamp		*/
-    char f_symptr[4];	/* file pointer to symtab	*/
-    char f_nsyms[4];	/* number of symtab entries	*/
-    char f_opthdr[2];	/* sizeof(optional hdr)		*/
-    char f_flags[2];	/* flags			*/
-  };
-
-#define	FILHDR	struct external_filehdr
-#define	FILHSZ	20
-#endif
-
-#ifndef DO_NOT_DEFINE_AOUTHDR
-/********************** AOUT "OPTIONAL HEADER" **********************/
-
-typedef struct external_aouthdr
-  {
-    char magic[2];	/* type of file				*/
-    char vstamp[2];	/* version stamp			*/
-    char tsize[4];	/* text size in bytes, padded to FW bdry*/
-    char dsize[4];	/* initialized data "  "		*/
-    char bsize[4];	/* uninitialized data "   "		*/
-    char entry[4];	/* entry pt.				*/
-    char text_start[4];	/* base of text used for this file 	*/
-    char data_start[4];	/* base of data used for this file 	*/
-  }
-AOUTHDR;
-
-#define AOUTHDRSZ 28
-#define AOUTSZ 28
-#endif
-
-#ifndef DO_NOT_DEFINE_SCNHDR
-/********************** SECTION HEADER **********************/
-
-struct external_scnhdr
-  {
-    char s_name[8];	/* section name				*/
-    char s_paddr[4];	/* physical address, aliased s_nlib 	*/
-    char s_vaddr[4];	/* virtual address			*/
-    char s_size[4];	/* section size				*/
-    char s_scnptr[4];	/* file ptr to raw data for section 	*/
-    char s_relptr[4];	/* file ptr to relocation		*/
-    char s_lnnoptr[4];	/* file ptr to line numbers		*/
-    char s_nreloc[2];	/* number of relocation entries		*/
-    char s_nlnno[2];	/* number of line number entries	*/
-    char s_flags[4];	/* flags				*/
-  };
-
-#define	SCNHDR	struct external_scnhdr
-#define	SCNHSZ	40
-
-/* Names of "special" sections.  */
-
-#define _TEXT	 ".text"
-#define _DATA	 ".data"
-#define _BSS	 ".bss"
-#define _COMMENT ".comment"
-#define _LIB     ".lib"
-#endif /* not DO_NOT_DEFINE_SCNHDR */
-
-#ifndef DO_NOT_DEFINE_LINENO
-
-/********************** LINE NUMBERS **********************/
-
-#ifndef L_LNNO_SIZE
-#error  L_LNNO_SIZE needs to be defined
-#endif
-
-/* 1 line number entry for every "breakpointable" source line in a section.
-   Line numbers are grouped on a per function basis; first entry in a function
-   grouping will have l_lnno = 0 and in place of physical address will be the
-   symbol table index of the function name.  */
-struct external_lineno
-{
-  union
-  {
-    char l_symndx[4];	/* function name symbol index, iff l_lnno == 0*/
-    char l_paddr[4];	/* (physical) address of line number	*/
-  } l_addr;
-
-  char l_lnno[L_LNNO_SIZE];	/* line number		*/
-};
-
-#define	LINENO	struct external_lineno
-#define	LINESZ	(4 + L_LNNO_SIZE)
-
-#if L_LNNO_SIZE == 4
-#define GET_LINENO_LNNO(abfd, ext)      H_GET_32 (abfd,      (ext->l_lnno))
-#define PUT_LINENO_LNNO(abfd, val, ext) H_PUT_32 (abfd, val, (ext->l_lnno))
-#endif
-#if L_LNNO_SIZE == 2
-#define GET_LINENO_LNNO(abfd, ext)      H_GET_16 (abfd,      (ext->l_lnno))
-#define PUT_LINENO_LNNO(abfd, val, ext) H_PUT_16 (abfd, val, (ext->l_lnno))
-#endif
-
-#endif /* not DO_NOT_DEFINE_LINENO */
-
-#ifndef DO_NOT_DEFINE_SYMENT
-/********************** SYMBOLS **********************/
-
-#define E_SYMNMLEN	8	/* # characters in a symbol name	*/
-#ifndef E_FILNMLEN
-#define E_FILNMLEN	14
-#endif
-#define E_DIMNUM	4	/* # array dimensions in auxiliary entry */
-
-struct external_syment 
-{
-  union
-  {
-    char e_name[E_SYMNMLEN];
-
-    struct
-    {
-      char e_zeroes[4];
-      char e_offset[4];
-    } e;
-  } e;
-
-  char e_value[4];
-  char e_scnum[2];
-  char e_type[2];
-  char e_sclass[1];
-  char e_numaux[1];
-};
-
-#define	SYMENT	struct external_syment
-#define	SYMESZ	18	
-
-#ifndef N_BTMASK
-#define N_BTMASK	0xf
-#endif
-
-#ifndef N_TMASK
-#define N_TMASK		0x30
-#endif
-
-#ifndef N_BTSHFT
-#define N_BTSHFT	4
-#endif
-
-#ifndef N_TSHIFT
-#define N_TSHIFT	2
-#endif
-
-#endif /* not DO_NOT_DEFINE_SYMENT */
-
-#ifndef DO_NOT_DEFINE_AUXENT
-
-union external_auxent
-{
-  struct
-  {
-    char x_tagndx[4];		/* str, un, or enum tag indx */
-    
-    union
-    {
-      struct
-      {
-	char  x_lnno[2]; /* declaration line number */
-	char  x_size[2]; /* str/union/array size */
-      } x_lnsz;
-      
-      char x_fsize[4];	/* size of function */
-      
-    } x_misc;
-    
-    union
-    {
-      struct 		/* if ISFCN, tag, or .bb */
-      {
-	char x_lnnoptr[4];	/* ptr to fcn line # */
-	char x_endndx[4];	/* entry ndx past block end */
-      } x_fcn;
-      
-      struct 		/* if ISARY, up to 4 dimen. */
-      {
-	char x_dimen[E_DIMNUM][2];
-      } x_ary;
-      
-    } x_fcnary;
-    
-    char x_tvndx[2];	/* tv index */
-    
-  } x_sym;
-  
-  union
-  {
-    char x_fname[E_FILNMLEN];
-    
-    struct
-    {
-      char x_zeroes[4];
-      char x_offset[4];
-    } x_n;
-    
-  } x_file;
-  
-  struct
-  {
-    char x_scnlen[4];	/* section length */
-    char x_nreloc[2];	/* # relocation entries */
-    char x_nlinno[2];	/* # line numbers */
-#ifdef INCLUDE_COMDAT_FIELDS_IN_AUXENT
-    char x_checksum[4];		   /* section COMDAT checksum	      */
-    char x_associated[2];	   /* COMDAT associated section index */
-    char x_comdat[1];		   /* COMDAT selection number	      */
-#endif    
-  } x_scn;
-  
-  struct
-  {
-    char x_tvfill[4];	/* tv fill value */
-    char x_tvlen[2];	/* length of .tv */
-    char x_tvran[2][2];	/* tv range */
-  } x_tv;		/* info about .tv section (in auxent of symbol .tv)) */
-};
-
-#define	AUXENT	union external_auxent
-#define	AUXESZ	18
-
-#define _ETEXT	"etext"
-
-#endif /* not DO_NOT_DEFINE_AUXENT */
-
-#endif /* COFF_EXTERNAL_H */
diff --git a/include/coff/go32exe.h b/include/coff/go32exe.h
deleted file mode 100644
index c85da0c..0000000
--- a/include/coff/go32exe.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* COFF information for PC running go32.
-
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#define STUBSIZE 2048
-
-struct external_filehdr_go32_exe
-  {
-    char stub[STUBSIZE];/* the stub to load the image	*/
-			/* the standard COFF header     */
-    char f_magic[2];	/* magic number			*/
-    char f_nscns[2];	/* number of sections		*/
-    char f_timdat[4];	/* time & date stamp		*/
-    char f_symptr[4];	/* file pointer to symtab	*/
-    char f_nsyms[4];	/* number of symtab entries	*/
-    char f_opthdr[2];	/* sizeof(optional hdr)		*/
-    char f_flags[2];	/* flags			*/
-  };
-
-#undef FILHDR
-#define	FILHDR	struct external_filehdr_go32_exe
-#undef FILHSZ
-#define	FILHSZ	STUBSIZE+20
diff --git a/include/coff/h8300.h b/include/coff/h8300.h
deleted file mode 100644
index 93be6ef..0000000
--- a/include/coff/h8300.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* coff information for Renesas H8/300 and H8/300-H
-
-   Copyright 2001, 2003 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#define L_LNNO_SIZE 4
-#include "coff/external.h"
-
-#define	H8300MAGIC	0x8300
-#define	H8300HMAGIC	0x8301
-#define	H8300SMAGIC	0x8302
-#define	H8300HNMAGIC	0x8303
-#define	H8300SNMAGIC	0x8304
-
-#define H8300BADMAG(x)   (((x).f_magic != H8300MAGIC))
-#define H8300HBADMAG(x)  (((x).f_magic != H8300HMAGIC))
-#define H8300SBADMAG(x)  (((x).f_magic != H8300SMAGIC))
-#define H8300HNBADMAG(x) (((x).f_magic != H8300HNMAGIC))
-#define H8300SNBADMAG(x) (((x).f_magic != H8300SNMAGIC))
-
-/* Relocation directives.  */
-
-/* The external reloc has an offset field, because some of the reloc
-   types on the h8 don't have room in the instruction for the entire
-   offset - eg the strange jump and high page addressing modes.  */
-
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_offset[4];
-  char r_type[2];
-  char r_stuff[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 16
-
-
-
-
diff --git a/include/coff/h8500.h b/include/coff/h8500.h
deleted file mode 100644
index 8d4e4114..0000000
--- a/include/coff/h8500.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* coff information for Renesas H8/500
-   
-   Copyright 2001, 2003 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#define L_LNNO_SIZE 4
-#include "coff/external.h"
-
-#define	H8500MAGIC	0x8500
-
-#define H8500BADMAG(x) ((0xffff && ((x).f_magic) != H8500MAGIC))
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-/* The external reloc has an offset field, because some of the reloc
-   types on the h8 don't have room in the instruction for the entire
-   offset - eg the strange jump and high page addressing modes.  */
-
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_offset[4];
-  char r_type[2];
-  char r_stuff[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 16
-
-
-
-
diff --git a/include/coff/i386.h b/include/coff/i386.h
deleted file mode 100644
index 023b302..0000000
--- a/include/coff/i386.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* coff information for Intel 386/486.
-   
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#define L_LNNO_SIZE 2
-#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
-#include "coff/external.h"
-
-/* Bits for f_flags:
- 	F_RELFLG	relocation info stripped from file
- 	F_EXEC		file is executable (no unresolved external references)
- 	F_LNNO		line numbers stripped from file
- 	F_LSYMS		local symbols stripped from file
- 	F_AR32WR	file has byte ordering of an AR32WR machine (e.g. vax).  */
-
-#define F_RELFLG	(0x0001)
-#define F_EXEC		(0x0002)
-#define F_LNNO		(0x0004)
-#define F_LSYMS		(0x0008)
-
-#define	I386MAGIC	0x14c
-#define I386PTXMAGIC	0x154
-#define I386AIXMAGIC	0x175
-
-/* This is Lynx's all-platform magic number for executables. */
-
-#define LYNXCOFFMAGIC	0415
-
-#define I386BADMAG(x) (  ((x).f_magic != I386MAGIC) \
-		       && (x).f_magic != I386AIXMAGIC \
-		       && (x).f_magic != I386PTXMAGIC \
-		       && (x).f_magic != LYNXCOFFMAGIC)
-
-#define OMAGIC          0404    /* object files, eg as output */
-#define ZMAGIC          0413    /* demand load format, eg normal ld output */
-#define STMAGIC		0401	/* target shlib */
-#define SHMAGIC		0443	/* host   shlib */
-
-/* define some NT default values */
-/*  #define NT_IMAGE_BASE        0x400000 moved to internal.h */
-#define NT_SECTION_ALIGNMENT 0x1000
-#define NT_FILE_ALIGNMENT    0x200
-#define NT_DEF_RESERVE       0x100000
-#define NT_DEF_COMMIT        0x1000
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_type[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 10
-
diff --git a/include/coff/i860.h b/include/coff/i860.h
deleted file mode 100644
index 6e8d1b4..0000000
--- a/include/coff/i860.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/* COFF information for the Intel i860.
-   
-   Copyright 2001, 2003 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* This file was hacked from i386.h   [dolan@ssd.intel.com] */
-
-#define L_LNNO_SIZE 2
-#include "coff/external.h"
-
-/* Bits for f_flags:
- 	F_RELFLG	relocation info stripped from file
- 	F_EXEC		file is executable (no unresolved external references)
- 	F_LNNO		line numbers stripped from file
- 	F_LSYMS		local symbols stripped from file
- 	F_AR32WR	file has byte ordering of an AR32WR machine (e.g. vax).  */
-
-#define F_RELFLG	(0x0001)
-#define F_EXEC		(0x0002)
-#define F_LNNO		(0x0004)
-#define F_LSYMS		(0x0008)
-
-#define	I860MAGIC	0x14d
-
-#define I860BADMAG(x)   ((x).f_magic != I860MAGIC)
-
-#undef AOUTSZ
-#define AOUTSZ 36
-
-/* FIXME: What are the a.out magic numbers?  */
-
-#define _ETEXT	"etext"
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_type[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 10
-
-/* The relocation directory entry types.
-     PAIR   : The low half that follows relates to the preceeding HIGH[ADJ].
-     HIGH   : The high half of a 32-bit constant.
-     LOWn   : The low half, insn bits 15..(n-1), 2^n-byte aligned. 
-     SPLITn : The low half, insn bits 20..16 and 10..(n-1), 2^n-byte aligned. 
-     HIGHADJ: Similar to HIGH, but with adjustment.
-     BRADDR : 26-bit branch displacement.
-
-   Note: The Intel assembler manual lists LOW4 as one of the
-   relocation types, but it appears to be useless for the i860.
-   We will recognize it anyway, just in case it actually appears in
-   any object files.  */
-
-enum {
-  COFF860_R_PAIR	= 0x1c,
-  COFF860_R_HIGH	= 0x1e,
-  COFF860_R_LOW0	= 0x1f,
-  COFF860_R_LOW1	= 0x20,
-  COFF860_R_LOW2	= 0x21,
-  COFF860_R_LOW3	= 0x22,
-  COFF860_R_LOW4	= 0x23,
-  COFF860_R_SPLIT0	= 0x24,
-  COFF860_R_SPLIT1	= 0x25,
-  COFF860_R_SPLIT2	= 0x26,
-  COFF860_R_HIGHADJ	= 0x27,
-  COFF860_R_BRADDR	= 0x28
-};
-
diff --git a/include/coff/i960.h b/include/coff/i960.h
deleted file mode 100644
index b5ff6a5..0000000
--- a/include/coff/i960.h
+++ /dev/null
@@ -1,319 +0,0 @@
-/* coff information for 80960.  Origins: Intel corp, natch.
-   
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* NOTE: Tagentries (cf TAGBITS) are no longer used by the 960 */
-
-/********************** FILE HEADER **********************/
-
-struct external_filehdr
-{
-  char f_magic[2];	/* magic number			*/
-  char f_nscns[2];	/* number of sections		*/
-  char f_timdat[4];	/* time & date stamp		*/
-  char f_symptr[4];	/* file pointer to symtab	*/
-  char f_nsyms[4];	/* number of symtab entries	*/
-  char f_opthdr[2];	/* sizeof(optional hdr)		*/
-  char f_flags[2];	/* flags			*/
-};
-
-#define OMAGIC      (0407)	/* old impure format. data immediately
-                                   follows text. both sections are rw. */
-#define NMAGIC      (0410)	/* split i&d, read-only text */
-
-/*
-*	Intel 80960 (I960) processor flags.
-*	F_I960TYPE == mask for processor type field. 
-*/
-
-#define	F_I960TYPE	(0xf000)
-#define	F_I960CORE	(0x1000)
-#define	F_I960KB	(0x2000)
-#define	F_I960SB	(0x2000)
-#define	F_I960MC	(0x3000)
-#define	F_I960XA	(0x4000)
-#define	F_I960CA	(0x5000)
-#define	F_I960KA	(0x6000)
-#define	F_I960SA	(0x6000)
-#define F_I960JX	(0x7000)
-#define F_I960HX	(0x8000)
-
-
-/** i80960 Magic Numbers
-*/
-
-#define I960ROMAGIC	(0x160)	/* read-only text segments */
-#define I960RWMAGIC	(0x161)	/* read-write text segments */
-
-#define I960BADMAG(x) (((x).f_magic!=I960ROMAGIC) && ((x).f_magic!=I960RWMAGIC))
-
-#define	FILHDR	struct external_filehdr
-#define	FILHSZ	20
-
-/********************** AOUT "OPTIONAL HEADER" **********************/
-
-typedef struct
-{
-  unsigned long	phys_addr;
-  unsigned long	bitarray;
-} TAGBITS;
-
-typedef struct 
-{
-  char 	magic[2];		/* type of file				*/
-  char	vstamp[2];		/* version stamp			*/
-  char	tsize[4];		/* text size in bytes, padded to FW bdry*/
-  char	dsize[4];		/* initialized data "  "		*/
-  char	bsize[4];		/* uninitialized data "   "		*/
-  char	entry[4];		/* entry pt.				*/
-  char 	text_start[4];		/* base of text used for this file */
-  char 	data_start[4];		/* base of data used for this file */
-  char	tagentries[4];		/* number of tag entries to follow */
-}
-AOUTHDR;
-
-/* return a pointer to the tag bits array */
-
-#define TAGPTR(aout) ((TAGBITS *) (&(aout.tagentries)+1))
-
-/* compute size of a header */
-
-/*#define AOUTSZ(aout) (sizeof(AOUTHDR)+(aout.tagentries*sizeof(TAGBITS)))*/
-#define AOUTSZ 32
-#define AOUTHDRSZ 32
-
-
-/********************** SECTION HEADER **********************/
-
-struct external_scnhdr
-{
-  char		s_name[8];	/* section name			*/
-  char		s_paddr[4];	/* physical address, aliased s_nlib */
-  char		s_vaddr[4];	/* virtual address		*/
-  char		s_size[4];	/* section size			*/
-  char		s_scnptr[4];	/* file ptr to raw data for section */
-  char		s_relptr[4];	/* file ptr to relocation	*/
-  char		s_lnnoptr[4];	/* file ptr to line numbers	*/
-  char		s_nreloc[2];	/* number of relocation entries	*/
-  char		s_nlnno[2];	/* number of line number entries*/
-  char		s_flags[4];	/* flags			*/
-  char 		s_align[4];	/* section alignment		*/
-};
-
-
-#define	SCNHDR	struct external_scnhdr
-#define	SCNHSZ	44
-
-/*
- * names of "special" sections
- */
-#define _TEXT   ".text"
-#define _DATA   ".data"
-#define _BSS    ".bss"
-
-/********************** LINE NUMBERS **********************/
-
-/* 1 line number entry for every "breakpointable" source line in a section.
- * Line numbers are grouped on a per function basis; first entry in a function
- * grouping will have l_lnno = 0 and in place of physical address will be the
- * symbol table index of the function name.
- */
-struct external_lineno
-{
-  union
-  {
-    char l_symndx[4];	/* function name symbol index, iff l_lnno == 0*/
-    char l_paddr[4];	/* (physical) address of line number	*/
-  } l_addr;
-
-  char l_lnno[2];		/* line number		*/
-  char padding[2];	/* force alignment	*/
-};
-
-
-#define	LINENO	struct external_lineno
-#define	LINESZ	8
-
-/********************** SYMBOLS **********************/
-
-#define E_SYMNMLEN	8	/* # characters in a symbol name	*/
-#define E_FILNMLEN	14	/* # characters in a file name		*/
-#define E_DIMNUM	4	/* # array dimensions in auxiliary entry */
-
-struct external_syment 
-{
-  union
-  {
-    char e_name[E_SYMNMLEN];
-
-    struct
-    {
-      char e_zeroes[4];
-      char e_offset[4];
-    } e;
-  } e;
-
-  char e_value[4];
-  char e_scnum[2];
-  char e_flags[2];
-  char e_type[4];
-  char e_sclass[1];
-  char e_numaux[1];
-  char pad2[2];
-};
-
-#define N_BTMASK	(0x1f)
-#define N_TMASK		(0x60)
-#define N_BTSHFT	(5)
-#define N_TSHIFT	(2)
-  
-union external_auxent
-{
-  struct
-  {
-    char x_tagndx[4];	/* str, un, or enum tag indx */
-
-    union
-    {
-      struct
-      {
-	char  x_lnno[2]; /* declaration line number */
-	char  x_size[2]; /* str/union/array size */
-      } x_lnsz;
-
-      char x_fsize[4];	/* size of function */
-
-    } x_misc;
-
-    union
-    {
-      struct 		/* if ISFCN, tag, or .bb */
-      {
-	char x_lnnoptr[4];	/* ptr to fcn line # */
-	char x_endndx[4];	/* entry ndx past block end */
-      } x_fcn;
-
-      struct 		/* if ISARY, up to 4 dimen. */
-      {
-	char x_dimen[E_DIMNUM][2];
-      } x_ary;
-
-    } x_fcnary;
-
-    char x_tvndx[2];		/* tv index */
-
-  } x_sym;
-
-  union
-  {
-    char x_fname[E_FILNMLEN];
-
-    struct
-    {
-      char x_zeroes[4];
-      char x_offset[4];
-    } x_n;
-
-  } x_file;
-
-  struct
-  {
-    char x_scnlen[4];			/* section length */
-    char x_nreloc[2];	/* # relocation entries */
-    char x_nlinno[2];	/* # line numbers */
-
-  } x_scn;
-
-  struct
-  {
-    char x_tvfill[4];	/* tv fill value */
-    char x_tvlen[2];	/* length of .tv */
-    char x_tvran[2][2];	/* tv range */
-
-  } x_tv;		/* info about .tv section (in auxent of symbol .tv)) */
-
-  /******************************************
-   *  I960-specific *2nd* aux. entry formats
-   ******************************************/
-  struct
-  {
-    /* This is a very old typo that keeps getting propagated. */
-#define x_stdindx x_stindx
-    char x_stindx[4];	/* sys. table entry */
-  } x_sc;	/* system call entry */
-
-  struct
-  {
-    char x_balntry[4]; /* BAL entry point */
-  } x_bal; /* BAL-callable function */
-
-  struct
-  {
-    char x_timestamp[4];	        /* time stamp */
-    char 	x_idstring[20];	        /* producer identity string */
-
-  } x_ident;	                        /* Producer ident info */
-};
-
-#define	SYMENT	struct external_syment
-#define	SYMESZ	24
-#define	AUXENT	union external_auxent
-#define	AUXESZ	24
-
-#	define _ETEXT	"_etext"
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_type[2];
-  char pad[2];
-};
-
-/* r_type values for the i960.  */
-
-/* The i960 uses R_RELLONG, which is defined in internal.h as 0x11.
-   It is an absolute 32 bit relocation.  */
-
-#define R_IPRMED 	(0x19)	/* 24-bit ip-relative relocation */
-#define R_OPTCALL	(0x1b)	/* 32-bit optimizable call (leafproc/sysproc) */
-#define R_OPTCALLX	(0x1c)	/* 64-bit optimizable call (leafproc/sysproc) */
-
-/* The following relocation types are defined use by relaxing linkers,
-   which convert 32 bit calls (which require a 64 bit instruction)
-   into 24 bit calls (which require a 32 bit instruction) when
-   possible.  It will be possible whenever the target of the call is
-   within a 24 bit range of the call instruction.
-
-   It is always safe to ignore these relocations.  They only serve to
-   mark points which the relaxing linker will have to consider.  The
-   assembler must ensure that the correct code is generated even if
-   the relocations are ignored.  In particular, this means that the
-   R_IPR13 relocation may not appear with an external symbol.  */
-
-#define R_IPR13		(0x1d)	/* 13 bit ip-relative branch */
-#define R_ALIGN		(0x1e)  /* alignment marker.  This has no
-				   associated symbol.  Instead, the
-				   r_symndx field indicates the
-				   require alignment at this point in
-				   the file.  It must be a power of 2.  */
-
-#define RELOC struct external_reloc
-#define RELSZ 12
-
diff --git a/include/coff/ia64.h b/include/coff/ia64.h
deleted file mode 100644
index dd04f62..0000000
--- a/include/coff/ia64.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/* coff information for HP/Intel IA-64.
-   
-   Copyright 2000 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#define DO_NOT_DEFINE_AOUTHDR
-#define L_LNNO_SIZE 2
-#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
-#include "coff/external.h"
-
-#define IA64MAGIC	0x200
-
-#define IA64BADMAG(x)	(((x).f_magic != IA64MAGIC))
-
-/* Bits for f_flags:
- *	F_RELFLG	relocation info stripped from file
- *	F_EXEC		file is executable (no unresolved external references)
- *	F_LNNO		line numbers stripped from file
- *	F_LSYMS		local symbols stripped from file
- *	F_AR32WR	file has byte ordering of an AR32WR machine (e.g. vax)
- */
-
-#define F_RELFLG	(0x0001)
-#define F_EXEC		(0x0002)
-#define F_LNNO		(0x0004)
-#define F_LSYMS		(0x0008)
-
-/********************** AOUT "OPTIONAL HEADER" **********************/
-typedef struct 
-{
-  char 	magic[2];		/* type of file				*/
-  char	vstamp[2];		/* version stamp			*/
-  char	tsize[4];		/* text size in bytes, padded to FW bdry*/
-  char	dsize[4];		/* initialized data "  "		*/
-  char	bsize[4];		/* uninitialized data "   "		*/
-  char	entry[4];		/* entry pt.				*/
-  char 	text_start[4];		/* base of text used for this file	*/
-#ifndef BFD64
-  char 	data_start[4];		/* base of data used for this file	*/
-#endif
-}
-AOUTHDR;
-
-#define PE32MAGIC	0x10b	/* 32-bit image */
-#define PE32PMAGIC	0x20b	/* 32-bit image inside 64-bit address space */
-
-#define PE32PBADMAG(x) (((x).f_magic != PE32PMAGIC))
-
-#define AOUTSZ		108
-#define AOUTHDRSZ	108
-
-#define OMAGIC          0404    /* object files, eg as output */
-#define ZMAGIC          0413    /* demand load format, eg normal ld output */
-#define STMAGIC		0401	/* target shlib */
-#define SHMAGIC		0443	/* host   shlib */
-
-/* define some NT default values */
-/*  #define NT_IMAGE_BASE        0x400000 moved to internal.h */
-#define NT_SECTION_ALIGNMENT 0x1000
-#define NT_FILE_ALIGNMENT    0x200
-#define NT_DEF_RESERVE       0x100000
-#define NT_DEF_COMMIT        0x1000
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_type[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 10
-
diff --git a/include/coff/internal.h b/include/coff/internal.h
deleted file mode 100644
index ed0918a..0000000
--- a/include/coff/internal.h
+++ /dev/null
@@ -1,752 +0,0 @@
-/* Internal format of COFF object file data structures, for GNU BFD.
-   This file is part of BFD, the Binary File Descriptor library.
-   
-   Copyright 1999, 2000, 2001, 2002, 2003, 2004. 2005
-   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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef GNU_COFF_INTERNAL_H
-#define GNU_COFF_INTERNAL_H 1
-
-/* First, make "signed char" work, even on old compilers. */
-#ifndef signed
-#ifndef __STDC__
-#define	signed			/**/
-#endif
-#endif
-
-/********************** FILE HEADER **********************/
-
-/* extra stuff in a PE header. */
-
-struct internal_extra_pe_filehdr
-{
-  /* DOS header data follows for PE stuff */
-  unsigned short e_magic;	/* Magic number, 0x5a4d */
-  unsigned short e_cblp;	/* Bytes on last page of file, 0x90 */
-  unsigned short e_cp;		/* Pages in file, 0x3 */
-  unsigned short e_crlc;	/* Relocations, 0x0 */
-  unsigned short e_cparhdr;	/* Size of header in paragraphs, 0x4 */
-  unsigned short e_minalloc;	/* Minimum extra paragraphs needed, 0x0 */
-  unsigned short e_maxalloc;	/* Maximum extra paragraphs needed, 0xFFFF */
-  unsigned short e_ss;		/* Initial (relative) SS value, 0x0 */
-  unsigned short e_sp;		/* Initial SP value, 0xb8 */
-  unsigned short e_csum;	/* Checksum, 0x0 */
-  unsigned short e_ip;		/* Initial IP value, 0x0 */
-  unsigned short e_cs;		/* Initial (relative) CS value, 0x0 */
-  unsigned short e_lfarlc;	/* File address of relocation table, 0x40 */
-  unsigned short e_ovno;	/* Overlay number, 0x0 */
-  unsigned short e_res[4];	/* Reserved words, all 0x0 */
-  unsigned short e_oemid;	/* OEM identifier (for e_oeminfo), 0x0 */
-  unsigned short e_oeminfo;	/* OEM information; e_oemid specific, 0x0 */
-  unsigned short e_res2[10];	/* Reserved words, all 0x0 */
-  bfd_vma  e_lfanew;		/* File address of new exe header, 0x80 */
-  unsigned long dos_message[16]; /* text which always follows dos header */
-  bfd_vma  nt_signature;   	/* required NT signature, 0x4550 */ 
-};
-
-struct internal_filehdr
-{
-  struct internal_extra_pe_filehdr pe;
-
-  /* Standard coff internal info.  */
-  unsigned short f_magic;	/* magic number			*/
-  unsigned short f_nscns;	/* number of sections		*/
-  long f_timdat;		/* time & date stamp		*/
-  bfd_vma f_symptr;		/* file pointer to symtab	*/
-  long f_nsyms;			/* number of symtab entries	*/
-  unsigned short f_opthdr;	/* sizeof(optional hdr)		*/
-  unsigned short f_flags;	/* flags			*/
-  unsigned short f_target_id;	/* (TI COFF specific)		*/
-};
-
-
-/* Bits for f_flags:
- 	F_RELFLG	relocation info stripped from file
- 	F_EXEC		file is executable (no unresolved external references)
- 	F_LNNO		line numbers stripped from file
- 	F_LSYMS		local symbols stripped from file
- 	F_AR16WR	file is 16-bit little-endian
- 	F_AR32WR	file is 32-bit little-endian
- 	F_AR32W		file is 32-bit big-endian
- 	F_DYNLOAD	rs/6000 aix: dynamically loadable w/imports & exports
- 	F_SHROBJ	rs/6000 aix: file is a shared object
-        F_DLL           PE format DLL.  */
-
-#define	F_RELFLG	(0x0001)
-#define	F_EXEC		(0x0002)
-#define	F_LNNO		(0x0004)
-#define	F_LSYMS		(0x0008)
-#define	F_AR16WR	(0x0080)
-#define	F_AR32WR	(0x0100)
-#define	F_AR32W     	(0x0200)
-#define	F_DYNLOAD	(0x1000)
-#define	F_SHROBJ	(0x2000)
-#define F_DLL           (0x2000)
-
-/* Extra structure which is used in the optional header.  */
-typedef struct _IMAGE_DATA_DIRECTORY 
-{
-  bfd_vma VirtualAddress;
-  long    Size;
-}  IMAGE_DATA_DIRECTORY;
-#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES  16
-
-/* Default image base for NT.  */
-#define NT_EXE_IMAGE_BASE 0x400000
-#define NT_DLL_IMAGE_BASE 0x10000000
-
-/* Default image base for BeOS. */
-#define BEOS_EXE_IMAGE_BASE 0x80000000
-#define BEOS_DLL_IMAGE_BASE 0x10000000
-
-/* Extra stuff in a PE aouthdr */
-
-#define PE_DEF_SECTION_ALIGNMENT 0x1000
-#ifndef PE_DEF_FILE_ALIGNMENT
-# define PE_DEF_FILE_ALIGNMENT 0x200
-#endif
-
-struct internal_extra_pe_aouthdr 
-{
-  /* PE stuff  */
-  bfd_vma ImageBase;		/* address of specific location in memory that
-				   file is located, NT default 0x10000 */
-
-  bfd_vma SectionAlignment;	/* section alignment default 0x1000 */
-  bfd_vma FileAlignment;	/* file alignment default 0x200 */
-  short   MajorOperatingSystemVersion; /* minimum version of the operating */
-  short   MinorOperatingSystemVersion; /* system req'd for exe, default to 1*/
-  short   MajorImageVersion;	/* user defineable field to store version of */
-  short   MinorImageVersion;	/* exe or dll being created, default to 0 */ 
-  short   MajorSubsystemVersion; /* minimum subsystem version required to */
-  short   MinorSubsystemVersion; /* run exe; default to 3.1 */
-  long    Reserved1;		/* seems to be 0 */
-  long    SizeOfImage;		/* size of memory to allocate for prog */
-  long    SizeOfHeaders;	/* size of PE header and section table */
-  long    CheckSum;		/* set to 0 */
-  short   Subsystem;	
-
-  /* type of subsystem exe uses for user interface,
-     possible values:
-     1 - NATIVE   Doesn't require a subsystem
-     2 - WINDOWS_GUI runs in Windows GUI subsystem
-     3 - WINDOWS_CUI runs in Windows char sub. (console app)
-     5 - OS2_CUI runs in OS/2 character subsystem
-     7 - POSIX_CUI runs in Posix character subsystem */
-  short   DllCharacteristics;	/* flags for DLL init, use 0 */
-  bfd_vma SizeOfStackReserve;	/* amount of memory to reserve  */
-  bfd_vma SizeOfStackCommit;	/* amount of memory initially committed for 
-				   initial thread's stack, default is 0x1000 */
-  bfd_vma SizeOfHeapReserve;	/* amount of virtual memory to reserve and */
-  bfd_vma SizeOfHeapCommit;	/* commit, don't know what to defaut it to */
-  long    LoaderFlags;		/* can probably set to 0 */
-  long    NumberOfRvaAndSizes;	/* number of entries in next entry, 16 */
-  IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
-};
-
-/********************** AOUT "OPTIONAL HEADER" **********************/
-struct internal_aouthdr
-{
-  short magic;			/* type of file				*/
-  short vstamp;			/* version stamp			*/
-  bfd_vma tsize;		/* text size in bytes, padded to FW bdry*/
-  bfd_vma dsize;		/* initialized data "  "		*/
-  bfd_vma bsize;		/* uninitialized data "   "		*/
-  bfd_vma entry;		/* entry pt.				*/
-  bfd_vma text_start;		/* base of text used for this file */
-  bfd_vma data_start;		/* base of data used for this file */
-
-  /* i960 stuff */
-  unsigned long tagentries;	/* number of tag entries to follow */
-
-  /* RS/6000 stuff */
-  bfd_vma o_toc;		/* address of TOC			*/
-  short o_snentry;		/* section number for entry point */
-  short o_sntext;		/* section number for text	*/
-  short o_sndata;		/* section number for data	*/
-  short o_sntoc;		/* section number for toc	*/
-  short o_snloader;		/* section number for loader section */
-  short o_snbss;		/* section number for bss	*/
-  short o_algntext;		/* max alignment for text	*/
-  short o_algndata;		/* max alignment for data	*/
-  short o_modtype;		/* Module type field, 1R,RE,RO	*/
-  short o_cputype;		/* Encoded CPU type		*/
-  bfd_vma o_maxstack;	/* max stack size allowed.	*/
-  bfd_vma o_maxdata;	/* max data size allowed.	*/
-
-  /* ECOFF stuff */
-  bfd_vma bss_start;		/* Base of bss section.		*/
-  bfd_vma gp_value;		/* GP register value.		*/
-  unsigned long gprmask;	/* General registers used.	*/
-  unsigned long cprmask[4];	/* Coprocessor registers used.	*/
-  unsigned long fprmask;	/* Floating pointer registers used.  */
-
-  /* Apollo stuff */
-  long o_inlib;			/* inlib data */
-  long o_sri;			/* Static Resource Information */
-  long vid[2];			/* Version id */
-
-  struct internal_extra_pe_aouthdr pe;
-};
-
-/********************** STORAGE CLASSES **********************/
-
-/* This used to be defined as -1, but now n_sclass is unsigned.  */
-#define C_EFCN		0xff	/* physical end of function	*/
-#define C_NULL		0
-#define C_AUTO		1	/* automatic variable		*/
-#define C_EXT		2	/* external symbol		*/
-#define C_STAT		3	/* static			*/
-#define C_REG		4	/* register variable		*/
-#define C_EXTDEF	5	/* external definition		*/
-#define C_LABEL		6	/* label			*/
-#define C_ULABEL	7	/* undefined label		*/
-#define C_MOS		8	/* member of structure		*/
-#define C_ARG		9	/* function argument		*/
-#define C_STRTAG	10	/* structure tag		*/
-#define C_MOU		11	/* member of union		*/
-#define C_UNTAG		12	/* union tag			*/
-#define C_TPDEF		13	/* type definition		*/
-#define C_USTATIC	14	/* undefined static		*/
-#define C_ENTAG		15	/* enumeration tag		*/
-#define C_MOE		16	/* member of enumeration	*/
-#define C_REGPARM	17	/* register parameter		*/
-#define C_FIELD		18	/* bit field			*/
-#define C_AUTOARG	19	/* auto argument		*/
-#define C_LASTENT	20	/* dummy entry (end of block)	*/
-#define C_BLOCK		100	/* ".bb" or ".eb"		*/
-#define C_FCN		101	/* ".bf" or ".ef"		*/
-#define C_EOS		102	/* end of structure		*/
-#define C_FILE		103	/* file name			*/
-#define C_LINE		104	/* line # reformatted as symbol table entry */
-#define C_ALIAS	 	105	/* duplicate tag		*/
-#define C_HIDDEN	106	/* ext symbol in dmert public lib */
-
-#if defined _AIX52 || defined AIX_WEAK_SUPPORT
-#define C_WEAKEXT	111	/* weak symbol -- AIX standard.  */
-#else
-#define C_WEAKEXT	127	/* weak symbol -- GNU extension.  */
-#endif
-
-/* New storage classes for TI COFF */
-#define C_UEXT		19	/* Tentative external definition */
-#define C_STATLAB	20	/* Static load time label */
-#define C_EXTLAB	21	/* External load time label */
-#define C_SYSTEM	23	/* System Wide variable */
-
-/* New storage classes for WINDOWS_NT   */
-#define C_SECTION       104     /* section name */
-#define C_NT_WEAK	105	/* weak external */
-
- /* New storage classes for 80960 */
-
-/* C_LEAFPROC is obsolete.  Use C_LEAFEXT or C_LEAFSTAT */
-#define C_LEAFPROC	108	/* Leaf procedure, "call" via BAL */
-
-#define C_SCALL		107	/* Procedure reachable via system call */
-#define C_LEAFEXT       108	/* External leaf */
-#define C_LEAFSTAT      113	/* Static leaf */
-#define C_OPTVAR	109	/* Optimized variable		*/
-#define C_DEFINE	110	/* Preprocessor #define		*/
-#define C_PRAGMA	111	/* Advice to compiler or linker	*/
-#define C_SEGMENT	112	/* 80960 segment name		*/
-
-  /* Storage classes for m88k */
-#define C_SHADOW        107     /* shadow symbol                */
-#define C_VERSION       108     /* coff version symbol          */
-
- /* New storage classes for RS/6000 */
-#define C_HIDEXT        107	/* Un-named external symbol */
-#define C_BINCL         108	/* Marks beginning of include file */
-#define C_EINCL         109	/* Marks ending of include file */
-
- /* storage classes for stab symbols for RS/6000 */
-#define C_GSYM          (0x80)
-#define C_LSYM          (0x81)
-#define C_PSYM          (0x82)
-#define C_RSYM          (0x83)
-#define C_RPSYM         (0x84)
-#define C_STSYM         (0x85)
-#define C_TCSYM         (0x86)
-#define C_BCOMM         (0x87)
-#define C_ECOML         (0x88)
-#define C_ECOMM         (0x89)
-#define C_DECL          (0x8c)
-#define C_ENTRY         (0x8d)
-#define C_FUN           (0x8e)
-#define C_BSTAT         (0x8f)
-#define C_ESTAT         (0x90)
-
-/* Storage classes for Thumb symbols */
-#define C_THUMBEXT      (128 + C_EXT)		/* 130 */
-#define C_THUMBSTAT     (128 + C_STAT)		/* 131 */
-#define C_THUMBLABEL    (128 + C_LABEL)		/* 134 */
-#define C_THUMBEXTFUNC  (C_THUMBEXT  + 20)	/* 150 */
-#define C_THUMBSTATFUNC (C_THUMBSTAT + 20)	/* 151 */
-
-/********************** SECTION HEADER **********************/
-
-#define SCNNMLEN (8)
-
-struct internal_scnhdr
-{
-  char s_name[SCNNMLEN];	/* section name			*/
-
-  /* Physical address, aliased s_nlib.
-     In the pei format, this field is the virtual section size
-     (the size of the section after being loaded int memory),
-     NOT the physical address.  */
-  bfd_vma s_paddr;
-
-  bfd_vma s_vaddr;		/* virtual address		*/
-  bfd_vma s_size;		/* section size			*/
-  bfd_vma s_scnptr;		/* file ptr to raw data for section */
-  bfd_vma s_relptr;		/* file ptr to relocation	*/
-  bfd_vma s_lnnoptr;		/* file ptr to line numbers	*/
-  unsigned long s_nreloc;	/* number of relocation entries	*/
-  unsigned long s_nlnno;	/* number of line number entries*/
-  long s_flags;			/* flags			*/
-  long s_align;			/* used on I960			*/
-  unsigned char s_page;         /* TI COFF load page            */
-};
-
-/* s_flags "type".  */
-#define STYP_REG	 (0x0000)	/* "regular": allocated, relocated, loaded */
-#define STYP_DSECT	 (0x0001)	/* "dummy":  relocated only*/
-#define STYP_NOLOAD	 (0x0002)	/* "noload": allocated, relocated, not loaded */
-#define STYP_GROUP	 (0x0004)	/* "grouped": formed of input sections */
-#define STYP_PAD	 (0x0008)	/* "padding": not allocated, not relocated, loaded */
-#define STYP_COPY	 (0x0010)	/* "copy": for decision function used by field update;  not allocated, not relocated,
-									     loaded; reloc & lineno entries processed normally */
-#define STYP_TEXT	 (0x0020)	/* section contains text only */
-#define S_SHRSEG	 (0x0020)	/* In 3b Update files (output of ogen), sections which appear in SHARED segments of the Pfile
-									     will have the S_SHRSEG flag set by ogen, to inform dufr that updating 1 copy of the proc. will
-									     update all process invocations. */
-#define STYP_DATA	 (0x0040)	/* section contains data only */
-#define STYP_BSS	 (0x0080)	/* section contains bss only */
-#define S_NEWFCN	 (0x0100)	/* In a minimal file or an update file, a new function (as compared with a replaced function) */
-#define STYP_INFO	 (0x0200)	/* comment: not allocated not relocated, not loaded */
-#define STYP_OVER	 (0x0400)	/* overlay: relocated not allocated or loaded */
-#define STYP_LIB	 (0x0800)	/* for .lib: same as INFO */
-#define STYP_MERGE	 (0x2000)	/* merge section -- combines with text, data or bss sections only */
-#define STYP_REVERSE_PAD (0x4000)	/* section will be padded with no-op instructions
-					   wherever padding is necessary and there is a
-					   word of contiguous bytes beginning on a word
-					   boundary. */
-
-#define STYP_LIT	0x8020	/* Literal data (like STYP_TEXT) */
-
-
-/********************** LINE NUMBERS **********************/
-
-/* 1 line number entry for every "breakpointable" source line in a section.
-   Line numbers are grouped on a per function basis; first entry in a function
-   grouping will have l_lnno = 0 and in place of physical address will be the
-   symbol table index of the function name.  */
-
-struct internal_lineno
-{
-  union
-  {
-    bfd_signed_vma l_symndx;		/* function name symbol index, iff l_lnno == 0*/
-    bfd_signed_vma l_paddr;		/* (physical) address of line number	*/
-  }     l_addr;
-  unsigned long l_lnno;		/* line number		*/
-};
-
-/********************** SYMBOLS **********************/
-
-#define SYMNMLEN	8	/* # characters in a symbol name	*/
-#define FILNMLEN	14	/* # characters in a file name		*/
-#define DIMNUM		4	/* # array dimensions in auxiliary entry */
-
-struct internal_syment
-{
-  union
-  {
-    char _n_name[SYMNMLEN];	/* old COFF version	*/
-    struct
-    {
-      long _n_zeroes;		/* new == 0		*/
-      long _n_offset;		/* offset into string table */
-    }      _n_n;
-    char *_n_nptr[2];		/* allows for overlaying	*/
-  }     _n;
-  bfd_vma n_value;			/* value of symbol		*/
-  short n_scnum;		/* section number		*/
-  unsigned short n_flags;	/* copy of flags from filhdr	*/
-  unsigned short n_type;	/* type and derived type	*/
-  unsigned char n_sclass;	/* storage class		*/
-  unsigned char n_numaux;	/* number of aux. entries	*/
-};
-
-#define n_name		_n._n_name
-#define n_zeroes	_n._n_n._n_zeroes
-#define n_offset	_n._n_n._n_offset
-
-/* Relocatable symbols have number of the section in which they are defined,
-   or one of the following:  */
-
-#define N_UNDEF	((short)0)	/* undefined symbol */
-#define N_ABS	((short)-1)	/* value of symbol is absolute */
-#define N_DEBUG	((short)-2)	/* debugging symbol -- value is meaningless */
-#define N_TV	((short)-3)	/* indicates symbol needs preload transfer vector */
-#define P_TV	((short)-4)	/* indicates symbol needs postload transfer vector*/
-
-/* Type of a symbol, in low N bits of the word.  */
-
-#define T_NULL		0
-#define T_VOID		1	/* function argument (only used by compiler) */
-#define T_CHAR		2	/* character		*/
-#define T_SHORT		3	/* short integer	*/
-#define T_INT		4	/* integer		*/
-#define T_LONG		5	/* long integer		*/
-#define T_FLOAT		6	/* floating point	*/
-#define T_DOUBLE	7	/* double word		*/
-#define T_STRUCT	8	/* structure 		*/
-#define T_UNION		9	/* union 		*/
-#define T_ENUM		10	/* enumeration 		*/
-#define T_MOE		11	/* member of enumeration*/
-#define T_UCHAR		12	/* unsigned character	*/
-#define T_USHORT	13	/* unsigned short	*/
-#define T_UINT		14	/* unsigned integer	*/
-#define T_ULONG		15	/* unsigned long	*/
-#define T_LNGDBL	16	/* long double		*/
-
-/* Derived types, in n_type.  */
-
-#define DT_NON		(0)	/* no derived type */
-#define DT_PTR		(1)	/* pointer */
-#define DT_FCN		(2)	/* function */
-#define DT_ARY		(3)	/* array */
-
-#define BTYPE(x)	((x) & N_BTMASK)
-#define DTYPE(x)	(((x) & N_TMASK) >> N_BTSHFT)
-
-#define ISPTR(x) \
-  (((unsigned long) (x) & N_TMASK) == ((unsigned long) DT_PTR << N_BTSHFT))
-#define ISFCN(x) \
-  (((unsigned long) (x) & N_TMASK) == ((unsigned long) DT_FCN << N_BTSHFT))
-#define ISARY(x) \
-  (((unsigned long) (x) & N_TMASK) == ((unsigned long) DT_ARY << N_BTSHFT))
-#define ISTAG(x) \
-  ((x) == C_STRTAG || (x) == C_UNTAG || (x) == C_ENTAG)
-#define DECREF(x) \
-  ((((x) >> N_TSHIFT) & ~ N_BTMASK) | ((x) & N_BTMASK))
-
-union internal_auxent
-{
-  struct
-  {
-
-    union
-    {
-      long l;			/* str, un, or enum tag indx */
-      struct coff_ptr_struct *p;
-    }     x_tagndx;
-
-    union
-    {
-      struct
-      {
-	unsigned short x_lnno;	/* declaration line number */
-	unsigned short x_size;	/* str/union/array size */
-      }      x_lnsz;
-      long x_fsize;		/* size of function */
-    }     x_misc;
-
-    union
-    {
-      struct
-      {				/* if ISFCN, tag, or .bb */
-	bfd_signed_vma x_lnnoptr;		/* ptr to fcn line # */
-	union
-	{			/* entry ndx past block end */
-	  long l;
-	  struct coff_ptr_struct *p;
-	}     x_endndx;
-      }      x_fcn;
-
-      struct
-      {				/* if ISARY, up to 4 dimen. */
-	unsigned short x_dimen[DIMNUM];
-      }      x_ary;
-    }     x_fcnary;
-
-    unsigned short x_tvndx;	/* tv index */
-  }      x_sym;
-
-  union
-  {
-    char x_fname[FILNMLEN];
-    struct
-    {
-      long x_zeroes;
-      long x_offset;
-    }      x_n;
-  }     x_file;
-
-  struct
-  {
-    long x_scnlen;		/* section length */
-    unsigned short x_nreloc;	/* # relocation entries */
-    unsigned short x_nlinno;	/* # line numbers */
-    unsigned long x_checksum;	/* section COMDAT checksum for PE */
-    unsigned short x_associated; /* COMDAT associated section index for PE */
-    unsigned char x_comdat;	/* COMDAT selection number for PE */
-  }      x_scn;
-
-  struct
-  {
-    long x_tvfill;		/* tv fill value */
-    unsigned short x_tvlen;	/* length of .tv */
-    unsigned short x_tvran[2];	/* tv range */
-  }      x_tv;			/* info about .tv section (in auxent of symbol .tv)) */
-
-  /******************************************
-   * RS/6000-specific auxent - last auxent for every external symbol
-   ******************************************/
-  struct
-  {
-    union
-      {				/* csect length or enclosing csect */
-	bfd_signed_vma l;
-	struct coff_ptr_struct *p;
-      } x_scnlen;
-    long x_parmhash;		/* parm type hash index */
-    unsigned short x_snhash;	/* sect num with parm hash */
-    unsigned char x_smtyp;	/* symbol align and type */
-    /* 0-4 - Log 2 of alignment */
-    /* 5-7 - symbol type */
-    unsigned char x_smclas;	/* storage mapping class */
-    long x_stab;		/* dbx stab info index */
-    unsigned short x_snstab;	/* sect num with dbx stab */
-  }      x_csect;		/* csect definition information */
-
-/* x_smtyp values:  */
-
-#define	SMTYP_ALIGN(x)	((x) >> 3)	/* log2 of alignment */
-#define	SMTYP_SMTYP(x)	((x) & 0x7)	/* symbol type */
-/* Symbol type values:  */
-#define	XTY_ER	0		/* External reference */
-#define	XTY_SD	1		/* Csect definition */
-#define	XTY_LD	2		/* Label definition */
-#define XTY_CM	3		/* .BSS */
-#define	XTY_EM	4		/* Error message */
-#define	XTY_US	5		/* "Reserved for internal use" */
-
-/* x_smclas values:  */
-
-#define	XMC_PR	0		/* Read-only program code */
-#define	XMC_RO	1		/* Read-only constant */
-#define	XMC_DB	2		/* Read-only debug dictionary table */
-#define	XMC_TC	3		/* Read-write general TOC entry */
-#define	XMC_UA	4		/* Read-write unclassified */
-#define	XMC_RW	5		/* Read-write data */
-#define	XMC_GL	6		/* Read-only global linkage */
-#define	XMC_XO	7		/* Read-only extended operation */
-#define	XMC_SV	8		/* Read-only supervisor call */
-#define	XMC_BS	9		/* Read-write BSS */
-#define	XMC_DS	10		/* Read-write descriptor csect */
-#define	XMC_UC	11		/* Read-write unnamed Fortran common */
-#define	XMC_TI	12		/* Read-only traceback index csect */
-#define	XMC_TB	13		/* Read-only traceback table csect */
-/* 		14	??? */
-#define	XMC_TC0	15		/* Read-write TOC anchor */
-#define XMC_TD	16		/* Read-write data in TOC */
-
-  /******************************************
-   *  I960-specific *2nd* aux. entry formats
-   ******************************************/
-  struct
-  {
-    /* This is a very old typo that keeps getting propagated. */
-#define x_stdindx x_stindx
-    long x_stindx;		/* sys. table entry */
-  }      x_sc;			/* system call entry */
-
-  struct
-  {
-    unsigned long x_balntry;	/* BAL entry point */
-  }      x_bal;			/* BAL-callable function */
-
-  struct
-  {
-    unsigned long x_timestamp;	/* time stamp */
-    char x_idstring[20];	/* producer identity string */
-  }      x_ident;		/* Producer ident info */
-
-};
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct internal_reloc
-{
-  bfd_vma r_vaddr;		/* Virtual address of reference */
-  long r_symndx;		/* Index into symbol table	*/
-  unsigned short r_type;	/* Relocation type		*/
-  unsigned char r_size;		/* Used by RS/6000 and ECOFF	*/
-  unsigned char r_extern;	/* Used by ECOFF		*/
-  unsigned long r_offset;	/* Used by Alpha ECOFF, SPARC, others */
-};
-
-#define R_DIR16 	 1
-#define R_REL24          5
-#define R_DIR32 	 6
-#define R_IMAGEBASE	 7
-#define R_SECREL32	11
-#define R_RELBYTE	15
-#define R_RELWORD	16
-#define R_RELLONG	17
-#define R_PCRBYTE	18
-#define R_PCRWORD	19
-#define R_PCRLONG	20
-#define R_PCR24         21
-#define R_IPRSHORT	24
-#define R_IPRLONG	26
-#define R_GETSEG	29
-#define R_GETPA 	30
-#define R_TAGWORD	31
-#define R_JUMPTARG	32	/* strange 29k 00xx00xx reloc */
-#define R_PARTLS16      32
-#define R_PARTMS8       33
-
-#define R_PCR16L       128
-#define R_PCR26L       129
-#define R_VRT16        130
-#define R_HVRT16       131
-#define R_LVRT16       132
-#define R_VRT32        133
-
-
-/* This reloc identifies mov.b instructions with a 16bit absolute
-   address.  The linker tries to turn insns with this reloc into
-   an absolute 8-bit address.  */
-#define R_MOV16B1    	0x41
-
-/* This reloc identifies mov.b instructions which had a 16bit
-   absolute address which have been shortened into a 8-bit
-   absolute address.  */
-#define R_MOV16B2 	0x42
-
-/* This reloc identifies jmp insns with a 16bit target address;
-   the linker tries to turn these insns into bra insns with
-   an 8bit pc-relative target.  */
-#define R_JMP1     	0x43
-
-/* This reloc identifies a bra with an 8-bit pc-relative
-   target that was formerly a jmp insn with a 16bit target.  */
-#define R_JMP2 		0x44
-
-/* ??? */
-#define R_RELLONG_NEG  	0x45
-
-/* This reloc identifies jmp insns with a 24bit target address;
-   the linker tries to turn these insns into bra insns with
-   an 8bit pc-relative target.  */
-#define R_JMPL1     	0x46
-
-/* This reloc identifies a bra with an 8-bit pc-relative
-   target that was formerly a jmp insn with a 24bit target.  */
-#define R_JMPL2		0x47
-
-/* This reloc identifies mov.b instructions with a 24bit absolute
-   address.  The linker tries to turn insns with this reloc into
-   an absolute 8-bit address.  */
-
-#define R_MOV24B1    	0x48
-
-/* This reloc identifies mov.b instructions which had a 24bit
-   absolute address which have been shortened into a 8-bit
-   absolute address.  */
-#define R_MOV24B2 	0x49
-
-/* An h8300 memory indirect jump/call.  Forces the address of the jump/call
-   target into the function vector (in page zero), and the address of the
-   vector entry to be placed in the jump/call instruction.  */
-#define R_MEM_INDIRECT	0x4a
-
-/* This reloc identifies a 16bit pc-relative branch target which was
-   shortened into an 8bit pc-relative branch target.  */
-#define R_PCRWORD_B	0x4b
-
-/* This reloc identifies mov.[wl] instructions with a 32/24 bit
-   absolute address; the linker may turn this into a mov.[wl]
-   insn with a 16bit absolute address.  */
-#define R_MOVL1    	0x4c
-
-/* This reloc identifies mov.[wl] insns which formerly had
-   a 32/24bit absolute address and now have a 16bit absolute address.  */
-#define R_MOVL2 	0x4d
-
-/* This reloc identifies a bCC:8 which will have it's condition
-   inverted and its target redirected to the target of the branch
-   in the following insn.  */
-#define R_BCC_INV	0x4e
-
-/* This reloc identifies a jmp instruction that has been deleted.  */
-#define R_JMP_DEL	0x4f
-
-/* Z8k modes */
-#define R_IMM16   0x01		/* 16 bit abs */
-#define R_JR	  0x02		/* jr  8 bit disp */
-#define R_IMM4L   0x23		/* low nibble */
-#define R_IMM8    0x22		/* 8 bit abs */
-#define R_IMM32   R_RELLONG	/* 32 bit abs */
-#define R_CALL    R_DA		/* Absolute address which could be a callr */
-#define R_JP	  R_DA		/* Absolute address which could be a jp */
-#define R_REL16   0x04		/* 16 bit PC rel */
-#define R_CALLR	  0x05		/* callr 12 bit disp */
-#define R_SEG     0x10		/* set if in segmented mode */
-#define R_IMM4H   0x24		/* high nibble */
-#define R_DISP7   0x25          /* djnz displacement */
-
-/* Z80 modes */
-#define R_OFF8    0x32		/* 8 bit signed abs, for (i[xy]+d) */
-#define R_IMM24   0x33          /* 24 bit abs */
-/* R_JR, R_IMM8, R_IMM16, R_IMM32 - as for Z8k */
-
-/* H8500 modes */
-
-#define R_H8500_IMM8  	1		/*  8 bit immediate 	*/
-#define R_H8500_IMM16 	2		/* 16 bit immediate	*/
-#define R_H8500_PCREL8 	3		/*  8 bit pcrel 	*/
-#define R_H8500_PCREL16 4		/* 16 bit pcrel 	*/
-#define R_H8500_HIGH8  	5		/* high 8 bits of 24 bit address */
-#define R_H8500_LOW16 	7		/* low 16 bits of 24 bit immediate */
-#define R_H8500_IMM24	6		/* 24 bit immediate */
-#define R_H8500_IMM32   8               /* 32 bit immediate */
-#define R_H8500_HIGH16  9		/* high 16 bits of 32 bit immediate */
-
-/* W65 modes */
-
-#define R_W65_ABS8	1  /* addr & 0xff 		*/
-#define R_W65_ABS16	2  /* addr & 0xffff 		*/
-#define R_W65_ABS24	3  /* addr & 0xffffff 		*/
-
-#define R_W65_ABS8S8    4  /* (addr >> 8) & 0xff 	*/
-#define R_W65_ABS8S16   5  /* (addr >> 16) & 0xff 	*/
-
-#define R_W65_ABS16S8   6  /* (addr >> 8) & 0ffff 	*/
-#define R_W65_ABS16S16  7  /* (addr >> 16) & 0ffff 	*/
-
-#define R_W65_PCR8	8
-#define R_W65_PCR16	9
-
-#define R_W65_DP       10  /* direct page 8 bits only   */
-
-#endif /* GNU_COFF_INTERNAL_H */
diff --git a/include/coff/m68k.h b/include/coff/m68k.h
deleted file mode 100644
index 4e88cea..0000000
--- a/include/coff/m68k.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* coff information for M68K
-   
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef GNU_COFF_M68K_H
-#define GNU_COFF_M68K_H 1
-
-#define L_LNNO_SIZE 2
-#include "coff/external.h"
-
-/* Motorola 68000/68008/68010/68020 */
-#define	MC68MAGIC	0520
-#define MC68KWRMAGIC	0520	/* writeable text segments */
-#define	MC68TVMAGIC	0521
-#define MC68KROMAGIC	0521	/* readonly shareable text segments */
-#define MC68KPGMAGIC	0522	/* demand paged text segments */
-#define	M68MAGIC	0210
-#define	M68TVMAGIC	0211
-
-/* This is the magic of the Bull dpx/2 */
-#define MC68KBCSMAGIC	0526
-
-/* This is Lynx's all-platform magic number for executables. */
-
-#define LYNXCOFFMAGIC	0415
-
-#define OMAGIC M68MAGIC
-
-/* This intentionally does not include MC68KBCSMAGIC; it only includes
-   magic numbers which imply that names do not have underscores.  */
-#define M68KBADMAG(x) (((x).f_magic != MC68MAGIC) \
-                    && ((x).f_magic != MC68KWRMAGIC) \
-                    && ((x).f_magic != MC68TVMAGIC) \
-                    && ((x).f_magic != MC68KROMAGIC) \
-                    && ((x).f_magic != MC68KPGMAGIC) \
-                    && ((x).f_magic != M68MAGIC) \
-                    && ((x).f_magic != M68TVMAGIC) \
-                    && ((x).f_magic != LYNXCOFFMAGIC))
-
-/* Magic numbers for the a.out header.  */
-
-#define PAGEMAGICEXECSWAPPED  0407 /* executable (swapped) */
-#define PAGEMAGICPEXECSWAPPED 0410 /* pure executable (swapped) */
-#define PAGEMAGICPEXECTSHLIB  0443 /* pure executable (target shared library) */
-#define PAGEMAGICPEXECPAGED   0413 /* pure executable (paged) */
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_type[2];
-#ifdef M68K_COFF_OFFSET
-  char r_offset[4];
-#endif
-};
-
-#define RELOC struct external_reloc
-
-#ifdef M68K_COFF_OFFSET
-#define RELSZ 14
-#else
-#define RELSZ 10
-#endif
-
-#endif /* GNU_COFF_M68K_H */
diff --git a/include/coff/m88k.h b/include/coff/m88k.h
deleted file mode 100644
index 9aeff1e..0000000
--- a/include/coff/m88k.h
+++ /dev/null
@@ -1,196 +0,0 @@
-/* coff information for 88k bcs
-   
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#define DO_NOT_DEFINE_SCNHDR
-#define L_LNNO_SIZE 4
-#define DO_NOT_DEFINE_SYMENT
-#define DO_NOT_DEFINE_AUXENT
-#include "coff/external.h"
-
-#define MC88MAGIC  0540           /* 88k BCS executable */
-#define MC88DMAGIC 0541           /* DG/UX executable   */
-#define MC88OMAGIC 0555	          /* Object file        */
-
-#define MC88BADMAG(x) (((x).f_magic != MC88MAGIC) \
-                    && ((x).f_magic != MC88DMAGIC) \
-                    && ((x).f_magic != MC88OMAGIC))
-
-#define PAGEMAGIC3   0414 /* Split i&d, zero mapped */
-#define PAGEMAGICBCS 0413
-
-/********************** SECTION HEADER **********************/
-
-struct external_scnhdr 
-{
-  char		s_name[8];	/* section name			*/
-  char		s_paddr[4];	/* physical address, aliased s_nlib */
-  char		s_vaddr[4];	/* virtual address		*/
-  char		s_size[4];	/* section size			*/
-  char		s_scnptr[4];	/* file ptr to raw data for section */
-  char		s_relptr[4];	/* file ptr to relocation	*/
-  char		s_lnnoptr[4];	/* file ptr to line numbers	*/
-  char		s_nreloc[4];	/* number of relocation entries	*/
-  char		s_nlnno[4];	/* number of line number entries*/
-  char		s_flags[4];	/* flags			*/
-};
-
-#define	SCNHDR	struct external_scnhdr
-#define	SCNHSZ	44
-
-/* Names of "special" sections.  */
-#define _TEXT   ".text"
-#define _DATA   ".data"
-#define _BSS    ".bss"
-#define _COMMENT ".comment"
-
-
-/********************** SYMBOLS **********************/
-
-#define E_SYMNMLEN	8	/* # characters in a symbol name	*/
-#define E_FILNMLEN	14	/* # characters in a file name		*/
-#define E_DIMNUM	4	/* # array dimensions in auxiliary entry */
-
-struct external_syment 
-{
-  union
-  {
-    char e_name[E_SYMNMLEN];
-
-    struct
-    {
-      char e_zeroes[4];
-      char e_offset[4];
-    } e;
-
-  } e;
-
-  char e_value[4];
-  char e_scnum[2];
-  char e_type[2];
-  char e_sclass[1];
-  char e_numaux[1];
-  char pad2[2];
-};
-
-#define N_BTMASK	017
-#define N_TMASK		060
-#define N_BTSHFT	4
-#define N_TSHIFT	2
-
-/* Note that this isn't the same shape as other coffs */
-union external_auxent
-{
-  struct
-  {
-    char x_tagndx[4];		/* str, un, or enum tag indx */
-    /* 4 */
-    
-    union
-    {
-      char x_fsize[4];		/* size of function */
-
-      struct
-      {
-	char  x_lnno[4];	/* declaration line number */
-	char  x_size[4];	/* str/union/array size */
-      } x_lnsz;
-
-    } x_misc;
-    
-    /* 12 */
-    union
-    {
-      struct 			/* if ISFCN, tag, or .bb */
-      {
-	char x_lnnoptr[4];	/* ptr to fcn line # */
-	char x_endndx[4];		/* entry ndx past block end */
-      } x_fcn;
-
-      struct 			/* if ISARY, up to 4 dimen. */
-      {
-	char x_dimen[E_DIMNUM][2];
-      } x_ary;
-
-    } x_fcnary;
-    /* 20 */
-    
-  } x_sym;
-  
-  union
-  {
-    char x_fname[E_FILNMLEN];
-
-    struct
-    {
-      char x_zeroes[4];
-      char x_offset[4];
-    } x_n;
-
-  } x_file;
-  
-  struct
-  {
-    char x_scnlen[4];		/* section length */
-    char x_nreloc[4];		/* # relocation entries */
-    char x_nlinno[4];		/* # line numbers */
-  } x_scn;
-  
-  struct
-  {
-    char x_tvfill[4];		/* tv fill value */
-    char x_tvlen[2];		/* length of .tv */
-    char x_tvran[2][2];		/* tv range */
-  } x_tv;			/* info about .tv section (in auxent of symbol .tv)) */
-};
-
-#define GET_LNSZ_SIZE(abfd, ext) \
-  H_GET_32 (abfd, ext->x_sym.x_misc.x_lnsz.x_size)
-#define GET_LNSZ_LNNO(abfd, ext) \
-  H_GET_32 (abfd, ext->x_sym.x_misc.x_lnsz.x_lnno)
-#define PUT_LNSZ_LNNO(abfd, in, ext) \
-  H_PUT_32 (abfd, in, ext->x_sym.x_misc.x_lnsz.x_lnno)
-#define PUT_LNSZ_SIZE(abfd, in, ext) \
-  H_PUT_32 (abfd, in, ext->x_sym.x_misc.x_lnsz.x_size)
-#define GET_SCN_NRELOC(abfd, ext) \
-  H_GET_32 (abfd, ext->x_scn.x_nreloc)
-#define GET_SCN_NLINNO(abfd, ext) \
-  H_GET_32 (abfd, ext->x_scn.x_nlinno)
-#define PUT_SCN_NRELOC(abfd, in, ext) \
-  H_PUT_32 (abfd, in, ext->x_scn.x_nreloc)
-#define PUT_SCN_NLINNO(abfd, in, ext) \
-  H_PUT_32 (abfd,in, ext->x_scn.x_nlinno)
-
-#define	SYMENT	struct external_syment
-#define	SYMESZ	20
-#define	AUXENT	union external_auxent
-#define	AUXESZ	20
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_type[2];
-  char r_offset[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ  12
-
-#define NO_TVNDX
diff --git a/include/coff/maxq.h b/include/coff/maxq.h
deleted file mode 100644
index a8e3c40..0000000
--- a/include/coff/maxq.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* COFF spec for MAXQ
-
-   Copyright 2004, 2005 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 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.,
-   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-   Contributed by Vineet Sharma(vineets@noida.hcltech.com) Inderpreet
-   S.(inderpreetb@noida.hcltech.com) HCL Technologies Ltd.  */
-
-#define L_LNNO_SIZE 2
-
-#include "coff/external.h"
-
-/* Bits for f_flags: F_RELFLG relocation info stripped from file F_EXEC file
-   is executable (no unresolved external references) F_LNNO line numbers
-   stripped from file F_LSYMS local symbols stripped from file.  */
-
-#define F_RELFLG        (0x0001)
-#define F_EXEC          (0x0002)
-#define F_LNNO          (0x0004)
-#define F_LSYMS         (0x0008)
-
-/* Variant Specific Flags for MAXQ10 and MAXQ20.  */
-#define F_MAXQ10	(0x0030)
-#define F_MAXQ20	(0x0040)
-
-#define F_MACHMASK	(0x00F0)
-
-/* Magic numbers for maxq.  */
-#define MAXQ20MAGIC      0xa0
-#define MAXQ20BADMAG(x) (((x).f_magic != MAXQ20MAGIC))
-#define BADMAG(x)        MAXQ20BADMAG (x)
-
-/* Relocation information declaration and related definitions.  */
-struct external_reloc
-{
-  char r_vaddr[4];		/* (Virtual) address of reference.  */
-  char r_symndx[4];		/* Index into symbol table.  */
-  char r_type[2];		/* Relocation type.  */
-  char r_offset[2];		/* Addend.  */
-};
-
-#define	RELOC		struct external_reloc
-#define	RELSZ		(10 + 2)	/* sizeof (RELOC) */
diff --git a/include/coff/mcore.h b/include/coff/mcore.h
deleted file mode 100644
index 42c694c..0000000
--- a/include/coff/mcore.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Motorola MCore support for BFD.
-   Copyright 1999, 2000 Free Software Foundation, Inc.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* This file holds definitions specific to the MCore COFF/PE ABI. */
-
-#ifndef _COFF_MORE_H
-#define _COFF_MORE_H
-
-#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
-#define L_LNNO_SIZE 2
-#include "coff/external.h"
-
-#define	MCOREMAGIC	0xb00  /* I just made this up */ 
-
-#define MCOREBADMAG(x) (((x).f_magic != MCOREMAGIC))
-
-#define E_DIMNUM	4	/* # array dimensions in auxiliary entry */
-
-#define IMAGE_REL_MCORE_ABSOLUTE          	0x0000
-#define IMAGE_REL_MCORE_ADDR32            	0x0001
-#define IMAGE_REL_MCORE_PCREL_IMM8BY4		0x0002
-#define IMAGE_REL_MCORE_PCREL_IMM11BY2		0x0003
-#define IMAGE_REL_MCORE_PCREL_IMM4BY2		0x0004
-#define IMAGE_REL_MCORE_PCREL_32		0x0005
-#define IMAGE_REL_MCORE_PCREL_JSR_IMM11BY2	0x0006
-#define IMAGE_REL_MCORE_RVA			0x0007
-
-#define PEMCORE
-
-#define OMAGIC          0404    /* object files, eg as output */
-#define ZMAGIC          0413    /* demand load format, eg normal ld output */
-#define STMAGIC		0401	/* target shlib */
-#define SHMAGIC		0443	/* host   shlib */
-
-/* From winnt.h */
-#define IMAGE_NT_OPTIONAL_HDR_MAGIC        0x10b
-
-/* Define some NT default values. */
-#define NT_SECTION_ALIGNMENT 0x1000
-#define NT_FILE_ALIGNMENT    0x200  
-#define NT_DEF_RESERVE       0x100000
-#define NT_DEF_COMMIT        0x1000
-
-struct external_reloc
-{
-  char r_vaddr  [4];
-  char r_symndx [4];
-  char r_type   [2];
-  char r_offset [4];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 14
-
-#endif /* __COFF_MCORE_H */
diff --git a/include/coff/mips.h b/include/coff/mips.h
deleted file mode 100644
index feb2652..0000000
--- a/include/coff/mips.h
+++ /dev/null
@@ -1,343 +0,0 @@
-/* ECOFF support on MIPS machines.
-   coff/ecoff.h must be included before this file.
-   
-   Copyright 1999, 2004 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#define DO_NOT_DEFINE_AOUTHDR
-#define L_LNNO_SIZE 4
-#include "coff/external.h"
-
-/* Magic numbers are defined in coff/ecoff.h.  */
-#define MIPS_ECOFF_BADMAG(x) (((x).f_magic!=MIPS_MAGIC_1) && \
-			      ((x).f_magic!=MIPS_MAGIC_LITTLE) &&\
-			      ((x).f_magic!=MIPS_MAGIC_BIG) && \
-			      ((x).f_magic!=MIPS_MAGIC_LITTLE2) && \
-			      ((x).f_magic!=MIPS_MAGIC_BIG2) && \
-			      ((x).f_magic!=MIPS_MAGIC_LITTLE3) && \
-			      ((x).f_magic!=MIPS_MAGIC_BIG3))
-
-
-/********************** AOUT "OPTIONAL HEADER" **********************/
-
-typedef struct external_aouthdr
-{
-  unsigned char magic[2];	/* type of file				*/
-  unsigned char	vstamp[2];	/* version stamp			*/
-  unsigned char	tsize[4];	/* text size in bytes, padded to FW bdry*/
-  unsigned char	dsize[4];	/* initialized data "  "		*/
-  unsigned char	bsize[4];	/* uninitialized data "   "		*/
-  unsigned char	entry[4];	/* entry pt.				*/
-  unsigned char text_start[4];	/* base of text used for this file */
-  unsigned char data_start[4];	/* base of data used for this file */
-  unsigned char bss_start[4];	/* base of bss used for this file */
-  unsigned char gprmask[4];	/* ?? */
-  unsigned char cprmask[4][4];	/* ?? */
-  unsigned char gp_value[4];	/* value for gp register */
-} AOUTHDR;
-
-/* compute size of a header */
-
-#define AOUTSZ 56
-#define AOUTHDRSZ 56
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-  {
-    unsigned char r_vaddr[4];
-    unsigned char r_bits[4];
-  };
-
-#define RELOC struct external_reloc
-#define RELSZ 8
-
-/* MIPS ECOFF uses a packed 8 byte format for relocs.  These constants
-   are used to unpack the r_bits field.  */
-
-#define RELOC_BITS0_SYMNDX_SH_LEFT_BIG		16
-#define RELOC_BITS0_SYMNDX_SH_LEFT_LITTLE	0
-
-#define RELOC_BITS1_SYMNDX_SH_LEFT_BIG		8
-#define RELOC_BITS1_SYMNDX_SH_LEFT_LITTLE	8
-
-#define RELOC_BITS2_SYMNDX_SH_LEFT_BIG		0
-#define RELOC_BITS2_SYMNDX_SH_LEFT_LITTLE	16
-
-/* Originally, ECOFF used four bits for the reloc type and had three
-   reserved bits.  Irix 4 added another bit for the reloc type, which
-   was easy because it was big endian and one of the spare bits became
-   the new most significant bit.  To make this also work for little
-   endian ECOFF, we need to wrap one of the reserved bits around to
-   become the most significant bit of the reloc type.  */
-#define RELOC_BITS3_TYPE_BIG			0x3E
-#define RELOC_BITS3_TYPE_SH_BIG			1
-#define RELOC_BITS3_TYPE_LITTLE			0x78
-#define RELOC_BITS3_TYPE_SH_LITTLE		3
-#define RELOC_BITS3_TYPEHI_LITTLE		0x04
-#define RELOC_BITS3_TYPEHI_SH_LITTLE		2
-
-#define RELOC_BITS3_EXTERN_BIG			0x01
-#define RELOC_BITS3_EXTERN_LITTLE		0x80
-
-/* The r_type field in a reloc is one of the following values.  I
-   don't know if any other values can appear.  These seem to be all
-   that occur in the Ultrix 4.2 libraries.  */
-#define MIPS_R_IGNORE	0
-#define MIPS_R_REFHALF	1
-#define MIPS_R_REFWORD	2
-#define MIPS_R_JMPADDR	3
-#define MIPS_R_REFHI	4
-#define MIPS_R_REFLO	5
-#define MIPS_R_GPREL	6
-#define MIPS_R_LITERAL	7
-
-/* FIXME: This relocation is used (internally only) to represent branches
-   when assembling.  It should never appear in output files, and  
-   be removed.  (It used to be used for embedded-PIC support.)  */
-#define MIPS_R_PCREL16	12
-
-/********************** STABS **********************/
-
-#define MIPS_IS_STAB ECOFF_IS_STAB
-#define MIPS_MARK_STAB ECOFF_MARK_STAB
-#define MIPS_UNMARK_STAB ECOFF_UNMARK_STAB
-
-/********************** SYMBOLIC INFORMATION **********************/
-
-/* Written by John Gilmore.  */
-
-/* ECOFF uses COFF-like section structures, but its own symbol format.
-   This file defines the symbol format in fields whose size and alignment
-   will not vary on different host systems.  */
-
-/* File header as a set of bytes */
-
-struct hdr_ext
-{
-	unsigned char 	h_magic[2];
-	unsigned char	h_vstamp[2];
-	unsigned char	h_ilineMax[4];
-	unsigned char	h_cbLine[4];
-	unsigned char	h_cbLineOffset[4];
-	unsigned char	h_idnMax[4];
-	unsigned char	h_cbDnOffset[4];
-	unsigned char	h_ipdMax[4];
-	unsigned char	h_cbPdOffset[4];
-	unsigned char	h_isymMax[4];
-	unsigned char	h_cbSymOffset[4];
-	unsigned char	h_ioptMax[4];
-	unsigned char	h_cbOptOffset[4];
-	unsigned char	h_iauxMax[4];
-	unsigned char	h_cbAuxOffset[4];
-	unsigned char	h_issMax[4];
-	unsigned char	h_cbSsOffset[4];
-	unsigned char	h_issExtMax[4];
-	unsigned char	h_cbSsExtOffset[4];
-	unsigned char	h_ifdMax[4];
-	unsigned char	h_cbFdOffset[4];
-	unsigned char	h_crfd[4];
-	unsigned char	h_cbRfdOffset[4];
-	unsigned char	h_iextMax[4];
-	unsigned char	h_cbExtOffset[4];
-};
-
-/* File descriptor external record */
-
-struct fdr_ext
-{
-	unsigned char	f_adr[4];
-	unsigned char	f_rss[4];
-	unsigned char	f_issBase[4];
-	unsigned char	f_cbSs[4];
-	unsigned char	f_isymBase[4];
-	unsigned char	f_csym[4];
-	unsigned char	f_ilineBase[4];
-	unsigned char	f_cline[4];
-	unsigned char	f_ioptBase[4];
-	unsigned char	f_copt[4];
-	unsigned char	f_ipdFirst[2];
-	unsigned char	f_cpd[2];
-	unsigned char	f_iauxBase[4];
-	unsigned char	f_caux[4];
-	unsigned char	f_rfdBase[4];
-	unsigned char	f_crfd[4];
-	unsigned char	f_bits1[1];
-	unsigned char	f_bits2[3];
-	unsigned char	f_cbLineOffset[4];
-	unsigned char	f_cbLine[4];
-};
-
-#define	FDR_BITS1_LANG_BIG		0xF8
-#define	FDR_BITS1_LANG_SH_BIG		3
-#define	FDR_BITS1_LANG_LITTLE		0x1F
-#define	FDR_BITS1_LANG_SH_LITTLE	0
-
-#define	FDR_BITS1_FMERGE_BIG		0x04
-#define	FDR_BITS1_FMERGE_LITTLE		0x20
-
-#define	FDR_BITS1_FREADIN_BIG		0x02
-#define	FDR_BITS1_FREADIN_LITTLE	0x40
-
-#define	FDR_BITS1_FBIGENDIAN_BIG	0x01
-#define	FDR_BITS1_FBIGENDIAN_LITTLE	0x80
-
-#define	FDR_BITS2_GLEVEL_BIG		0xC0
-#define	FDR_BITS2_GLEVEL_SH_BIG		6
-#define	FDR_BITS2_GLEVEL_LITTLE		0x03
-#define	FDR_BITS2_GLEVEL_SH_LITTLE	0
-
-/* We ignore the `reserved' field in bits2. */
-
-/* Procedure descriptor external record */
-
-struct pdr_ext
-{
-	unsigned char	p_adr[4];
-	unsigned char	p_isym[4];
-	unsigned char	p_iline[4];
-	unsigned char	p_regmask[4];
-	unsigned char	p_regoffset[4];
-	unsigned char	p_iopt[4];
-	unsigned char	p_fregmask[4];
-	unsigned char	p_fregoffset[4];
-	unsigned char	p_frameoffset[4];
-	unsigned char	p_framereg[2];
-	unsigned char	p_pcreg[2];
-	unsigned char	p_lnLow[4];
-	unsigned char	p_lnHigh[4];
-	unsigned char	p_cbLineOffset[4];
-};
-
-/* Runtime procedure table */
-
-struct rpdr_ext
-{
-	unsigned char	p_adr[4];
-	unsigned char	p_regmask[4];
-	unsigned char	p_regoffset[4];
-	unsigned char	p_fregmask[4];
-	unsigned char	p_fregoffset[4];
-	unsigned char	p_frameoffset[4];
-	unsigned char	p_framereg[2];
-	unsigned char	p_pcreg[2];
-	unsigned char	p_irpss[4];
-	unsigned char	p_reserved[4];
-	unsigned char	p_exception_info[4];
-};
-
-/* Line numbers */
-
-struct line_ext
-{
-	unsigned char	l_line[4];
-};
-
-/* Symbol external record */
-
-struct sym_ext
-{
-	unsigned char	s_iss[4];
-	unsigned char	s_value[4];
-	unsigned char	s_bits1[1];
-	unsigned char	s_bits2[1];
-	unsigned char	s_bits3[1];
-	unsigned char	s_bits4[1];
-};
-
-#define	SYM_BITS1_ST_BIG		0xFC
-#define	SYM_BITS1_ST_SH_BIG		2
-#define	SYM_BITS1_ST_LITTLE		0x3F
-#define	SYM_BITS1_ST_SH_LITTLE		0
-
-#define	SYM_BITS1_SC_BIG		0x03
-#define	SYM_BITS1_SC_SH_LEFT_BIG	3
-#define	SYM_BITS1_SC_LITTLE		0xC0
-#define	SYM_BITS1_SC_SH_LITTLE		6
-
-#define	SYM_BITS2_SC_BIG		0xE0
-#define	SYM_BITS2_SC_SH_BIG		5
-#define	SYM_BITS2_SC_LITTLE		0x07
-#define	SYM_BITS2_SC_SH_LEFT_LITTLE	2
-
-#define	SYM_BITS2_RESERVED_BIG		0x10
-#define	SYM_BITS2_RESERVED_LITTLE	0x08
-
-#define	SYM_BITS2_INDEX_BIG		0x0F
-#define	SYM_BITS2_INDEX_SH_LEFT_BIG	16
-#define	SYM_BITS2_INDEX_LITTLE		0xF0
-#define	SYM_BITS2_INDEX_SH_LITTLE	4
-
-#define	SYM_BITS3_INDEX_SH_LEFT_BIG	8
-#define	SYM_BITS3_INDEX_SH_LEFT_LITTLE	4
-
-#define	SYM_BITS4_INDEX_SH_LEFT_BIG	0
-#define	SYM_BITS4_INDEX_SH_LEFT_LITTLE	12
-
-/* External symbol external record */
-
-struct ext_ext
-{
-	unsigned char	es_bits1[1];
-	unsigned char	es_bits2[1];
-	unsigned char	es_ifd[2];
-	struct	sym_ext es_asym;
-};
-
-#define	EXT_BITS1_JMPTBL_BIG		0x80
-#define	EXT_BITS1_JMPTBL_LITTLE		0x01
-
-#define	EXT_BITS1_COBOL_MAIN_BIG	0x40
-#define	EXT_BITS1_COBOL_MAIN_LITTLE	0x02
-
-#define	EXT_BITS1_WEAKEXT_BIG		0x20
-#define	EXT_BITS1_WEAKEXT_LITTLE	0x04
-
-/* Dense numbers external record */
-
-struct dnr_ext
-{
-	unsigned char	d_rfd[4];
-	unsigned char	d_index[4];
-};
-
-/* Relative file descriptor */
-
-struct rfd_ext
-{
-  unsigned char	rfd[4];
-};
-
-/* Optimizer symbol external record */
-
-struct opt_ext
-{
-  unsigned char o_bits1[1];
-  unsigned char o_bits2[1];
-  unsigned char o_bits3[1];
-  unsigned char o_bits4[1];
-  struct rndx_ext o_rndx;
-  unsigned char o_offset[4];
-};
-
-#define OPT_BITS2_VALUE_SH_LEFT_BIG	16
-#define OPT_BITS2_VALUE_SH_LEFT_LITTLE	0
-
-#define OPT_BITS3_VALUE_SH_LEFT_BIG	8
-#define OPT_BITS3_VALUE_SH_LEFT_LITTLE	8
-
-#define OPT_BITS4_VALUE_SH_LEFT_BIG	0
-#define OPT_BITS4_VALUE_SH_LEFT_LITTLE	16
diff --git a/include/coff/mipspe.h b/include/coff/mipspe.h
deleted file mode 100644
index c1c2efa..0000000
--- a/include/coff/mipspe.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* coff information for Windows CE with MIPS VR4111
-   
-   Copyright 2000 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#define L_LNNO_SIZE 2
-#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
-#include "coff/external.h"
-
-#define MIPS_ARCH_MAGIC_WINCE	0x0166  /* Windows CE - little endian */
-#define MIPS_PE_MAGIC		0x010b
-
-#define MIPSBADMAG(x) ((x).f_magic != MIPS_ARCH_MAGIC_WINCE)
-
-/* define some NT default values */
-/*  #define NT_IMAGE_BASE        0x400000 moved to internal.h */
-#define NT_SECTION_ALIGNMENT 0x1000
-#define NT_FILE_ALIGNMENT    0x200
-#define NT_DEF_RESERVE       0x100000
-#define NT_DEF_COMMIT        0x1000
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-/* The external reloc has an offset field, because some of the reloc
-   types on the h8 don't have room in the instruction for the entire
-   offset - eg the strange jump and high page addressing modes.  */
-
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_type[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 10
-
-/* MIPS PE relocation types. */
-
-#define	MIPS_R_ABSOLUTE	0 /* ignored */
-#define	MIPS_R_REFHALF	1
-#define	MIPS_R_REFWORD	2
-#define	MIPS_R_JMPADDR	3
-#define	MIPS_R_REFHI	4 /* PAIR follows */
-#define	MIPS_R_REFLO	5
-#define	MIPS_R_GPREL	6
-#define	MIPS_R_LITERAL	7 /* same as GPREL */
-#define	MIPS_R_SECTION	10
-#define	MIPS_R_SECREL	11
-#define	MIPS_R_SECRELLO	12
-#define	MIPS_R_SECRELHI	13 /* PAIR follows */
-#define	MIPS_R_RVA	34 /* 0x22 */
-#define	MIPS_R_PAIR	37 /* 0x25 - symndx is really a signed 16-bit addend */
diff --git a/include/coff/or32.h b/include/coff/or32.h
deleted file mode 100644
index 65495fb..0000000
--- a/include/coff/or32.h
+++ /dev/null
@@ -1,287 +0,0 @@
-/* COFF specification for OpenRISC 1000.
-   Copyright (C) 1993-2000, 2002 Free Software Foundation, Inc.
-   Contributed by David Wood @ New York University.
-   Modified by Johan Rydberg, <johan.rydberg@netinsight.se>
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef OR32
-# define OR32
-#endif
-
-/* File Header and related definitions.  */
-struct external_filehdr
-{
-  char f_magic[2];	/* magic number		    */
-  char f_nscns[2];	/* number of sections	    */
-  char f_timdat[4];     /* time & date stamp	    */
-  char f_symptr[4];     /* file pointer to symtab   */
-  char f_nsyms[4];	/* number of symtab entries */
-  char f_opthdr[2];     /* sizeof(optional hdr)	    */
-  char f_flags[2];	/* flags		    */
-};
-
-#define FILHDR  struct external_filehdr
-#define FILHSZ	20
-
-/* Magic numbers for OpenRISC 1000. As it is know we use the
-   numbers for Am29000.
-
-   (AT&T will assign the "real" magic number).  */
-#define SIPFBOMAGIC     0572    /* Am29000 (Byte 0 is MSB).  */
-#define SIPRBOMAGIC     0573    /* Am29000 (Byte 0 is LSB).  */
-
-#define OR32_MAGIC_BIG 		SIPFBOMAGIC	
-#define OR32_MAGIC_LITTLE	SIPRBOMAGIC	
-#define OR32BADMAG(x)     (((x).f_magic!=OR32_MAGIC_BIG) && \
-			                      ((x).f_magic!=OR32_MAGIC_LITTLE))
-
-#define OMAGIC OR32_MAGIC_BIG
-
-/* Optional (a.out) header.  */
-typedef	struct external_aouthdr 
-{
-  char  magic[2];         /* type of file                     */
-  char  vstamp[2];	  /* version stamp                    */
-  char  tsize[4];	  /* text size in bytes, padded to FW bdry */
-  char  dsize[4];	  /* initialized data "  "            */
-  char  bsize[4];	  /* uninitialized data "   "         */
-  char  entry[4];	  /* entry pt.                        */
-  char  text_start[4];	  /* base of text used for this file  */
-  char  data_start[4];	  /* base of data used for this file  */
-} AOUTHDR;
-
-#define AOUTSZ      28
-#define AOUTHDRSZ   28
-
-/* aouthdr magic numbers.  */
-#define NMAGIC    0410	  /* separate i/d executable.  */
-#define SHMAGIC   0406	  /* NYU/Ultra3 shared data executable 
-                             (writable text).  */
-
-#define _ETEXT   	"_etext"
-
-/* Section header and related definitions.  */
-struct external_scnhdr 
-{
-  char	    s_name[8];      /* section name                   */
-  char	    s_paddr[4];     /* physical address, aliased s_nlib */
-  char	    s_vaddr[4];     /* virtual address                */
-  char	    s_size[4];      /* section size                   */
-  char	    s_scnptr[4];    /* file ptr to raw data for section */
-  char	    s_relptr[4];    /* file ptr to relocation         */
-  char	    s_lnnoptr[4];   /* file ptr to line numbers       */
-  char	    s_nreloc[2];    /* number of relocation entries   */
-  char	    s_nlnno[2];     /* number of line number entries  */
-  char	    s_flags[4];     /* flags                          */
-};
-
-#define	SCNHDR	struct external_scnhdr
-#define	SCNHSZ	40
-
-/* Names of "special" sections:  */
-#define _TEXT   ".text"
-#define _DATA   ".data"
-#define _BSS    ".bss"
-#define _LIT    ".lit"
-
-/* Section types - with additional section type for global 
-   registers which will be relocatable for the OpenRISC 1000.
-
-   In instances where it is necessary for a linker to produce an
-   output file which contains text or data not based at virtual
-   address 0, e.g. for a ROM, then the linker should accept
-   address base information as command input and use PAD sections
-   to skip over unused addresses.  */
-#define	STYP_BSSREG 0x1200	/* Global register area (like STYP_INFO) */
-#define STYP_ENVIR  0x2200	/* Environment (like STYP_INFO) */
-#define STYP_ABS    0x4000	/* Absolute (allocated, not reloc, loaded) */
-
-/* Relocation information declaration and related definitions:  */
-struct external_reloc
-{
-  char r_vaddr[4];    /* (virtual) address of reference */
-  char r_symndx[4];   /* index into symbol table */
-  char r_type[2];     /* relocation type */
-};
-
-#define	RELOC		struct external_reloc
-#define	RELSZ		10		/* sizeof (RELOC) */ 
-
-/* Relocation types for the OpenRISC 1000: */
-
-#define	R_ABS     0     /* reference is absolute */
-#define	R_IREL    030	/* instruction relative (jmp/call) */
-#define	R_IABS    031	/* instruction absolute (jmp/call) */
-#define	R_ILOHALF 032	/* instruction low half  (const)  */
-#define	R_IHIHALF 033	/* instruction high half (consth) part 1 */
-#define	R_IHCONST 034	/* instruction high half (consth) part 2 */
-                        /* constant offset of R_IHIHALF relocation */
-#define	R_BYTE    035	/* relocatable byte value */
-#define R_HWORD   036	/* relocatable halfword value */
-#define R_WORD    037	/* relocatable word value */
-
-#define	R_IGLBLRC 040	/* instruction global register RC */
-#define	R_IGLBLRA 041	/* instruction global register RA */
-#define	R_IGLBLRB 042	/* instruction global register RB */
- 
-/*
-  NOTE:
-  All the "I" forms refer to 29000 instruction formats.  The linker is 
-  expected to know how the numeric information is split and/or aligned
-  within the instruction word(s).  R_BYTE works for instructions, too.
-
-  If the parameter to a CONSTH instruction is a relocatable type, two 
-  relocation records are written.  The first has an r_type of R_IHIHALF 
-  (33 octal) and a normal r_vaddr and r_symndx.  The second relocation 
-  record has an r_type of R_IHCONST (34 octal), a normal r_vaddr (which 
-  is redundant), and an r_symndx containing the 32-bit constant offset 
-  to the relocation instead of the actual symbol table index.  This 
-  second record is always written, even if the constant offset is zero.
-  The constant fields of the instruction are set to zero.  */
-
-/* Line number entry declaration and related definitions:  */
-struct external_lineno 
-{
-  union
-  {
-    char l_symndx[4];  /* function name symbol index, iff l_lnno == 0*/
-    char l_paddr[4];   /* (physical) address of line number    */
-  }
-  l_addr;
-
-  char l_lnno[2];      /* line number	  */
-};
-
-#define	LINENO		struct external_lineno
-#define	LINESZ		6		  /* sizeof (LINENO) */
-
-/* Symbol entry declaration and related definitions:  */
-#define	E_SYMNMLEN	8	  /* Number of characters in a symbol name */
-
-struct external_syment
-{
-  union
-  {
-    char e_name[E_SYMNMLEN];
-    struct
-    {
-      char e_zeroes[4];
-      char e_offset[4];
-    }
-    e;
-  }
-  e;
-
-  char e_value[4];
-  char e_scnum[2];
-  char e_type[2];
-  char e_sclass[1];
-  char e_numaux[1];
-};
-
-#define	SYMENT	struct external_syment
-#define	SYMESZ 	18
-
-/* Storage class definitions - new classes for global registers:  */
-#define C_GLBLREG	19		/* global register */
-#define C_EXTREG	20		/* external global register */
-#define	C_DEFREG	21		/* ext. def. of global register */
-
-/* Derived symbol mask/shifts:  */
-#define N_BTMASK	(0xf)
-#define N_BTSHFT	(4)
-#define N_TMASK		(0x30)
-#define N_TSHIFT	(2)
-
-/* Auxiliary symbol table entry declaration and related 
-   definitions.  */
-#define E_FILNMLEN  14  /* # characters in a file name	  */
-#define E_DIMNUM    4   /* # array dimensions in auxiliary entry */
-
-union external_auxent
-{
-  struct
-  {
-    char x_tagndx[4];       /* str, un, or enum tag indx */
-    union
-    {
-      struct
-      {
-	char  x_lnno[2];    /* declaration line number */
-        char  x_size[2];    /* str/union/array size */
-      }
-      x_lnsz;
-
-      char x_fsize[4];      /* size of function */
-    }
-    x_misc;
-
-    union
-    {
-      struct 		          /* if ISFCN, tag, or .bb */
-      {
-	char x_lnnoptr[4];  /* ptr to fcn line # */
-        char x_endndx[4];   /* entry ndx past block end */
-      }
-      x_fcn;
-
-      struct   	          /* if ISARY, up to 4 dimen. */
-      {
-	char x_dimen[E_DIMNUM][2];
-      }
-      x_ary;
-    }
-    x_fcnary;
-
-    char x_tvndx[2];        /* tv index */
-  }
-  x_sym;
-
-  union
-  {
-    char x_fname[E_FILNMLEN];
-
-    struct
-    {
-      char x_zeroes[4];
-      char x_offset[4];
-    }
-    x_n;
-  }
-  x_file;
-
-  struct
-  {
-    char x_scnlen[4];       /* section length */
-    char x_nreloc[2];       /* # relocation entries */
-    char x_nlinno[2];       /* # line numbers */
-  }
-  x_scn;
-
-  struct
-  {
-    char x_tvfill[4];       /* tv fill value */
-    char x_tvlen[2];        /* length of .tv */
-    char x_tvran[2][2];     /* tv range */
-  }
-  x_tv;                   /* info about .tv section 
-			     (in auxent of symbol .tv)) */
-};
-
-#define	AUXENT		union external_auxent
-#define	AUXESZ		18	
diff --git a/include/coff/pe.h b/include/coff/pe.h
deleted file mode 100644
index 643cea4..0000000
--- a/include/coff/pe.h
+++ /dev/null
@@ -1,318 +0,0 @@
-/* pe.h  -  PE COFF header information 
-
-   Copyright 1999, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-#ifndef _PE_H
-#define _PE_H
-
-/* NT specific file attributes.  */
-#define IMAGE_FILE_RELOCS_STRIPPED           0x0001
-#define IMAGE_FILE_EXECUTABLE_IMAGE          0x0002
-#define IMAGE_FILE_LINE_NUMS_STRIPPED        0x0004
-#define IMAGE_FILE_LOCAL_SYMS_STRIPPED       0x0008
-#define IMAGE_FILE_AGGRESSIVE_WS_TRIM        0x0010
-#define IMAGE_FILE_LARGE_ADDRESS_AWARE       0x0020
-#define IMAGE_FILE_16BIT_MACHINE             0x0040
-#define IMAGE_FILE_BYTES_REVERSED_LO         0x0080
-#define IMAGE_FILE_32BIT_MACHINE             0x0100
-#define IMAGE_FILE_DEBUG_STRIPPED            0x0200
-#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP   0x0400
-#define IMAGE_FILE_NET_RUN_FROM_SWAP         0x0800
-#define IMAGE_FILE_SYSTEM                    0x1000
-#define IMAGE_FILE_DLL                       0x2000
-#define IMAGE_FILE_UP_SYSTEM_ONLY            0x4000
-#define IMAGE_FILE_BYTES_REVERSED_HI         0x8000
-
-/* Additional flags to be set for section headers to allow the NT loader to
-   read and write to the section data (to replace the addresses of data in
-   dlls for one thing); also to execute the section in .text's case.  */
-#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000
-#define IMAGE_SCN_MEM_EXECUTE     0x20000000
-#define IMAGE_SCN_MEM_READ        0x40000000
-#define IMAGE_SCN_MEM_WRITE       0x80000000
-
-/* Section characteristics added for ppc-nt.  */
-
-#define IMAGE_SCN_TYPE_NO_PAD                0x00000008  /* Reserved. */
-
-#define IMAGE_SCN_CNT_CODE                   0x00000020  /* Section contains code. */
-#define IMAGE_SCN_CNT_INITIALIZED_DATA       0x00000040  /* Section contains initialized data. */
-#define IMAGE_SCN_CNT_UNINITIALIZED_DATA     0x00000080  /* Section contains uninitialized data. */
-
-#define IMAGE_SCN_LNK_OTHER                  0x00000100  /* Reserved. */
-#define IMAGE_SCN_LNK_INFO                   0x00000200  /* Section contains comments or some other type of information. */
-#define IMAGE_SCN_LNK_REMOVE                 0x00000800  /* Section contents will not become part of image. */
-#define IMAGE_SCN_LNK_COMDAT                 0x00001000  /* Section contents comdat. */
-
-#define IMAGE_SCN_MEM_FARDATA                0x00008000
-
-#define IMAGE_SCN_MEM_PURGEABLE              0x00020000
-#define IMAGE_SCN_MEM_16BIT                  0x00020000
-#define IMAGE_SCN_MEM_LOCKED                 0x00040000
-#define IMAGE_SCN_MEM_PRELOAD                0x00080000
-
-#define IMAGE_SCN_ALIGN_1BYTES               0x00100000
-#define IMAGE_SCN_ALIGN_2BYTES               0x00200000
-#define IMAGE_SCN_ALIGN_4BYTES               0x00300000
-#define IMAGE_SCN_ALIGN_8BYTES               0x00400000
-#define IMAGE_SCN_ALIGN_16BYTES              0x00500000  /* Default alignment if no others are specified. */
-#define IMAGE_SCN_ALIGN_32BYTES              0x00600000
-#define IMAGE_SCN_ALIGN_64BYTES              0x00700000
-
-#define IMAGE_SCN_LNK_NRELOC_OVFL            0x01000000  /* Section contains extended relocations. */
-#define IMAGE_SCN_MEM_NOT_CACHED             0x04000000  /* Section is not cachable.               */
-#define IMAGE_SCN_MEM_NOT_PAGED              0x08000000  /* Section is not pageable.               */
-#define IMAGE_SCN_MEM_SHARED                 0x10000000  /* Section is shareable.                  */
-
-/* COMDAT selection codes.  */
-
-#define IMAGE_COMDAT_SELECT_NODUPLICATES     (1) /* Warn if duplicates.  */
-#define IMAGE_COMDAT_SELECT_ANY		     (2) /* No warning.  */
-#define IMAGE_COMDAT_SELECT_SAME_SIZE	     (3) /* Warn if different size.  */
-#define IMAGE_COMDAT_SELECT_EXACT_MATCH	     (4) /* Warn if different.  */
-#define IMAGE_COMDAT_SELECT_ASSOCIATIVE	     (5) /* Base on other section.  */
-
-/* Machine numbers.  */
-
-#define IMAGE_FILE_MACHINE_UNKNOWN           0x0000
-#define IMAGE_FILE_MACHINE_ALPHA             0x0184
-#define IMAGE_FILE_MACHINE_ALPHA64           0x0284
-#define IMAGE_FILE_MACHINE_AM33              0x01d3
-#define IMAGE_FILE_MACHINE_AMD64             0x8664
-#define IMAGE_FILE_MACHINE_ARM               0x01c0
-#define IMAGE_FILE_MACHINE_AXP64             IMAGE_FILE_MACHINE_ALPHA64
-#define IMAGE_FILE_MACHINE_CEE               0xc0ee
-#define IMAGE_FILE_MACHINE_CEF               0x0cef
-#define IMAGE_FILE_MACHINE_EBC               0x0ebc
-#define IMAGE_FILE_MACHINE_I386              0x014c
-#define IMAGE_FILE_MACHINE_IA64              0x0200
-#define IMAGE_FILE_MACHINE_M32R              0x9041
-#define IMAGE_FILE_MACHINE_M68K              0x0268
-#define IMAGE_FILE_MACHINE_MIPS16            0x0266
-#define IMAGE_FILE_MACHINE_MIPSFPU           0x0366
-#define IMAGE_FILE_MACHINE_MIPSFPU16         0x0466
-#define IMAGE_FILE_MACHINE_POWERPC           0x01f0
-#define IMAGE_FILE_MACHINE_POWERPCFP         0x01f1
-#define IMAGE_FILE_MACHINE_R10000            0x0168
-#define IMAGE_FILE_MACHINE_R3000             0x0162
-#define IMAGE_FILE_MACHINE_R4000             0x0166
-#define IMAGE_FILE_MACHINE_SH3               0x01a2
-#define IMAGE_FILE_MACHINE_SH3DSP            0x01a3
-#define IMAGE_FILE_MACHINE_SH3E              0x01a4
-#define IMAGE_FILE_MACHINE_SH4               0x01a6
-#define IMAGE_FILE_MACHINE_SH5               0x01a8
-#define IMAGE_FILE_MACHINE_THUMB             0x01c2
-#define IMAGE_FILE_MACHINE_TRICORE           0x0520
-#define IMAGE_FILE_MACHINE_WCEMIPSV2         0x0169
-
-#define IMAGE_SUBSYSTEM_UNKNOWN			 0
-#define IMAGE_SUBSYSTEM_NATIVE			 1
-#define IMAGE_SUBSYSTEM_WINDOWS_GUI		 2
-#define IMAGE_SUBSYSTEM_WINDOWS_CUI		 3
-#define IMAGE_SUBSYSTEM_POSIX_CUI		 7
-#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI		 9
-#define IMAGE_SUBSYSTEM_EFI_APPLICATION		10
-#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER	11
-#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER	12
-  
-/* Magic values that are true for all dos/nt implementations.  */
-#define DOSMAGIC       0x5a4d  
-#define NT_SIGNATURE   0x00004550
-
-/* NT allows long filenames, we want to accommodate this.
-   This may break some of the bfd functions.  */
-#undef  FILNMLEN
-#define FILNMLEN	18	/* # characters in a file name.  */
-
-struct external_PEI_DOS_hdr
-{
-  /* DOS header fields - always at offset zero in the EXE file.  */
-  char e_magic[2];		/* Magic number, 0x5a4d.  */
-  char e_cblp[2];		/* Bytes on last page of file, 0x90.  */
-  char e_cp[2];			/* Pages in file, 0x3.  */
-  char e_crlc[2];		/* Relocations, 0x0.  */
-  char e_cparhdr[2];		/* Size of header in paragraphs, 0x4.  */
-  char e_minalloc[2];		/* Minimum extra paragraphs needed, 0x0.  */
-  char e_maxalloc[2];		/* Maximum extra paragraphs needed, 0xFFFF.  */
-  char e_ss[2];			/* Initial (relative) SS value, 0x0.  */
-  char e_sp[2];			/* Initial SP value, 0xb8.  */
-  char e_csum[2];		/* Checksum, 0x0.  */
-  char e_ip[2];			/* Initial IP value, 0x0.  */
-  char e_cs[2];			/* Initial (relative) CS value, 0x0.  */
-  char e_lfarlc[2];		/* File address of relocation table, 0x40.  */
-  char e_ovno[2];		/* Overlay number, 0x0.  */
-  char e_res[4][2];		/* Reserved words, all 0x0.  */
-  char e_oemid[2];		/* OEM identifier (for e_oeminfo), 0x0.  */
-  char e_oeminfo[2];		/* OEM information; e_oemid specific, 0x0.  */
-  char e_res2[10][2];		/* Reserved words, all 0x0.  */
-  char e_lfanew[4];		/* File address of new exe header, usually 0x80.  */
-  char dos_message[16][4];	/* Other stuff, always follow DOS header.  */
-};
-
-struct external_PEI_IMAGE_hdr
-{
-  char nt_signature[4];		/* required NT signature, 0x4550.  */
-
-  /* From standard header.  */
-  char f_magic[2];		/* Magic number.		*/
-  char f_nscns[2];		/* Number of sections.		*/
-  char f_timdat[4];		/* Time & date stamp.		*/
-  char f_symptr[4];		/* File pointer to symtab.	*/
-  char f_nsyms[4];		/* Number of symtab entries.	*/
-  char f_opthdr[2];		/* Sizeof(optional hdr).	*/
-  char f_flags[2];		/* Flags.			*/
-};
-
-struct external_PEI_filehdr
-{
-  /* DOS header fields - always at offset zero in the EXE file.  */
-  char e_magic[2];		/* Magic number, 0x5a4d.  */
-  char e_cblp[2];		/* Bytes on last page of file, 0x90.  */
-  char e_cp[2];			/* Pages in file, 0x3.  */
-  char e_crlc[2];		/* Relocations, 0x0.  */
-  char e_cparhdr[2];		/* Size of header in paragraphs, 0x4.  */
-  char e_minalloc[2];		/* Minimum extra paragraphs needed, 0x0.  */
-  char e_maxalloc[2];		/* Maximum extra paragraphs needed, 0xFFFF.  */
-  char e_ss[2];			/* Initial (relative) SS value, 0x0.  */
-  char e_sp[2];			/* Initial SP value, 0xb8.  */
-  char e_csum[2];		/* Checksum, 0x0.  */
-  char e_ip[2];			/* Initial IP value, 0x0.  */
-  char e_cs[2];			/* Initial (relative) CS value, 0x0.  */
-  char e_lfarlc[2];		/* File address of relocation table, 0x40.  */
-  char e_ovno[2];		/* Overlay number, 0x0.  */
-  char e_res[4][2];		/* Reserved words, all 0x0.  */
-  char e_oemid[2];		/* OEM identifier (for e_oeminfo), 0x0.  */
-  char e_oeminfo[2];		/* OEM information; e_oemid specific, 0x0.  */
-  char e_res2[10][2];		/* Reserved words, all 0x0.  */
-  char e_lfanew[4];		/* File address of new exe header, usually 0x80.  */
-  char dos_message[16][4];	/* Other stuff, always follow DOS header.  */
-
-  /* Note: additional bytes may be inserted before the signature.  Use
-   the e_lfanew field to find the actual location of the NT signature.  */
-
-  char nt_signature[4];		/* required NT signature, 0x4550.  */
-
-  /* From standard header.  */
-  char f_magic[2];		/* Magic number.		*/
-  char f_nscns[2];		/* Number of sections.		*/
-  char f_timdat[4];		/* Time & date stamp.		*/
-  char f_symptr[4];		/* File pointer to symtab.	*/
-  char f_nsyms[4];		/* Number of symtab entries.	*/
-  char f_opthdr[2];		/* Sizeof(optional hdr).	*/
-  char f_flags[2];		/* Flags.			*/
-};
-
-#ifdef COFF_IMAGE_WITH_PE
-
-/* The filehdr is only weird in images.  */
-
-#undef  FILHDR
-#define FILHDR struct external_PEI_filehdr
-#undef  FILHSZ
-#define FILHSZ 152
-
-#endif /* COFF_IMAGE_WITH_PE */
-
-/* 32-bit PE a.out header: */
-
-typedef struct 
-{
-  AOUTHDR standard;
-
-  /* NT extra fields; see internal.h for descriptions.  */
-  char  ImageBase[4];
-  char  SectionAlignment[4];
-  char  FileAlignment[4];
-  char  MajorOperatingSystemVersion[2];
-  char  MinorOperatingSystemVersion[2];
-  char  MajorImageVersion[2];
-  char  MinorImageVersion[2];
-  char  MajorSubsystemVersion[2];
-  char  MinorSubsystemVersion[2];
-  char  Reserved1[4];
-  char  SizeOfImage[4];
-  char  SizeOfHeaders[4];
-  char  CheckSum[4];
-  char  Subsystem[2];
-  char  DllCharacteristics[2];
-  char  SizeOfStackReserve[4];
-  char  SizeOfStackCommit[4];
-  char  SizeOfHeapReserve[4];
-  char  SizeOfHeapCommit[4];
-  char  LoaderFlags[4];
-  char  NumberOfRvaAndSizes[4];
-  /* IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];  */
-  char  DataDirectory[16][2][4]; /* 16 entries, 2 elements/entry, 4 chars.  */
-} PEAOUTHDR;
-#undef AOUTSZ
-#define AOUTSZ (AOUTHDRSZ + 196)
-
-/* Like PEAOUTHDR, except that the "standard" member has no BaseOfData
-   (aka data_start) member and that some of the members are 8 instead
-   of just 4 bytes long.  */
-typedef struct 
-{
-  AOUTHDR standard;
-
-  /* NT extra fields; see internal.h for descriptions.  */
-  char  ImageBase[8];
-  char  SectionAlignment[4];
-  char  FileAlignment[4];
-  char  MajorOperatingSystemVersion[2];
-  char  MinorOperatingSystemVersion[2];
-  char  MajorImageVersion[2];
-  char  MinorImageVersion[2];
-  char  MajorSubsystemVersion[2];
-  char  MinorSubsystemVersion[2];
-  char  Reserved1[4];
-  char  SizeOfImage[4];
-  char  SizeOfHeaders[4];
-  char  CheckSum[4];
-  char  Subsystem[2];
-  char  DllCharacteristics[2];
-  char  SizeOfStackReserve[8];
-  char  SizeOfStackCommit[8];
-  char  SizeOfHeapReserve[8];
-  char  SizeOfHeapCommit[8];
-  char  LoaderFlags[4];
-  char  NumberOfRvaAndSizes[4];
-  /* IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];  */
-  char  DataDirectory[16][2][4]; /* 16 entries, 2 elements/entry, 4 chars.  */
-} PEPAOUTHDR;
-#define PEPAOUTSZ	240
-  
-#undef  E_FILNMLEN
-#define E_FILNMLEN	18	/* # characters in a file name.  */
-
-/* Import Tyoes fot ILF format object files..  */
-#define IMPORT_CODE	0
-#define IMPORT_DATA	1
-#define IMPORT_CONST	2
-
-/* Import Name Tyoes for ILF format object files.  */
-#define IMPORT_ORDINAL		0
-#define IMPORT_NAME		1
-#define IMPORT_NAME_NOPREFIX	2
-#define IMPORT_NAME_UNDECORATE	3
-
-/* Weak external characteristics.  */
-#define IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY	1
-#define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY	2
-#define IMAGE_WEAK_EXTERN_SEARCH_ALIAS		3
-
-#endif /* _PE_H */
diff --git a/include/coff/powerpc.h b/include/coff/powerpc.h
deleted file mode 100644
index 0b11055..0000000
--- a/include/coff/powerpc.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Basic coff information for the PowerPC
-   Based on coff/rs6000.h, coff/i386.h and others.
-   
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
- 
-   Initial release: Kim Knuttila (krk@cygnus.com)  */
-#define L_LNNO_SIZE 2
-#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
-#include "coff/external.h"
-
-/* Bits for f_flags:
- 	F_RELFLG	relocation info stripped from file
- 	F_EXEC		file is executable (no unresolved external references)
- 	F_LNNO		line numbers stripped from file
- 	F_LSYMS		local symbols stripped from file
- 	F_AR32WR	file has byte ordering of an AR32WR machine (e.g. vax).  */
-
-#define F_RELFLG	(0x0001)
-#define F_EXEC		(0x0002)
-#define F_LNNO		(0x0004)
-#define F_LSYMS		(0x0008)
-
-/* extra NT defines */
-#define PPCMAGIC       0760         /* peeked on aa PowerPC Windows NT box */
-#define DOSMAGIC       0x5a4d       /* from arm.h, i386.h */
-#define NT_SIGNATURE   0x00004550   /* from arm.h, i386.h */
-
-/* from winnt.h */
-#define IMAGE_NT_OPTIONAL_HDR_MAGIC        0x10b
-
-#define PPCBADMAG(x) ((x).f_magic != PPCMAGIC) 
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_type[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 10
-
diff --git a/include/coff/rs6000.h b/include/coff/rs6000.h
deleted file mode 100644
index 5323662..0000000
--- a/include/coff/rs6000.h
+++ /dev/null
@@ -1,267 +0,0 @@
-/* IBM RS/6000 "XCOFF" file definitions for BFD.
-   Copyright (C) 1990, 1991, 2001 Free Software Foundation, Inc.
-   FIXME: Can someone provide a transliteration of this name into ASCII?
-   Using the following chars caused a compiler warning on HIUX (so I replaced
-   them with octal escapes), and isn't useful without an understanding of what
-   character set it is.
-   Written by Mimi Ph\373\364ng-Th\345o V\365 of IBM
-   and John Gilmore of Cygnus Support.  */
-
-/********************** FILE HEADER **********************/
-
-struct external_filehdr {
-	char f_magic[2];	/* magic number			*/
-	char f_nscns[2];	/* number of sections		*/
-	char f_timdat[4];	/* time & date stamp		*/
-	char f_symptr[4];	/* file pointer to symtab	*/
-	char f_nsyms[4];	/* number of symtab entries	*/
-	char f_opthdr[2];	/* sizeof(optional hdr)		*/
-	char f_flags[2];	/* flags			*/
-};
-
-        /* IBM RS/6000 */
-#define U802WRMAGIC     0730    /* writeable text segments **chh**      */
-#define U802ROMAGIC     0735    /* readonly sharable text segments      */
-#define U802TOCMAGIC    0737    /* readonly text segments and TOC       */
-
-#define BADMAG(x)	\
-	((x).f_magic != U802ROMAGIC && (x).f_magic != U802WRMAGIC && \
-	 (x).f_magic != U802TOCMAGIC)
-
-#define	FILHDR	struct external_filehdr
-#define	FILHSZ	20
-
-
-/********************** AOUT "OPTIONAL HEADER" **********************/
-
-
-typedef struct 
-{
-  unsigned char	magic[2];	/* type of file			*/
-  unsigned char	vstamp[2];	/* version stamp		*/
-  unsigned char	tsize[4];	/* text size in bytes, padded to FW bdry */
-  unsigned char	dsize[4];	/* initialized data "  "	*/
-  unsigned char	bsize[4];	/* uninitialized data "   "	*/
-  unsigned char	entry[4];	/* entry pt.			*/
-  unsigned char	text_start[4];	/* base of text used for this file */
-  unsigned char	data_start[4];	/* base of data used for this file */
-  unsigned char	o_toc[4];	/* address of TOC */
-  unsigned char	o_snentry[2];	/* section number of entry point */
-  unsigned char	o_sntext[2];	/* section number of .text section */
-  unsigned char	o_sndata[2];	/* section number of .data section */
-  unsigned char	o_sntoc[2];	/* section number of TOC */
-  unsigned char	o_snloader[2];	/* section number of .loader section */
-  unsigned char	o_snbss[2];	/* section number of .bss section */
-  unsigned char	o_algntext[2];	/* .text alignment */
-  unsigned char	o_algndata[2];	/* .data alignment */
-  unsigned char	o_modtype[2];	/* module type (??) */
-  unsigned char o_cputype[2];	/* cpu type */
-  unsigned char	o_maxstack[4];	/* max stack size (??) */
-  unsigned char o_maxdata[4];	/* max data size (??) */
-  unsigned char	o_resv2[12];	/* reserved */
-}
-AOUTHDR;
-
-#define AOUTSZ 72
-#define SMALL_AOUTSZ (28)
-#define AOUTHDRSZ 72
-
-/********************** SECTION HEADER **********************/
-
-
-struct external_scnhdr {
-	char		s_name[8];	/* section name			*/
-	char		s_paddr[4];	/* physical address, aliased s_nlib */
-	char		s_vaddr[4];	/* virtual address		*/
-	char		s_size[4];	/* section size			*/
-	char		s_scnptr[4];	/* file ptr to raw data for section */
-	char		s_relptr[4];	/* file ptr to relocation	*/
-	char		s_lnnoptr[4];	/* file ptr to line numbers	*/
-	char		s_nreloc[2];	/* number of relocation entries	*/
-	char		s_nlnno[2];	/* number of line number entries*/
-	char		s_flags[4];	/* flags			*/
-};
-
-#define	SCNHDR	struct external_scnhdr
-#define	SCNHSZ	40
-
-/********************** LINE NUMBERS **********************/
-
-/* 1 line number entry for every "breakpointable" source line in a section.
- * Line numbers are grouped on a per function basis; first entry in a function
- * grouping will have l_lnno = 0 and in place of physical address will be the
- * symbol table index of the function name.
- */
-struct external_lineno {
-	union {
-		char l_symndx[4];	/* function name symbol index, iff l_lnno == 0*/
-		char l_paddr[4];	/* (physical) address of line number	*/
-	} l_addr;
-	char l_lnno[2];	/* line number		*/
-};
-
-
-#define	LINENO	struct external_lineno
-#define	LINESZ	6
-
-
-/********************** SYMBOLS **********************/
-
-#define E_SYMNMLEN	8	/* # characters in a symbol name	*/
-#define E_FILNMLEN	14	/* # characters in a file name		*/
-#define E_DIMNUM	4	/* # array dimensions in auxiliary entry */
-
-struct external_syment 
-{
-  union {
-    char e_name[E_SYMNMLEN];
-    struct {
-      char e_zeroes[4];
-      char e_offset[4];
-    } e;
-  } e;
-  char e_value[4];
-  char e_scnum[2];
-  char e_type[2];
-  char e_sclass[1];
-  char e_numaux[1];
-};
-
-
-
-#define N_BTMASK	(017)
-#define N_TMASK		(060)
-#define N_BTSHFT	(4)
-#define N_TSHIFT	(2)
-  
-
-union external_auxent {
-	struct {
-		char x_tagndx[4];	/* str, un, or enum tag indx */
-		union {
-			struct {
-			    char  x_lnno[2]; /* declaration line number */
-			    char  x_size[2]; /* str/union/array size */
-			} x_lnsz;
-			char x_fsize[4];	/* size of function */
-		} x_misc;
-		union {
-			struct {		/* if ISFCN, tag, or .bb */
-			    char x_lnnoptr[4];	/* ptr to fcn line # */
-			    char x_endndx[4];	/* entry ndx past block end */
-			} x_fcn;
-			struct {		/* if ISARY, up to 4 dimen. */
-			    char x_dimen[E_DIMNUM][2];
-			} x_ary;
-		} x_fcnary;
-		char x_tvndx[2];		/* tv index */
-	} x_sym;
-
-	union {
-		char x_fname[E_FILNMLEN];
-		struct {
-			char x_zeroes[4];
-			char x_offset[4];
-		} x_n;
-	} x_file;
-
-	struct {
-		char x_scnlen[4];			/* section length */
-		char x_nreloc[2];	/* # relocation entries */
-		char x_nlinno[2];	/* # line numbers */
-	} x_scn;
-
-        struct {
-		char x_tvfill[4];	/* tv fill value */
-		char x_tvlen[2];	/* length of .tv */
-		char x_tvran[2][2];	/* tv range */
-	} x_tv;		/* info about .tv section (in auxent of symbol .tv)) */
-
-	struct {
-		unsigned char x_scnlen[4];
-		unsigned char x_parmhash[4];
-		unsigned char x_snhash[2];
-		unsigned char x_smtyp[1];
-		unsigned char x_smclas[1];
-		unsigned char x_stab[4];
-		unsigned char x_snstab[2];
-	} x_csect;
-
-};
-
-#define	SYMENT	struct external_syment
-#define	SYMESZ	18	
-#define	AUXENT	union external_auxent
-#define	AUXESZ	18
-#define DBXMASK 0x80		/* for dbx storage mask */
-#define SYMNAME_IN_DEBUG(symptr) ((symptr)->n_sclass & DBXMASK)
-
-
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-
-struct external_reloc {
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_size[1];
-  char r_type[1];
-};
-
-
-#define RELOC struct external_reloc
-#define RELSZ 10
-
-#define DEFAULT_DATA_SECTION_ALIGNMENT 4
-#define DEFAULT_BSS_SECTION_ALIGNMENT 4
-#define DEFAULT_TEXT_SECTION_ALIGNMENT 4
-/* For new sections we havn't heard of before */
-#define DEFAULT_SECTION_ALIGNMENT 4
-
-/* The ldhdr structure.  This appears at the start of the .loader
-   section.  */
-
-struct external_ldhdr
-{
-  bfd_byte l_version[4];
-  bfd_byte l_nsyms[4];
-  bfd_byte l_nreloc[4];
-  bfd_byte l_istlen[4];
-  bfd_byte l_nimpid[4];
-  bfd_byte l_impoff[4];
-  bfd_byte l_stlen[4];
-  bfd_byte l_stoff[4];
-};
-
-#define LDHDRSZ (8 * 4)
-
-struct external_ldsym
-{
-  union
-    {
-      bfd_byte _l_name[SYMNMLEN];
-      struct
-	{
-	  bfd_byte _l_zeroes[4];
-	  bfd_byte _l_offset[4];
-	} _l_l;
-    } _l;
-  bfd_byte l_value[4];
-  bfd_byte l_scnum[2];
-  bfd_byte l_smtype[1];
-  bfd_byte l_smclas[1];
-  bfd_byte l_ifile[4];
-  bfd_byte l_parm[4];
-};
-
-#define LDSYMSZ (8 + 3 * 4 + 2 + 2)
-
-struct external_ldrel
-{
-  bfd_byte l_vaddr[4];
-  bfd_byte l_symndx[4];
-  bfd_byte l_rtype[2];
-  bfd_byte l_rsecnm[2];
-};
-
-#define LDRELSZ (2 * 4 + 2 * 2)
diff --git a/include/coff/rs6k64.h b/include/coff/rs6k64.h
deleted file mode 100644
index 388818d..0000000
--- a/include/coff/rs6k64.h
+++ /dev/null
@@ -1,260 +0,0 @@
-/* IBM RS/6000 "XCOFF64" file definitions for BFD.
-   Copyright (C) 2000, 2001, 2002 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/********************** FILE HEADER **********************/
-
-struct external_filehdr
-{
-  char f_magic[2];	/* magic number			*/
-  char f_nscns[2];	/* number of sections		*/
-  char f_timdat[4];	/* time & date stamp		*/
-  char f_symptr[8];	/* file pointer to symtab 	*/
-  char f_opthdr[2];	/* sizeof(optional hdr)		*/
-  char f_flags[2];	/* flags			*/
-  char f_nsyms[4];	/* number of symtab entries	*/
-};
-
-/* IBM RS/6000.  */
-#define U803XTOCMAGIC 0757	/* Aix 4.3 64-bit XCOFF */
-#define	U64_TOCMAGIC  0767	/* AIX 5+ 64-bit XCOFF */
-#define BADMAG(x) ((x).f_magic != U803XTOCMAGIC && (x).f_magic != U64_TOCMAGIC)
-
-#define	FILHDR	struct external_filehdr
-#define	FILHSZ	24
-
-/********************** AOUT "OPTIONAL HEADER" **********************/
-
-typedef struct 
-{
-  unsigned char	magic[2];		/* type of file			*/
-  unsigned char	vstamp[2];		/* version stamp		*/
-  unsigned char	o_debugger[4];		/* reserved 			*/
-  unsigned char	text_start[8];		/* base of text used for this file */
-  unsigned char	data_start[8];		/* base of data used for this file */
-  unsigned char	o_toc[8];		/* address of TOC */
-  unsigned char	o_snentry[2];		/* section number of entry point */
-  unsigned char	o_sntext[2];		/* section number of .text section */
-  unsigned char	o_sndata[2];		/* section number of .data section */
-  unsigned char	o_sntoc[2];		/* section number of TOC */
-  unsigned char	o_snloader[2];		/* section number of .loader section */
-  unsigned char	o_snbss[2];		/* section number of .bss section */
-  unsigned char	o_algntext[2];		/* .text alignment */
-  unsigned char	o_algndata[2];		/* .data alignment */
-  unsigned char	o_modtype[2];		/* module type (??) */
-  unsigned char o_cputype[2];		/* cpu type */
-  unsigned char	o_resv2[4];		/* reserved 			*/
-  unsigned char	tsize[8];		/* text size bytes, padded to FW bdry */
-  unsigned char	dsize[8];		/* initialized data "  "	*/
-  unsigned char	bsize[8];		/* uninitialized data "   "	*/
-  unsigned char	entry[8];		/* entry pt.			*/
-  unsigned char	o_maxstack[8];		/* max stack size (??) 		*/
-  unsigned char o_maxdata[8];		/* max data size (??) 		*/
-  unsigned char	o_resv3[16];		/* reserved 			*/
-}
-AOUTHDR;
-
-#define AOUTSZ 120
-#define SMALL_AOUTSZ (0)
-#define AOUTHDRSZ 72
-
-/********************** SECTION HEADER **********************/
-
-struct external_scnhdr
-{
-  char	s_name[8];	/* section name			*/
-  char	s_paddr[8];	/* physical address, aliased s_nlib */
-  char	s_vaddr[8];	/* virtual address		*/
-  char	s_size[8];	/* section size			*/
-  char	s_scnptr[8];	/* file ptr to raw data for section */
-  char	s_relptr[8];	/* file ptr to relocation	*/
-  char	s_lnnoptr[8];	/* file ptr to line numbers	*/
-  char	s_nreloc[4];	/* number of relocation entries	*/
-  char	s_nlnno[4];	/* number of line number entries*/
-  char	s_flags[4];	/* flags			*/
-  char  s_pad[4];	/* padding */  
-};
-
-#define	SCNHDR	struct external_scnhdr
-
-#define	SCNHSZ	72
-
-/********************** LINE NUMBERS **********************/
-
-/* 1 line number entry for every "breakpointable" source line in a section.
-   Line numbers are grouped on a per function basis; first entry in a function
-   grouping will have l_lnno = 0 and in place of physical address will be the
-   symbol table index of the function name.  */
-
-struct external_lineno
-{
-  union
-  {
-    char l_symndx[4];	/* function name symbol index, iff l_lnno == 0*/
-    char l_paddr[8];	/* (physical) address of line number	*/
-  } l_addr;
-
-  char l_lnno[4];	/* line number		*/
-};
-
-#define	LINENO	struct external_lineno
-
-#define	LINESZ	12
-
-/********************** SYMBOLS **********************/
-
-#define E_SYMNMLEN	8	/* # characters in a symbol name	*/
-#define E_FILNMLEN	14	/* # characters in a file name		*/
-#define E_DIMNUM	4	/* # array dimensions in auxiliary entry */
-
-struct external_syment 
-{
-  char e_value[8];
-  char e_offset[4];
-  char e_scnum[2];
-  char e_type[2];
-  char e_sclass[1];
-  char e_numaux[1];
-};
-
-#define N_BTMASK	(017)
-#define N_TMASK		(060)
-#define N_BTSHFT	(4)
-#define N_TSHIFT	(2)
-
-union external_auxent
-{
-    struct {
-    	union {
-	    struct {
-		char x_lnno[4]; 	/* declaration line number */
-		char x_size[2]; 	/* str/union/array size */
-	    } x_lnsz;
-	    struct {
-		char x_lnnoptr[8];/* ptr to fcn line */
-		char x_fsize[4];	 /* size of function */
-		char x_endndx[4];	 /* entry ndx past block end */
-	    } x_fcn;
- 	} x_fcnary;
-    } x_sym;
-         
-    union {
-	char x_fname[E_FILNMLEN];
-	struct {
-	    char x_zeroes[4];
-	    char x_offset[4];
-	    char          x_pad[6];
-	    unsigned char x_ftype[1];
-	    unsigned char x_resv[2];
-	} x_n;
-    } x_file;
-
-    struct {
-	char x_exptr[8];
-	char x_fsize[4];
-	char x_endndx[4];
-	char x_pad[1];
-    } x_except;
-
-    struct {
-	    unsigned char x_scnlen_lo[4];
-	    unsigned char x_parmhash[4];
-	    unsigned char x_snhash[2];
-	    unsigned char x_smtyp[1];
-	    unsigned char x_smclas[1];
-	    unsigned char x_scnlen_hi[4];
-	    unsigned char x_pad[1];
-    } x_csect;	
-
-    struct {
-	char x_pad[17];
-	char x_auxtype[1];
-    } x_auxtype;
-};
-
-#define	SYMENT	struct external_syment
-#define	SYMESZ	18	
-#define	AUXENT	union external_auxent
-#define	AUXESZ	18
-#define DBXMASK 0x80		/* for dbx storage mask */
-#define SYMNAME_IN_DEBUG(symptr) ((symptr)->n_sclass & DBXMASK)
-
-/* Values for auxtype field in XCOFF64, taken from AIX 4.3 sym.h.  */
-#define _AUX_EXCEPT     255
-#define _AUX_FCN        254
-#define _AUX_SYM        253
-#define _AUX_FILE       252
-#define _AUX_CSECT      251
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
-  char r_vaddr[8];
-  char r_symndx[4];
-  char r_size[1];
-  char r_type[1];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 14
-
-#define DEFAULT_DATA_SECTION_ALIGNMENT 4
-#define DEFAULT_BSS_SECTION_ALIGNMENT 4
-#define DEFAULT_TEXT_SECTION_ALIGNMENT 4
-/* For new sections we havn't heard of before */
-#define DEFAULT_SECTION_ALIGNMENT 4
-
-/* The ldhdr structure.  This appears at the start of the .loader
-   section.  */
-
-struct external_ldhdr
-{
-  bfd_byte l_version[4];
-  bfd_byte l_nsyms[4];
-  bfd_byte l_nreloc[4];
-  bfd_byte l_istlen[4];
-  bfd_byte l_nimpid[4];
-  bfd_byte l_stlen[4];
-  bfd_byte l_impoff[8];
-  bfd_byte l_stoff[8];
-  bfd_byte l_symoff[8];
-  bfd_byte l_rldoff[8];
-};
-#define LDHDRSZ (56)
-
-struct external_ldsym
-{
-  bfd_byte l_value[8];
-  bfd_byte l_offset[4];
-  bfd_byte l_scnum[2];
-  bfd_byte l_smtype[1];
-  bfd_byte l_smclas[1];
-  bfd_byte l_ifile[4];
-  bfd_byte l_parm[4];
-};
-
-#define LDSYMSZ (24)
-
-struct external_ldrel
-{
-  bfd_byte l_vaddr[8];
-  bfd_byte l_rtype[2];
-  bfd_byte l_rsecnm[2];
-  bfd_byte l_symndx[4];
-};
-
-#define LDRELSZ (16)
diff --git a/include/coff/sh.h b/include/coff/sh.h
deleted file mode 100644
index 5349a10..0000000
--- a/include/coff/sh.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/* coff information for Renesas SH
-   
-   Copyright 2000, 2003 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifdef COFF_WITH_PE
-#define L_LNNO_SIZE 2
-#else
-#define L_LNNO_SIZE 4
-#endif
-#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
-#include "coff/external.h"
-
-#define	SH_ARCH_MAGIC_BIG	0x0500
-#define	SH_ARCH_MAGIC_LITTLE	0x0550  /* Little endian SH */
-#define SH_ARCH_MAGIC_WINCE	0x01a2  /* Windows CE - little endian */
-#define SH_PE_MAGIC		0x010b
-
-#define SHBADMAG(x) \
- (((x).f_magic != SH_ARCH_MAGIC_BIG) && \
-  ((x).f_magic != SH_ARCH_MAGIC_WINCE) && \
-  ((x).f_magic != SH_ARCH_MAGIC_LITTLE))
-
-/* Define some NT default values.  */
-/*  #define NT_IMAGE_BASE        0x400000 moved to internal.h */
-#define NT_SECTION_ALIGNMENT 0x1000
-#define NT_FILE_ALIGNMENT    0x200
-#define NT_DEF_RESERVE       0x100000
-#define NT_DEF_COMMIT        0x1000
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-/* The external reloc has an offset field, because some of the reloc
-   types on the h8 don't have room in the instruction for the entire
-   offset - eg the strange jump and high page addressing modes.  */
-
-#ifndef COFF_WITH_PE
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_offset[4];
-  char r_type[2];
-  char r_stuff[2];
-};
-#else
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_type[2];
-};
-#endif
-
-#define RELOC struct external_reloc
-#ifdef COFF_WITH_PE
-#define RELSZ 10
-#else
-#define RELSZ 16
-#endif
-
-/* SH relocation types.  Not all of these are actually used.  */
-
-#define R_SH_UNUSED	0		/* only used internally */
-#define R_SH_IMM32CE	2		/* 32 bit immediate for WinCE */
-#define R_SH_PCREL8 	3		/*  8 bit pcrel 	*/
-#define R_SH_PCREL16 	4		/* 16 bit pcrel 	*/
-#define R_SH_HIGH8  	5		/* high 8 bits of 24 bit address */
-#define R_SH_LOW16 	7		/* low 16 bits of 24 bit immediate */
-#define R_SH_IMM24	6		/* 24 bit immediate */
-#define R_SH_PCDISP8BY4	9  		/* PC rel 8 bits *4 +ve */
-#define R_SH_PCDISP8BY2	10  		/* PC rel 8 bits *2 +ve */
-#define R_SH_PCDISP8    11  		/* 8 bit branch */
-#define R_SH_PCDISP     12  		/* 12 bit branch */
-#define R_SH_IMM32      14    		/* 32 bit immediate */
-#define R_SH_IMM8   	16		/* 8 bit immediate */
-#define R_SH_IMAGEBASE	16		/* Windows CE */
-#define R_SH_IMM8BY2    17		/* 8 bit immediate *2 */
-#define R_SH_IMM8BY4    18		/* 8 bit immediate *4 */
-#define R_SH_IMM4   	19		/* 4 bit immediate */
-#define R_SH_IMM4BY2    20		/* 4 bit immediate *2 */
-#define R_SH_IMM4BY4    21		/* 4 bit immediate *4 */
-#define R_SH_PCRELIMM8BY2   22		/* PC rel 8 bits *2 unsigned */
-#define R_SH_PCRELIMM8BY4   23		/* PC rel 8 bits *4 unsigned */
-#define R_SH_IMM16      24    		/* 16 bit immediate */
-
-/* The switch table reloc types are used for relaxing.  They are
-   generated for expressions such as
-     .word L1 - L2
-   The r_offset field holds the difference between the reloc address
-   and L2.  */
-#define R_SH_SWITCH8	33		/* 8 bit switch table entry */
-#define R_SH_SWITCH16	25		/* 16 bit switch table entry */
-#define R_SH_SWITCH32	26		/* 32 bit switch table entry */
-
-/* The USES reloc type is used for relaxing.  The compiler will
-   generate .uses pseudo-ops when it finds a function call which it
-   can relax.  The r_offset field of the USES reloc holds the PC
-   relative offset to the instruction which loads the register used in
-   the function call.  */
-#define R_SH_USES	27		/* .uses pseudo-op */
-
-/* The COUNT reloc type is used for relaxing.  The assembler will
-   generate COUNT relocs for addresses referred to by the register
-   loads associated with USES relocs.  The r_offset field of the COUNT
-   reloc holds the number of times the address is referenced in the
-   object file.  */
-#define R_SH_COUNT	28		/* Count of constant pool uses */
-
-/* The ALIGN reloc type is used for relaxing.  The r_offset field is
-   the power of two to which subsequent portions of the object file
-   must be aligned.  */
-#define R_SH_ALIGN	29		/* .align pseudo-op */
-
-/* The CODE and DATA reloc types are used for aligning load and store
-   instructions.  The assembler will generate a CODE reloc before a
-   block of instructions.  It will generate a DATA reloc before data.
-   A section should be processed assuming it contains data, unless a
-   CODE reloc is seen.  The only relevant pieces of information in the
-   CODE and DATA relocs are the section and the address.  The symbol
-   and offset are meaningless.  */
-#define R_SH_CODE	30		/* start of code */
-#define R_SH_DATA	31		/* start of data */
-
-/* The LABEL reloc type is used for aligning load and store
-   instructions.  The assembler will generate a LABEL reloc for each
-   label within a block of instructions.  This permits the linker to
-   avoid swapping instructions which are the targets of branches.  */
-#define R_SH_LABEL	32		/* label */
-
-/* NB: R_SH_SWITCH8 is 33 */
-
-#define R_SH_LOOP_START	34
-#define R_SH_LOOP_END	35
diff --git a/include/coff/sparc.h b/include/coff/sparc.h
deleted file mode 100644
index fb475f1..0000000
--- a/include/coff/sparc.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/* coff information for Sparc.
-   
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* This file is an amalgamation of several standard include files that
-   define coff format, such as filehdr.h, aouthdr.h, and so forth.  In
-   addition, all datatypes have been translated into character arrays of
-   (presumed) equivalent size.  This is necessary so that this file can
-   be used with different systems while still yielding the same results.  */
-
-#define L_LNNO_SIZE 2
-#define DO_NOT_DEFINE_SYMENT
-#define DO_NOT_DEFINE_AUXENT
-#include "coff/external.h"
-
-#define F_RELFLG	(0x0001)	/* relocation info stripped */
-#define F_EXEC		(0x0002)	/* file is executable */
-#define F_LNNO		(0x0004)	/* line numbers stripped */
-#define F_LSYMS		(0x0008)	/* local symbols stripped */
-
-#define SPARCMAGIC	(0540)
-
-/* This is Lynx's all-platform magic number for executables. */
-
-#define LYNXCOFFMAGIC	(0415)
-
-#define OMAGIC          0404    /* object files, eg as output */
-#define ZMAGIC          0413    /* demand load format, eg normal ld output */
-#define STMAGIC		0401	/* target shlib */
-#define SHMAGIC		0443	/* host   shlib */
-
-/* More names of "special" sections. */
-
-#define _TV	".tv"
-#define _INIT	".init"
-#define _FINI	".fini"
-
-/********************** SYMBOLS **********************/
-
-#define E_SYMNMLEN	(8)	/* # characters in a symbol name	*/
-#define E_FILNMLEN	(14)	/* # characters in a file name		*/
-#define E_DIMNUM	(4)	/* # array dimensions in auxiliary entry */
-
-struct external_syment 
-{
-  union {
-    char e_name[E_SYMNMLEN];
-    struct {
-      char e_zeroes[4];
-      char e_offset[4];
-    } e;
-#if 0 /* of doubtful value */
-    char e_nptr[2][4];
-    struct {
-      char e_leading_zero[1];
-      char e_dbx_type[1];
-      char e_dbx_desc[2];
-    } e_dbx;
-#endif
-  } e;
-
-  char e_value[4];
-  char e_scnum[2];
-  char e_type[2];
-  char e_sclass[1];
-  char e_numaux[1];
-  char padding[2];
-};
-
-#define N_BTMASK	(0xf)
-#define N_TMASK		(0x30)
-#define N_BTSHFT	(4)
-#define N_TSHIFT	(2)
-  
-union external_auxent
-{
-  struct {
-    char x_tagndx[4];		/* str, un, or enum tag indx */
-    union {
-      struct {
-	char  x_lnno[2];	/* declaration line number */
-	char  x_size[2];	/* str/union/array size */
-      } x_lnsz;
-      char x_fsize[4];		/* size of function */
-    } x_misc;
-    union {
-      struct {			/* if ISFCN, tag, or .bb */
-	char x_lnnoptr[4];	/* ptr to fcn line # */
-	char x_endndx[4];	/* entry ndx past block end */
-      } x_fcn;
-      struct {		/* if ISARY, up to 4 dimen. */
-	char x_dimen[E_DIMNUM][2];
-      } x_ary;
-    } x_fcnary;
-    char x_tvndx[2];		/* tv index */
-  } x_sym;
-  
-  union {
-    char x_fname[E_FILNMLEN];
-    struct {
-      char x_zeroes[4];
-      char x_offset[4];
-    } x_n;
-  } x_file;
-  
-  struct {
-    char x_scnlen[4];		/* section length */
-    char x_nreloc[2];		/* # relocation entries */
-    char x_nlinno[2];		/* # line numbers */
-  } x_scn;
-  
-  struct {
-    char x_tvfill[4];		/* tv fill value */
-    char x_tvlen[2];		/* length of .tv */
-    char x_tvran[2][2];		/* tv range */
-  } x_tv;			/* .tv section info (in auxent of sym .tv)) */
-
-  char x_fill[20];		/* forces to 20-byte size */
-};
-
-#define	SYMENT	struct external_syment
-#define	SYMESZ	20	
-#define	AUXENT	union external_auxent
-#define	AUXESZ	20
-
-#define _ETEXT	"etext"
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_type[2];
-  char r_spare[2];
-  char r_offset[4];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 16
-
diff --git a/include/coff/sym.h b/include/coff/sym.h
deleted file mode 100644
index 76204af..0000000
--- a/include/coff/sym.h
+++ /dev/null
@@ -1,484 +0,0 @@
-/* Declarations of internal format of MIPS ECOFF symbols.
-   Originally contributed by MIPS Computer Systems and Third Eye Software.
-   Changes contributed by Cygnus Support are in the public domain.  
-
-   This file is just aggregated with the files that make up the GNU
-   release; it is not considered part of GAS, GDB, or other GNU
-   programs.  */
-
-/*
- * |-----------------------------------------------------------|
- * | Copyright (c) 1992, 1991, 1990 MIPS Computer Systems, Inc.|
- * | MIPS Computer Systems, Inc. grants reproduction and use   |
- * | rights to all parties, PROVIDED that this comment is      |
- * | maintained in the copy.                                   |
- * |-----------------------------------------------------------|
- */
-#ifndef _SYM_H
-#define _SYM_H
-
-/* (C) Copyright 1984 by Third Eye Software, Inc.
- *
- * Third Eye Software, Inc. grants reproduction and use rights to
- * all parties, PROVIDED that this comment is maintained in the copy.
- *
- * Third Eye makes no claims about the applicability of this
- * symbol table to a particular use.
- */
-
-/* 
- * This file contains the definition of the Third Eye Symbol Table.
- *
- * Symbols are assumed to be in 'encounter order' - i.e. the order that
- * the things they represent were encountered by the compiler/assembler/loader.
- * EXCEPT for globals!	These are assumed to be bunched together,
- * probably right after the last 'normal' symbol.  Globals ARE sorted
- * in ascending order.
- *
- * -----------------------------------------------------------------------
- * A brief word about Third Eye naming/use conventions:
- *
- * All arrays and index's are 0 based.
- * All "ifooMax" values are the highest legal value PLUS ONE. This makes
- * them good for allocating arrays, etc. All checks are "ifoo < ifooMax".
- *
- * "isym"	Index into the SYMbol table.
- * "ipd"	Index into the Procedure Descriptor array.
- * "ifd"	Index into the File Descriptor array.
- * "iss"	Index into String Space.
- * "cb"		Count of Bytes.
- * "rgPd"	array whose domain is "0..ipdMax-1" and RanGe is PDR.
- * "rgFd"	array whose domain is "0..ifdMax-1" and RanGe is FDR.
- */
-
-
-/* 
- * Symbolic Header (HDR) structure.
- * As long as all the pointers are set correctly,
- * we don't care WHAT order the various sections come out in!
- *
- * A file produced solely for the use of CDB will probably NOT have
- * any instructions or data areas in it, as these are available
- * in the original.
- */
-
-typedef struct {
-	short	magic;		/* to verify validity of the table */
-	short	vstamp;		/* version stamp */
-	long	ilineMax;	/* number of line number entries */
-	bfd_vma	cbLine;		/* number of bytes for line number entries */
-	bfd_vma	cbLineOffset;	/* offset to start of line number entries*/
-	long	idnMax;		/* max index into dense number table */
-	bfd_vma	cbDnOffset;	/* offset to start dense number table */
-	long	ipdMax;		/* number of procedures */
-	bfd_vma	cbPdOffset;	/* offset to procedure descriptor table */
-	long	isymMax;	/* number of local symbols */
-	bfd_vma	cbSymOffset;	/* offset to start of local symbols*/
-	long	ioptMax;	/* max index into optimization symbol entries */
-	bfd_vma	cbOptOffset;	/* offset to optimization symbol entries */
-	long	iauxMax;	/* number of auxillary symbol entries */
-	bfd_vma	cbAuxOffset;	/* offset to start of auxillary symbol entries*/
-	long	issMax;		/* max index into local strings */
-	bfd_vma	cbSsOffset;	/* offset to start of local strings */
-	long	issExtMax;	/* max index into external strings */
-	bfd_vma	cbSsExtOffset;	/* offset to start of external strings */
-	long	ifdMax;		/* number of file descriptor entries */
-	bfd_vma	cbFdOffset;	/* offset to file descriptor table */
-	long	crfd;		/* number of relative file descriptor entries */
-	bfd_vma	cbRfdOffset;	/* offset to relative file descriptor table */
-	long	iextMax;	/* max index into external symbols */
-	bfd_vma	cbExtOffset;	/* offset to start of external symbol entries*/
-	/* If you add machine dependent fields, add them here */
-	} HDRR, *pHDRR; 
-#define cbHDRR sizeof(HDRR)
-#define hdrNil ((pHDRR)0)
-
-/*
- * The FDR and PDR structures speed mapping of address <-> name.
- * They are sorted in ascending memory order and are kept in
- * memory by CDB at runtime.
- */
-
-/* 
- * File Descriptor
- *
- * There is one of these for EVERY FILE, whether compiled with
- * full debugging symbols or not.  The name of a file should be
- * the path name given to the compiler.	 This allows the user
- * to simply specify the names of the directories where the COMPILES
- * were done, and we will be able to find their files.
- * A field whose comment starts with "R - " indicates that it will be
- * setup at runtime.
- */
-typedef struct fdr {
-	bfd_vma	adr;		/* memory address of beginning of file */
-	long	rss;		/* file name (of source, if known) */
-	long	issBase;	/* file's string space */
-	bfd_vma	cbSs;		/* number of bytes in the ss */
-	long	isymBase;	/* beginning of symbols */
-	long	csym;		/* count file's of symbols */
-	long	ilineBase;	/* file's line symbols */
-	long	cline;		/* count of file's line symbols */
-	long	ioptBase;	/* file's optimization entries */
-	long	copt;		/* count of file's optimization entries */
-	unsigned short ipdFirst;/* start of procedures for this file */
-	short	cpd;		/* count of procedures for this file */
-	long	iauxBase;	/* file's auxiliary entries */
-	long	caux;		/* count of file's auxiliary entries */
-	long	rfdBase;	/* index into the file indirect table */
-	long	crfd;		/* count file indirect entries */
-	unsigned lang: 5;	/* language for this file */
-	unsigned fMerge : 1;	/* whether this file can be merged */
-	unsigned fReadin : 1;	/* true if it was read in (not just created) */
-	unsigned fBigendian : 1;/* if set, was compiled on big endian machine */
-				/*	aux's will be in compile host's sex */
-	unsigned glevel : 2;	/* level this file was compiled with */
-	unsigned reserved : 22;  /* reserved for future use */
-	bfd_vma	cbLineOffset;	/* byte offset from header for this file ln's */
-	bfd_vma	cbLine;		/* size of lines for this file */
-	} FDR, *pFDR;
-#define cbFDR sizeof(FDR)
-#define fdNil ((pFDR)0)
-#define ifdNil -1
-#define ifdTemp 0
-#define ilnNil -1
-
-
-/* 
- * Procedure Descriptor
- *
- * There is one of these for EVERY TEXT LABEL.
- * If a procedure is in a file with full symbols, then isym
- * will point to the PROC symbols, else it will point to the
- * global symbol for the label.
- */
-
-typedef struct pdr {
-	bfd_vma	adr;		/* memory address of start of procedure */
-	long	isym;		/* start of local symbol entries */
-	long	iline;		/* start of line number entries*/
-	long	regmask;	/* save register mask */
-	long	regoffset;	/* save register offset */
-	long	iopt;		/* start of optimization symbol entries*/
-	long	fregmask;	/* save floating point register mask */
-	long	fregoffset;	/* save floating point register offset */
-	long	frameoffset;	/* frame size */
-	short	framereg;	/* frame pointer register */
-	short	pcreg;		/* offset or reg of return pc */
-	long	lnLow;		/* lowest line in the procedure */
-	long	lnHigh;		/* highest line in the procedure */
-	bfd_vma	cbLineOffset;	/* byte offset for this procedure from the fd base */
-	/* These fields are new for 64 bit ECOFF.  */
-	unsigned gp_prologue : 8; /* byte size of GP prologue */
-	unsigned gp_used : 1;	/* true if the procedure uses GP */
-	unsigned reg_frame : 1;	/* true if register frame procedure */
-	unsigned prof : 1;	/* true if compiled with -pg */
-	unsigned reserved : 13;	/* reserved: must be zero */
-	unsigned localoff : 8;	/* offset of local variables from vfp */
-	} PDR, *pPDR;
-#define cbPDR sizeof(PDR)
-#define pdNil ((pPDR) 0)
-#define ipdNil	-1
-
-/*
- * The structure of the runtime procedure descriptor created by the loader
- * for use by the static exception system.
- */
-/*
- * If 0'd out because exception_info chokes Visual C++ and because there
- * don't seem to be any references to this structure elsewhere in gdb.
- */
-#if 0
-typedef struct runtime_pdr {
-	bfd_vma	adr;		/* memory address of start of procedure */
-	long	regmask;	/* save register mask */
-	long	regoffset;	/* save register offset */
-	long	fregmask;	/* save floating point register mask */
-	long	fregoffset;	/* save floating point register offset */
-	long	frameoffset;	/* frame size */
-	short	framereg;	/* frame pointer register */
-	short	pcreg;		/* offset or reg of return pc */
-	long	irpss;		/* index into the runtime string table */
-	long	reserved;
-	struct exception_info *exception_info;/* pointer to exception array */
-} RPDR, *pRPDR;
-#define cbRPDR sizeof(RPDR)
-#define rpdNil ((pRPDR) 0)
-#endif
-
-/*
- * Line Numbers
- *
- * Line Numbers are segregated from the normal symbols because they
- * are [1] smaller , [2] are of no interest to your
- * average loader, and [3] are never needed in the middle of normal
- * scanning and therefore slow things down.
- *
- * By definition, the first LINER for any given procedure will have
- * the first line of a procedure and represent the first address.
- */
-
-typedef	long LINER, *pLINER;
-#define lineNil ((pLINER)0)
-#define cbLINER sizeof(LINER)
-#define ilineNil	-1
-
-
-
-/*
- * The Symbol Structure		(GFW, to those who Know!)
- */
-
-typedef struct {
-	long	iss;		/* index into String Space of name */
-	bfd_vma	value;		/* value of symbol */
-	unsigned st : 6;	/* symbol type */
-	unsigned sc  : 5;	/* storage class - text, data, etc */
-	unsigned reserved : 1;	/* reserved */
-	unsigned index : 20;	/* index into sym/aux table */
-	} SYMR, *pSYMR;
-#define symNil ((pSYMR)0)
-#define cbSYMR sizeof(SYMR)
-#define isymNil -1
-#define indexNil 0xfffff
-#define issNil -1
-#define issNull 0
-
-
-/* The following converts a memory resident string to an iss.
- * This hack is recognized in SbFIss, in sym.c of the debugger.
- */
-#define IssFSb(sb) (0x80000000 | ((unsigned long)(sb)))
-
-/* E X T E R N A L   S Y M B O L  R E C O R D
- *
- *	Same as the SYMR except it contains file context to determine where
- *	the index is.
- */
-typedef struct ecoff_extr {
-	unsigned jmptbl:1;	/* symbol is a jump table entry for shlibs */
-	unsigned cobol_main:1;	/* symbol is a cobol main procedure */
-	unsigned weakext:1;	/* symbol is weak external */
-	unsigned reserved:13;	/* reserved for future use */
-	int	ifd;		/* where the iss and index fields point into */
-	SYMR	asym;		/* symbol for the external */
-	} EXTR, *pEXTR;
-#define extNil ((pEXTR)0)
-#define cbEXTR sizeof(EXTR)
-
-
-/* A U X I L L A R Y   T Y P E	 I N F O R M A T I O N */
-
-/*
- * Type Information Record
- */
-typedef struct {
-	unsigned fBitfield : 1; /* set if bit width is specified */
-	unsigned continued : 1; /* indicates additional TQ info in next AUX */
-	unsigned bt  : 6;	/* basic type */
-	unsigned tq4 : 4;
-	unsigned tq5 : 4;
-	/* ---- 16 bit boundary ---- */
-	unsigned tq0 : 4;
-	unsigned tq1 : 4;	/* 6 type qualifiers - tqPtr, etc. */
-	unsigned tq2 : 4;
-	unsigned tq3 : 4;
-	} TIR, *pTIR;
-#define cbTIR sizeof(TIR)
-#define tiNil ((pTIR)0)
-#define itqMax 6
-
-/*
- * Relative symbol record
- *
- * If the rfd field is 4095, the index field indexes into the global symbol
- *	table.
- */
-
-typedef struct {
-	unsigned	rfd : 12;    /* index into the file indirect table */
-	unsigned	index : 20; /* index int sym/aux/iss tables */
-	} RNDXR, *pRNDXR;
-#define cbRNDXR sizeof(RNDXR)
-#define rndxNil ((pRNDXR)0)
-
-/* dense numbers or sometimes called block numbers are stored in this type,
- *	a rfd of 0xffffffff is an index into the global table.
- */
-typedef struct {
-	unsigned long	rfd;    /* index into the file table */
-	unsigned long	index; 	/* index int sym/aux/iss tables */
-	} DNR, *pDNR;
-#define cbDNR sizeof(DNR)
-#define dnNil ((pDNR)0)
-
-
-
-/*
- * Auxillary information occurs only if needed.
- * It ALWAYS occurs in this order when present.
-
-	    isymMac		used by stProc only
-	    TIR			type info
-	    TIR			additional TQ info (if first TIR was not enough)
-	    rndx		if (bt == btStruct,btUnion,btEnum,btSet,btRange,
-				    btTypedef):
-				    rsym.index == iaux for btSet or btRange
-				    else rsym.index == isym
-	    dimLow		btRange, btSet
-	    dimMac		btRange, btSet
-	    rndx0		As many as there are tq arrays
-	    dimLow0
-	    dimHigh0
-	    ...
-	    rndxMax-1
-	    dimLowMax-1
-	    dimHighMax-1
-	    width in bits	if (bit field), width in bits.
- */
-#define cAuxMax (6 + (idimMax*3))
-
-/* a union of all possible info in the AUX universe */
-typedef union {
-	TIR	ti;		/* type information record */
-	RNDXR	rndx;		/* relative index into symbol table */
-	long	dnLow;		/* low dimension */
-	long	dnHigh;		/* high dimension */
-	long	isym;		/* symbol table index (end of proc) */
-	long	iss;		/* index into string space (not used) */
-	long	width;		/* width for non-default sized struc fields */
-	long	count;		/* count of ranges for variant arm */
-	} AUXU, *pAUXU;
-#define cbAUXU sizeof(AUXU)
-#define auxNil ((pAUXU)0)
-#define iauxNil -1
-
-
-/*
- * Optimization symbols
- *
- * Optimization symbols contain some overlap information with the normal
- * symbol table. In particular, the proc information
- * is somewhat redundant but necessary to easily find the other information
- * present. 
- *
- * All of the offsets are relative to the beginning of the last otProc
- */
-
-typedef struct {
-	unsigned ot: 8;		/* optimization type */
-	unsigned value: 24;	/* address where we are moving it to */
-	RNDXR	rndx;		/* points to a symbol or opt entry */
-	unsigned long	offset;	/* relative offset this occured */
-	} OPTR, *pOPTR;
-#define optNil	((pOPTR) 0)
-#define cbOPTR sizeof(OPTR)
-#define ioptNil -1
-
-/*
- * File Indirect
- *
- * When a symbol is referenced across files the following procedure is used:
- *	1) use the file index to get the File indirect entry.
- *	2) use the file indirect entry to get the File descriptor.
- *	3) add the sym index to the base of that file's sym table
- *
- */
-
-typedef long RFDT, *pRFDT;
-#define cbRFDT sizeof(RFDT)
-#define rfdNil	-1
-
-/*
- * The file indirect table in the mips loader is known as an array of FITs.
- * This is done to keep the code in the loader readable in the area where
- * these tables are merged.  Note this is only a name change.
- */
-typedef long FIT, *pFIT;
-#define cbFIT	sizeof(FIT)
-#define ifiNil	-1
-#define fiNil	((pFIT) 0)
-
-#ifdef _LANGUAGE_PASCAL
-#define ifdNil -1
-#define ilnNil -1
-#define ipdNil -1
-#define ilineNil -1
-#define isymNil -1
-#define indexNil 16#fffff
-#define issNil -1
-#define issNull 0
-#define itqMax 6
-#define iauxNil -1
-#define ioptNil -1
-#define rfdNil -1
-#define ifiNil -1
-#endif	/* _LANGUAGE_PASCAL */
-
-
-/* Dense numbers
- *
- * Rather than use file index, symbol index pairs to represent symbols
- *	and globals, we use dense number so that they can be easily embeded
- *	in intermediate code and the programs that process them can
- *	use direct access tabls instead of hash table (which would be
- *	necesary otherwise because of the sparse name space caused by
- *	file index, symbol index pairs. Dense number are represented
- *	by RNDXRs.
- */
-
-/*
- * The following table defines the meaning of each SYM field as
- * a function of the "st". (scD/B == scData OR scBss)
- *
- * Note: the value "isymMac" is used by symbols that have the concept
- * of enclosing a block of related information.	 This value is the
- * isym of the first symbol AFTER the end associated with the primary
- * symbol. For example if a procedure was at isym==90 and had an
- * isymMac==155, the associated end would be at isym==154, and the
- * symbol at 155 would probably (although not necessarily) be the
- * symbol for the next procedure.  This allows rapid skipping over
- * internal information of various sorts. "stEnd"s ALWAYS have the
- * isym of the primary symbol that started the block.
- * 
-
-ST		SC	VALUE		INDEX
---------	------	--------	------
-stFile		scText	address		isymMac
-stLabel		scText	address		---
-stGlobal	scD/B	address		iaux
-stStatic	scD/B	address		iaux
-stParam		scAbs	offset		iaux
-stLocal		scAbs	offset		iaux
-stProc		scText	address		iaux	(isymMac is first AUX)
-stStaticProc	scText	address		iaux	(isymMac is first AUX)
-
-stMember	scNil	ordinal		---	(if member of enum)
-	(mipsread thinks the case below has a bit, not byte, offset.)
-stMember	scNil	byte offset	iaux	(if member of struct/union)
-stMember	scBits	bit offset	iaux	(bit field spec)
-
-stBlock		scText	address		isymMac (text block)
-	(the code seems to think that rather than scNil, we see scInfo for
-	 the two cases below.)
-stBlock		scNil	cb		isymMac (struct/union member define)
-stBlock		scNil	cMembers	isymMac (enum member define)
-
-	(New types added by SGI to simplify things:)
-stStruct	scInfo	cb		isymMac (struct type define)
-stUnion		scInfo	cb		isymMac (union  type define)
-stEnum		scInfo	cMembers	isymMac (enum   type define)
-
-stEnd		scText	address		isymStart
-stEnd		scNil	-------		isymStart (struct/union/enum)
-
-stTypedef	scNil	-------		iaux
-stRegReloc	sc???	value		old register number
-stForward	sc???	new address	isym to original symbol
-
-stConstant	scInfo	value		--- (scalar)
-stConstant	scInfo	iss		--- (complex, e.g. string)
-
- *
- */
-#endif
diff --git a/include/coff/symconst.h b/include/coff/symconst.h
deleted file mode 100644
index 3e45705..0000000
--- a/include/coff/symconst.h
+++ /dev/null
@@ -1,177 +0,0 @@
-/* Declarations of constants for internal format of MIPS ECOFF symbols.
-   Originally contributed by MIPS Computer Systems and Third Eye Software.
-   Changes contributed by Cygnus Support are in the public domain.
-
-   This file is just aggregated with the files that make up the GNU
-   release; it is not considered part of GAS, GDB, or other GNU
-   programs.  */
-
-/*
- * |-----------------------------------------------------------|
- * | Copyright (c) 1992, 1991, 1990 MIPS Computer Systems, Inc.|
- * | MIPS Computer Systems, Inc. grants reproduction and use   |
- * | rights to all parties, PROVIDED that this comment is      |
- * | maintained in the copy.                                   |
- * |-----------------------------------------------------------|
- */
-
-/* (C) Copyright 1984 by Third Eye Software, Inc.
- *
- * Third Eye Software, Inc. grants reproduction and use rights to
- * all parties, PROVIDED that this comment is maintained in the copy.
- *
- * Third Eye makes no claims about the applicability of this
- * symbol table to a particular use.
- */
-
-/* glevels for field in FDR */
-#define GLEVEL_0	2
-#define GLEVEL_1	1
-#define GLEVEL_2	0	/* for upward compat reasons. */
-#define GLEVEL_3	3
-
-/* magic number fo symheader */
-#define magicSym	0x7009
-/* The Alpha uses this value instead, for some reason.  */
-#define magicSym2	0x1992
-
-/* Language codes */
-#define langC		0	
-#define langPascal	1
-#define langFortran	2
-#define	langAssembler	3	/* one Assembley inst might map to many mach */
-#define langMachine	4
-#define langNil		5
-#define langAda		6
-#define langPl1		7
-#define langCobol	8
-#define langStdc	9	/* FIXME: Collides with SGI langCplusplus */
-#define langCplusplus	9	/* FIXME: Collides with langStdc */
-#define langCplusplusV2	10	/* SGI addition */
-#define langMax		11	/* maximum allowed 32 -- 5 bits */
-
-/* The following are value definitions for the fields in the SYMR */
-
-/*
- * Storage Classes
- */
-
-#define scNil		0
-#define scText		1	/* text symbol */
-#define scData		2	/* initialized data symbol */
-#define scBss		3	/* un-initialized data symbol */
-#define scRegister	4	/* value of symbol is register number */
-#define scAbs		5	/* value of symbol is absolute */
-#define scUndefined	6	/* who knows? */
-#define scCdbLocal	7	/* variable's value is IN se->va.?? */
-#define scBits		8	/* this is a bit field */
-#define scCdbSystem	9	/* variable's value is IN CDB's address space */
-#define scDbx		9	/* overlap dbx internal use */
-#define scRegImage	10	/* register value saved on stack */
-#define scInfo		11	/* symbol contains debugger information */
-#define scUserStruct	12	/* address in struct user for current process */
-#define scSData		13	/* load time only small data */
-#define scSBss		14	/* load time only small common */
-#define scRData		15	/* load time only read only data */
-#define scVar		16	/* Var parameter (fortran,pascal) */
-#define scCommon	17	/* common variable */
-#define scSCommon	18	/* small common */
-#define scVarRegister	19	/* Var parameter in a register */
-#define scVariant	20	/* Variant record */
-#define scSUndefined	21	/* small undefined(external) data */
-#define scInit		22	/* .init section symbol */
-#define scBasedVar	23	/* Fortran or PL/1 ptr based var */ 
-#define scXData         24      /* exception handling data */
-#define scPData         25      /* Procedure section */
-#define scFini          26      /* .fini section */
-#define scRConst	27	/* .rconst section */
-#define scMax		32
-
-
-/*
- *   Symbol Types
- */
-
-#define stNil		0	/* Nuthin' special */
-#define stGlobal	1	/* external symbol */
-#define stStatic	2	/* static */
-#define stParam		3	/* procedure argument */
-#define stLocal		4	/* local variable */
-#define stLabel		5	/* label */
-#define stProc		6	/*     "      "	 Procedure */
-#define stBlock		7	/* beginnning of block */
-#define stEnd		8	/* end (of anything) */
-#define stMember	9	/* member (of anything	- struct/union/enum */
-#define stTypedef	10	/* type definition */
-#define stFile		11	/* file name */
-#define stRegReloc	12	/* register relocation */
-#define stForward	13	/* forwarding address */
-#define stStaticProc	14	/* load time only static procs */
-#define stConstant	15	/* const */
-#define stStaParam	16	/* Fortran static parameters */
-    /* These new symbol types have been recently added to SGI machines. */
-#define stStruct	26	/* Beginning of block defining a struct type */
-#define stUnion		27	/* Beginning of block defining a union type */
-#define stEnum		28	/* Beginning of block defining an enum type */
-#define stIndirect	34	/* Indirect type specification */
-    /* Pseudo-symbols - internal to debugger */
-#define stStr		60	/* string */
-#define stNumber	61	/* pure number (ie. 4 NOR 2+2) */
-#define stExpr		62	/* 2+2 vs. 4 */
-#define stType		63	/* post-coersion SER */
-#define stMax		64
-
-/* definitions for fields in TIR */
-
-/* type qualifiers for ti.tq0 -> ti.(itqMax-1) */
-#define tqNil	0	/* bt is what you see */
-#define tqPtr	1	/* pointer */
-#define tqProc	2	/* procedure */
-#define tqArray 3	/* duh */
-#define tqFar	4	/* longer addressing - 8086/8 land */
-#define tqVol	5	/* volatile */
-#define tqConst 6	/* const */
-#define tqMax	8
-
-/* basic types as seen in ti.bt */
-#define btNil		0	/* undefined (also, enum members) */
-#define btAdr		1	/* address - integer same size as pointer */
-#define btChar		2	/* character */
-#define btUChar		3	/* unsigned character */
-#define btShort		4	/* short */
-#define btUShort	5	/* unsigned short */
-#define btInt		6	/* int */
-#define btUInt		7	/* unsigned int */
-#define btLong		8	/* long */
-#define btULong		9	/* unsigned long */
-#define btFloat		10	/* float (real) */
-#define btDouble	11	/* Double (real) */
-#define btStruct	12	/* Structure (Record) */
-#define btUnion		13	/* Union (variant) */
-#define btEnum		14	/* Enumerated */
-#define btTypedef	15	/* defined via a typedef, isymRef points */
-#define btRange		16	/* subrange of int */
-#define btSet		17	/* pascal sets */
-#define btComplex	18	/* fortran complex */
-#define btDComplex	19	/* fortran double complex */
-#define btIndirect	20	/* forward or unnamed typedef */
-#define btFixedDec	21	/* Fixed Decimal */
-#define btFloatDec	22	/* Float Decimal */
-#define btString	23	/* Varying Length Character String */
-#define btBit		24	/* Aligned Bit String */
-#define btPicture	25	/* Picture */
-#define btVoid		26	/* void */
-#define btLongLong	27	/* long long */
-#define btULongLong	28	/* unsigned long long */
-#define btMax		64
-
-#if (_MFG == _MIPS)
-/* optimization type codes */
-#define otNil		0
-#define otReg		1	/* move var to reg */
-#define otBlock		2	/* begin basic block */
-#define	otProc		3	/* procedure */
-#define otInline	4	/* inline procedure */
-#define otEnd		5	/* whatever you started */
-#define otMax		6	/* KEEP UP TO DATE */
-#endif /* (_MFG == _MIPS) */
diff --git a/include/coff/ti.h b/include/coff/ti.h
deleted file mode 100644
index 4c246d4..0000000
--- a/include/coff/ti.h
+++ /dev/null
@@ -1,473 +0,0 @@
-/* COFF information for TI COFF support.  Definitions in this file should be
-   customized in a target-specific file, and then this file included (see
-   tic54x.h for an example).
-   
-   Copyright 2000, 2001, 2002, 2003 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-#ifndef COFF_TI_H
-#define COFF_TI_H
-
-/* Note "coff/external.h is not used because TI adds extra fields to the structures.  */
-
-/********************** FILE HEADER **********************/
-
-struct external_filehdr
-  {
-    char f_magic[2];	/* magic number			*/
-    char f_nscns[2];	/* number of sections		*/
-    char f_timdat[4];	/* time & date stamp		*/
-    char f_symptr[4];	/* file pointer to symtab	*/
-    char f_nsyms[4];	/* number of symtab entries	*/
-    char f_opthdr[2];	/* sizeof(optional hdr)		*/
-    char f_flags[2];	/* flags			*/
-    char f_target_id[2];    /* magic no. (TI COFF-specific) */
-  };
-
-/* COFF0 has magic number in f_magic, and omits f_target_id from the file
-   header; for later versions, f_magic is 0xC1 for COFF1 and 0xC2 for COFF2
-   and the target-specific magic number is found in f_target_id */ 
-
-#define TICOFF0MAGIC    TI_TARGET_ID
-#define TICOFF1MAGIC    0x00C1
-#define TICOFF2MAGIC    0x00C2
-#define TICOFF_AOUT_MAGIC    0x0108 /* magic number in optional header */
-#define TICOFF          1 /* customize coffcode.h */
-
-/* The target_id field changes depending on the particular CPU target */
-/* for COFF0, the target id appeared in f_magic, where COFFX magic is now */
-#ifndef TI_TARGET_ID
-#error "TI_TARGET_ID needs to be defined for your CPU"
-#endif
-
-/* Which bfd_arch to use... */
-#ifndef TICOFF_TARGET_ARCH
-#error "TICOFF_TARGET_ARCH needs to be defined for your CPU"
-#endif
-
-#ifndef TICOFF_TARGET_MACHINE_GET
-#define TICOFF_TARGET_MACHINE_GET(FLAGS) 0
-#endif
-
-#ifndef TICOFF_TARGET_MACHINE_SET
-#define TICOFF_TARGET_MACHINE_SET(FLAGSP, MACHINE)
-#endif
-
-/* Default to COFF2 for file output */
-#ifndef TICOFF_DEFAULT_MAGIC
-#define TICOFF_DEFAULT_MAGIC TICOFF2MAGIC
-#endif
-
-/* This value is made available in the rare case where a bfd is unavailable */
-#ifndef OCTETS_PER_BYTE_POWER
-#error "OCTETS_PER_BYTE_POWER not defined for this CPU"
-#else
-#define OCTETS_PER_BYTE (1<<OCTETS_PER_BYTE_POWER)
-#endif
-
-/* default alignment is on a byte (not octet!) boundary */
-#ifndef COFF_DEFAULT_SECTION_ALIGNMENT_POWER
-#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER 0
-#endif
-
-/* TI COFF encodes the section alignment in the section header flags */
-#define COFF_ALIGN_IN_SECTION_HEADER 1
-#define COFF_ALIGN_IN_S_FLAGS 1
-/* requires a power-of-two argument */
-#define COFF_ENCODE_ALIGNMENT(S,X) ((S).s_flags |= (((unsigned)(X)&0xF)<<8))
-/* result is a power of two */
-#define COFF_DECODE_ALIGNMENT(X) (((X)>>8)&0xF)
-
-#define COFF0_P(ABFD) (bfd_coff_filhsz(ABFD) == FILHSZ_V0)
-#define COFF2_P(ABFD) (bfd_coff_scnhsz(ABFD) != SCNHSZ_V01)
-
-#define COFF0_BADMAG(x) ((x).f_magic != TICOFF0MAGIC)
-#define COFF1_BADMAG(x) ((x).f_magic != TICOFF1MAGIC || (x).f_target_id != TI_TARGET_ID)
-#define COFF2_BADMAG(x) ((x).f_magic != TICOFF2MAGIC || (x).f_target_id != TI_TARGET_ID)
-
-/* we need to read/write an extra field in the coff file header */
-#ifndef COFF_ADJUST_FILEHDR_IN_POST
-#define COFF_ADJUST_FILEHDR_IN_POST(abfd, src, dst) \
-  do									\
-    {									\
-      ((struct internal_filehdr *)(dst))->f_target_id =			\
-	H_GET_16 (abfd, ((FILHDR *)(src))->f_target_id);		\
-    }									\
-  while (0)
-#endif
-
-#ifndef COFF_ADJUST_FILEHDR_OUT_POST
-#define COFF_ADJUST_FILEHDR_OUT_POST(abfd, src, dst) \
-  do									\
-    {									\
-      H_PUT_16 (abfd, ((struct internal_filehdr *)(src))->f_target_id,	\
-	       ((FILHDR *)(dst))->f_target_id);				\
-    }									\
-  while (0)
-#endif
-
-#define	FILHDR	struct external_filehdr
-#define	FILHSZ	22
-#define FILHSZ_V0 20                /* COFF0 omits target_id field */
-
-/* File header flags */
-#define	F_RELFLG	(0x0001)
-#define	F_EXEC		(0x0002)
-#define	F_LNNO		(0x0004)
-#define F_VERS          (0x0010) /* TMS320C4x code */
-/* F_LSYMS needs to be redefined in your source file */
-#define	F_LSYMS_TICOFF	(0x0010) /* normal COFF is 0x8 */
-
-#define F_10            0x00    /* file built for TMS320C1x devices */
-#define F_20            0x10    /* file built for TMS320C2x devices */
-#define F_25            0x20    /* file built for TMS320C2x/C5x devices */
-#define F_LENDIAN       0x0100  /* 16 bits/word, LSB first */
-#define F_SYMMERGE      0x1000  /* duplicate symbols were removed */
-
-/********************** OPTIONAL HEADER **********************/
-
-
-typedef struct 
-{
-  char 	magic[2];		/* type of file (0x108) 		*/
-  char	vstamp[2];		/* version stamp			*/
-  char	tsize[4];		/* text size in bytes, padded to FW bdry*/
-  char	dsize[4];		/* initialized data "  "		*/
-  char	bsize[4];		/* uninitialized data "   "		*/
-  char	entry[4];		/* entry pt.				*/
-  char 	text_start[4];		/* base of text used for this file */
-  char 	data_start[4];		/* base of data used for this file */
-}
-AOUTHDR;
-
-
-#define AOUTHDRSZ 28
-#define AOUTSZ 28
-
-
-/********************** SECTION HEADER **********************/
-/* COFF0, COFF1 */
-struct external_scnhdr_v01 {
-	char		s_name[8];	/* section name			*/
-	char		s_paddr[4];	/* physical address, aliased s_nlib */
-	char		s_vaddr[4];	/* virtual address		*/
-	char		s_size[4];	/* section size (in WORDS)      */
-	char		s_scnptr[4];	/* file ptr to raw data for section */
-	char		s_relptr[4];	/* file ptr to relocation	*/
-	char		s_lnnoptr[4];	/* file ptr to line numbers	*/
-	char		s_nreloc[2];	/* number of relocation entries	*/
-	char		s_nlnno[2];	/* number of line number entries*/
-	char		s_flags[2];	/* flags			*/
-        char            s_reserved[1];  /* reserved                     */ 
-        char            s_page[1];      /* section page number (LOAD)   */
-};
-
-/* COFF2 */
-struct external_scnhdr {
-	char		s_name[8];	/* section name			*/
-	char		s_paddr[4];	/* physical address, aliased s_nlib */
-	char		s_vaddr[4];	/* virtual address		*/
-	char		s_size[4];	/* section size (in WORDS)      */
-	char		s_scnptr[4];	/* file ptr to raw data for section */
-	char		s_relptr[4];	/* file ptr to relocation	*/
-	char		s_lnnoptr[4];	/* file ptr to line numbers	*/
-	char		s_nreloc[4];	/* number of relocation entries	*/
-	char		s_nlnno[4];	/* number of line number entries*/
-	char		s_flags[4];	/* flags			*/
-        char            s_reserved[2];  /* reserved                     */ 
-        char            s_page[2];      /* section page number (LOAD)   */
-};
-
-/*
- * Special section flags
- */
-
-/* TI COFF defines these flags; 
-   STYP_CLINK: the section should be excluded from the final
-   linker output if there are no references found to any symbol in the section
-   STYP_BLOCK: the section should be blocked, i.e. if the section would cross
-   a page boundary, it is started at a page boundary instead.
-   TI COFF puts the section alignment power of two in the section flags
-   e.g. 2**N is alignment, flags |= (N & 0xF) << 8
-*/ 
-#define STYP_CLINK      (0x4000)
-#define STYP_BLOCK      (0x1000)
-#define STYP_ALIGN      (0x0F00) /* TI COFF stores section alignment here */
-
-#define	SCNHDR_V01 struct external_scnhdr_v01
-#define SCNHDR struct external_scnhdr
-#define	SCNHSZ_V01 40                  /* for v0 and v1 */
-#define SCNHSZ 48
-
-/* COFF2 changes the offsets and sizes of these fields 
-   Assume we're dealing with the COFF2 scnhdr structure, and adjust
-   accordingly 
- */
-#define GET_SCNHDR_NRELOC(ABFD, LOC) \
-  (COFF2_P (ABFD) ? H_GET_32 (ABFD, LOC) : H_GET_16 (ABFD, LOC))
-#define PUT_SCNHDR_NRELOC(ABFD, VAL, LOC) \
-  (COFF2_P (ABFD) ? H_PUT_32 (ABFD, VAL, LOC) : H_PUT_16 (ABFD, VAL, LOC))
-#define GET_SCNHDR_NLNNO(ABFD, LOC) \
-  (COFF2_P (ABFD) ? H_GET_32 (ABFD, LOC) : H_GET_16 (ABFD, (LOC) - 2))
-#define PUT_SCNHDR_NLNNO(ABFD, VAL, LOC) \
-  (COFF2_P (ABFD) ? H_PUT_32 (ABFD, VAL, LOC) : H_PUT_16 (ABFD, VAL, (LOC) - 2))
-#define GET_SCNHDR_FLAGS(ABFD, LOC) \
-  (COFF2_P (ABFD) ? H_GET_32 (ABFD, LOC) : H_GET_16 (ABFD, (LOC) - 4))
-#define PUT_SCNHDR_FLAGS(ABFD, VAL, LOC) \
-  (COFF2_P (ABFD) ? H_PUT_32 (ABFD, VAL, LOC) : H_PUT_16 (ABFD, VAL, (LOC) - 4))
-#define GET_SCNHDR_PAGE(ABFD, LOC) \
-  (COFF2_P (ABFD) ? H_GET_16 (ABFD, LOC) : (unsigned) H_GET_8 (ABFD, (LOC) - 7))
-/* on output, make sure that the "reserved" field is zero */
-#define PUT_SCNHDR_PAGE(ABFD, VAL, LOC) \
-  (COFF2_P (ABFD) \
-   ? H_PUT_16 (ABFD, VAL, LOC) \
-   : H_PUT_8 (ABFD, VAL, (LOC) - 7), H_PUT_8 (ABFD, 0, (LOC) - 8))
-
-/* TI COFF stores section size as number of bytes (address units, not octets),
-   so adjust to be number of octets, which is what BFD expects */ 
-#define GET_SCNHDR_SIZE(ABFD, SZP) \
-  (H_GET_32 (ABFD, SZP) * bfd_octets_per_byte (ABFD))
-#define PUT_SCNHDR_SIZE(ABFD, SZ, SZP) \
-  H_PUT_32 (ABFD, (SZ) / bfd_octets_per_byte (ABFD), SZP)
-
-#define COFF_ADJUST_SCNHDR_IN_POST(ABFD, EXT, INT) \
-  do									\
-    {									\
-      ((struct internal_scnhdr *)(INT))->s_page =			\
-	GET_SCNHDR_PAGE (ABFD, ((SCNHDR *)(EXT))->s_page);		\
-    }									\
-   while (0)
-
-/* The line number and reloc overflow checking in coff_swap_scnhdr_out in
-   coffswap.h doesn't use PUT_X for s_nlnno and s_nreloc.
-   Due to different sized v0/v1/v2 section headers, we have to re-write these
-   fields.
- */
-#define COFF_ADJUST_SCNHDR_OUT_POST(ABFD, INT, EXT) \
-  do									   \
-    {									   \
-      PUT_SCNHDR_NLNNO (ABFD, ((struct internal_scnhdr *)(INT))->s_nlnno,  \
-			((SCNHDR *)(EXT))->s_nlnno);			   \
-      PUT_SCNHDR_NRELOC (ABFD, ((struct internal_scnhdr *)(INT))->s_nreloc,\
-			 ((SCNHDR *)(EXT))->s_nreloc);			   \
-      PUT_SCNHDR_FLAGS (ABFD, ((struct internal_scnhdr *)(INT))->s_flags,  \
-			((SCNHDR *)(EXT))->s_flags);			   \
-      PUT_SCNHDR_PAGE (ABFD, ((struct internal_scnhdr *)(INT))->s_page,    \
-		       ((SCNHDR *)(EXT))->s_page);			   \
-    }									   \
-   while (0)
-
-/*
- * names of "special" sections
- */
-#define _TEXT	".text"
-#define _DATA	".data"
-#define _BSS	".bss"
-#define _CINIT  ".cinit"            /* initialized C data */
-#define _SCONST  ".const"           /* constants */
-#define _SWITCH ".switch"           /* switch tables */
-#define _STACK  ".stack"            /* C stack */
-#define _SYSMEM ".sysmem"           /* used for malloc et al. syscalls */
-
-/********************** LINE NUMBERS **********************/
-
-/* 1 line number entry for every "breakpointable" source line in a section.
- * Line numbers are grouped on a per function basis; first entry in a function
- * grouping will have l_lnno = 0 and in place of physical address will be the
- * symbol table index of the function name.
- */
-struct external_lineno {
-  union {
-    char l_symndx[4];	/* function name symbol index, iff l_lnno == 0*/
-    char l_paddr[4];	/* (physical) address of line number	*/
-  } l_addr;
-  char l_lnno[2];	/* line number		*/
-};
-
-#define	LINENO	struct external_lineno
-#define	LINESZ	6
-
-
-/********************** SYMBOLS **********************/
-
-/* NOTE: this is what a local label looks like in assembly source; what it
-   looks like in COFF output is undefined */
-#define TICOFF_LOCAL_LABEL_P(NAME) \
-((NAME[0] == '$' && NAME[1] >= '0' && NAME[1] <= '9' && NAME[2] == '\0') \
- || NAME[strlen(NAME)-1] == '?')
-
-#define E_SYMNMLEN	8	/* # characters in a symbol name	*/
-#define E_FILNMLEN	14	/* # characters in a file name		*/
-#define E_DIMNUM	4	/* # array dimensions in auxiliary entry */
-
-struct external_syment 
-{
-  union {
-    char e_name[E_SYMNMLEN];
-    struct {
-      char e_zeroes[4];
-      char e_offset[4];
-    } e;
-  } e;
-  char e_value[4];
-  char e_scnum[2];
-  char e_type[2];
-  char e_sclass[1];
-  char e_numaux[1];
-};
-
-
-#define N_BTMASK	(017)
-#define N_TMASK		(060)
-#define N_BTSHFT	(4)
-#define N_TSHIFT	(2)
-  
-
-union external_auxent {
-  struct {
-	char x_tagndx[4];	/* str, un, or enum tag indx */
-	union {
-	  struct {
-		char  x_lnno[2]; /* declaration line number */
-		char  x_size[2]; /* str/union/array size */
-	  } x_lnsz;
-	  char x_fsize[4];	/* size of function */
-	} x_misc;
-	union {
-	  struct {		/* if ISFCN, tag, or .bb */
-		char x_lnnoptr[4];	/* ptr to fcn line # */
-		char x_endndx[4];	/* entry ndx past block end */
-	  } x_fcn;
-	  struct {		/* if ISARY, up to 4 dimen. */
-		char x_dimen[E_DIMNUM][2];
-	  } x_ary;
-	} x_fcnary;
-	char x_tvndx[2];		/* tv index */
-  } x_sym;
-  
-  union {
-	char x_fname[E_FILNMLEN];
-	struct {
-	  char x_zeroes[4];
-	  char x_offset[4];
-	} x_n;
-  } x_file;
-  
-  struct {
-	char x_scnlen[4];			/* section length */
-	char x_nreloc[2];	/* # relocation entries */
-	char x_nlinno[2];	/* # line numbers */
-  } x_scn;
-  
-  struct {
-	char x_tvfill[4];	/* tv fill value */
-	char x_tvlen[2];	/* length of .tv */
-	char x_tvran[2][2];	/* tv range */
-  } x_tv;		/* info about .tv section (in auxent of symbol .tv)) */
-  
-
-};
-
-#define	SYMENT	struct external_syment
-#define	SYMESZ	18	
-#define	AUXENT	union external_auxent
-#define	AUXESZ	18
-
-/* section lengths are in target bytes (not host bytes) */
-#define GET_SCN_SCNLEN(ABFD, EXT) \
-  (H_GET_32 (ABFD, (EXT)->x_scn.x_scnlen) * bfd_octets_per_byte (ABFD))
-#define PUT_SCN_SCNLEN(ABFD, INT, EXT) \
-  H_PUT_32 (ABFD, (INT) / bfd_octets_per_byte (ABFD), (EXT)->x_scn.x_scnlen)
-
-/* lnsz size is in bits in COFF file, in bytes in BFD */
-#define GET_LNSZ_SIZE(abfd, ext) \
- (H_GET_16 (abfd, ext->x_sym.x_misc.x_lnsz.x_size) / (class != C_FIELD ? 8 : 1))
-
-#define PUT_LNSZ_SIZE(abfd, in, ext) \
-  H_PUT_16 (abfd, ((class != C_FIELD) ? (in) * 8 : (in)), \
-	   ext->x_sym.x_misc.x_lnsz.x_size)
- 
-/* TI COFF stores offsets for MOS and MOU in bits; BFD expects bytes 
-   Also put the load page flag of the section into the symbol value if it's an
-   address.  */
-#ifndef NEEDS_PAGE
-#define NEEDS_PAGE(X) 0
-#define PAGE_MASK 0
-#endif
-#define COFF_ADJUST_SYM_IN_POST(ABFD, EXT, INT) \
-  do									\
-    {									\
-      struct internal_syment *dst = (struct internal_syment *)(INT);	\
-      if (dst->n_sclass == C_MOS || dst->n_sclass == C_MOU)		\
-	dst->n_value /= 8;						\
-      else if (NEEDS_PAGE (dst->n_sclass)) {                            \
-        asection *scn = coff_section_from_bfd_index (abfd, dst->n_scnum); \
-        dst->n_value |= (scn->lma & PAGE_MASK);                         \
-      }									\
-    }									\
-   while (0)
-
-#define COFF_ADJUST_SYM_OUT_POST(ABFD, INT, EXT) \
-  do									\
-    {									\
-       struct internal_syment *src = (struct internal_syment *)(INT);	\
-       SYMENT *dst = (SYMENT *)(EXT);					\
-       if (src->n_sclass == C_MOU || src->n_sclass == C_MOS)		\
-	 H_PUT_32 (abfd, src->n_value * 8, dst->e_value);		\
-       else if (NEEDS_PAGE (src->n_sclass)) {                           \
-         H_PUT_32 (abfd, src->n_value &= ~PAGE_MASK, dst->e_value);     \
-       }								\
-    }									\
-   while (0)
-
-/* Detect section-relative absolute symbols so they get flagged with a sym
-   index of -1.
-*/
-#define SECTION_RELATIVE_ABSOLUTE_SYMBOL_P(RELOC, SECT) \
-  ((*(RELOC)->sym_ptr_ptr)->section->output_section == (SECT) \
-   && (RELOC)->howto->name[0] == 'A')
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc_v0
-{
-  char r_vaddr[4];
-  char r_symndx[2];
-  char r_reserved[2];
-  char r_type[2];
-};
-
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_reserved[2]; /* extended pmad byte for COFF2 */
-  char r_type[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ_V0 10                 /* FIXME -- coffcode.h needs fixing */
-#define RELSZ 12                    /* for COFF1/2 */
-
-/* various relocation types.  */
-#define R_ABS     0x0000            /* no relocation */
-#define R_REL13   0x002A            /* 13-bit direct reference (???) */
-#define R_PARTLS7 0x0028            /* 7 LSBs of an address */
-#define R_PARTMS9 0x0029            /* 9MSBs of an address */
-#define R_EXTWORD 0x002B            /* 23-bit direct reference */
-#define R_EXTWORD16 0x002C          /* 16-bit direct reference to 23-bit addr*/
-#define R_EXTWORDMS7 0x002D         /* upper 7 bits of 23-bit address */
-
-#endif /* COFF_TI_H */
diff --git a/include/coff/tic30.h b/include/coff/tic30.h
deleted file mode 100644
index 0da61d7..0000000
--- a/include/coff/tic30.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* coff information for Texas Instruments TMS320C3X
-   
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#define L_LNNO_SIZE 4
-#include "coff/external.h"
-
-#define	TIC30MAGIC	0xC000
-
-#define TIC30BADMAG(x) (((x).f_magic != TIC30MAGIC))
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-/* The external reloc has an offset field, because some of the reloc
-   types on the z8k don't have room in the instruction for the entire
-   offset - eg with segments */
-
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_offset[4];
-  char r_type[2];
-  char r_stuff[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 16
-
-/* TMS320C30 relocation types.  */
-
-#define R_TIC30_ABS16 0x100  /* 16 bit absolute. */
-#define R_TIC30_ABS24 0x101  /* 24 bit absolute. */
-#define R_TIC30_ABS32 0x102  /* 32 bit absolute. */
-#define R_TIC30_LDP   0x103  /* LDP bits 23-16 to 7-0. */
-#define R_TIC30_PC16  0x104  /* 16 bit pc relative. */
diff --git a/include/coff/tic4x.h b/include/coff/tic4x.h
deleted file mode 100644
index 433590e..0000000
--- a/include/coff/tic4x.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* TI COFF information for Texas Instruments TMS320C4X/C3X.
-   This file customizes the settings in coff/ti.h. 
-   
-   Copyright 2002, 2003 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef COFF_TIC4X_H
-#define COFF_TIC4X_H
-
-#define TIC4X_TARGET_ID 	0x0093
-/* Octets per byte, as a power of two.  */
-#define TI_TARGET_ID 		TIC4X_TARGET_ID
-#define OCTETS_PER_BYTE_POWER 	2 
-/* Add to howto to get absolute/sect-relative version.  */
-#define HOWTO_BANK 		6		
-#define TICOFF_TARGET_ARCH 	bfd_arch_tic4x
-/* We use COFF2.  */
-#define TICOFF_DEFAULT_MAGIC 	TICOFF2MAGIC 
-
-#define TICOFF_TARGET_MACHINE_GET(FLAGS) \
-  (((FLAGS) & F_VERS) ? bfd_mach_tic4x : bfd_mach_tic3x)
-
-#define TICOFF_TARGET_MACHINE_SET(FLAGSP, MACHINE)	\
-  do							\
-    {							\
-      if ((MACHINE) == bfd_mach_tic4x)			\
-        *(FLAGSP) |= F_VERS;				\
-    }							\
-  while (0)
-
-#include "coff/ti.h"
-
-#endif /* COFF_TIC4X_H */
diff --git a/include/coff/tic54x.h b/include/coff/tic54x.h
deleted file mode 100644
index a65511b..0000000
--- a/include/coff/tic54x.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* TI COFF information for Texas Instruments TMS320C54X.
-   This file customizes the settings in coff/ti.h. 
-   
-   Copyright 2000, 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef COFF_TIC54X_H
-#define COFF_TIC54X_H
-
-#define TIC54X_TARGET_ID 0x98
-#define TIC54XALGMAGIC  0x009B  /* c54x algebraic assembler output */
-#define TIC5X_TARGET_ID  0x92
-#define TI_TARGET_ID TIC54X_TARGET_ID
-#define OCTETS_PER_BYTE_POWER 1 /* octets per byte, as a power of two */
-#define HOWTO_BANK 6 /* add to howto to get absolute/sect-relative version */
-#define TICOFF_TARGET_ARCH bfd_arch_tic54x
-#define TICOFF_DEFAULT_MAGIC TICOFF1MAGIC /* we use COFF1 for compatibility */
-
-/* Page macros
-
-   The first GDB port requires flags in its remote memory access commands to
-   distinguish between data/prog space.  Hopefully we can make this go away
-   eventually.  Stuff the page in the upper bits of a 32-bit address, since
-   the c5x family only uses 16 or 23 bits.
-
-   c2x, c5x and most c54x devices have 16-bit addresses, but the c548 has
-   23-bit program addresses.  Make sure the page flags don't interfere.
-   These flags are used by GDB to identify the destination page for
-   addresses. 
-*/
-
-/* Recognized load pages (by common convention).  */
-#define PG_PROG         0x0         /* PROG page */
-#define PG_DATA         0x1         /* DATA page */
-#define PG_IO           0x2         /* I/O page */
-
-/** Indicate whether the given storage class requires a page flag.  */
-#define NEEDS_PAGE(X) ((X)==C_EXT)
-#define PAGE_MASK       0xFF000000
-#define ADDR_MASK       0x00FFFFFF
-#define PG_TO_FLAG(p)   (((unsigned long)(p) & 0xFF) << 24)
-#define FLAG_TO_PG(f)   (((f) >> 24) & 0xFF)
-
-#include "coff/ti.h"
-
-#endif /* COFF_TIC54X_H */
diff --git a/include/coff/tic80.h b/include/coff/tic80.h
deleted file mode 100644
index ed4b5c8..0000000
--- a/include/coff/tic80.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/* coff information for TI TMS320C80 (MVP)
-   
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#define DO_NOT_DEFINE_FILHDR
-#define DO_NOT_DEFINE_SCNHDR
-#define L_LNNO_SIZE 2
-#include "coff/external.h"
-
-/********************** FILE HEADER **********************/
-
-struct external_filehdr
-  {
-    char f_magic[2];	/* magic number			*/
-    char f_nscns[2];	/* number of sections		*/
-    char f_timdat[4];	/* time & date stamp		*/
-    char f_symptr[4];	/* file pointer to symtab	*/
-    char f_nsyms[4];	/* number of symtab entries	*/
-    char f_opthdr[2];	/* sizeof(optional hdr)		*/
-    char f_flags[2];	/* flags			*/
-    char f_target_id[2];/* target id (TIc80 specific)	*/
-};
-
-#define	TIC80_ARCH_MAGIC	0x0C1	/* Goes in the file header magic number field */
-#define TIC80_TARGET_ID		0x95	/* Goes in the target id field */
-
-#define TIC80BADMAG(x) ((x).f_magic != TIC80_ARCH_MAGIC)
-
-#define	FILHDR	struct external_filehdr
-#define	FILHSZ	22
-
-#define TIC80_AOUTHDR_MAGIC	0x108	/* Goes in the optional file header magic number field */
-
-/********************** SECTION HEADER **********************/
-
-struct external_scnhdr
-{
-	char		s_name[8];	/* section name			*/
-	char		s_paddr[4];	/* physical address, aliased s_nlib */
-	char		s_vaddr[4];	/* virtual address		*/
-	char		s_size[4];	/* section size			*/
-	char		s_scnptr[4];	/* file ptr to raw data for section */
-	char		s_relptr[4];	/* file ptr to relocation	*/
-	char		s_lnnoptr[4];	/* file ptr to line numbers	*/
-	char		s_nreloc[2];	/* number of relocation entries	*/
-	char		s_nlnno[2];	/* number of line number entries*/
-	char		s_flags[2];	/* flags			*/
-	char		s_reserved[1];	/* reserved (TIc80 specific)	*/
-	char		s_mempage[1];	/* memory page number (TIc80)	*/
-};
-
-/* Names of "special" sections.  */
-#define _TEXT	".text"
-#define _DATA	".data"
-#define _BSS	".bss"
-#define _CINIT	".cinit"
-#define _CONST	".const"
-#define _SWITCH	".switch"
-#define _STACK	".stack"
-#define _SYSMEM	".sysmem"
-
-#define	SCNHDR	struct external_scnhdr
-#define	SCNHSZ	40
-  
-/* FIXME - need to correlate external_auxent with
-   TIc80 Code Generation Tools User's Guide, CG:A-25 */
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-/* The external reloc has an offset field, because some of the reloc
-   types on the h8 don't have room in the instruction for the entire
-   offset - eg the strange jump and high page addressing modes.  */
-
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_reserved[2];
-  char r_type[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 12
-
-/* TIc80 relocation types. */
-
-#define R_ABS		0x00		/* Absolute address - no relocation */
-#define R_RELLONGX	0x11		/* PP: 32 bits, direct */
-#define R_PPBASE	0x34		/* PP: Global base address type */
-#define R_PPLBASE	0x35		/* PP: Local base address type */
-#define R_PP15		0x38		/* PP: Global 15 bit offset */
-#define R_PP15W		0x39		/* PP: Global 15 bit offset divided by 4 */
-#define R_PP15H		0x3A		/* PP: Global 15 bit offset divided by 2 */
-#define R_PP16B		0x3B		/* PP: Global 16 bit offset for bytes */
-#define R_PPL15		0x3C		/* PP: Local 15 bit offset */
-#define R_PPL15W	0x3D		/* PP: Local 15 bit offset divided by 4 */
-#define R_PPL15H	0x3E		/* PP: Local 15 bit offset divided by 2 */
-#define R_PPL16B	0x3F		/* PP: Local 16 bit offset for bytes */
-#define R_PPN15		0x40		/* PP: Global 15 bit negative offset */
-#define R_PPN15W	0x41		/* PP: Global 15 bit negative offset divided by 4 */
-#define R_PPN15H	0x42		/* PP: Global 15 bit negative offset divided by 2 */
-#define R_PPN16B	0x43		/* PP: Global 16 bit negative byte offset */
-#define R_PPLN15	0x44		/* PP: Local 15 bit negative offset */
-#define R_PPLN15W	0x45		/* PP: Local 15 bit negative offset divided by 4 */
-#define R_PPLN15H	0x46		/* PP: Local 15 bit negative offset divided by 2 */
-#define R_PPLN16B	0x47		/* PP: Local 16 bit negative byte offset */
-#define R_MPPCR15W	0x4E		/* MP: 15 bit PC-relative divided by 4 */
-#define R_MPPCR		0x4F		/* MP: 32 bit PC-relative divided by 4 */
diff --git a/include/coff/w65.h b/include/coff/w65.h
deleted file mode 100644
index 8132970..0000000
--- a/include/coff/w65.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* coff information for WDC 65816
-   
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#define L_LNNO_SIZE 4
-#include "coff/external.h"
-
-#define	W65MAGIC	0x6500
-
-#define W65BADMAG(x) (((x).f_magic != W65MAGIC))
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-/* The external reloc has an offset field, because some of the reloc
-   types on the w65 don't have room in the instruction for the entire
-   offset - eg the strange jump and high page addressing modes */
-
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_offset[4];
-  char r_type[2];
-  char r_stuff[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 16
-
-
-
-
diff --git a/include/coff/we32k.h b/include/coff/we32k.h
deleted file mode 100644
index 933307f..0000000
--- a/include/coff/we32k.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* coff information for we32k
-   
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-#define L_LNNO_SIZE 2
-#include "coff/external.h"
-
-/* Bits for f_flags:
- 	F_RELFLG	relocation info stripped from file
- 	F_EXEC		file is executable (no unresolved external references)
- 	F_LNNO		line numbers stripped from file
- 	F_LSYMS		local symbols stripped from file
- 	F_AR32WR	file has byte ordering of an AR32WR machine (e.g. vax).  */
-
-#define F_RELFLG	(0x0001)
-#define F_EXEC		(0x0002)
-#define F_LNNO		(0x0004)
-#define F_LSYMS		(0x0008)
-#define	F_BM32B		(0020000)
-#define	F_BM32MAU	(0040000)
-
-#define	WE32KMAGIC	0x170	/* we32k sans transfer vector */
-#define FBOMAGIC	0x170	/* we32k sans transfer vector */
-#define MTVMAGIC	0x171	/* we32k with transfer vector */
-#define RBOMAGIC	0x172	/* reserved */
-#define WE32KBADMAG(x) (   ((x).f_magic != WE32KMAGIC) \
-			&& ((x).f_magic != FBOMAGIC) \
-			&& ((x).f_magic != RBOMAGIC) \
-			&& ((x).f_magic != MTVMAGIC))
-
-/* More names of "special" sections.  */
-#define _TV	".tv"
-#define _INIT	".init"
-#define _FINI	".fini"
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_type[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 10
-
diff --git a/include/coff/xcoff.h b/include/coff/xcoff.h
deleted file mode 100644
index 7c1eef5..0000000
--- a/include/coff/xcoff.h
+++ /dev/null
@@ -1,639 +0,0 @@
-/* Internal format of XCOFF object file data structures for BFD.
-
-   Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
-   Free Software Foundation, Inc.
-   Written by Ian Lance Taylor <ian@cygnus.com>, 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _INTERNAL_XCOFF_H
-#define _INTERNAL_XCOFF_H
-
-/* Linker */
-
-/* Names of "special" sections.  */
-#define _TEXT	".text"
-#define _DATA	".data"
-#define _BSS	".bss"
-#define _PAD	".pad"
-#define _LOADER	".loader"
-#define _EXCEPT ".except"
-#define _TYPCHK ".typchk"
-
-/* XCOFF uses a special .loader section with type STYP_LOADER.  */
-#define STYP_LOADER 0x1000
-
-/* XCOFF uses a special .debug section with type STYP_DEBUG.  */
-#define STYP_DEBUG 0x2000
-
-/* XCOFF handles line number or relocation overflow by creating
-   another section header with STYP_OVRFLO set.  */
-#define STYP_OVRFLO 0x8000
-
-/* Specifies an exception section.  A section of this type provides 
-   information to identify the reason that a trap or ececptin occured within 
-   and executable object program */
-#define STYP_EXCEPT 0x0100
-
-/* Specifies a type check section.  A section of this type contains parameter 
-   argument type check strings used by the AIX binder.  */
-#define STYP_TYPCHK 0x4000
-
-#define	RS6K_AOUTHDR_OMAGIC 0x0107 /* old: text & data writeable */
-#define	RS6K_AOUTHDR_NMAGIC 0x0108 /* new: text r/o, data r/w */
-#define	RS6K_AOUTHDR_ZMAGIC 0x010B /* paged: text r/o, both page-aligned */
-
-/* XCOFF relocation types.  
-   The relocations are described in the function  
-   xcoff[64]_ppc_relocate_section in coff64-rs6000.c and coff-rs6000.c  */
-
-#define R_POS   (0x00)
-#define R_NEG   (0x01)
-#define R_REL   (0x02)
-#define R_TOC   (0x03)
-#define R_RTB   (0x04)
-#define R_GL    (0x05)
-#define R_TCL   (0x06)
-#define R_BA    (0x08)
-#define R_BR    (0x0a)
-#define R_RL    (0x0c)
-#define R_RLA   (0x0d)
-#define R_REF   (0x0f)
-#define R_TRL   (0x12)
-#define R_TRLA  (0x13)
-#define R_RRTBI (0x14)
-#define R_RRTBA (0x15)
-#define R_CAI   (0x16)
-#define R_CREL  (0x17)
-#define R_RBA   (0x18)
-#define R_RBAC  (0x19)
-#define R_RBR   (0x1a)
-#define R_RBRC  (0x1b)
-
-/* Storage class #defines, from /usr/include/storclass.h that are not already 
-   defined in internal.h */
-
-/* Comment string in .info section */
-#define	C_INFO		110	
-
-/* Auxillary Symbol Entries  */
-
-/* x_smtyp values:  */
-#define	SMTYP_ALIGN(x)	((x) >> 3)	/* log2 of alignment */
-#define	SMTYP_SMTYP(x)	((x) & 0x7)	/* symbol type */
-/* Symbol type values:  */
-#define	XTY_ER	0		/* External reference */
-#define	XTY_SD	1		/* Csect definition */
-#define	XTY_LD	2		/* Label definition */
-#define XTY_CM	3		/* .BSS */
-#define	XTY_EM	4		/* Error message */
-#define	XTY_US	5		/* "Reserved for internal use" */
-
-/* x_smclas values:  */
-#define	XMC_PR	0		/* Read-only program code */
-#define	XMC_RO	1		/* Read-only constant */
-#define	XMC_DB	2		/* Read-only debug dictionary table */
-#define	XMC_TC	3		/* Read-write general TOC entry */
-#define	XMC_UA	4		/* Read-write unclassified */
-#define	XMC_RW	5		/* Read-write data */
-#define	XMC_GL	6		/* Read-only global linkage */
-#define	XMC_XO	7		/* Read-only extended operation */
-#define	XMC_SV	8		/* Read-only supervisor call */
-#define	XMC_BS	9		/* Read-write BSS */
-#define	XMC_DS	10		/* Read-write descriptor csect */
-#define	XMC_UC	11		/* Read-write unnamed Fortran common */
-#define	XMC_TI	12		/* Read-only traceback index csect */
-#define	XMC_TB	13		/* Read-only traceback table csect */
-/* 		14	??? */
-#define	XMC_TC0	15		/* Read-write TOC anchor */
-#define XMC_TD	16		/* Read-write data in TOC */
-#define	XMC_SV64   17		/* Read-only 64 bit supervisor call */
-#define	XMC_SV3264 18		/* Read-only 32 or 64 bit supervisor call */
-
-/* The ldhdr structure.  This appears at the start of the .loader
-   section.  */
-
-struct internal_ldhdr
-{
-  /* The version number: 
-     1 : 32 bit
-     2 : 64 bit */
-  unsigned long l_version;
-
-  /* The number of symbol table entries.  */
-  bfd_size_type l_nsyms;
-
-  /* The number of relocation table entries.  */
-  bfd_size_type l_nreloc;
-
-  /* The length of the import file string table.  */
-  bfd_size_type l_istlen;
-
-  /* The number of import files.  */
-  bfd_size_type l_nimpid;
-
-  /* The offset from the start of the .loader section to the first
-     entry in the import file table.  */
-  bfd_size_type l_impoff;
-
-  /* The length of the string table.  */
-  bfd_size_type l_stlen;
-
-  /* The offset from the start of the .loader section to the first
-     entry in the string table.  */
-  bfd_size_type l_stoff;
-
-  /* The offset to start of the symbol table, only in XCOFF64 */
-  bfd_vma l_symoff;
-
-  /* The offset to the start of the relocation table, only in XCOFF64 */
-  bfd_vma l_rldoff;
-};
-
-/* The ldsym structure.  This is used to represent a symbol in the
-   .loader section.  */
-
-struct internal_ldsym
-{
-  union
-  {
-    /* The symbol name if <= SYMNMLEN characters.  */
-    char _l_name[SYMNMLEN];
-    struct
-    {
-      /* Zero if the symbol name is more than SYMNMLEN characters.  */
-	long _l_zeroes;
-      
-      /* The offset in the string table if the symbol name is more
-	 than SYMNMLEN characters.  */
-      long _l_offset;
-    } 
-    _l_l;
-  }
-  _l;
-
-  /* The symbol value.  */
-  bfd_vma l_value;
-
-  /* The symbol section number.  */
-  short l_scnum;
-
-  /* The symbol type and flags.  */
-  char l_smtype;
-
-  /* The symbol storage class.  */
-  char l_smclas;
-
-  /* The import file ID.  */
-  bfd_size_type l_ifile;
-
-  /* Offset to the parameter type check string.  */
-  bfd_size_type l_parm;
-};
-
-/* These flags are for the l_smtype field (the lower three bits are an
-   XTY_* value).  */
-
-/* Imported symbol.  */
-#define L_IMPORT (0x40)
-/* Entry point.  */
-#define L_ENTRY (0x20)
-/* Exported symbol.  */
-#define L_EXPORT (0x10)
-
-/* The ldrel structure.  This is used to represent a reloc in the
-   .loader section.  */
-
-struct internal_ldrel
-{
-  /* The reloc address.  */
-  bfd_vma l_vaddr;
-
-  /* The symbol table index in the .loader section symbol table.  */
-  bfd_size_type l_symndx;
-
-  /* The relocation type and size.  */
-  short l_rtype;
-
-  /* The section number this relocation applies to.  */
-  short l_rsecnm;
-};
-
-/* An entry in the XCOFF linker hash table.  */
-struct xcoff_link_hash_entry
-{
-  struct bfd_link_hash_entry root;
-
-  /* Symbol index in output file.  Set to -1 initially.  Set to -2 if
-     there is a reloc against this symbol.  */
-  long indx;
-
-  /* If we have created a TOC entry for this symbol, this is the .tc
-     section which holds it.  */
-  asection *toc_section;
-
-  union
-  {
-    /* If we have created a TOC entry (the XCOFF_SET_TOC flag is
-       set), this is the offset in toc_section.  */
-    bfd_vma toc_offset;
-    
-    /* If the TOC entry comes from an input file, this is set to the
-       symbol index of the C_HIDEXT XMC_TC or XMC_TD symbol.  */
-    long toc_indx;
-  } 
-  u;
-
-  /* If this symbol is a function entry point which is called, this
-     field holds a pointer to the function descriptor.  If this symbol
-     is a function descriptor, this field holds a pointer to the
-     function entry point.  */
-  struct xcoff_link_hash_entry *descriptor;
-
-  /* The .loader symbol table entry, if there is one.  */
-  struct internal_ldsym *ldsym;
-
-  /* If XCOFF_BUILT_LDSYM is set, this is the .loader symbol table
-     index.  If XCOFF_BUILD_LDSYM is clear, and XCOFF_IMPORT is set,
-     this is the l_ifile value.  */
-  long ldindx;
-
-  /* Some linker flags.  */
-  unsigned long flags;
-
-  /* The storage mapping class.  */
-  unsigned char smclas;
-};
-
-/*  Flags for xcoff_link_hash_entry.  */
-
-/* Symbol is referenced by a regular object. */
-#define XCOFF_REF_REGULAR      0x00000001
-/* Symbol is defined by a regular object. */
-#define XCOFF_DEF_REGULAR      0x00000002
-/* Symbol is defined by a dynamic object. */
-#define XCOFF_DEF_DYNAMIC      0x00000004
-/* Symbol is used in a reloc being copied into the .loader section.  */
-#define XCOFF_LDREL            0x00000008
-/* Symbol is the entry point.  */
-#define XCOFF_ENTRY            0x00000010
-/* Symbol is called; this is, it appears in a R_BR reloc.  */
-#define XCOFF_CALLED           0x00000020
-/* Symbol needs the TOC entry filled in.  */
-#define XCOFF_SET_TOC          0x00000040
-/* Symbol is explicitly imported.  */
-#define XCOFF_IMPORT           0x00000080
-/* Symbol is explicitly exported.  */
-#define XCOFF_EXPORT           0x00000100
-/* Symbol has been processed by xcoff_build_ldsyms.  */
-#define XCOFF_BUILT_LDSYM      0x00000200
-/* Symbol is mentioned by a section which was not garbage collected. */
-#define XCOFF_MARK             0x00000400
-/* Symbol size is recorded in size_list list from hash table.  */
-#define XCOFF_HAS_SIZE         0x00000800
-/* Symbol is a function descriptor.  */
-#define XCOFF_DESCRIPTOR       0x00001000
-/* Multiple definitions have been for the symbol. */
-#define XCOFF_MULTIPLY_DEFINED 0x00002000
-/* Symbol is the __rtinit symbol.  */
-#define XCOFF_RTINIT           0x00004000
-/* Symbol is an imported 32 bit syscall.  */
-#define XCOFF_SYSCALL32        0x00008000
-/* Symbol is an imported 64 bit syscall.  */
-#define XCOFF_SYSCALL64        0x00010000 
-
-/* The XCOFF linker hash table.  */
-
-#define XCOFF_NUMBER_OF_SPECIAL_SECTIONS 6
-#define XCOFF_SPECIAL_SECTION_TEXT       0
-#define XCOFF_SPECIAL_SECTION_ETEXT      1 
-#define XCOFF_SPECIAL_SECTION_DATA       2
-#define XCOFF_SPECIAL_SECTION_EDATA      3
-#define XCOFF_SPECIAL_SECTION_END        4
-#define XCOFF_SPECIAL_SECTION_END2       5
-
-struct xcoff_link_hash_table
-{
-  struct bfd_link_hash_table root;
-
-  /* The .debug string hash table.  We need to compute this while
-     reading the input files, so that we know how large the .debug
-     section will be before we assign section positions.  */
-  struct bfd_strtab_hash *debug_strtab;
-
-  /* The .debug section we will use for the final output.  */
-  asection *debug_section;
-
-  /* The .loader section we will use for the final output.  */
-  asection *loader_section;
-
-  /* A count of non TOC relative relocs which will need to be
-     allocated in the .loader section.  */
-  size_t ldrel_count;
-
-  /* The .loader section header.  */
-  struct internal_ldhdr ldhdr;
-
-  /* The .gl section we use to hold global linkage code.  */
-  asection *linkage_section;
-
-  /* The .tc section we use to hold toc entries we build for global
-     linkage code.  */
-  asection *toc_section;
-
-  /* The .ds section we use to hold function descriptors which we
-     create for exported symbols.  */
-  asection *descriptor_section;
-
-  /* The list of import files.  */
-  struct xcoff_import_file *imports;
-
-  /* Required alignment of sections within the output file.  */
-  unsigned long file_align;
-
-  /* Whether the .text section must be read-only.  */
-  bfd_boolean textro;
-
-  /* Whether garbage collection was done.  */
-  bfd_boolean gc;
-
-  /* A linked list of symbols for which we have size information.  */
-  struct xcoff_link_size_list
-  {
-    struct xcoff_link_size_list *next;
-    struct xcoff_link_hash_entry *h;
-    bfd_size_type size;
-  } 
-  *size_list;
-
-  /* Magic sections: _text, _etext, _data, _edata, _end, end. */
-  asection *special_sections[XCOFF_NUMBER_OF_SPECIAL_SECTIONS];
-};
-
-
-/* This structure is used to pass information through
-   xcoff_link_hash_traverse.  */
-
-struct xcoff_loader_info
-{
-  /* Set if a problem occurred.  */
-  bfd_boolean failed;
-
-  /* Output BFD.  */
-  bfd *output_bfd;
-
-  /* Link information structure.  */
-  struct bfd_link_info *info;
-
-  /* Whether all defined symbols should be exported.  */
-  bfd_boolean export_defineds;
-
-  /* Number of ldsym structures.  */
-  size_t ldsym_count;
-
-  /* Size of string table.  */
-  size_t string_size;
-
-  /* String table.  */
-  char *strings;
-
-  /* Allocated size of string table.  */
-  size_t string_alc;
-};
-
-/* In case we're on a 32-bit machine, construct a 64-bit "-1" value
-   from smaller values.  Start with zero, widen, *then* decrement.  */
-#define MINUS_ONE       (((bfd_vma) 0) - 1)
-
-/* __rtinit, from /usr/include/rtinit.h.  */
-struct __rtinit 
-{
-  /* Pointer to runtime linker.     
-     XXX: Is the parameter really void?  */
-  int	(*rtl) (void);	
-
-  /* Offset to array of init functions, 0 if none. */
-  int	init_offset;
-
-  /* Offset to array of fini functions, 0 if none. */		   
-  int	fini_offset;		
-
-  /* Size of __RTINIT_DESCRIPTOR. This value should be used instead of 
-     sizeof(__RTINIT_DESCRIPTOR). */
-  int	__rtinit_descriptor_size; 
-};
-
-#define RTINIT_DESCRIPTOR_SIZE (12)
-
-struct __rtinit_descriptor 
-{
-  /* Init/fini function. */
-  int	f;
-
-  /* Offset, relative to the start of the __rtinit symbol, to name of the 
-     function. */
-
-  int	name_offset;	
-
-  /* Flags */			   
-  unsigned char	flags;	
-};
-
-/* Archive */
-
-#define XCOFFARMAG    "<aiaff>\012"
-#define XCOFFARMAGBIG "<bigaf>\012"
-#define SXCOFFARMAG   8
-
-/* The size of the ascii archive elements */
-#define XCOFFARMAG_ELEMENT_SIZE 12
-#define XCOFFARMAGBIG_ELEMENT_SIZE 20
-
-/* This terminates an XCOFF archive member name.  */
-
-#define XCOFFARFMAG "`\012"
-#define SXCOFFARFMAG 2
-
-/* XCOFF archives start with this (printable) structure.  */
-
-struct xcoff_ar_file_hdr
-{
-  /* Magic string.  */
-  char magic[SXCOFFARMAG];
-
-  /* Offset of the member table (decimal ASCII string).  */
-  char memoff[XCOFFARMAG_ELEMENT_SIZE];
-
-  /* Offset of the global symbol table (decimal ASCII string).  */
-  char symoff[XCOFFARMAG_ELEMENT_SIZE];
-
-  /* Offset of the first member in the archive (decimal ASCII string).  */
-  char firstmemoff[XCOFFARMAG_ELEMENT_SIZE];
-
-  /* Offset of the last member in the archive (decimal ASCII string).  */
-  char lastmemoff[XCOFFARMAG_ELEMENT_SIZE];
-
-  /* Offset of the first member on the free list (decimal ASCII
-     string).  */
-  char freeoff[XCOFFARMAG_ELEMENT_SIZE];
-};
-
-#define SIZEOF_AR_FILE_HDR (SXCOFFARMAG + 5 * XCOFFARMAG_ELEMENT_SIZE)
-
-/* This is the equivalent data structure for the big archive format.  */
-
-struct xcoff_ar_file_hdr_big
-{
-  /* Magic string.  */
-  char magic[SXCOFFARMAG];
-
-  /* Offset of the member table (decimal ASCII string).  */
-  char memoff[XCOFFARMAGBIG_ELEMENT_SIZE];
-
-  /* Offset of the global symbol table for 32-bit objects (decimal ASCII
-     string).  */
-  char symoff[XCOFFARMAGBIG_ELEMENT_SIZE];
-
-  /* Offset of the global symbol table for 64-bit objects (decimal ASCII
-     string).  */
-  char symoff64[XCOFFARMAGBIG_ELEMENT_SIZE];
-
-  /* Offset of the first member in the archive (decimal ASCII string).  */
-  char firstmemoff[XCOFFARMAGBIG_ELEMENT_SIZE];
-
-  /* Offset of the last member in the archive (decimal ASCII string).  */
-  char lastmemoff[XCOFFARMAGBIG_ELEMENT_SIZE];
-
-  /* Offset of the first member on the free list (decimal ASCII
-     string).  */
-  char freeoff[XCOFFARMAGBIG_ELEMENT_SIZE];
-};
-
-#define SIZEOF_AR_FILE_HDR_BIG (SXCOFFARMAG + 6 * XCOFFARMAGBIG_ELEMENT_SIZE)
-
-/* Each XCOFF archive member starts with this (printable) structure.  */
-
-struct xcoff_ar_hdr
-{
-  /* File size not including the header (decimal ASCII string).  */
-  char size[XCOFFARMAG_ELEMENT_SIZE];
-
-  /* File offset of next archive member (decimal ASCII string).  */
-  char nextoff[XCOFFARMAG_ELEMENT_SIZE];
-
-  /* File offset of previous archive member (decimal ASCII string).  */
-  char prevoff[XCOFFARMAG_ELEMENT_SIZE];
-
-  /* File mtime (decimal ASCII string).  */
-  char date[12];
-
-  /* File UID (decimal ASCII string).  */
-  char uid[12];
-
-  /* File GID (decimal ASCII string).  */
-  char gid[12];
-
-  /* File mode (octal ASCII string).  */
-  char mode[12];
-
-  /* Length of file name (decimal ASCII string).  */
-  char namlen[4];
-
-  /* This structure is followed by the file name.  The length of the
-     name is given in the namlen field.  If the length of the name is
-     odd, the name is followed by a null byte.  The name and optional
-     null byte are followed by XCOFFARFMAG, which is not included in
-     namlen.  The contents of the archive member follow; the number of
-     bytes is given in the size field.  */
-};
-
-#define SIZEOF_AR_HDR (3 * XCOFFARMAG_ELEMENT_SIZE + 4 * 12 + 4)
-
-/* The equivalent for the big archive format.  */
-
-struct xcoff_ar_hdr_big
-{
-  /* File size not including the header (decimal ASCII string).  */
-  char size[XCOFFARMAGBIG_ELEMENT_SIZE];
-
-  /* File offset of next archive member (decimal ASCII string).  */
-  char nextoff[XCOFFARMAGBIG_ELEMENT_SIZE];
-
-  /* File offset of previous archive member (decimal ASCII string).  */
-  char prevoff[XCOFFARMAGBIG_ELEMENT_SIZE];
-
-  /* File mtime (decimal ASCII string).  */
-  char date[12];
-
-  /* File UID (decimal ASCII string).  */
-  char uid[12];
-
-  /* File GID (decimal ASCII string).  */
-  char gid[12];
-
-  /* File mode (octal ASCII string).  */
-  char mode[12];
-
-  /* Length of file name (decimal ASCII string).  */
-  char namlen[4];
-
-  /* This structure is followed by the file name.  The length of the
-     name is given in the namlen field.  If the length of the name is
-     odd, the name is followed by a null byte.  The name and optional
-     null byte are followed by XCOFFARFMAG, which is not included in
-     namlen.  The contents of the archive member follow; the number of
-     bytes is given in the size field.  */
-};
-
-#define SIZEOF_AR_HDR_BIG (3 * XCOFFARMAGBIG_ELEMENT_SIZE + 4 * 12 + 4)
-
-/* We often have to distinguish between the old and big file format.
-   Make it a bit cleaner.  We can use `xcoff_ardata' here because the
-   `hdr' member has the same size and position in both formats.  
-   <bigaf> is the default format, return TRUE even when xcoff_ardata is 
-   NULL. */
-#ifndef SMALL_ARCHIVE
-/* Creates big archives by default */
-#define xcoff_big_format_p(abfd) \
-  ((NULL != bfd_ardata (abfd) && NULL == xcoff_ardata (abfd)) || \
-   ((NULL != bfd_ardata (abfd)) && \
-    (NULL != xcoff_ardata (abfd)) && \
-    (xcoff_ardata (abfd)->magic[1] == 'b')))
-#else
-/* Creates small archives by default. */
-#define xcoff_big_format_p(abfd) \
-  (((NULL != bfd_ardata (abfd)) && \
-    (NULL != xcoff_ardata (abfd)) && \
-    (xcoff_ardata (abfd)->magic[1] == 'b')))
-#endif
-
-/* We store a copy of the xcoff_ar_file_hdr in the tdata field of the
-   artdata structure.  Similar for the big archive.  */
-#define xcoff_ardata(abfd) \
-  ((struct xcoff_ar_file_hdr *) bfd_ardata (abfd)->tdata)
-#define xcoff_ardata_big(abfd) \
-  ((struct xcoff_ar_file_hdr_big *) bfd_ardata (abfd)->tdata)
-
-/* We store a copy of the xcoff_ar_hdr in the arelt_data field of an
-   archive element.  Similar for the big archive.  */
-#define arch_eltdata(bfd) ((struct areltdata *) ((bfd)->arelt_data))
-#define arch_xhdr(bfd) \
-  ((struct xcoff_ar_hdr *) arch_eltdata (bfd)->arch_header)
-#define arch_xhdr_big(bfd) \
-  ((struct xcoff_ar_hdr_big *) arch_eltdata (bfd)->arch_header)
-
-#endif /* _INTERNAL_XCOFF_H */
diff --git a/include/coff/z80.h b/include/coff/z80.h
deleted file mode 100644
index 3c72c10..0000000
--- a/include/coff/z80.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* coff information for Zilog Z80
-   Copyright 2005 Free Software Foundation, Inc.
-   Contributed by Arnold Metselaar <arnold_m@operamail.com>
-
-   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, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#define L_LNNO_SIZE 4
-#include "coff/external.h"
-
-/* z80 backend does not use dots in section names.  */
-#undef  _TEXT
-#define _TEXT "text"
-#undef  _DATA
-#define _DATA "data"
-#undef  _BSS
-#define _BSS "bss"
-
-/* Type of cpu is stored in flags.  */
-#define F_MACHMASK 0xF000
-
-#define	Z80MAGIC   0x805A
-
-#define Z80BADMAG(x) (((x).f_magic != Z80MAGIC))
-
-/* Relocation directives.  */
-
-/* This format actually has more bits than we need.  */
-
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_offset[4];
-  char r_type[2];
-  char r_stuff[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 16
diff --git a/include/coff/z8k.h b/include/coff/z8k.h
deleted file mode 100644
index cfd5f04..0000000
--- a/include/coff/z8k.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* coff information for Zilog Z800N
-   
-   Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#define L_LNNO_SIZE 4
-#include "coff/external.h"
-
-/* Type of cpu is stored in flags */
-#define F_Z8001    0x1000
-#define F_Z8002    0x2000
-#define F_MACHMASK 0xf000
-
-#define	Z8KMAGIC   0x8000
-
-#define Z8KBADMAG(x) (((x).f_magic != Z8KMAGIC))
-  
-/********************** RELOCATION DIRECTIVES **********************/
-
-/* The external reloc has an offset field, because some of the reloc
-   types on the z8k don't have room in the instruction for the entire
-   offset - eg with segments.  */
-
-struct external_reloc
-{
-  char r_vaddr[4];
-  char r_symndx[4];
-  char r_offset[4];
-  char r_type[2];
-  char r_stuff[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 16
-
diff --git a/include/demangle.h b/include/demangle.h
deleted file mode 100644
index af29467..0000000
--- a/include/demangle.h
+++ /dev/null
@@ -1,536 +0,0 @@
-/* Defs for interface to demanglers.
-   Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002,
-   2003, 2004 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 2, 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., 51 Franklin Street - Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
-
-
-#if !defined (DEMANGLE_H)
-#define DEMANGLE_H
-
-#include "libiberty.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/* Options passed to cplus_demangle (in 2nd parameter). */
-
-#define DMGL_NO_OPTS	 0		/* For readability... */
-#define DMGL_PARAMS	 (1 << 0)	/* Include function args */
-#define DMGL_ANSI	 (1 << 1)	/* Include const, volatile, etc */
-#define DMGL_JAVA	 (1 << 2)	/* Demangle as Java rather than C++. */
-#define DMGL_VERBOSE	 (1 << 3)	/* Include implementation details.  */
-#define DMGL_TYPES	 (1 << 4)	/* Also try to demangle type encodings.  */
-#define DMGL_RET_POSTFIX (1 << 5)       /* Print function return types (when
-                                           present) after function signature */
-
-#define DMGL_AUTO	 (1 << 8)
-#define DMGL_GNU	 (1 << 9)
-#define DMGL_LUCID	 (1 << 10)
-#define DMGL_ARM	 (1 << 11)
-#define DMGL_HP 	 (1 << 12)       /* For the HP aCC compiler;
-                                            same as ARM except for
-                                            template arguments, etc. */
-#define DMGL_EDG	 (1 << 13)
-#define DMGL_GNU_V3	 (1 << 14)
-#define DMGL_GNAT	 (1 << 15)
-
-/* If none of these are set, use 'current_demangling_style' as the default. */
-#define DMGL_STYLE_MASK (DMGL_AUTO|DMGL_GNU|DMGL_LUCID|DMGL_ARM|DMGL_HP|DMGL_EDG|DMGL_GNU_V3|DMGL_JAVA|DMGL_GNAT)
-
-/* Enumeration of possible demangling styles.
-
-   Lucid and ARM styles are still kept logically distinct, even though
-   they now both behave identically.  The resulting style is actual the
-   union of both.  I.E. either style recognizes both "__pt__" and "__rf__"
-   for operator "->", even though the first is lucid style and the second
-   is ARM style. (FIXME?) */
-
-extern enum demangling_styles
-{
-  no_demangling = -1,
-  unknown_demangling = 0,
-  auto_demangling = DMGL_AUTO,
-  gnu_demangling = DMGL_GNU,
-  lucid_demangling = DMGL_LUCID,
-  arm_demangling = DMGL_ARM,
-  hp_demangling = DMGL_HP,
-  edg_demangling = DMGL_EDG,
-  gnu_v3_demangling = DMGL_GNU_V3,
-  java_demangling = DMGL_JAVA,
-  gnat_demangling = DMGL_GNAT
-} current_demangling_style;
-
-/* Define string names for the various demangling styles. */
-
-#define NO_DEMANGLING_STYLE_STRING            "none"
-#define AUTO_DEMANGLING_STYLE_STRING	      "auto"
-#define GNU_DEMANGLING_STYLE_STRING    	      "gnu"
-#define LUCID_DEMANGLING_STYLE_STRING	      "lucid"
-#define ARM_DEMANGLING_STYLE_STRING	      "arm"
-#define HP_DEMANGLING_STYLE_STRING	      "hp"
-#define EDG_DEMANGLING_STYLE_STRING	      "edg"
-#define GNU_V3_DEMANGLING_STYLE_STRING        "gnu-v3"
-#define JAVA_DEMANGLING_STYLE_STRING          "java"
-#define GNAT_DEMANGLING_STYLE_STRING          "gnat"
-
-/* Some macros to test what demangling style is active. */
-
-#define CURRENT_DEMANGLING_STYLE current_demangling_style
-#define AUTO_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_AUTO)
-#define GNU_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_GNU)
-#define LUCID_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_LUCID)
-#define ARM_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_ARM)
-#define HP_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_HP)
-#define EDG_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_EDG)
-#define GNU_V3_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_GNU_V3)
-#define JAVA_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_JAVA)
-#define GNAT_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_GNAT)
-
-/* Provide information about the available demangle styles. This code is
-   pulled from gdb into libiberty because it is useful to binutils also.  */
-
-extern const struct demangler_engine
-{
-  const char *const demangling_style_name;
-  const enum demangling_styles demangling_style;
-  const char *const demangling_style_doc;
-} libiberty_demanglers[];
-
-extern char *
-cplus_demangle (const char *mangled, int options);
-
-extern int
-cplus_demangle_opname (const char *opname, char *result, int options);
-
-extern const char *
-cplus_mangle_opname (const char *opname, int options);
-
-/* Note: This sets global state.  FIXME if you care about multi-threading. */
-
-extern void
-set_cplus_marker_for_demangling (int ch);
-
-extern enum demangling_styles 
-cplus_demangle_set_style (enum demangling_styles style);
-
-extern enum demangling_styles 
-cplus_demangle_name_to_style (const char *name);
-
-/* V3 ABI demangling entry points, defined in cp-demangle.c.  */
-extern char*
-cplus_demangle_v3 (const char* mangled, int options);
-
-extern char*
-java_demangle_v3 (const char* mangled);
-
-
-enum gnu_v3_ctor_kinds {
-  gnu_v3_complete_object_ctor = 1,
-  gnu_v3_base_object_ctor,
-  gnu_v3_complete_object_allocating_ctor
-};
-
-/* Return non-zero iff NAME is the mangled form of a constructor name
-   in the G++ V3 ABI demangling style.  Specifically, return an `enum
-   gnu_v3_ctor_kinds' value indicating what kind of constructor
-   it is.  */
-extern enum gnu_v3_ctor_kinds
-	is_gnu_v3_mangled_ctor (const char *name);
-
-
-enum gnu_v3_dtor_kinds {
-  gnu_v3_deleting_dtor = 1,
-  gnu_v3_complete_object_dtor,
-  gnu_v3_base_object_dtor
-};
-
-/* Return non-zero iff NAME is the mangled form of a destructor name
-   in the G++ V3 ABI demangling style.  Specifically, return an `enum
-   gnu_v3_dtor_kinds' value, indicating what kind of destructor
-   it is.  */
-extern enum gnu_v3_dtor_kinds
-	is_gnu_v3_mangled_dtor (const char *name);
-
-/* The V3 demangler works in two passes.  The first pass builds a tree
-   representation of the mangled name, and the second pass turns the
-   tree representation into a demangled string.  Here we define an
-   interface to permit a caller to build their own tree
-   representation, which they can pass to the demangler to get a
-   demangled string.  This can be used to canonicalize user input into
-   something which the demangler might output.  It could also be used
-   by other demanglers in the future.  */
-
-/* These are the component types which may be found in the tree.  Many
-   component types have one or two subtrees, referred to as left and
-   right (a component type with only one subtree puts it in the left
-   subtree).  */
-
-enum demangle_component_type
-{
-  /* A name, with a length and a pointer to a string.  */
-  DEMANGLE_COMPONENT_NAME,
-  /* A qualified name.  The left subtree is a class or namespace or
-     some such thing, and the right subtree is a name qualified by
-     that class.  */
-  DEMANGLE_COMPONENT_QUAL_NAME,
-  /* A local name.  The left subtree describes a function, and the
-     right subtree is a name which is local to that function.  */
-  DEMANGLE_COMPONENT_LOCAL_NAME,
-  /* A typed name.  The left subtree is a name, and the right subtree
-     describes that name as a function.  */
-  DEMANGLE_COMPONENT_TYPED_NAME,
-  /* A template.  The left subtree is a template name, and the right
-     subtree is a template argument list.  */
-  DEMANGLE_COMPONENT_TEMPLATE,
-  /* A template parameter.  This holds a number, which is the template
-     parameter index.  */
-  DEMANGLE_COMPONENT_TEMPLATE_PARAM,
-  /* A constructor.  This holds a name and the kind of
-     constructor.  */
-  DEMANGLE_COMPONENT_CTOR,
-  /* A destructor.  This holds a name and the kind of destructor.  */
-  DEMANGLE_COMPONENT_DTOR,
-  /* A vtable.  This has one subtree, the type for which this is a
-     vtable.  */
-  DEMANGLE_COMPONENT_VTABLE,
-  /* A VTT structure.  This has one subtree, the type for which this
-     is a VTT.  */
-  DEMANGLE_COMPONENT_VTT,
-  /* A construction vtable.  The left subtree is the type for which
-     this is a vtable, and the right subtree is the derived type for
-     which this vtable is built.  */
-  DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE,
-  /* A typeinfo structure.  This has one subtree, the type for which
-     this is the tpeinfo structure.  */
-  DEMANGLE_COMPONENT_TYPEINFO,
-  /* A typeinfo name.  This has one subtree, the type for which this
-     is the typeinfo name.  */
-  DEMANGLE_COMPONENT_TYPEINFO_NAME,
-  /* A typeinfo function.  This has one subtree, the type for which
-     this is the tpyeinfo function.  */
-  DEMANGLE_COMPONENT_TYPEINFO_FN,
-  /* A thunk.  This has one subtree, the name for which this is a
-     thunk.  */
-  DEMANGLE_COMPONENT_THUNK,
-  /* A virtual thunk.  This has one subtree, the name for which this
-     is a virtual thunk.  */
-  DEMANGLE_COMPONENT_VIRTUAL_THUNK,
-  /* A covariant thunk.  This has one subtree, the name for which this
-     is a covariant thunk.  */
-  DEMANGLE_COMPONENT_COVARIANT_THUNK,
-  /* A Java class.  This has one subtree, the type.  */
-  DEMANGLE_COMPONENT_JAVA_CLASS,
-  /* A guard variable.  This has one subtree, the name for which this
-     is a guard variable.  */
-  DEMANGLE_COMPONENT_GUARD,
-  /* A reference temporary.  This has one subtree, the name for which
-     this is a temporary.  */
-  DEMANGLE_COMPONENT_REFTEMP,
-  /* A hidden alias.  This has one subtree, the encoding for which it
-     is providing alternative linkage.  */
-  DEMANGLE_COMPONENT_HIDDEN_ALIAS,
-  /* A standard substitution.  This holds the name of the
-     substitution.  */
-  DEMANGLE_COMPONENT_SUB_STD,
-  /* The restrict qualifier.  The one subtree is the type which is
-     being qualified.  */
-  DEMANGLE_COMPONENT_RESTRICT,
-  /* The volatile qualifier.  The one subtree is the type which is
-     being qualified.  */
-  DEMANGLE_COMPONENT_VOLATILE,
-  /* The const qualifier.  The one subtree is the type which is being
-     qualified.  */
-  DEMANGLE_COMPONENT_CONST,
-  /* The restrict qualifier modifying a member function.  The one
-     subtree is the type which is being qualified.  */
-  DEMANGLE_COMPONENT_RESTRICT_THIS,
-  /* The volatile qualifier modifying a member function.  The one
-     subtree is the type which is being qualified.  */
-  DEMANGLE_COMPONENT_VOLATILE_THIS,
-  /* The const qualifier modifying a member function.  The one subtree
-     is the type which is being qualified.  */
-  DEMANGLE_COMPONENT_CONST_THIS,
-  /* A vendor qualifier.  The left subtree is the type which is being
-     qualified, and the right subtree is the name of the
-     qualifier.  */
-  DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL,
-  /* A pointer.  The one subtree is the type which is being pointed
-     to.  */
-  DEMANGLE_COMPONENT_POINTER,
-  /* A reference.  The one subtree is the type which is being
-     referenced.  */
-  DEMANGLE_COMPONENT_REFERENCE,
-  /* A complex type.  The one subtree is the base type.  */
-  DEMANGLE_COMPONENT_COMPLEX,
-  /* An imaginary type.  The one subtree is the base type.  */
-  DEMANGLE_COMPONENT_IMAGINARY,
-  /* A builtin type.  This holds the builtin type information.  */
-  DEMANGLE_COMPONENT_BUILTIN_TYPE,
-  /* A vendor's builtin type.  This holds the name of the type.  */
-  DEMANGLE_COMPONENT_VENDOR_TYPE,
-  /* A function type.  The left subtree is the return type.  The right
-     subtree is a list of ARGLIST nodes.  Either or both may be
-     NULL.  */
-  DEMANGLE_COMPONENT_FUNCTION_TYPE,
-  /* An array type.  The left subtree is the dimension, which may be
-     NULL, or a string (represented as DEMANGLE_COMPONENT_NAME), or an
-     expression.  The right subtree is the element type.  */
-  DEMANGLE_COMPONENT_ARRAY_TYPE,
-  /* A pointer to member type.  The left subtree is the class type,
-     and the right subtree is the member type.  CV-qualifiers appear
-     on the latter.  */
-  DEMANGLE_COMPONENT_PTRMEM_TYPE,
-  /* An argument list.  The left subtree is the current argument, and
-     the right subtree is either NULL or another ARGLIST node.  */
-  DEMANGLE_COMPONENT_ARGLIST,
-  /* A template argument list.  The left subtree is the current
-     template argument, and the right subtree is either NULL or
-     another TEMPLATE_ARGLIST node.  */
-  DEMANGLE_COMPONENT_TEMPLATE_ARGLIST,
-  /* An operator.  This holds information about a standard
-     operator.  */
-  DEMANGLE_COMPONENT_OPERATOR,
-  /* An extended operator.  This holds the number of arguments, and
-     the name of the extended operator.  */
-  DEMANGLE_COMPONENT_EXTENDED_OPERATOR,
-  /* A typecast, represented as a unary operator.  The one subtree is
-     the type to which the argument should be cast.  */
-  DEMANGLE_COMPONENT_CAST,
-  /* A unary expression.  The left subtree is the operator, and the
-     right subtree is the single argument.  */
-  DEMANGLE_COMPONENT_UNARY,
-  /* A binary expression.  The left subtree is the operator, and the
-     right subtree is a BINARY_ARGS.  */
-  DEMANGLE_COMPONENT_BINARY,
-  /* Arguments to a binary expression.  The left subtree is the first
-     argument, and the right subtree is the second argument.  */
-  DEMANGLE_COMPONENT_BINARY_ARGS,
-  /* A trinary expression.  The left subtree is the operator, and the
-     right subtree is a TRINARY_ARG1.  */
-  DEMANGLE_COMPONENT_TRINARY,
-  /* Arguments to a trinary expression.  The left subtree is the first
-     argument, and the right subtree is a TRINARY_ARG2.  */
-  DEMANGLE_COMPONENT_TRINARY_ARG1,
-  /* More arguments to a trinary expression.  The left subtree is the
-     second argument, and the right subtree is the third argument.  */
-  DEMANGLE_COMPONENT_TRINARY_ARG2,
-  /* A literal.  The left subtree is the type, and the right subtree
-     is the value, represented as a DEMANGLE_COMPONENT_NAME.  */
-  DEMANGLE_COMPONENT_LITERAL,
-  /* A negative literal.  Like LITERAL, but the value is negated.
-     This is a minor hack: the NAME used for LITERAL points directly
-     to the mangled string, but since negative numbers are mangled
-     using 'n' instead of '-', we want a way to indicate a negative
-     number which involves neither modifying the mangled string nor
-     allocating a new copy of the literal in memory.  */
-  DEMANGLE_COMPONENT_LITERAL_NEG
-};
-
-/* Types which are only used internally.  */
-
-struct demangle_operator_info;
-struct demangle_builtin_type_info;
-
-/* A node in the tree representation is an instance of a struct
-   demangle_component.  Note that the field names of the struct are
-   not well protected against macros defined by the file including
-   this one.  We can fix this if it ever becomes a problem.  */
-
-struct demangle_component
-{
-  /* The type of this component.  */
-  enum demangle_component_type type;
-
-  union
-  {
-    /* For DEMANGLE_COMPONENT_NAME.  */
-    struct
-    {
-      /* A pointer to the name (which need not NULL terminated) and
-	 its length.  */
-      const char *s;
-      int len;
-    } s_name;
-
-    /* For DEMANGLE_COMPONENT_OPERATOR.  */
-    struct
-    {
-      /* Operator.  */
-      const struct demangle_operator_info *op;
-    } s_operator;
-
-    /* For DEMANGLE_COMPONENT_EXTENDED_OPERATOR.  */
-    struct
-    {
-      /* Number of arguments.  */
-      int args;
-      /* Name.  */
-      struct demangle_component *name;
-    } s_extended_operator;
-
-    /* For DEMANGLE_COMPONENT_CTOR.  */
-    struct
-    {
-      /* Kind of constructor.  */
-      enum gnu_v3_ctor_kinds kind;
-      /* Name.  */
-      struct demangle_component *name;
-    } s_ctor;
-
-    /* For DEMANGLE_COMPONENT_DTOR.  */
-    struct
-    {
-      /* Kind of destructor.  */
-      enum gnu_v3_dtor_kinds kind;
-      /* Name.  */
-      struct demangle_component *name;
-    } s_dtor;
-
-    /* For DEMANGLE_COMPONENT_BUILTIN_TYPE.  */
-    struct
-    {
-      /* Builtin type.  */
-      const struct demangle_builtin_type_info *type;
-    } s_builtin;
-
-    /* For DEMANGLE_COMPONENT_SUB_STD.  */
-    struct
-    {
-      /* Standard substitution string.  */
-      const char* string;
-      /* Length of string.  */
-      int len;
-    } s_string;
-
-    /* For DEMANGLE_COMPONENT_TEMPLATE_PARAM.  */
-    struct
-    {
-      /* Template parameter index.  */
-      long number;
-    } s_number;
-
-    /* For other types.  */
-    struct
-    {
-      /* Left (or only) subtree.  */
-      struct demangle_component *left;
-      /* Right subtree.  */
-      struct demangle_component *right;
-    } s_binary;
-
-  } u;
-};
-
-/* People building mangled trees are expected to allocate instances of
-   struct demangle_component themselves.  They can then call one of
-   the following functions to fill them in.  */
-
-/* Fill in most component types with a left subtree and a right
-   subtree.  Returns non-zero on success, zero on failure, such as an
-   unrecognized or inappropriate component type.  */
-
-extern int
-cplus_demangle_fill_component (struct demangle_component *fill,
-                               enum demangle_component_type,
-                               struct demangle_component *left,
-                               struct demangle_component *right);
-
-/* Fill in a DEMANGLE_COMPONENT_NAME.  Returns non-zero on success,
-   zero for bad arguments.  */
-
-extern int
-cplus_demangle_fill_name (struct demangle_component *fill,
-                          const char *, int);
-
-/* Fill in a DEMANGLE_COMPONENT_BUILTIN_TYPE, using the name of the
-   builtin type (e.g., "int", etc.).  Returns non-zero on success,
-   zero if the type is not recognized.  */
-
-extern int
-cplus_demangle_fill_builtin_type (struct demangle_component *fill,
-                                  const char *type_name);
-
-/* Fill in a DEMANGLE_COMPONENT_OPERATOR, using the name of the
-   operator and the number of arguments which it takes (the latter is
-   used to disambiguate operators which can be both binary and unary,
-   such as '-').  Returns non-zero on success, zero if the operator is
-   not recognized.  */
-
-extern int
-cplus_demangle_fill_operator (struct demangle_component *fill,
-                              const char *opname, int args);
-
-/* Fill in a DEMANGLE_COMPONENT_EXTENDED_OPERATOR, providing the
-   number of arguments and the name.  Returns non-zero on success,
-   zero for bad arguments.  */
-
-extern int
-cplus_demangle_fill_extended_operator (struct demangle_component *fill,
-                                       int numargs,
-                                       struct demangle_component *nm);
-
-/* Fill in a DEMANGLE_COMPONENT_CTOR.  Returns non-zero on success,
-   zero for bad arguments.  */
-
-extern int
-cplus_demangle_fill_ctor (struct demangle_component *fill,
-                          enum gnu_v3_ctor_kinds kind,
-                          struct demangle_component *name);
-
-/* Fill in a DEMANGLE_COMPONENT_DTOR.  Returns non-zero on success,
-   zero for bad arguments.  */
-
-extern int
-cplus_demangle_fill_dtor (struct demangle_component *fill,
-                          enum gnu_v3_dtor_kinds kind,
-                          struct demangle_component *name);
-
-/* This function translates a mangled name into a struct
-   demangle_component tree.  The first argument is the mangled name.
-   The second argument is DMGL_* options.  This returns a pointer to a
-   tree on success, or NULL on failure.  On success, the third
-   argument is set to a block of memory allocated by malloc.  This
-   block should be passed to free when the tree is no longer
-   needed.  */
-
-extern struct demangle_component *
-cplus_demangle_v3_components (const char *mangled, int options, void **mem);
-
-/* This function takes a struct demangle_component tree and returns
-   the corresponding demangled string.  The first argument is DMGL_*
-   options.  The second is the tree to demangle.  The third is a guess
-   at the length of the demangled string, used to initially allocate
-   the return buffer.  The fourth is a pointer to a size_t.  On
-   success, this function returns a buffer allocated by malloc(), and
-   sets the size_t pointed to by the fourth argument to the size of
-   the allocated buffer (not the length of the returned string).  On
-   failure, this function returns NULL, and sets the size_t pointed to
-   by the fourth argument to 0 for an invalid tree, or to 1 for a
-   memory allocation error.  */
-
-extern char *
-cplus_demangle_print (int options,
-                      const struct demangle_component *tree,
-                      int estimated_length,
-                      size_t *p_allocated_size);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif	/* DEMANGLE_H */
diff --git a/include/dis-asm.h b/include/dis-asm.h
deleted file mode 100644
index bdbf9f8..0000000
--- a/include/dis-asm.h
+++ /dev/null
@@ -1,339 +0,0 @@
-/* Interface between the opcode library and its callers.
-
-   Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005
-   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 2, 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., 51 Franklin Street - Fifth Floor,
-   Boston, MA 02110-1301, USA.
-
-   Written by Cygnus Support, 1993.
-
-   The opcode library (libopcodes.a) provides instruction decoders for
-   a large variety of instruction sets, callable with an identical
-   interface, for making instruction-processing programs more independent
-   of the instruction set being processed.  */
-
-#ifndef DIS_ASM_H
-#define DIS_ASM_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdio.h>
-#include "bfd.h"
-
-typedef int (*fprintf_ftype) (void *, const char*, ...) ATTRIBUTE_FPTR_PRINTF_2;
-
-enum dis_insn_type {
-  dis_noninsn,			/* Not a valid instruction */
-  dis_nonbranch,		/* Not a branch instruction */
-  dis_branch,			/* Unconditional branch */
-  dis_condbranch,		/* Conditional branch */
-  dis_jsr,			/* Jump to subroutine */
-  dis_condjsr,			/* Conditional jump to subroutine */
-  dis_dref,			/* Data reference instruction */
-  dis_dref2			/* Two data references in instruction */
-};
-
-/* This struct is passed into the instruction decoding routine,
-   and is passed back out into each callback.  The various fields are used
-   for conveying information from your main routine into your callbacks,
-   for passing information into the instruction decoders (such as the
-   addresses of the callback functions), or for passing information
-   back from the instruction decoders to their callers.
-
-   It must be initialized before it is first passed; this can be done
-   by hand, or using one of the initialization macros below.  */
-
-typedef struct disassemble_info {
-  fprintf_ftype fprintf_func;
-  void *stream;
-  void *application_data;
-
-  /* Target description.  We could replace this with a pointer to the bfd,
-     but that would require one.  There currently isn't any such requirement
-     so to avoid introducing one we record these explicitly.  */
-  /* The bfd_flavour.  This can be bfd_target_unknown_flavour.  */
-  enum bfd_flavour flavour;
-  /* The bfd_arch value.  */
-  enum bfd_architecture arch;
-  /* The bfd_mach value.  */
-  unsigned long mach;
-  /* Endianness (for bi-endian cpus).  Mono-endian cpus can ignore this.  */
-  enum bfd_endian endian;
-  /* An arch/mach-specific bitmask of selected instruction subsets, mainly
-     for processors with run-time-switchable instruction sets.  The default,
-     zero, means that there is no constraint.  CGEN-based opcodes ports
-     may use ISA_foo masks.  */
-  void *insn_sets;
-
-  /* Some targets need information about the current section to accurately
-     display insns.  If this is NULL, the target disassembler function
-     will have to make its best guess.  */
-  asection *section;
-
-  /* An array of pointers to symbols either at the location being disassembled
-     or at the start of the function being disassembled.  The array is sorted
-     so that the first symbol is intended to be the one used.  The others are
-     present for any misc. purposes.  This is not set reliably, but if it is
-     not NULL, it is correct.  */
-  asymbol **symbols;
-  /* Number of symbols in array.  */
-  int num_symbols;
-
-  /* For use by the disassembler.
-     The top 16 bits are reserved for public use (and are documented here).
-     The bottom 16 bits are for the internal use of the disassembler.  */
-  unsigned long flags;
-#define INSN_HAS_RELOC	0x80000000
-  void *private_data;
-
-  /* Function used to get bytes to disassemble.  MEMADDR is the
-     address of the stuff to be disassembled, MYADDR is the address to
-     put the bytes in, and LENGTH is the number of bytes to read.
-     INFO is a pointer to this struct.
-     Returns an errno value or 0 for success.  */
-  int (*read_memory_func)
-    (bfd_vma memaddr, bfd_byte *myaddr, unsigned int length,
-     struct disassemble_info *info);
-
-  /* Function which should be called if we get an error that we can't
-     recover from.  STATUS is the errno value from read_memory_func and
-     MEMADDR is the address that we were trying to read.  INFO is a
-     pointer to this struct.  */
-  void (*memory_error_func)
-    (int status, bfd_vma memaddr, struct disassemble_info *info);
-
-  /* Function called to print ADDR.  */
-  void (*print_address_func)
-    (bfd_vma addr, struct disassemble_info *info);
-
-  /* Function called to determine if there is a symbol at the given ADDR.
-     If there is, the function returns 1, otherwise it returns 0.
-     This is used by ports which support an overlay manager where
-     the overlay number is held in the top part of an address.  In
-     some circumstances we want to include the overlay number in the
-     address, (normally because there is a symbol associated with
-     that address), but sometimes we want to mask out the overlay bits.  */
-  int (* symbol_at_address_func)
-    (bfd_vma addr, struct disassemble_info * info);
-
-  /* Function called to check if a SYMBOL is can be displayed to the user.
-     This is used by some ports that want to hide special symbols when
-     displaying debugging outout.  */
-  bfd_boolean (* symbol_is_valid)
-    (asymbol *, struct disassemble_info * info);
-
-  /* These are for buffer_read_memory.  */
-  bfd_byte *buffer;
-  bfd_vma buffer_vma;
-  unsigned int buffer_length;
-
-  /* This variable may be set by the instruction decoder.  It suggests
-      the number of bytes objdump should display on a single line.  If
-      the instruction decoder sets this, it should always set it to
-      the same value in order to get reasonable looking output.  */
-  int bytes_per_line;
-
-  /* The next two variables control the way objdump displays the raw data.  */
-  /* For example, if bytes_per_line is 8 and bytes_per_chunk is 4, the */
-  /* output will look like this:
-     00:   00000000 00000000
-     with the chunks displayed according to "display_endian". */
-  int bytes_per_chunk;
-  enum bfd_endian display_endian;
-
-  /* Number of octets per incremented target address
-     Normally one, but some DSPs have byte sizes of 16 or 32 bits.  */
-  unsigned int octets_per_byte;
-
-  /* The number of zeroes we want to see at the end of a section before we
-     start skipping them.  */
-  unsigned int skip_zeroes;
-
-  /* The number of zeroes to skip at the end of a section.  If the number
-     of zeroes at the end is between SKIP_ZEROES_AT_END and SKIP_ZEROES,
-     they will be disassembled.  If there are fewer than
-     SKIP_ZEROES_AT_END, they will be skipped.  This is a heuristic
-     attempt to avoid disassembling zeroes inserted by section
-     alignment.  */
-  unsigned int skip_zeroes_at_end;
-
-  /* Whether the disassembler always needs the relocations.  */
-  bfd_boolean disassembler_needs_relocs;
-
-  /* Results from instruction decoders.  Not all decoders yet support
-     this information.  This info is set each time an instruction is
-     decoded, and is only valid for the last such instruction.
-
-     To determine whether this decoder supports this information, set
-     insn_info_valid to 0, decode an instruction, then check it.  */
-
-  char insn_info_valid;		/* Branch info has been set. */
-  char branch_delay_insns;	/* How many sequential insn's will run before
-				   a branch takes effect.  (0 = normal) */
-  char data_size;		/* Size of data reference in insn, in bytes */
-  enum dis_insn_type insn_type;	/* Type of instruction */
-  bfd_vma target;		/* Target address of branch or dref, if known;
-				   zero if unknown.  */
-  bfd_vma target2;		/* Second target address for dref2 */
-
-  /* Command line options specific to the target disassembler.  */
-  char * disassembler_options;
-
-} disassemble_info;
-
-
-/* Standard disassemblers.  Disassemble one instruction at the given
-   target address.  Return number of octets processed.  */
-typedef int (*disassembler_ftype) (bfd_vma, disassemble_info *);
-
-extern int print_insn_big_mips		(bfd_vma, disassemble_info *);
-extern int print_insn_little_mips	(bfd_vma, disassemble_info *);
-extern int print_insn_i386		(bfd_vma, disassemble_info *);
-extern int print_insn_i386_att		(bfd_vma, disassemble_info *);
-extern int print_insn_i386_intel	(bfd_vma, disassemble_info *);
-extern int print_insn_ia64		(bfd_vma, disassemble_info *);
-extern int print_insn_i370		(bfd_vma, disassemble_info *);
-extern int print_insn_m68hc11		(bfd_vma, disassemble_info *);
-extern int print_insn_m68hc12		(bfd_vma, disassemble_info *);
-extern int print_insn_m68k		(bfd_vma, disassemble_info *);
-extern int print_insn_z80		(bfd_vma, disassemble_info *);
-extern int print_insn_z8001		(bfd_vma, disassemble_info *);
-extern int print_insn_z8002		(bfd_vma, disassemble_info *);
-extern int print_insn_h8300		(bfd_vma, disassemble_info *);
-extern int print_insn_h8300h		(bfd_vma, disassemble_info *);
-extern int print_insn_h8300s		(bfd_vma, disassemble_info *);
-extern int print_insn_h8500		(bfd_vma, disassemble_info *);
-extern int print_insn_alpha		(bfd_vma, disassemble_info *);
-extern int print_insn_big_arm		(bfd_vma, disassemble_info *);
-extern int print_insn_little_arm	(bfd_vma, disassemble_info *);
-extern int print_insn_sparc		(bfd_vma, disassemble_info *);
-extern int print_insn_avr		(bfd_vma, disassemble_info *);
-extern int print_insn_bfin		(bfd_vma, disassemble_info *);
-extern int print_insn_d10v		(bfd_vma, disassemble_info *);
-extern int print_insn_d30v		(bfd_vma, disassemble_info *);
-extern int print_insn_dlx 		(bfd_vma, disassemble_info *);
-extern int print_insn_fr30		(bfd_vma, disassemble_info *);
-extern int print_insn_hppa		(bfd_vma, disassemble_info *);
-extern int print_insn_i860		(bfd_vma, disassemble_info *);
-extern int print_insn_i960		(bfd_vma, disassemble_info *);
-extern int print_insn_ip2k		(bfd_vma, disassemble_info *);
-extern int print_insn_m32r		(bfd_vma, disassemble_info *);
-extern int print_insn_m88k		(bfd_vma, disassemble_info *);
-extern int print_insn_maxq_little	(bfd_vma, disassemble_info *);
-extern int print_insn_maxq_big		(bfd_vma, disassemble_info *);
-extern int print_insn_mcore		(bfd_vma, disassemble_info *);
-extern int print_insn_mmix		(bfd_vma, disassemble_info *);
-extern int print_insn_mn10200		(bfd_vma, disassemble_info *);
-extern int print_insn_mn10300		(bfd_vma, disassemble_info *);
-extern int print_insn_mt                (bfd_vma, disassemble_info *);
-extern int print_insn_msp430		(bfd_vma, disassemble_info *);
-extern int print_insn_ns32k		(bfd_vma, disassemble_info *);
-extern int print_insn_crx               (bfd_vma, disassemble_info *);
-extern int print_insn_openrisc		(bfd_vma, disassemble_info *);
-extern int print_insn_big_or32		(bfd_vma, disassemble_info *);
-extern int print_insn_little_or32	(bfd_vma, disassemble_info *);
-extern int print_insn_pdp11		(bfd_vma, disassemble_info *);
-extern int print_insn_pj		(bfd_vma, disassemble_info *);
-extern int print_insn_big_powerpc	(bfd_vma, disassemble_info *);
-extern int print_insn_little_powerpc	(bfd_vma, disassemble_info *);
-extern int print_insn_rs6000		(bfd_vma, disassemble_info *);
-extern int print_insn_s390		(bfd_vma, disassemble_info *);
-extern int print_insn_sh		(bfd_vma, disassemble_info *);
-extern int print_insn_tic30		(bfd_vma, disassemble_info *);
-extern int print_insn_tic4x		(bfd_vma, disassemble_info *);
-extern int print_insn_tic54x		(bfd_vma, disassemble_info *);
-extern int print_insn_tic80		(bfd_vma, disassemble_info *);
-extern int print_insn_v850		(bfd_vma, disassemble_info *);
-extern int print_insn_vax		(bfd_vma, disassemble_info *);
-extern int print_insn_w65		(bfd_vma, disassemble_info *);
-extern int print_insn_xstormy16		(bfd_vma, disassemble_info *);
-extern int print_insn_xtensa		(bfd_vma, disassemble_info *);
-extern int print_insn_sh64		(bfd_vma, disassemble_info *);
-extern int print_insn_sh64x_media	(bfd_vma, disassemble_info *);
-extern int print_insn_frv		(bfd_vma, disassemble_info *);
-extern int print_insn_iq2000		(bfd_vma, disassemble_info *);
-extern int print_insn_xc16x		(bfd_vma, disassemble_info *);
-extern int print_insn_m32c	(bfd_vma, disassemble_info *);
-
-extern disassembler_ftype arc_get_disassembler (void *);
-extern disassembler_ftype cris_get_disassembler (bfd *);
-
-extern void print_mips_disassembler_options (FILE *);
-extern void print_ppc_disassembler_options (FILE *);
-extern void print_arm_disassembler_options (FILE *);
-extern void parse_arm_disassembler_option (char *);
-extern int get_arm_regname_num_options (void);
-extern int set_arm_regname_option (int);
-extern int get_arm_regnames (int, const char **, const char **, const char *const **);
-extern bfd_boolean arm_symbol_is_valid (asymbol *, struct disassemble_info *);
-
-/* Fetch the disassembler for a given BFD, if that support is available.  */
-extern disassembler_ftype disassembler (bfd *);
-
-/* Amend the disassemble_info structure as necessary for the target architecture.
-   Should only be called after initialising the info->arch field.  */
-extern void disassemble_init_for_target (struct disassemble_info * info);
-
-/* Document any target specific options available from the disassembler.  */
-extern void disassembler_usage (FILE *);
-
-
-/* This block of definitions is for particular callers who read instructions
-   into a buffer before calling the instruction decoder.  */
-
-/* Here is a function which callers may wish to use for read_memory_func.
-   It gets bytes from a buffer.  */
-extern int buffer_read_memory
-  (bfd_vma, bfd_byte *, unsigned int, struct disassemble_info *);
-
-/* This function goes with buffer_read_memory.
-   It prints a message using info->fprintf_func and info->stream.  */
-extern void perror_memory (int, bfd_vma, struct disassemble_info *);
-
-
-/* Just print the address in hex.  This is included for completeness even
-   though both GDB and objdump provide their own (to print symbolic
-   addresses).  */
-extern void generic_print_address
-  (bfd_vma, struct disassemble_info *);
-
-/* Always true.  */
-extern int generic_symbol_at_address
-  (bfd_vma, struct disassemble_info *);
-
-/* Also always true.  */
-extern bfd_boolean generic_symbol_is_valid
-  (asymbol *, struct disassemble_info *);
-
-/* Method to initialize a disassemble_info struct.  This should be
-   called by all applications creating such a struct.  */
-extern void init_disassemble_info (struct disassemble_info *info, void *stream,
-				   fprintf_ftype fprintf_func);
-
-/* For compatibility with existing code.  */
-#define INIT_DISASSEMBLE_INFO(INFO, STREAM, FPRINTF_FUNC) \
-  init_disassemble_info (&(INFO), (STREAM), (fprintf_ftype) (FPRINTF_FUNC))
-#define INIT_DISASSEMBLE_INFO_NO_ARCH(INFO, STREAM, FPRINTF_FUNC) \
-  init_disassemble_info (&(INFO), (STREAM), (fprintf_ftype) (FPRINTF_FUNC))
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ! defined (DIS_ASM_H) */
diff --git a/include/dyn-string.h b/include/dyn-string.h
deleted file mode 100644
index 44e33de..0000000
--- a/include/dyn-string.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* An abstract string datatype.
-   Copyright (C) 1998, 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
-   Contributed by Mark Mitchell (mark@markmitchell.com).
-
-This file is part of GCC.
-   
-GCC 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.
-
-GCC 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 GCC; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-
-typedef struct dyn_string
-{
-  int allocated;	/* The amount of space allocated for the string.  */
-  int length;		/* The actual length of the string.  */
-  char *s;		/* The string itself, NUL-terminated.  */
-}* dyn_string_t;
-
-/* The length STR, in bytes, not including the terminating NUL.  */
-#define dyn_string_length(STR)                                          \
-  ((STR)->length)
-
-/* The NTBS in which the contents of STR are stored.  */
-#define dyn_string_buf(STR)                                             \
-  ((STR)->s)
-
-/* Compare DS1 to DS2 with strcmp.  */
-#define dyn_string_compare(DS1, DS2)                                    \
-  (strcmp ((DS1)->s, (DS2)->s))
-
-
-extern int dyn_string_init (struct dyn_string *, int);
-extern dyn_string_t dyn_string_new (int);
-extern void dyn_string_delete (dyn_string_t);
-extern char *dyn_string_release (dyn_string_t);
-extern dyn_string_t dyn_string_resize (dyn_string_t, int);
-extern void dyn_string_clear (dyn_string_t);
-extern int dyn_string_copy (dyn_string_t, dyn_string_t);
-extern int dyn_string_copy_cstr (dyn_string_t, const char *);
-extern int dyn_string_prepend (dyn_string_t, dyn_string_t);
-extern int dyn_string_prepend_cstr (dyn_string_t, const char *);
-extern int dyn_string_insert (dyn_string_t, int, dyn_string_t);
-extern int dyn_string_insert_cstr (dyn_string_t, int, const char *);
-extern int dyn_string_insert_char (dyn_string_t, int, int);
-extern int dyn_string_append (dyn_string_t, dyn_string_t);
-extern int dyn_string_append_cstr (dyn_string_t, const char *);
-extern int dyn_string_append_char (dyn_string_t, int);
-extern int dyn_string_substring (dyn_string_t,  dyn_string_t, int, int);
-extern int dyn_string_eq (dyn_string_t, dyn_string_t);
diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog
deleted file mode 100644
index f1c15b5..0000000
--- a/include/elf/ChangeLog
+++ /dev/null
@@ -1,500 +0,0 @@
-2006-07-10  Jakub Jelinek  <jakub@redhat.com>
-
-	* common.h (SHT_GNU_HASH, DT_GNU_HASH): Define.
-
-2006-05-31  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* internal.h (ELF_SECTION_SIZE): New.
-	(ELF_IS_SECTION_IN_SEGMENT): Likewise.
-	(ELF_IS_SECTION_IN_SEGMENT_FILE): Updated.
-	(ELF_IS_SECTION_IN_SEGMENT_MEMORY): Likewise.
-
-2006-05-27  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* internal.h (struct elf_segment_map): Add p_align and p_align_valid.
-
-2006-05-24  Carlos O'Donell  <carlos@systemhalted.org>
-	    Randolph Chung  <randolph@tausq.org>
-	* hppa.h (R_PARISC_TLS_GD21L, R_PARISC_TLS_GD14R, R_PARISC_TLS_GDCALL,
-	R_PARISC_TLS_LDM21L, R_PARISC_TLS_LDM14R, R_PARISC_TLS_LDMCALL,
-	R_PARISC_TLS_LDO21L, R_PARISC_TLS_LDO14R, R_PARISC_TLS_DTPMOD32, 
-	R_PARISC_TLS_DTPMOD64, R_PARISC_TLS_DTPOFF32, R_PARISC_TLS_DTPOFF64): 
-	New TLS relocs.
-	(R_PARISC_TLS_LE21L, R_PARISC_TLS_LE14R, R_PARISC_TLS_IE21L,
-	R_PARISC_TLS_IE14R, R_PARISC_TLS_TPREL32, R_PARISC_TLS_TPREL64):
-	Define TLS relocs using existing equivalents.
-
-2006-05-24  Bjoern Haase  <bjoern.m.haase@web.de> 
-	
-	* avr.h: Add E_AVR_MACH_AVR6, R_AVR_LO8_LDI_GS and R_AVR_HI8_LDI_GS.
-
-2006-03-22  Richard Sandiford  <richard@codesourcery.com>
-	    Daniel Jacobowitz  <dan@codesourcery.com>
-	    Phil Edwards  <phil@codesourcery.com>
-	    Zack Weinberg  <zack@codesourcery.com>
-	    Mark Mitchell  <mark@codesourcery.com>
-	    Nathan Sidwell  <nathan@codesourcery.com>
-
-	* mips.h (R_MIPS_COPY, R_MIPS_JUMP_SLOT): New relocs.
-
-2006-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-
-	* hppa.h (SHF_HP_TLS, SHF_HP_NEAR_SHARED, SHF_HP_FAR_SHARED,
-	SHF_HP_COMDAT, SHF_HP_CONST, SHN_TLS_COMMON, SHN_NS_COMMON,
-	SHN_NS_UNDEF, SHN_FS_UNDEF, SHN_HP_EXTERN, SHN_HP_EXTHINT,
-	SHN_HP_UNDEF_BIND_IMM, SHT_HP_OVLBITS, SHT_HP_DLKM, SHT_HP_COMDAT,
-	SHT_HP_OBJDICT, SHT_HP_ANNOT, STB_HP_ALIAS): Define.
-
-2006-03-10  Paul Brook  <paul@codesourcery.com>
-
-	* arm.h (EF_ARM_EABI_VER5): Define.
-
-2006-03-06  Nathan Sidwell  <nathan@codesourcery.com>
-
-	* m68k.h (EF_M68K_ISA_MASK, EF_M68K_ISA_A,
-	EF_M68K_ISA_A_PLUS, EF_M68K_ISA_B, EF_M68K_ISA_C): Adjust.
-	(EF_M68K_ISA_A_NODIV, EF_M68K_ISA_B_NOUSP): New.
-	(EF_M68K_HW_DIV, EF_M68K_USP): Remove.
-	(EF_M68K_MAC, EF_M68K_EMAC, EF_M68K_FLOAT): Adjust.
-	(EF_M68K_EMAC_B): New.
-
-2006-03-03  Bjoern Haase  <bjoern.m.haase@web.de>
-
-	* avr.h (R_AVR_MS8_LDI,R_AVR_MS8_LDI_NEG): Add.
-	(EF_AVR_LINKRELAX_PREPARED): Add.
-
-2006-03-02  Ben Elliston  <bje@au.ibm.com>
-
-	Import from the GCC tree:
-	2006-03-01  Jakub Jelinek  <jakub@redhat.com>
-
-	* dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
-	from DWARF 3.
-	(DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
-	DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
-	DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
-	DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
-	DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
-	(DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
-	(DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
-	DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
-	(DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
-	DW_DS_leading_separate, DW_DS_trailing_separate): New.
-	(DW_END_default, DW_END_big, DW_END_little): New.
-	(DW_END_lo_user, DW_END_hi_user): Define.
-	(DW_LNE_lo_user, DW_LNE_hi_user): Define.
-	(DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
-	(DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
-	DW_LANG_D): New.
-
-2006-02-24  DJ Delorie  <dj@redhat.com>
-
-	* m32c.h: Add relax relocs.
-
-2006-02-17  Shrirang Khisti  <shrirangk@kpitcummins.com>
-            Anil Paranjape   <anilp1@kpitcummins.com>
-            Shilin Shakti    <shilins@kpitcummins.com>
-
-	* common.h (EM_XC16X): New entry for xc16x cpu.
-	Sort other EM_* numbers into numerical order.
-	* xc16x.h: New file.
-   	
-2006-02-10  H.J. Lu  <hongjiu.lu@intel.com>
-
-	PR binutils/2258
-	* internal.h (ELF_IS_SECTION_IN_SEGMENT_FILE): New.
-	(ELF_IS_SECTION_IN_SEGMENT_MEMORY): Likewise.
-
-2006-02-07  Nathan Sidwell  <nathan@codesourcery.com>
-
-	* m68k.h (EF_CPU32, EF_M68000, EF_CFV4E): Rename to ...
-	(EF_M68K_CPU32, EF_M68K_M68000, EF_M68K_CFV4E): ... here.
-	(EF_M68K_ISA_MASK, EF_M68K_ISA_A, EF_M68K_M68K_ISA_A_PLUS,
-	EF_M68K_ISA_B, EF_M68K_HW_DIV, EF_M68K_MAC_MASK, EF_M68K_MAC,
-	EF_M68K_EMAC, EF_M68K_USP, EF_M68K_FLOAT): New.
-
-2006-02-06  Steve Ellcey  <sje@cup.hp.com>
-
-	* ia64.h (SHF_IA_64_HP_TLS): New.
-
-2006-01-18  Alexandre Oliva  <aoliva@redhat.com>
-
-	Introduce TLS descriptors for i386 and x86_64.
-	* common.h (DT_TLSDESC_GOT, DT_TLSDESC_PLT): New.
-	* i386.h (R_386_TLS_GOTDESC, R_386_TLS_DESC_CALL, R_386_TLS_DESC):
-	New.
-	* x86-64.h (R_X86_64_GOTPC32_TLSDESC, R_X86_64_TLSDESC_CALL,
-	R_X86_64_TLSDESC): New.
-
-2006-01-09  Mike Frysinger  <vapier@gentoo.org>:
-
-	* common.h (EM_ALTERA_NIOS2, EM_NIOS32) Define.
-
-2005-12-16  Nathan Sidwell  <nathan@codesourcery.com>
-
-	Second part of ms1 to mt renaming.
-	* common.h (EM_MT): Renamed.
-	* mt.h: Rename relocs, cpu & other defines.
-
-2005-12-12  Paul Brook  <paul@codesourcery.com>
-
-	* arm.h (elf32_arm_get_eabi_attr_int): Add prototype.
-
-2005-11-11  Nick Clifton  <nickc@redhat.com>
-
-	PR 1150
-	* mips.h (STO_OPTIONAL): Define.
-	(ELF_MIPS_IS_OPTIONAL): Define.
-
-2005-09-30  Catherine Moore  <clm@cm00re.com>
-
-	* bfin.h: New file.
-	* common.h (EM_BLACKFIN): Define.
-
-2005-10-08  Paul Brook  <paul@codesourcery.com>
-
-	* arm.h: Add prototypes for BFD object attribute routines.
-
-2005-09-09  Richard Earnshaw  <richard.earnshaw@arm.com>
-
-	* arm.h (SHT_ARM_PREEMPTMAP, SHT_ARM_ATTRIBUTES): New defines.
-
-2005-08-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-
-	* hppa.h (SHT_PARISC_DLKM, SHF_PARISC_WEAKORDER, PT_PARISC_WEAKORDER):
-	New defines.
-
-2005-08-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-
-	* hppa.h (PF_HP_CODE, PF_HP_MODIFY, PF_HP_LAZYSWAP): Revise defines.
-	(PF_HP_CODE_DEPR, PF_HP_MODIFY_DEPR, PF_HP_LAZYSWAP_DEPR): New
-	deprecated defines.
-	(DT_HP_EPLTREL, DT_HP_EPLTRELSZ, DT_HP_FILTERED, DT_HP_FILTER_TLS,
-	DT_HP_COMPAT_FILTERED, DT_HP_LAZYLOAD, DT_HP_BIND_NOW_COUNT, DT_PLT,
-	DT_PLT_SIZE, DT_DLT, DT_DLT_SIZE, DT_HP_BIND_DEPTH_FIRST, DT_HP_GST,
-	DT_HP_SHLIB_FIXED, DT_HP_MERGE_SHLIB_SEG, DT_HP_NODELETE, DT_HP_GROUP,
-	DT_HP_PROTECT_LINKAGE_TABLE, PT_HP_OPT_ANNOT, PT_HP_HSL_ANNOT,
-	PT_HP_STACK, PT_HP_CORE_UTSNAME, NT_HP_COMPILER, NT_HP_COPYRIGHT,
-	NT_HP_VERSION, NT_HP_SRCFILE_INFO, NT_HP_LINKER, NT_HP_INSTRUMENTED,
-	NT_HP_UX_OPTIONS): Define.
-
-2005-07-25  DJ Delorie  <dj@redhat.com>
-
-	* m32c.h: Add R_M32C_8, R_M32C_LO16, R_M32C_HI8, and R_M32C_HI16.
-
-2005-07-25  Jan Hubicka  <jh@suse.cz>
-
-	* x86-64.h (SHN_X86_64_LCOMMON): New.
-	(SHF_X86_64_LARGE): New.
-
-2005-07-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
-
-	* m32r.h (R_M32R_REL32): Added.
-
-2005-07-18  Ben Elliston  <bje@au.ibm.com>
-
-	* dwarf2.h (enum dwarf_type): Remove DW_AT_GNU_decimal_float.
-	Replace with DW_ATE_decimal_float (now in DWARF 3).
-
-2005-07-14  Jim Blandy  <jimb@redhat.com>
-
-	Add support for Renesas M32C and M16C.
-	* common.h (EM_M32C): New machine number.
-	* m32c.h: New file.
-	
-2005-06-17  Jan Beulich  <jbeulich@novell.com>
-
-	* x86-64.h (elf_x86_64_reloc_type): Adjust comment for
-	R_X86_64_GOTPCREL. Add R_X86_64_PC64, R_X86_64_GOTOFF64, and
-	R_X86_64_GOTPC32.
-
-2005-06-07  Aldy Hernandez  <aldyh@redhat.com>
-	    Michael Snyder  <msnyder@redhat.com>
-	    Stan Cox  <scox@redhat.com>
-
-	* common.h (EM_MS1): Define.
-
-	* ms1.h: New file.
-
-2005-05-31  Richard Henderson  <rth@redhat.com>
-
-	* alpha.h (LITUSE_ALPHA_JSRDIRECT): New.
-
-2005-05-29  Richard Henderson  <rth@redhat.com>
-
-	* alpha.h (DT_ALPHA_PLTRO): New.
-
-2005-05-19  Ben Elliston  <bje@au.ibm.com>
-
-	* dwarf2.h (enum dwarf_type): Assign DW_ATE_GNU_decimal_float from
-	the user-defined encoding space pending inclusion in the standard.
-
-2005-05-18  Zack Weinberg  <zack@codesourcery.com>
-
-	* arm.h: Make all #ifndef OLD_ARM_ABI blocks
-	unconditional, delete all #ifdef OLD_ARM_ABI blocks.
-
-2005-05-17  Zack Weinberg  <zack@codesourcery.com>
-
-	* arm.h: Import complete list of official relocation names
-	and numbers from AAELF.  Define FAKE_RELOCs for old names.
-	Remove a few old names no longer used anywhere.
-
-2005-05-14  Alan Modra  <amodra@bigpond.net.au>
-
-	* ppc.h (DT_PPC_GOT): Rename from DT_PPC_GLINK.
-
-2005-05-11  Alan Modra  <amodra@bigpond.net.au>
-
-	* ppc.h (R_PPC_RELAX32, R_PPC_RELAX32PC, R_PPC_RELAX32_PLT,
-	R_PPC_RELAX32PC_PLT) Adjust.
-	(R_PPC_REL16, R_PPC_REL16_LO, R_PPC_REL16_HI, R_PPC_REL16_HA): Define.
-	(DT_PPC_GLINK): Define.
-
-2005-05-10  Nick Clifton  <nickc@redhat.com>
-
-	* Update the address and phone number of the FSF organization in
-	the GPL notices in the following files:
-	alpha.h, arc.h, arm.h, avr.h, common.h, cr16c.h, cris.h, crx.h,
-	d10v.h, d30v.h, dlx.h, dwarf.h, dwarf2.h, external.h, fr30.h,
-	frv.h, h8.h, hppa.h, i370.h, i386.h, i860.h, i960.h, ia64.h,
-	internal.h, ip2k.h, iq2000.h, m32r.h, m68hc11.h, m68k.h, mcore.h,
-	mips.h, mmix.h, mn10200.h, mn10300.h, msp430.h, openrisc.h,
-	or32.h, pj.h, ppc.h, ppc64.h, reloc-macros.h, s390.h, sh.h,
-	sparc.h, v850.h,  vax.h, x86-64.h, xstormy16.h,	xtensa.h
-
-2005-04-13  H.J. Lu  <hongjiu.lu@intel.com>
-
-	Moved from ../ChangeLog
-
-	2004-10-27  Richard Earnshaw  <rearnsha@arm.com>
-	* arm.h: Add R_ARM_CALL and R_ARM_JUMP32.
-
-	2004-10-12  Paul Brook  <paul@codesourcery.com>
-	* arm.h (EF_ARM_EABI_VER4): Define.
-
-	2004-10-08  Daniel Jacobowitz  <dan@debian.org>
-
-	* common.h (PT_SUNW_EH_FRAME): Define.
-	* x86-64.h (SHT_X86_64_UNWIND): Define.
-
-	2004-10-07  Bob Wilson  <bob.wilson@acm.org>
-	* xtensa.h (R_XTENSA_DIFF8, R_XTENSA_DIFF16, R_XTENSA_DIFF32,
-	R_XTENSA_SLOT*_OP, R_XTENSA_SLOT*_ALT): New relocations.
-	(XTENSA_PROP_SEC_NAME): Define.
-	(property_table_entry): Add flags field.
-	(XTENSA_PROP_*, GET_XTENSA_PROP_*, SET_XTENSA_PROP_*): Define.
-
-	2004-09-17  Paul Brook  <paul@codesourcery.com>
-	* arm.h: Remove R_ARM_STKCHK and R_ARM_THM_STKCHK.
-	Add R_ARM_TARGET2, R_ARM_PREL31, R_ARM_GOT_ABS, R_ARM_GOT_PREL,
-	R_ARM_GOT_BREL12, R_ARM_GOTOFF12 and R_ARM_GOTRELAX.
-
-	2004-09-13  Paul Brook  <paul@codesourcery.com>
-	* arm.h: Rename RELABS to TARGET1.
-
-	2004-05-11  Jakub Jelinek  <jakub@redhat.com>
-	* common.h (PT_GNU_EH_FRAME, PT_GNU_STACK): Add comments.
-	(PT_GNU_RELRO): Define.
-
-2005-03-29  Daniel Jacobowitz  <dan@codesourcery.com>
-	    Phil Blundell  <philb@gnu.org>
-
-	* arm.h: Add TLS relocations.
-
-2005-03-23  Ben Elliston  <bje@au.ibm.com>
-
-	* dwarf.h: Merge with GCC's dwarf.h.
-
-2005-03-18  C Jaipraash  <cjaiprakash@noida.hcltech.com>
-
-	* m68k.h (EF_CFV4E): Define.
-
-2005-03-17  Paul Brook <paul@codesourcery.com>
-	    Dan Jacobowitz <dan@codesourcery.com>
-	    Mark Mitchell  <mark@codesourcery.com>
-
-	* arm.h (PT_ARM_EXIDX): Define.
-
-2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
-	    Joseph Myers  <joseph@codesourcery.com>
-
-	* mips.h: Define MIPS TLS relocations.
-
-2005-02-15  Nigel Stephens  <nigel@mips.com>
-	    Maciej W. Rozycki  <macro@mips.com>
-
-	* mips.h (R_MIPS16_GOT16): New reloc code.
-	(R_MIPS16_CALL16): Likewise.
-	(R_MIPS16_HI16): Likewise.
-	(R_MIPS16_LO16): Likewise.
-	(R_MIPS16_min): New fake reloc code.
-	(R_MIPS16_max): Likewise.
-
-2005-02-11  Maciej W. Rozycki  <macro@mips.com>
-
-	* mips.h (R_MIPS_max): Use FAKE_RELOC to define.
-
-2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
-
-	2004-12-10  Alexandre Oliva  <aoliva@redhat.com>
-	* frv.h: Add R_FRV_TLSMOFF.
-	2004-11-10  Alexandre Oliva  <aoliva@redhat.com>
-	* frv.h: Add TLS relocations.
-
-2005-01-17  Nick Clifton  <nickc@redhat.com>
-
-	* sh.h (EF_SH2A_SH4_NOFPU, EF_SH2A_SH3_NOFPU, EF_SH2A_SH4,
-	EF_SH2A_SH3E): New flags.
-	(EF_SH_BFD_TABLE): Add these new flags to the table.
-
-2005-01-12  Alan Modra  <amodra@bigpond.net.au>
-
-	* ppc.h (R_PPC_RELAX32_PLT, R_PPC_RELAX32PC_PLT): Define.
-	(R_PPC_RELAX32, R_PPC_RELAX32PC): Adjust value.
-
-2004-12-22  Klaus Rudolph  <lts-rudolph@gmx.de>
-
-	* avr.h (R_AVR_LDI, R_AVR_6, R_AVR_6_ADIW): New relocs.
-
-2004-12-16  Richard Sandiford  <rsandifo@redhat.com>
-
-	* v850.h (R_V850_LO16_SPLIT_OFFSET): New reloc.
-
-2004-12-09  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* mips.h (E_MIPS_MACH_9000): Define.
-
-2004-11-04  Hans-Peter Nilsson  <hp@axis.com>
-
-	* cris.h (EF_CRIS_VARIANT_MASK, EF_CRIS_VARIANT_ANY_V0_V10)
-	(EF_CRIS_VARIANT_V32, EF_CRIS_VARIANT_COMMON_V10_V32): New
-	macros.
-
-2004-10-06  Eric Christopher  <echristo@redhat.com>
-
-	* dwarf2.h: Sync with gcc dwarf2.h. Fix typo.
-
-2004-10-01  Paul Brook  <paul@codesourcery.com>
-
-	* arm.h (SHT_ARM_EXIDX): Define.
-	(ELF_STRING_ARM_unwind, ELF_STRING_ARM_unwind,
-	ELF_STRING_ARM_unwind_once, ELF_STRING_ARM_unwind_info_once):
-	Define.
-
-2004-08-25  Dmitry Diky  <diwil@spec.ru>
-
-	* msp430.h: Add new relocs.
-
-2004-08-12  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* i386.h (R_386_USED_BY_INTEL_200): New.
-
-2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
-
-	Introduce SH2a support.
-	2004-02-18  Corinna Vinschen  <vinschen@redhat.com>
-	* sh.h (EF_SH2A_NOFPU): New.
-	2003-12-01  Michael Snyder  <msnyder@redhat.com>
-	* sh.h (EF_SH2A): New.
-
-2004-07-27  Tomer Levi  <Tomer.Levi@nsc.com>
-
-	* crx.h: Add BFD_RELOC_CRX_SWITCH8, BFD_RELOC_CRX_SWITCH16,
-	BFD_RELOC_CRX_SWITCH32.
-
-2004-07-06  Tomer Levi  <Tomer.Levi@nsc.com>
-
-	* common.h (EM_CRX): Define.
-	* crx.h: New file.
-
-2004-06-25  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
-
-	* m32r.h: Add defintions of R_M32R_GOTOFF_HI_ULO,
-	R_M32R_GOTOFF_HI_SLO and R_M32R_GOTOFF_LO.
-
-2004-06-19  Alan Modra  <amodra@bigpond.net.au>
-
-	* common.h (ELF64_R_INFO): Warning fix.
-
-2004-06-14  Chris Demetriou  <cgd@broadcom.com>
-
-	* mips.h (R_MIPS_PC32): Add back (undoing removal on 2004-04-24),
-	with an updated comment.
-
-2004-05-28  Andrew Stubbs <andrew.stubbs@superh.com>
-
-	* sh.h (EF_SH_HAS_DSP): Remove.
-	(EF_SH_HAS_FP): Remove.
-	(EF_SH_MERGE_MACH): Remove.
-	(EF_SH4_NOFPU): Convert to decimal.
-	(EF_SH4A_NOFPU): Likewise.
-	(EF_SH4_NOMMU_NOFPU): Likewise.
-	(EF_SH3_NOMMU): Add new macro.
-	(EF_SH_BFD_TABLE): Likewise.
-	(sh_find_elf_flags): Add prototype.
-	(sh_elf_get_flags_from_mach): Likewise.
-
-2004-04-24  Chris Demetriou  <cgd@broadcom.com>
-
-	* mips.h (R_MIPS_PC32, R_MIPS_PC64, R_MIPS_GNU_REL_LO16)
-	(R_MIPS_GNU_REL_HI16): Remove.
-	(R_MIPS_GNU_REL16_S2): Update comment.
-
-2004-30-30  Galit Heller  <Galit.Heller@nsc.com>
-	    Tomer Levi  <Tomer.Levi@nsc.com>
-
-	* common.h (EM_CR): Define.
-	* cr16c.h: New file.
-
-2004-03-23  Paul Brook  <paul@codesourcery.com>
-
-	* arm.h (EF_ERM_BE8, EF_ARM_LE8, EF_ARM_EABI_VER3): Add.
-
-2003-03-03  Andrew Stubbs  <andrew.stubbs@superh.com>
-
-	* sh.h: Add EF_SH4_NOMMU_NOFPU.
-
-2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
-
-	* frv.h (EF_FRV_CPU_FR405, EF_FRV_CPU_FR450): Define.
-
-2004-01-28  Roland McGrath  <roland@redhat.com>
-
-	* common.h (AT_SECURE): New macro.
-
-2004-01-21  Roland McGrath  <roland@redhat.com>
-
-	* common.h (AT_SUN_UID, AT_SUN_RUID, AT_SUN_GID): New macros.
-	(AT_SUN_RGID, AT_SUN_LDELF, AT_SUN_LDSHDR, AT_SUN_LDNAME,
-	AT_SUN_LPAGESZ, AT_SUN_PLATFORM, AT_SUN_HWCAP, AT_SUN_IFLUSH,
-	AT_SUN_CPU, AT_SUN_EMUL_ENTRY, AT_SUN_EMUL_EXECFD,
-	AT_SUN_EXECNAME) AT_SUN_MMU, AT_SUN_LDDATA): Likewise.
-
-2004-01-17  Mark Kettenis  <kettenis@gnu.org>
-
-	* common.h (NT_OPENBSD_IDENT): Define.
-
-2004-01-06  Alexandre Oliva  <aoliva@redhat.com>
-
-	2003-09-18  Alexandre Oliva  <aoliva@redhat.com>
-	* frv.h (EF_FRV_FDPIC): New macro.
-	(EF_FRV_PIC_FLAGS): Adjust.
-	2003-08-08  Alexandre Oliva  <aoliva@redhat.com>
-	* frv.h (R_FRV_FUNCDESC_VALUE, R_FRV_FUNCDESC_GOTOFF12,
-	R_FRV_FUNCDESC_GOTOFFLO, R_FRV_FUNCDESC_GOTOFFHI, R_FRV_GOTOFF12,
-	R_FRV_GOTOFFLO, R_FRV_GOTOFFHI): New.
-	2003-08-04  Alexandre Oliva  <aoliva@redhat.com>
-	* frv.h (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO, R_FRV_FUNCDESC,
-	R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI, R_FRV_FUNCDESC_GOTLO):
-	New.
-
-
-For older changes see ChangeLog-9103
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/include/elf/ChangeLog-9103 b/include/elf/ChangeLog-9103
deleted file mode 100644
index 93632ef..0000000
--- a/include/elf/ChangeLog-9103
+++ /dev/null
@@ -1,1948 +0,0 @@
-2005-04-13  H.J. Lu  <hongjiu.lu@intel.com>
-
-	Moved from ../ChangeLog
-
-	2003-10-14  Bob Wilson  <bob.wilson@acm.org>
-	* xtensa.h: Formatting.  Fix comments about property section
-	names for linkonce sections.
-
-	2003-05-23  Jakub Jelinek  <jakub@redhat.com>
-	* common.h (PT_GNU_STACK): Define.
-
-	2003-01-25  Jakub Jelinek  <jakub@redhat.com>
-	* sparc.h: Add TLS relocs.  Move R_SPARC_REV32 to 252.
-
-	2002-09-26  Jakub Jelinek  <jakub@redhat.com>
-	* x86-64.h: Add TLS relocs.
-
-	2002-09-19  Jakub Jelinek  <jakub@redhat.com>
-	* i386.h (R_386_TLS_TPOFF, R_386_TLS_IE, R_386_TLS_GOTIE):
-	Define.
-
-	2002-07-10  Jakub Jelinek  <jakub@redhat.com>
-	* common.h (SHT_GNU_LIBLIST, DT_GNU_PRELINKED,
-	DT_GNU_CONFLICT*, DT_GNU_LIBLIST*): Define.
-
-	2002-05-31  Michal Ludvig  <mludvig@suse.cz>
-	* dwarf2.h (DW_CFA_low_user, DW_CFA_high_user): Renamed
-	to DW_CFA_lo_user, DW_CFA_hi_user respectively.
-
-	2002-05-23  Jakub Jelinek  <jakub@redhat.com>
-	* common.h (PT_TLS, SHF_TLS, STT_TLS, DF_STATIC_TLS): Define.
-	* ia64.h (R_IA64_LTOFF_TPREL22): Renamed from R_IA64_LTOFF_TP22.
-	* i386.h: Add TLS relocs.
-
-2003-12-19  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
-
-	* m32r.h : Added m32r-linux and PIC support.  Add new ABI that
-	uses RELA.
-	(R_M32R_16_RELA, R_M32R_32_RELA, R_M32R_24_RELA,
-	R_M32R_10_PCREL_RELA, R_M32R_18_PCREL_RELA,
-	R_M32R_26_PCREL_RELA, R_M32R_HI16_ULO_RELA,
-	R_M32R_HI16_SLO_RELA, R_M32R_LO16_RELA,
-	R_M32R_SDA16_RELA, R_M32R_RELA_GNU_VTINHERIT,
-	R_M32R_RELA_GNU_VTENTRY, R_M32R_GOT24,
-	R_M32R_26_PLTREL, R_M32R_COPY, R_M32R_GLOB_DAT,
-	R_M32R_JMP_SLOT, R_M32R_RELATIVE, R_M32R_GOTOFF,
-	R_M32R_GOTPC24, R_M32R_GOT16_HI_ULO,
-	R_M32R_GOT16_HI_SLO, R_M32R_GOT16_LO,
-	R_M32R_GOTPC_HI_ULO, R_M32R_GOTPC_HI_SLO,
-	R_M32R_GOTPC_LO): New relocs.
-
-2003-12-06  Alan Modra  <amodra@bigpond.net.au>
-
-	From Jan Beulich <JBeulich@novell.com>
-	* common.h (DT_HIOS): Correct value.
-
-2003-12-03   Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
-
-	* m32r.h: Add new machine type m32r2 and instruction modes.
-
-2003-11-06  Alan Modra  <amodra@bigpond.net.au>
-
-	* ppc.h (R_PPC_RELAX32PC): Define.
-
-2003-10-22  Alexandre Oliva  <aoliva@redhat.com>,
-	    Michael Snyder  <msnyder@redhat.com>
-
-	* sh.h (EF_SH4A, EF_SH4AL_DSP, EF_SH4_NOFPU, EF_SH4A_NOFPU): New.
-	(EF_SH_MERGE_MACH): Combine them.
-
-2003-10-18  Hans-Peter Nilsson  <hp@bitrange.com>
-
-	* mmix.h (R_MMIX_PUSHJ_STUBBABLE): New reloc number.
-	(_bfd_mmix_before_linker_allocation): Rename from
-	_bfd_mmix_prepare_linker_allocated_gregs.
-	(_bfd_mmix_after_linker_allocation): Rename from
-	_bfd_mmix_finalize_linker_allocated_gregs.
-
-2003-10-06  Dave Brolley  <brolley@redhat.com>
-
-	* frv.h (EF_FRV_CPU_FR550): New macro.
-
-2003-09-30  Chris Demetriou  <cgd@broadcom.com>
-
-	* mips.h (E_MIPS_ARCH_64R2): New define.
-
-2003-09-23  DJ Delorie  <dj@redhat.com>
-
-	* sh.h (R_SH_SWITCH8, R_SH_GNU_VTINHERIT, R_SH_GNU_VTENTRY,
-	R_SH_LOOP_START,R_SH_LOOP_END): Move to "reserved" spaces.
-	(R_SH_DIR16, R_SH_DIR8, R_SH_DIR8UL, R_SH_DIR8UW, R_SH_DIR8U,
-	R_SH_DIR8SW, R_SH_DIR8S, R_SH_DIR4UL, R_SH_DIR4UW, R_SH_DIR4U,
-	R_SH_PSHA, R_SH_PSHL): New.
-
-2003-09-11  James Cownie <jcownie@etnus.com>
-
-	* dwarf2.h: Add HP dwarf extensions from their hacked gdb
-	header files (ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz).
-
-2003-09-04  Nick Clifton  <nickc@redhat.com>
-
-	* v850.h (E_V850E1_ARCH): Define.
-
-2003-08-21  James Cownie <jcownie@etnus.com>
-
-	* dwarf2.h: Add PGI dwarf extensions.
-
-2003-08-08 Dmitry Diky <diwil@mail.ru>
-
-	* msp430.h: Add xW42 and xE42 parts. Sort MPU list according to
-	gcc order.
-
-2003-08-07  Alan Modra  <amodra@bigpond.net.au>
-
-	* reloc-macros.h (START_RELOC_NUMBERS) : Remove PARAMS macro.  Use
-	C90 function definition.  Formatting.
-	(RELOC_NUMBER): Remove !__STDC__ code.
-
-2003-07-28  Eric Christopher  <echristo@redhat.com>
-
-	* ppc.h (R_PPC_RELAX32): New. Fake relocation.
-
-2003-07-25  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* v850.h (SHF_V850_GPREL): New.
-	(SHF_V850_EPREL): Likewise.
-	(SHF_V850_R0REL): Likewise.
-
-2003-07-09  Alexandre Oliva  <aoliva@redhat.com>
-
-	2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
-	* mn10300.h: Introduce GOTPC16, GOTOFF24, GOTOFF16 and
-	PLT16, and rename GOTPC to GOTPC32 and GOTOFF to GOTOFF32.
-	Renumbered all relocs.
-	2001-04-12  Alexandre Oliva  <aoliva@redhat.com>
-	* mn10300.h (R_MN10300_GOTPC, R_MN10300_GOTOFF,
-	R_MN10300_PLT32, R_MN10300_GOT32, R_MN10300_GOT24,
-	R_MN10300_GOT16, R_MN10300_COPY, R_MN10300_GLOB_DAT,
-	R_MN10300_JMP_SLOT, R_MN10300_RELATIVE): New relocs.
-
-2003-07-09  Alexandre Oliva  <aoliva@redhat.com>
-
-	2000-04-01  Alexandre Oliva  <aoliva@cygnus.com>
-	* mn10300.h (E_MN10300_MACH_AM33_2): Renamed from
-	E_MN10300_MACH_AM332.
-	2000-03-31  Alexandre Oliva  <aoliva@cygnus.com>
-	* mn10300.h (E_MN10300_MACH_AM332): Defined.
-
-2003-07-01  Martin Schwidefsky  <schwidefsky@de.ibm.com>
-
-	* s390.h (elf_s390_reloc_type): Add long displacement relocations
-	R_390_20, R_390_GOT20, R_390_GOTPLT20 and R_390_TLS_GOTIE20.
-
-2003-06-29  Andreas Jaeger  <aj@suse.de>
-
-	* mmix.h: Convert to ISO C90 prototypes.
-	* mips.h: Likewise.
-
-2003-06-13  Robert Millan <zeratul2@wanadoo.es>
-
-	* common.h (GNU_ABI_TAG_NETBSD): New tag.
-	(GNU_ABI_TAG_FREEBSD): New tag.
-
-2003-06-10  Richard Sandiford  <rsandifo@redhat.com>
-
-	* h8.h (E_H8_MACH_H8300SXN): New flag.
-
-2003-06-03  Nick Clifton  <nickc@redhat.com>
-
-	* v850.h (R_V850_32): Rename to R_V850_ABS32.
-	Add R_V850_REL32.
-
-2003-05-15  Roland McGrath  <roland@redhat.com>
-
-	* common.h (NT_AUXV, AT_*): New macros.
-	* external.h (Elf32_External_Auxv, Elf64_External_Auxv): New types.
-	* internal.h (Elf_Internal_Auxv): New type.
-
-2003-05-14  Michael Snyder  <msnyder@redhat.com>
-	From  Bernd Schmidt  <bernds@redhat.com>
-	* h8.h (E_H8_MACH_H8300SX): New.
-
-2003-04-24 Dhananjay Deshpande <dhananjayd@kpitcummins.com>
-
-	* h8.h (E_H8_MACH_H8300HN, E_H8_MACH_H8300SN): New
-
-2003-04-23  J"orn Rennecke <joern.rennecke@superh.com>
-
-	* common.h (EM_SH): Amend comment to refer to SuperH.
-
-2003-04-22  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
-
-	* common.h: Replace references to Mitsubishi M32R with
-	references to Renesas M32R.
-
-2003-04-15  Rohit Kumar Srivastava <rohits@kpitcummins.com>
-
-	* common.h: Replace occurrances of 'Hitachi' with 'Renesas'.
-
-2003-04-01  Bob Wilson  <bob.wilson@acm.org>
-
-	* common.h (EM_XTENSA_OLD): Define.
-	* xtensa.h: New file.
-
-2003-04-01  Nick Clifton  <nickc@redhat.com>
-
-	* arm.h (ARM_NOTE_SECTION): Include .gnu in the string.
-
-2003-03-25  Stan Cox   <scox@redhat.com>
-	    Nick Clifton  <nickc@redhat.com>
-
-	Contribute support for Intel's iWMMXt chip - an	ARM variant:
-
-	* arm.h (ARM_NOTE_SECTION): Define.
-
-2003-03-03  J"orn Rennecke <joern.rennecke@superh.com>
-
-	* sh.h (EF_SH_MERGE_MACH): Make sure SH2E & SH3/SH3E merge to SH3E,
-	and SH2E & SH4 merge to SH4, not SH2E.
-
-2003-02-21  Ian Wienand  <ianw@gelato.unsw.edu.au>
-
-	* ia64.h (SHT_IA_64_LOPSREG, SHT_IA_64_HIPSREG,
-	SHT_IA_64_PRIORITY_INIT): Define.
-
-2003-02-18  Alan Modra  <amodra@bigpond.net.au>
-
-	* ppc64.h (IS_PPC64_TLS_RELOC): Rename from IS_TLS_RELOC.
-
-	* ppc.h: Replace DTPMOD64, TPREL64, DTPREL64 with DTPMOD32 etc.
-	(IS_PPC_TLS_RELOC): Define.
-
-2003-02-10  Nick Clifton  <nickc@redhat.com>
-
-	* arm.h (EF_ARM_MAVERICK_FLOAT): Define.
-
-2003-02-05  Alan Modra  <amodra@bigpond.net.au>
-
-	* ppc.h: Add TLS relocs.  Format.
-	* ppc64.h: Likewise.
-
-2003-01-27  Alexandre Oliva  <aoliva@redhat.com>
-
-	* mips.h (EF_MIPS_XGOT): Define.
-
-2003-01-24  Martin Schwidefsky  <schwidefsky@de.ibm.com>
-
-	* s390.h: Add s390 TLS relocations.
-
-2003-01-23  Nick Clifton  <nickc@redhat.com>
-
-	* Add sh2e support:
-
-	2002-04-02  Alexandre Oliva  <aoliva@redhat.com>
-
-		* sh.h (EF_SH_MERGE_MACH): Handle SH2E.
-
-	2002-04-02  Elena Zannoni  <ezannoni@redhat.com>
-
-		* sh.h (EF_SH2E): New.
-
-2003-01-23  Alan Modra  <amodra@bigpond.net.au>
-
-	* sh.h: Split out various bits to bfd/elf32-sh64.h.
-
-2003-01-20  Martin Schwidefsky  <schwidefsky@de.ibm.com>
-
-	* s390.h: Rename R_390_GOTOFF to R_390_GOTOFF32. Add new gotoff,
-	gotplt and pltoff relocations.
-
-2003-01-17  Alan Modra  <amodra@bigpond.net.au>
-
-	* common.h: Formatting, typo fixes.
-	(DT_ENCODING): Correct value.
-
-2003-01-17  Fabio Alemagna  <falemagn@aros.org>
-
-	* common.h (ELFOSABI_AROS): Define.
-	(ELFOSABI_OPENVMS): Likewise.
-	(ELFOSABI_NSK): Likewise.
-
-2003-01-16  Alan Modra  <amodra@bigpond.net.au>
-
-	* ppc.h: Split out ppc64 definitions to..
-	* pcc64.h: ..here.  New file.
-	(R_PPC64_REL30): Rename from R_PPC64_ADDR30.
-
-2003-01-13 Dmitry Diky <diwil@mail.ru>
-
-	* elf/common.h (EM_MSP430): Change e_machine value to officially
-	assigned.
-
-2003-01-02  Ben Elliston  <bje@redhat.com>
-
-	* common.h (EM_IQ2000): Define.
-	* iq2000.h: New file.
-
-2002-12-30  Chris Demetriou  <cgd@broadcom.com>
-
-	* mips.h (E_MIPS_ARCH_32R2): New define.
-
-2002-12-24    Dmitry Diky <diwil@mail.ru>
-
-	* common.h: Define msp430 machine numbers.
-	* msp430.h: New file.  Define msp430 relocs.
-
-2002-12-20  DJ Delorie  <dj@redhat.com>
-
-	* xstormy16.h: Add XSTORMY16_12.
-
-2002-12-16  Andrew MacLeod  <amacleod@redhat.com>
-
-	* xstormy16.h (START_RELOC_NUMBERS) Add relocation numbers
-	for R_XSTORMY16_LO16 and R_XSTORMY16_HI16.
-
-2002-12-10  James Cownie <jcownie@etnus.com>
-
-	* dwarf2.h (DW_TAG_upc_shared_type, DW_TAG_upc_strict_type,
-	DW_TAG_upc_relaxed_type, DW_AT_upc_threads_scaled, DW_LANG_Upc):
-	Define.
-
-2002-12-01  Stephane Carrez  <stcarrez@nerim.fr>
-
-	* m68hc11.h (EF_M68HC12_MACH, EF_M68HCS12_MACH): Define.
-	(EF_M68HC11_MACH_MASK, EF_M68HC11_MACH): Define.
-	(EF_M68HC11_MERGE_MACH, EF_M68HC11_CAN_MERGE_MACH): Define.
-
-2002-11-30  Alan Modra  <amodra@bigpond.net.au>
-
-	* mmix.h: Replace boolean with bfd_boolean.
-	* sh.h: Likewise.
-
-2002-11-28  Alan Modra  <amodra@bigpond.net.au>
-
-	* internal.h (elf32_internal_ehdr, Elf32_Internal_Ehdr,
-	elf64_internal_ehdr, Elf64_Internal_Ehdr, elf32_internal_phdr,
-	Elf32_Internal_Phdr, elf64_internal_phdr, Elf64_Internal_Phdr,
-	elf32_internal_shdr, Elf32_Internal_Shdr, elf64_internal_shdr,
-	Elf64_Internal_Shdr, elf32_internal_sym, elf64_internal_sym,
-	Elf32_Internal_Sym, Elf64_Internal_Sym, Elf32_Internal_Note,
-	elf32_internal_note, elf32_internal_rel, Elf32_Internal_Rel,
-	elf64_internal_rel, Elf64_Internal_Rel, elf32_internal_rela,
-	elf64_internal_rela, Elf32_Internal_Rela, Elf64_Internal_Rela,
-	elf32_internal_dyn, elf64_internal_dyn, Elf32_Internal_Dyn,
-	Elf64_Internal_Dyn, elf32_internal_verdef, elf64_internal_verdef,
-	elf32_internal_verdaux, elf64_internal_verdaux, elf32_internal_verneed,
-	elf64_internal_verneed, elf32_internal_vernaux, elf64_internal_vernaux,
-	elf32_internal_versym, elf64_internal_versym, Elf32_Internal_Verdef,
-	Elf64_Internal_Verdef, Elf32_Internal_Verdaux, Elf64_Internal_Verdaux,
-	Elf32_Internal_Verneed, Elf64_Internal_Verneed, Elf32_Internal_Vernaux,
-	Elf64_Internal_Vernaux, Elf32_Internal_Versym, Elf64_Internal_Versym,
-	Elf32_Internal_Syminfo, Elf64_Internal_Syminfo): Delete.
-	(Elf_Internal_Rel): Delete.
-
-2002-10-11  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sh.h: Add SH TLS relocs.
-
-2002-09-30  Gavin Romig-Koch  <gavin@redhat.com>
-	    Ken Raeburn  <raeburn@cygnus.com>
-	    Aldy Hernandez  <aldyh@redhat.com>
-	    Eric Christopher  <echristo@redhat.com>
-	    Richard Sandiford  <rsandifo@redhat.com>
-
-	* mips.h (E_MIPS_MACH_4120, E_MIPS_MACH_5400, E_MIPS_MACH_5500): New.
-
-2002-09-12  Roland McGrath  <roland@redhat.com>
-
-	* dwarf2.h: Updates from GCC version of thie file:
-	(enum dwarf_location_atom): DW_OP_calli -> DW_OP_call_ref.
-	Add DW_OP_GNU_push_tls_address.
-	(DW_OP_lo_user): Change to 0xe0.
-
-2002-08-28  Catherine Moore  <clm@redhat.com>
-
-	* v850.h (R_V850_LONGCALL, R_V850_ALIGN,
-	R_V850_LONGJUMP): New relocations.
-
-2002-08-15  Alan Modra  <amodra@bigpond.net.au>
-
-	* i370.h: Define relocs using reloc-macros.h.
-
-2002-08-13  Stephane Carrez  <stcarrez@nerim.fr>
-
-	* m68hc11.h (E_M68HC12_BANKS, E_M68HC11_I32, E_M68HC11_F64,
-	EF_M68HC11_ABI): Define for ABI specification.
-	(STO_M68HC12_FAR, STO_M68HC12_INTERRUPT): Symbol flags for
-	linker and debugger.
-	(R_M68HC11_24, R_M68HC11_LO16, R_M68HC11_PAGE): New relocs.
-	(R_M68HC11_RL_JUMP, R_M68HC11_RL_GROUP): New reloc for linker
-	relaxation.
-
-2002-07-15  Denis Chertykov  <denisc@overta.ru>
-	    Frank Ch. Eigler  <fche@redhat.com>
-	    Ben Elliston  <bje@redhat.com>
-	    Alan Lehotsky  <alehotsky@cygnus.com>
-	    John Healy  <jhealy@redhat.com>
-	    Graham Stott  <grahams@redhat.com>
-	    Jeff Johnston  <jjohnstn@redhat.com>
-
-	* common.h (EM_IP2K): New macro.
-	(EM_IP2K_OLD): New macro.
-	* ip2k.h: New file.
-
-2002-07-01  Matt Thomas  <matt@3am-software.com>
-
-	* vax.h: Rename EF_* to EF_VAX_*.
-
-2002-06-18  Dave Brolley  <brolley@redhat.com>
-
-	From Catherine Moore, Michael Meissner, Dave Brolley:
-	* common.h (EM_CYGNUS_FRV): New macro.
-	* frv.h: New file.
-
-2002-06-06  Lars Brinkhoff  <lars@nocrew.org>
-
-	* common.h: Change registry@sco.com to registry@caldera.com.
-	(EM_PDP10, EM_PDP11): Define.
-
-2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
-
-	* sh.h (_bfd_sh64_crange_qsort_cmpb, _bfd_sh64_crange_qsort_cmpl)
-	(_bfd_sh64_crange_bsearch_cmpb, _bfd_sh64_crange_bsearch_cmpl): New
-	prototypes.
-
-2002-06-01  Richard Henderson  <rth@redhat.com>
-
-	* alpha.h (LITUSE_ALPHA_ADDR, LITUSE_ALPHA_BASE, LITUSE_ALPHA_BYTOFF,
-	LITUSE_ALPHA_JSR, LITUSE_ALPHA_TLSGD, LITUSE_ALPHA_TLSLDM): New.
-
-2002-05-30  Richard Henderson  <rth@redhat.com>
-
-	* alpha.h (R_ALPHA_TLSGD, R_ALPHA_TLSLDM, R_ALPHA_DTPMOD64,
-	R_ALPHA_GOTDTPREL, R_ALPHA_DTPREL64, R_ALPHA_DTPRELHI,
-	R_ALPHA_DTPRELLO, R_ALPHA_DTPREL16, R_ALPHA_GOTTPREL, R_ALPHA_TPREL64,
-	R_ALPHA_TPRELHI, R_ALPHA_TPRELLO, R_ALPHA_TPREL16): New.
-
-2002-05-29  Matt Thomas  <matt@3am-software.com>
-
-	* vax.h: New file
-
-2002-05-28  Kuang Hwa Lin <kuang@sbcglobal.net>
-
-	* common.h (EM_DLX): Define.
-	* dlx.h: New file.
-
-2002-05-08  Jason Thorpe  <thorpej@wasabisystems.com>
-
-	* common.h (NT_GNU_ABI_TAG): Define.
-	(GNU_ABI_TAG_LINUX): Define.
-	(GNU_ABI_TAG_HURD): Define.
-	(GNU_ABI_TAG_SOLARIS): Define.
-	(NT_NETBSD_IDENT): Define.
-	(NT_FREEBSD_ABI_TAG): Define.
-
-2002-04-24  Elena Zannoni  <ezannoni@redhat.com>
-
-	* dwarf2.h: Add DW_AT_GNU_vector.
-
-2002-02-13  Matt Fredette  <fredette@netbsd.org>
-
-	* m68k.h (EF_M68000): Define.
-
-2002-02-12  Alan Modra  <amodra@bigpond.net.au>
-
-	* ppc.h (DT_PPC64_OPD, DT_PPC64_OPDSZ): Define.
-
-2002-02-09  Richard Henderson  <rth@redhat.com>
-
-	* alpha.h (R_ALPHA_BRSGP): New.
-
-2002-02-08  Alexandre Oliva  <aoliva@redhat.com>
-
-	Contribute sh64-elf.
-	2002-01-23  Alexandre Oliva  <aoliva@redhat.com>
-	* sh.h (R_SH_GOTPLT32, R_SH_GOT_LOW16, R_SH_GOT_MEDLOW16,
-	R_SH_GOT_MEDHI16, R_SH_GOT_HI16, R_SH_GOTPLT_LOW16,
-	R_SH_GOTPLT_MEDLOW16, R_SH_GOTPLT_MEDHI16, R_SH_GOTPLT_HI16,
-	R_SH_PLT_LOW16, R_SH_PLT_MEDLOW16, R_SH_PLT_MEDHI16,
-	R_SH_PLT_HI16, R_SH_GOTOFF_LOW16, R_SH_GOTOFF_MEDLOW16,
-	R_SH_GOTOFF_MEDHI16, R_SH_GOTOFF_HI16, R_SH_GOTPC_LOW16,
-	R_SH_GOTPC_MEDLOW16, R_SH_GOTPC_MEDHI16, R_SH_GOTPC_HI16,
-	R_SH_GOT10BY4, R_SH_GOTPLT10BY4, R_SH_GOT10BY8,
-	R_SH_GOTPLT10BY8, R_SH_COPY64, R_SH_GLOB_DAT64, R_SH_JMP_SLOT64,
-	R_SH_RELATIVE64): New relocs.
-	(R_SH_FIRST_INVALID_RELOC_4): Adjust.
-	2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
-	* sh.h: Renumbered and renamed some SH5 relocations to match
-	official numbers and names; moved unmaching ones to the range
-	0xf2-0xff.
-	2001-01-06  Hans-Peter Nilsson  <hpn@cygnus.com>
-	* sh.h (sh64_get_contents_type): Declare.
-	(sh64_address_is_shmedia): Likewise.
-	2000-12-30  Hans-Peter Nilsson  <hpn@cygnus.com>
-	* sh.h (sh64_elf_crange): New type.
-	(struct sh64_section_data): New.
-	(sh64_elf_section_data): New macro.
-	(EF_SH5): Rename back from EF_SH64.
-	2000-12-18  Hans-Peter Nilsson  <hpn@cygnus.com>
-	* sh.h (SHF_SH5_ISA32_MIXED, SHT_SH5_CR_SORTED,
-	SH64_CRANGES_SECTION_NAME, SH64_CRANGE_SIZE,
-	SH64_CRANGE_CR_ADDR_OFFSET, SH64_CRANGE_CR_SIZE_OFFSET,
-	SH64_CRANGE_CR_TYPE_OFFSET): New macros.
-	2000-12-12  Hans-Peter Nilsson  <hpn@cygnus.com>
-	* sh.h (EF_SH64): Don't define EF_SH64_ABI64.
-	2000-11-27  Hans-Peter Nilsson  <hpn@cygnus.com>
-	* sh.h (EF_SH64_32BIT_ABI, EF_SH64_64BIT_ABI): Delete.
-	(EF_SH64_ABI64): New.
-	2000-11-23  Hans-Peter Nilsson  <hpn@cygnus.com>
-	* sh.h (EF_SH64): Rename from EF_SH5.
-	(EF_SH64_32BIT_ABI): New.
-	(EF_SH64_64BIT_ABI): New.
-	(R_SH_PT_16, R_SH_SHMEDIA_CODE
-	R_SH_IMMU5, R_SH_IMMS6, R_SH_IMMU6, R_SH_IMMS10, R_SH_IMMS10BY2,
-	R_SH_IMMS10BY4, R_SH_IMMS10BY8, R_SH_IMMS16, R_SH_IMMU16,
-	R_SH_IMM_LOW16, R_SH_IMM_LOW16_PCREL, R_SH_IMM_MEDLOW16,
-	R_SH_IMM_MEDLOW16_PCREL, R_SH_IMM_MEDHI16, R_SH_IMM_MEDHI16_PCREL,
-	R_SH_IMM_HI16, R_SH_IMM_HI16_PCREL, R_SH_64, R_SH_64_PCREL): New
-	relocs.
-	2000-09-01  Ben Elliston  <bje@redhat.com>
-	* sh.h (EF_SH5): Define.
-
-2002-02-01  Hans-Peter Nilsson  <hp@bitrange.com>
-
-	* mmix.h: Tweak comments.
-	(MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME): New.
-	[BFD_ARCH_SIZE] (_bfd_mmix_prepare_linker_allocated_gregs,
-	_bfd_mmix_finalize_linker_allocated_gregs,
-	_bfd_mmix_check_all_relocs): Provide prototypes.
-
-2002-01-31  Ivan Guzvinec  <ivang@opencores.org>
-
-	* or32.h: New file.
-	* common.h: Add support for or32 targets.
-
-2002-01-28  Jason Merrill  <jason@redhat.com>
-
-	* dwarf2.h: Sync with gcc version.
-
-2002-01-16  Alan Modra  <amodra@bigpond.net.au>
-
-	* ppc.h (DT_PPC64_GLINK): Define.
-
-2002-01-15  Richard Earnshaw  <rearnsha@arm.com>
-
-	* arm.h (F_VFP_FLOAT, EF_ARM_VFP_FLOAT): Define.
-
-2002-01-09  Jason Thorpe  <thorpej@wasabisystems.com>
-
-	* common.h: Update copyright years.
-	(NT_NETBSDCORE_PROCINFO): Define.
-	(NT_NETBSDCORE_FIRSTMACH): Define.
-
-2002-01-06  Steve Ellcey  <sje@cup.hp.com>
-
-	* ia64.h (ELF_STRING_ia64_unwind_hdr): New Macro for HP-UX.
-	(SHT_IA_64_HP_OPT_ANOT): Ditto
-	(PT_IA_64_HP_OPT_ANOT): Ditto
-	(PT_IA_64_HP_HSL_ANOT): Ditto
-	(PT_IA_64_HP_STACK): Ditto
-	(SHN_IA_64_ANSI_COMMON): Ditto
-
-2001-12-17  Alan Modra  <amodra@bigpond.net.au>
-
-	* external.h (Elf_External_Sym_Shndx): Declare.
-	* internal.h (struct elf_internal_sym <st_shndx>): Make it an
-	unsigned int.
-	* common.h (SHN_BAD): Define.
-
-2001-12-13  Jakub Jelinek  <jakub@redhat.com>
-
-	* common.h (PT_GNU_EH_FRAME): Define.
-
-2001-12-11  Alan Modra  <amodra@bigpond.net.au>
-
-	* common.h (SHN_XINDEX): Comment typo fix.
-	* internal.h (Elf_Internal_Ehdr): Change existing "unsigned short"
-	size, count and index fields to "unsigned int".
-
-2001-12-07  Geoffrey Keating  <geoffk@redhat.com>
-	    Richard Henderson  <rth@redhat.com>
-
-	* common.h (EM_XSTORMY16): Define.
-	* xstormy16.h: New file.
-
-2001-11-15  Alan Modra  <amodra@bigpond.net.au>
-
-	* common.h (NT_ARCH): Define.  Remove incorrect comment.
-
-2001-11-11  Geoffrey Keating  <geoffk@redhat.com>
-
-	* dwarf2.h (dwarf_line_number_ops): Add DWARF 3 opcodes.
-
-2001-10-30  Hans-Peter Nilsson  <hp@bitrange.com>
-
-	* mmix.h: New file.
-
-2001-10-23  Alan Modra  <amodra@bigpond.net.au>
-
-	* internal.h: White space changes to keep lines under 80 chars.
-
-2001-10-16  Jeff Holcomb  <jeffh@redhat.com>
-
-	* internal.h (elf_internal_shdr): Make contents a unsigned char *.
-
-2001-09-18  Alan Modra  <amodra@bigpond.net.au>
-
-	* internal.h (elf_internal_rela): Make r_addend a bfd_vma.
-
-2001-09-13  Alexandre Oliva  <aoliva@redhat.com>
-
-	* common.h (EM_OPENRISC_OLD): Renamed the old EM_OPENRISC entry.
-
-2001-09-12  Alexandre Oliva  <aoliva@redhat.com>
-
-	* common.h (EM_AVR_OLD): Renamed from...
-	(EM_AVR): this, redefined as in the current ELF standard.
-	(EM_PJ_OLD): Renamed from...
-	(EM_PJ): this, redefined as in the current ELF standard.
-	(EM_R30, EM_D10V, EM_D30V, EM_V850, EM_M32R, EM_MN10300,
-	EM_MN10200, EM_OPENRISC, EM_ARC_A5, EM_XTENSA): Defined as in
-	the current ELF standard.
-	(EM_CYGNUS_ARC): Removed, unused for a long time.
-
-2001-09-04  Richard Henderson  <rth@redhat.com>
-
-	* alpha.h (R_ALPHA_OP*, R_ALPHA_IMMED*, R_ALPHA_GPVALUE): Remove.
-	(R_ALPHA_GPREL16): Rename from R_ALPHA_IMMED_GP_16.
-
-2001-08-30  Eric Christopher  <echristo@redhat.com>
-
-	* mips.h: Remove E_MIPS_MACH_MIPS32_4K.
-
-2001-08-29  Jeff Law <law@redhat.com>
-
-	* h8.h (EF_H8_MACH): New mask for encoded machine type.
-	(E_H8_MACH_H8300, E_H8_MACH_H8300H, E_H8_MACH_H8300S): New
-	machine types.
-
-2001-08-26  J"orn Rennecke <amylaar@redhat.com>
-
-	* h8.h: New file.
-
-2001-08-27  Staffan Ulfberg  <staffanu@swox.se>
-
-	* ppc.h: Add relocs from the 64-bit PowerPC ELF ABI revision 1.2.
-
-2001-06-30  Daniel Berlin  <dan@cgsoftware.com>
-
-	* dwarf2.h: Remerge with gcc version,
-	including all new DWARF 2.1 extensions.
-
-2001-06-29  James Cownie <jcownie@etnus.com>
-
-	* dwarf2.h: Add DWARF 2.1 attribues.
-
-2001-06-15  Per Bothner  <per@bothner.com>
-
-	* dwarf2.h:  Partial merge with gcc version.
-	(enum dwarf_descrim_list):  Fix typo -> dwarf_discrim_list.
-	(DW_LANG_Java):  Use value from dwarf 2.1 draft (also used in gcc).
-
-2001-05-15  Ralf Baechle  <ralf@gnu.org>
-
-	* common.h: Remove definition of EM_MIPS_RS4_BE.  The constant was
-	never in active use and is used otherwise by the ABI.
-
-2001-05-11  Jakub Jelinek  <jakub@redhat.com>
-
-	* ia64.h (ELF_STRING_ia64_unwind_once): Define.
-	(ELF_STRING_ia64_unwind_info_once): Define.
-
-2001-05-07  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
-	* external.h: Fix typo.
-	* mips.h: Add/Extend many comments with reference to the MIPS ELF64
-	spec v. 2.4, available at e.g.
-	ftp://oss.sgi.com/pub/linux/mips/doc/ABI/ELF64.ps.
-	(EF_MIPS_UCODE): Define.
-	(EF_MIPS_OPTIONS_FIRST): Define.
-	(EF_MIPS_ARCH_ASE): Define.
-	(EF_MIPS_ARCH_ASE_MDMX): Define.
-	(EF_MIPS_ARCH_ASE_M16): Define.
-	(SHF_MIPS_ADDR): Renamed SHF_MIPS_ADDR32.
-	(SHF_MIPS_STRING): Renamed SHF_MIPS_ADDR64.
-	(SHF_MIPS_NODUPES): Define.
-	(ELF64_MIPS_R_SSYM): New MIPS ELF 64 relocation info access macro.
-	(ELF64_MIPS_R_TYPE3): Likewise.
-	(ELF64_MIPS_R_TYPE2): Likewise.
-	(ELF64_MIPS_R_TYPE): Likewise.
-	(OHW_R10KLDL): Define.
-
-2001-04-24  Todd Fries  <todd@fries.net>
-
-	* sparc.h: Fix typo.
-
-2001-04-20  Johan Rydberg  <jrydberg@opencores.org>
-
-	* openrisc.h: New file.
-	* common.h (EM_OPENRISC): New constant.
-
-2001-04-23  Bo Thorsen  <bo@suse.de>
-
-	* x86-64.h: Add vtable support.
-
-2001-03-23  Nick Clifton  <nickc@redhat.com>
-
-	* mips.h: Remove extraneous whitespace.
-
-2001-03-22  Hans-Peter Nilsson  <hp@axis.com>
-
-	* cris.h: Add leading comment about PC-relative location.
-	(R_CRIS_COPY, R_CRIS_GLOB_DAT, R_CRIS_JUMP_SLOT, R_CRIS_RELATIVE,
-	R_CRIS_16_GOT, R_CRIS_32_GOT, R_CRIS_16_GOTPLT, R_CRIS_32_GOTPLT,
-	R_CRIS_32_GOTREL, R_CRIS_32_PLT_GOTREL, R_CRIS_32_PLT_PCREL):
-	New relocs.
-
-2001-02-27  Philip Blundell  <pb@futuretv.com>
-
-	* arm.h: Add new definitions from ARM document SWS ESPC 0003 B-01.
-	(EF_PIC, et al.): Rename to EF_ARM_xx.
-
-2001-02-09  Martin Schwidefsky  <schwidefsky@de.ibm.com>
-
-	* common.h: Add linux target for S/390.
-	* s390.h: New file.
-
-2001-01-11  Peter Targett  <peter.targett@arccores.com>
-
-	* arc.h (E_ARC_MACH_ARC5, E_ARC_MACH_ARC6, E_ARC_MACH_ARC7,
-	E_ARC_MACH_ARC8): New definitions for cpu types.
-
-	* common.h (EM_ARC): Change comment.
-
-2000-12-12  Nick Clifton  <nickc@redhat.com>
-
-	* mips.h: Fix formatting.
-
-2000-12-11  Jeffrey A Law  (law@cygnus.com)
-
-	* hppa.h (DT_HP_*): Define relative to OLD_DT_LOOS for hpux
-	compatibility.
-
-2000-10-16  Chris Demetriou  <cgd@sibyte.com>
-
-	* mips.h (E_MIPS_ARCH_32): New constant.
-	(E_MIPS_MACH_MIPS32, E_MIPS_MACH_MIPS32_4K): Replace the
-	former with the latter.
-
-	* mips.h (E_MIPS_ARCH_5, E_MIPS_ARCH_64): New definitions.
-
-	* mips.h (E_MIPS_MACH_SB1): New constant.
-
-2000-11-30  Jan Hubicka  <jh@suse.cz>
-
-	* common.h (EM_X86_64): New macro.
-	* x86-64.h: New file.
-
-2000-11-27  Hans-Peter Nilsson  <hp@axis.com>
-
-	* common.h (e_machine numbers): Clarify comments to describe how
-	EM_* constants are assigned.  Move EM_PJ from official section to
-	ad-hoc section.
-	(EM_CRIS): Correct comment to match official description.
-	(EM_MMIX): Ditto.
-
-2000-11-22  Nick Clifton  <nickc@redhat.com>
-
-	* common.h (EM_JAVELIN): New machine number.
-	(EM_FIREPATH): New machine number.
-	(EM_ZSP): New machine number.
-	(EM_MMIX): New machine number.
-	(EM_HUANY): New machine number.
-	(EM_PRISM): New machine number.
-	(SHT_GROUP): New section type.
-	(SHT_SYMTAB_SHNDX): New section type.
-	(SHF_GROUP): New section flag.
-	(SHN_XINDEX): New section index.
-	(GRP_COMDAT): New section group flag.
-
-2000-11-20  H.J. Lu  <hjl@gnu.org>
-
-	* common.h (ELFOSABI_MONTEREY): Renamed to ...
-	(ELFOSABI_AIX): This.
-
-2000-11-16  Richard Henderson  <rth@redhat.com>
-
-	Update relocations per August psABI docs.
-	* ia64.h (R_IA64_SEGBASE): Remove.
-	(R_IA64_LTV*): Renumber to 0x74 to 0x77.
-	(R_IA64_EPLTMSB, R_IA64_EPLTLSB): Remove.
-	(R_IA64_TPREL14, R_IA64_TPREL64I): New.
-	(R_IA64_DTPMOD*): New.
-	(R_IA64_DTPREL*): New.
-
-2000-09-29  Hans-Peter Nilsson  <hp@axis.com>
-
-	* cris.h (EF_CRIS_UNDERSCORE): New.
-
-2000-09-27  Alan Modra  <alan@linuxcare.com.au>
-
-	* hppa.h (R_PARISC_DIR14F): Add.
-
-2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
-
-	* sh.h (R_SH_GOT32, R_SH_PLT32, R_SH_COPY, R_SH_GLOB_DAT,
-	R_SH_JMP_SLOT, R_SH_RELATIVE, R_SH_GOTOFF, R_SH_GOTPC): Change
-	numbers to the range from 160 to 167.
-	(R_SH_FIRST_INVALID_RELOC): Adjust.
-	(R_SH_FIRST_INVALID_RELOC_2, R_SH_LAST_INVALID_RELOC_2):
-	New relocs to fill in the gap.
-
-2000-09-13  Anders Norlander  <anorland@acc.umu.se>
-
-	* mips.h (E_MIPS_MACH_4K): New define.
-
-2000-09-05  Alan Modra  <alan@linuxcare.com.au>
-
-	* hppa.h: Fix a comment.
-	(R_PARISC_PCREL12F): Define.
-	(R_PARISC_GNU_VTENTRY): Define.
-	(R_PARISC_GNU_VTINHERIT): Define.
-
-2000-09-01  Alexandre Oliva  <aoliva@redhat.com>
-
-	* sh.h (R_SH_GOT32, R_SH_PLT32, R_SH_COPY, R_SH_GLOB_DAT,
-	R_SH_JMP_SLOT, R_SH_RELATIVE, R_SH_GOTOFF, R_SH_GOTPC): New relocs.
-	(R_SH_FIRST_INVALID_RELOC): Adjust.
-
-2000-08-14  Jim Wilson  <wilson@cygnus.com>
-
-	* ia64.h (EF_IA_64_REDUCEDFP, EF_IA_64_CONS_GP,
-	EF_IA_64_NOFUNCDESC_CONS_GP, EF_IA_64_ABSOLUTE): Define.
-
-2000-08-07  Nick Clifton  <nickc@cygnus.com>
-
-	* ppc.h: Remove spurious CYGNUS LOCAL comments.
-	* v850.h: Likewise.
-
-2000-07-22  Jason Eckhardt  <jle@cygnus.com>
-
-	* i860.h: New file.
-	(elf_i860_reloc_type): Defined ELF32 i860 relocations.
-
-2000-07-20  Hans-Peter Nilsson  <hp@axis.com>
-
-	common.h (EM_CRIS): New machine number.
-	cris.h: New file.
-
-2000-07-19  H.J. Lu  <hjl@gnu.org>
-
-	* common.h (DF_1_NODEFLIB): Renamed from DF_1_NODEPLIB.
-
-2000-07-19  H.J. Lu  <hjl@gnu.org>
-
-	* common.h (DT_CHECKSUM): Set to 0x6ffffdf8.
-	(DTF_1_CONFEXP): It is 0x00000002 as suspected.
-
-2000-07-19  H.J. Lu  <hjl@gnu.org>
-
-	* common.h (DT_FEATURE): Renamed from DT_FEATURE_1.
-	(DT_CONFIG): New. From Solaris 8.
-	(DT_DEPAUDIT): Likewise.
-	(DT_AUDIT): Likewise.
-	(DT_PLTPAD): Likewise.
-	(DT_MOVETAB): Likewise.
-	(DF_1_NODEPLIB): Likewise.
-	(DF_1_NODUMP): Likewise.
-	(DF_1_CONLFAT): Likewise.
-	(DT_CHECKSUM): Likewise. FIXME. Check the value on Solaris 8.
-	(DTF_1_CONFEXP): Likewise.
-
-2000-07-18  H.J. Lu  <hjl@gnu.org>
-
-	* common.h (DT_FLAGS_1): Renamed from DT_1_FLAGS.
-
-2000-07-12  Alan Modra  <alan@linuxcare.com.au>
-
-	* internal.h (struct elf_internal_sym): Update comment for st_other.
-
-2000-07-10  Alan Modra  <alan@linuxcare.com.au>
-
-	* hppa.h: Add comments to all the relocs.
-
-2000-06-26  Marek Michalkiewicz  <marekm@linux.org.pl>
-
-	* avr.h (E_AVR_MACH_AVR5): Define.
-
-2000-06-18  Stephane Carrez  <stcarrez@worldnet.fr>
-
-	* m68hc11.h: New file, definitions for the Motorola 68hc11.
-
-2000-06-06  Alan Modra  <alan@linuxcare.com.au>
-
-	* reloc-macros.h (START_RELOC_NUMBERS): Don't define initial dummy
-	-1 valued enum.
-	(RELOC_NUMBER, FAKE_RELOC, EMPTY_RELOC): Append rather than
-	prepend comma.
-	(END_RELOC_NUMBERS): Give macro an arg to define as last enum.
-
-	* alpha.h (R_ALPHA_max): Define via END_RELOC_NUMBERS rather than
-	with EMPTY_RELOC.
-	* arc.h (R_ARC_max): Likewise.
-	* avr.h (R_AVR_max): Likewise.
-	* fr30.h (R_FR30_max): Likewise.
-	* hppa.h (R_PARISC_UNIMPLEMENTED): Likewise.
-	* i960.h (R_960_max): Likewise.
-	* m32r.h (R_M32R_max): Likewise.
-	* m68k.h (R_68K_max): Likewise.
-	* mcore.h (R_MCORE_max): Likewise.
-	* mn10300.h (R_MN10300_MAX): Likewise.
-	* pj.h (R_PJ_max): Likewise.
-	* ppc.h (R_PPC_max): Likewise.
-	* sh.h (R_SH_max): Likewise.
-	* sparc.h (R_SPARC_max): Likewise.
-	* v850.h (R_V850_max): Likewise.
-
-	* arm.h (R_ARM_max): Define via END_RELOC_NUMBERS.
-	* d10v.h (R_D10V_max): Likewise.
-	* d30v.h (R_D30V_max): Likewise.
-	* ia64.h (R_IA64_max): Likewise.
-	* mips.h (R_MIPS_maxext): Likewise.
-	* mn10200.h (R_MN10200_max): Likewise.
-
-	* i386.h (R_386_max): Remove old RELOC_NUMBER definition, and
-	define via END_RELOC_NUMBERS.
-
-2000-06-03  Alan Modra  <alan@linuxcare.com.au>
-
-	* reloc-macros.h (START_RELOC_NUMBERS): Fix name clash for
-	!__STDC__ case.
-	(RELOC_NUMBER): Use ansi stringify if ALMOST_STDC defined.
-
-2000-05-22  Richard Henderson  <rth@cygnus.com>
-
-	* ia64.h (R_IA64_PCREL60B, R_IA64_PCREL21BI): New.
-	(R_IA64_PCREL22, R_IA64_PCREL64I): New.
-
-2000-05-02  H.J. Lu  <hjl@gnu.org>
-
-	* common.h (ELFOSABI_NONE): Renamed from ELFOSABI_SYSV.
-	(ELFOSABI_MODESTO): Defined.
-	(ELFOSABI_OPENBSD): Likewise.
-
-2000-04-21  Richard Henderson  <rth@cygnus.com>
-	    David Mosberger  <davidm@hpl.hp.com>
-
-	* ia64.h: New file.
-
-2000-04-14  H.J. Lu  <hjl@gnu.org>
-
-	* common.h (ELFOSABI_TRUE64): Renamed to ELFOSABI_TRU64.
-
-2000-04-14  H.J. Lu  <hjl@gnu.org>
-
-	* common.h (ELFOSABI_NETBSD): Defined.
-	(ELFOSABI_HURD): Likewise.
-	(ELFOSABI_SOLARIS): Likewise.
-	(ELFOSABI_MONTEREY): Likewise.
-	(ELFOSABI_IRIX): Likewise.
-	(ELFOSABI_FREEBSD): Likewise.
-	(ELFOSABI_TRUE64): Likewise.
-
-2000-04-07  Nick Clifton  <nickc@cygnus.com>
-
-	* arm-oabi.h: Delete.
-	* arm.h: Merge in definitions of old reloc numbers from
-	arm-oabi.h.
-
-2000-04-06  Nick Clifton  <nickc@cygnus.com>
-
-	* arm.h (EF_ARM_SYMSARESORTED): Define.
-	(EF_ARM_EABIMASK): Define.
-	(EF_ARM_EABI_VERSION): Define.
-	(EF_ARM_EABI_UNKNOWN): Define.
-	(EF_ARM_EABI_VER1): Define.
-	(PF_ARM_PI): Define.
-	(PF_ARM_ABS): Define.
-
-2000-04-05  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* sh.h (R_SH_LOOP_START, R_SH_LOOP_END): New RELOC_NUMBERs.
-
-2000-03-27  Denis Chertykov  <denisc@overta.ru>
-
-	* avr.h: New file.  AVR ELF support for BFD.
-	* common.h: Add AVR magic number.
-
-2000-03-10  Geoffrey Keating  <geoffk@cygnus.com>
-
-	* mips.h: Add R_MIPS_GNU_REL_HI16, R_MIPS_GNU_REL_LO16,
-	R_MIPS_GNU_REL16_S2, R_MIPS_PC64 and R_MIPS_PC32 relocation
-	numbers.
-
-2000-02-23  Linas Vepstas <linas@linas.org>
-
-	* i370.h: New file.
-
-2000-02-22  Nick Clifton  <nickc@cygnus.com>
-
-	* common.h (ELF_ST_OTHER): Remove definition.
-	(ELF32_ST_OTHER): Remove definition.
-	(ELF64_ST_OTHER): Remove definition.
-
-2000-02-22  H.J. Lu  <hjl@gnu.org>
-
-	* common.h (ELFOSABI_LINUX): Define.
-
-2000-02-17  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* sh.h: (EF_SH_MACH_MASK, EF_SH_UNKNOWN, EF_SH1, EF_SH2): New macros.
-	(EF_SH3, EF_SH_HAS_DSP, EF_SH_DSP, EF_SH3_DSP): Likewise.
-	(EF_SH_HAS_FP, EF_SH3E, EF_SH4, EF_SH_MERGE_MACH): Likewise.
-
-2000-02-03  H.J. Lu  <hjl@gnu.org>
-
-	* arm-oabi.h: Duplicate changes made to arm.h on Jan. 27,
-	2000 by Thomas de Lellis  <tdel@windriver.com>.
-
-2000-01-27  Thomas de Lellis  <tdel@windriver.com>
-
-	* arm.h (STT_ARM_TFUNC): Define in terms of STT_LOPROC.
-	(STT_ARM_16BIT): New flag.  Denotes a label that was defined in
-	Thumb block but was does not identify a function.
-
-2000-01-20  Nick Clifton  <nickc@cygnus.com>
-
-	* common.h (EM_MCORE): Fix spelling of Motorola.
-	* mcore.h (EM_MCORE): Fix spelling of Motorola.
-
-2000-01-13  Nick Clifton  <nickc@cygnus.com>
-
-	* common.h (EM_S370): Change comment - this is now the IBM
-	System/370.
-	(EM_IA_64): Change comment - this is now the IA-64.
-
-2000-01-11  Nick Clifton  <nickc@cygnus.com>
-
-	* common.h (DT_ENCODING): Fix definition of this value.
-	(DT_LOOS): Fix definition of this value.
-	(DT_HIOS): Fix definition of this value.
-	(OLD_DT_LOOS): Value of DT_LOOS before Oct 4, 1999 draft
-	of ELF spec changed it.
-	(OLD_DT_HIOS): Value of DT_HIOS before Oct 4, 1999 draft
-	of ELF spec changed it.
-
-2000-01-10  Egor Duda  <deo@logos-m.ru>
-
-	* common.h (NT_WIN32PSTATUS): Define.  (cygwin elf core dumps).
-
-1999-12-28  Nick Clifton  <nickc@cygnus.com>
-
-	* mips.h (STO_*): Redefine in terms of STV_* values now in
-	common.h.
-
-1999-12-27  Nick Clifton  <nickc@cygnus.com>
-
-	* common.h: Upgrade to match Oct4, 1999 Draft ELF ABI Spec.
-	(EM_MIPS_RS3_LE): New machine number.
-	(EM_RCE): New machine number.
-	(EM_MMA): New machine number.
-	(EM_PCP): New machine number.
-	(EM_NCPU): New machine number.
-	(EM_NDR1): New machine number.
-	(EM_STARCORE): New machine number.
-	(EM_ME16): New machine number.
-	(EM_ST100): New machine number.
-	(EM_TINYJ): New machine number.
-	(EM_FX66): New machine number.
-	(EM_ST9PLUS): New machine number.
-	(EM_ST7): New machine number.
-	(EM_68HC16): New machine number.
-	(EM_68HC11): New machine number.
-	(EM_68HC08): New machine number.
-	(EM_68HC05): New machine number.
-	(EM_SVX): New machine number.
-	(EM_VAX): New machine number.
-	(PF_MASKOS): Change value.
-	(SHT_INIT_ARRAY): New value for sh_type field.
-	(SHT_FINI_ARRAY): New value for sh_type field.
-	(SHT_PREINIT_ARRAY): New value for sh_type field.
-	(SHT_HIUSER): Change value.
-	(SHF_MERGE): New valye for sh_flags field.
-	(SHF_STRINGS): New valye for sh_flags field.
-	(SHF_INFO_LINK): New valye for sh_flags field.
-	(SHF_OS_NONCONFORMING): New valye for sh_flags field.
-	(SHF_MASKOS): Change value.
-	(ELF_ST_VISIBILITY): New macro.
-	(ELF_ST_OTHER): New macro.
-	(STT_COMMON): New symbol type.
-	(STV_DEFAULT): Value for symbol visibility.
-	(STV_INTERNAL): Value for symbol visibility.
-	(STV_HIDDEN): Value for symbol visibility.
-	(STV_PROTECTED): Value for symbol visibility.
-	(DT_RUNPATH): New dynamic section tag.
-	(DT_FLAGS): New dynamic section tag.
-	(DT_ENCODING): New dynamic section tag.
-	(DT_PREINIT_ARRAY): New dynamic section tag.
-	(DT_PREINIT_ARRAYSZ): New dynamic section tag.
-	(DT_LOPROC): New dynamic section tag index.
-	(DT_HIPROC): New dynamic section tag index.
-	(DF_ORIGIN): Value for dynamic section flag.
-	(DF_SYMBOLIC): Value for dynamic section flag.
-	(DF_TEXTREL): Value for dynamic section flag.
-	(DF_BIND_NOW): Value for dynamic section flag.
-
-1999-12-09  Fred Fish  <fnf@cygnus.com>
-
-	* i960.h (reloc-macros.h):  Include using relative dir elf/.
-	* i386.h (reloc-macros.h):  Include using relative dir elf/.
-	* hppa.h (reloc-macros.h):  Include using relative dir elf/.
-
-1999-12-07  Jim Blandy  <jimb@cygnus.com>
-
-	* common.h (NT_PRXFPREG): New definition.
-
-Wed Dec  1 03:02:15 1999  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.h (E_MN10300_MACH_AM33): Define.
-
-Mon Oct 11 22:42:37 1999  Jeffrey A Law  (law@cygnus.com)
-
-	* hppa.h (PF_HP_PAGE_SIZE): Define.
-	(PF_HP_FAR_SHARED, PF_HP_NEAR_SHARED, PF_HP_CODE): Likewise.
-	(PF_HP_MODIFY, PF_HP_LAZYSWAP, PF_HP_SBP): Likewise.
-
-Mon Oct  4 17:42:38 1999  Doug Evans  <devans@canuck.cygnus.com>
-
-	* m32r.h (E_M32RX_ARCH): Define.
-
-1999-09-15  Ulrich Drepper  <drepper@cygnus.com>
-
-	* hppa.h: Add DT_HP_GST_SIZE, DT_HP_GST_VERSION, and DT_HP_GST_HASHVAL.
-
-1999-09-04  Steve Chamberlain  <sac@pobox.com>
-
-	* pj.h: New file.
-	* common.h (EM_PJ): Define.
-
-1999-09-02  Ulrich Drepper  <drepper@cygnus.com>
-
-	* hppa.h: Add HPUX specific symbol type definitions.
-
-	* hppa.h: Add HPUX specific dynamic and program header table
-	specific definitions.
-
-1999-08-31  Scott Bambrough <scottb@netwinder.org>
-
-	* common.h (NT_TASKSTRUCT): Define.
-
-1999-07-16  Jakub Jelinek  <jj@ultra.linux.cz>
-
-	* sparc.h (EF_SPARC_SUN_US3): Define in Cheetah extensions
-	flag (as per SCD2.4.1).
-
-1999-07-16  Jakub Jelinek  <jj@ultra.linux.cz>
-
-	* sparc.h (ELF64_R_TYPE_DATA): Only use ELF64_R_TYPE bits, not
-	ELF64_R_SYM bits.
-
-1999-06-21  Philip Blundell  <pb@nexus.co.uk>
-
-	* arm.h (EF_SOFT_FLOAT, F_SOFT_FLOAT): Define.
-
-1999-07-13  Andreas Schwab  <schwab@suse.de>
-
-	* m68k.h (EF_CPU32): Move definition inside multiple inclusion
-	guard.
-
-1999-07-08  Richard Henderson  <rth@cygnus.com>
-
-	* sparc.h (ELF64_R_TYPE_DATA): Sign extend the value.
-	(ELF64_R_TYPE_INFO): Mask out all but low 24 bits of data.
-	(DT_SPARC_PLTFMT): Delete.
-	Based on a patch from Jakub Jelinek.
-
-Mon Jun 21 16:36:02 1999  Jeffrey A Law  (law@cygnus.com)
-
-	* hppa.h (elf_hppa_reloc_type): Renamed from elf32_hppa_reloc_type.
-
-1999-06-10  Jakub Jelinek  <jj@ultra.linux.cz>
-
-	* sparc.h (R_SPARC_max_std): Define.
-
-Wed Jun  9 15:16:34 1999  Jeffrey A Law  (law@cygnus.com)
-
-	* hppa.h: Update with various changes from newest PA ELF
-	specifications.
-
-1999-06-03  Ian Lance Taylor  <ian@zembu.com>
-
-	* common.h (EM_PPC64): Define.
-
-1999-06-02  Stu Grossman  <grossman@babylon-5.cygnus.com>
-
-	* dwarf.h: Add LANG_JAVA.
-	* dwarf2.h: Add DW_LANG_Java.
-
-1999-05-29  Nick Clifton  <nickc@cygnus.com>
-
-	* common.h (ELFOSABI_ARM): Define.
-
-1999-05-28  Nick Clifton  <nickc@cygnus.com>
-
-	* reloc-macros.h: Update comment.
-
-1999-05-28  Ian Lance Taylor  <ian@zembu.com>
-
-	* i960.h: New file.
-
-1999-05-16  Nick Clifton  <nickc@cygnus.com>
-
-	* mcore.h (R_MCORE_COPY): Define.
-	(R_MCORE_GLOB_DAT): Define.
-	(R_MCORE_JUMP_SLOT): Define.
-
-1999-05-15  Nick Clifton  <nickc@cygnus.com>
-
-	* mcore.h (R_MCORE_RELATIVE): Define.
-
-1999-05-05  Catherine Moore  <clm@cygnus.com>
-
-	* m68k.h (EF_CPU32): Define.
-
-1999-04-21  Nick Clifton  <nickc@cygnus.com>
-
-	* reloc-macros.h (START_RELOC_NUMBERS): Prepend an underscore to
-	fake reloc entry name (if possible), in order to avoid conflicts
-	with typedefs of the same name.
-
-1999-04-16  Gavin Romig-Koch  <gavin@cygnus.com>
-
-	* mips.h (EF_MIPS_32BITMODE): New.
-
-1999-04-08  Nick Clifton  <nickc@cygnus.com>
-
-	* mcore.h: New header file.  Defines for Motorola's MCore
-	processor.
-
-1999-04-08  Nick Clifton  <nickc@cygnus.com>
-
-	* common.h: Add new constants defined in: "System V Application
-	Binary Interface - DRAFT - April 29, 1998" found at the web site:
-	http://www.sco.com/developer/gabi/contents.html
-
-	(EM_MMA): Removed.  Replaced with EM_MCORE as Motorolla own this
-	value.
-
-1999-03-31  Nick Clifton  <nickc@cygnus.com>
-
-	* reloc-macros.h: Fixed to not generate an enum with a trailing
-	comma.
-
-1999-03-16  Gavin Romig-Koch  <gavin@cygnus.com>
-
-	* mips.h (E_MIPS_MACH_5000): New.
-
-1999-03-10  Ulrich Drepper  <drepper@cygnus.com>
-
-	* common.h: Add definitions for a few more Solaris ELF extensions.
-
-Thu Feb 18 18:58:26 1999  Ian Lance Taylor  <ian@cygnus.com>
-
-	* external.h: Only use attribute if __GNUC__ is defined.
-
-1999-02-17  Nick Clifton  <nickc@cygnus.com>
-
-	Patch submitted by: Scott Bambrough <scottb@corelcomputer.com>
-
-	* external.h: struct Elf_External_Versym must be packed on
-	ARM.  Code uses sizeof(Elf_External_Versym) and assumes it is
-	equal to sizeof(char[2]).  Reported by Jim Pick <jim@jimpick.com>
-
-1999-02-02  Nick Clifton  <nickc@cygnus.com>
-
-	* dwarf2.h (DWARF2_External_ARange): New structure.
-	(DWARF2_Internal_ARange): New structure.
-
-Mon Feb  1 11:33:56 1999  Catherine Moore  <clm@cygnus.com>
-
-	* arm.h:  Renumber relocs to conform to standard.
-	(EF_NEW_ABI):  Define.
-	(EF_OLD_ABI):  Define.
-	* arm-oabi.h:  New file.
-
-1999-01-28  Nick Clifton  <nickc@cygnus.com>
-
-	* fr30.h: Add R_FR30_GNU_VT{INHERIT,ENTRY} relocs.
-
-1999-01-27  Nick Clifton  <nickc@cygnus.com>
-
-	* dwarf2.h: Add typedefs for structures found in dwarf2 sections.
-
-1998-12-16  Gavin Romig-Koch  <gavin@cygnus.com>
-
-	* mips.h (E_MIPS_MACH_4111): New.
-
-1998-12-15  Gavin Romig-Koch  <gavin@cygnus.com>
-
-	* mips.h (EF_MIPS_ABI,E_MIPS_ABI_O32,E_MIPS_ABI_O64,
-	E_MIPS_ABI_EABI32,E_MIPS_ABI_EABI64):
-
-1998-12-03  Nick Clifton  <nickc@cygnus.com>
-
-	* fr30.h: Add R_FR30_48 reloc.
-
-1998-12-02  Ulrich Drepper  <drepper@cygnus.com>
-
-	* mips.h: Add external data type for conflict section.
-
-	* mips.h: Add more LL_* options from Irix 6.5.
-
-	* mips.h: Add R_MIPS_JALR and adjust R_MIPS_max appropriately.
-
-Mon Nov 30 15:25:58 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* sh.h (elf_sh_reloc_type): Add R_SH_FIRST_INVALID_RELOC,
-	R_SH_LAST_INVALID_RELOC, R_SH_SWITCH8 and R_SH_max.
-
-Tue Nov 10 15:12:28 1998  Nick Clifton  <nickc@cygnus.com>
-
-	* common.h (EM_CYGNUS_FR30): Reduce to a 16 bit value.
-
-Tue Nov 10 15:17:28 1998  Catherine Moore  <clm@cygnus.com>
-
-	* d10v.h:  Add vtable relocs.
-
-Wed Nov  4 15:56:50 1998  Nick Clifton  <nickc@cygnus.com>
-
-	* common.h (EM_CYGNUS_FR30): New machine number.
-
-	* fr30.h: New file: Definitions for the FR30.
-
-Fri Oct 30 11:54:15 1998  Catherine Moore  <clm@cygnus.com>
-
-	From Philip Blundell <pb@nexus.co.uk>:
-	* arm.h (R_ARM_COPY, et al.): New relocs, used by Linux for PIC.
-	(EF_ALIGN8): New flag.
-
-Tue Oct 20 11:19:50 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* common.h (NT_LWPSTATUS): Close comment accidentally left open.
-
-Mon Oct 19 20:24:11 1998  Catherine Moore  <clm@cygnus.com>
-
-	* sh.h:  Add vtable relocs.
-
-Mon Oct 19 01:44:42 1998  Felix Lee  <flee@cygnus.com>
-
-	* common.h (NT_PSTATUS, NT_FPREGS, NT_PSINFO,
-	NT_LWPSTATUS,NT_LWPSINFO): added.
-	* internal.h (Elf_Internal_Note): new structure members.
-
-Fri Oct 16 14:11:25 1998  Catherine Moore  <clm@cygnus.com>
-
-	* m32r.h:  Add vtable relocs.
-
-Tue Oct  6 09:22:22 1998  Catherine Moore  <clm@cygnus.com>
-
-	* sparc.h:  Add vtable relocs.
-
-Mon Oct  5 09:39:22 1998  Catherine Moore  <clm@cygnus.com>
-
-	* v850.h:  Add vtable relocs.
-
-Sun Oct  4 21:17:51 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* i386.h (R_386_max): Change from 252 to 24.
-
-Mon Sep 21 12:24:44 1998  Catherine Moore  <clm@cygnus.com>
-
-	* i386.h:  Change vtable reloc numbers.
-
-Sun Sep 20 00:54:22 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* m68k.h: Add vtable relocs and R_68K_max.
-
-Tue Sep 15 09:56:49 CDT 1998  Catherine Moore  <clm@cygnus.com>
-
-	* arm.h:  Add vtable relocs.
-
-Mon Aug 31 11:25:27 1998  Catherine Moore  <clm@cygnus.com>
-
-	* arm.h:  Define STT_ARM_TFUNC.  Remove ST_THUMB_xxxx
-	definitions.
-
-Sat Aug 29 22:25:51 1998  Richard Henderson  <rth@cygnus.com>
-
-	* i386.h: Add vtable relocs.
-
-1998-08-25 16:42  Ulrich Drepper  <drepper@cygnus.com>
-
-	* common.h: Add SYMINFO_* macros to access Elf*_Syminfo information.
-
-	* external.h: Add Elf_External_Syminfo definition.
-
-	* internal.h: Add Elf_Internal_Syminfo, Elf32_Internal_Syminfo,
-	and Elf64_Syminfo definitions.
-
-Sun Aug  9 20:26:49 CDT 1998  Catherine Moore  <clm@cygnus.com>
-
-	* arm.h:  Add ST_THUMB definitions.
-
-Wed Aug  5 15:52:35 1998  Nick Clifton  <nickc@cygnus.com>
-
-	* arm.h: Add ELF header flags to specify compile time optins:
-	EF_INTERWORK: New flag.
-	EF_APCS_26: New flag.
-	EF_APCS_FLOAT: New flag.
-	EF_PIC: New flag.
-
-1998-07-31 21:28  Ulrich Drepper  <drepper@cygnus.com>
-
-	* mips.h: Add missing RHF_* constants.
-
-Fri Jul 31 10:01:40 1998 Catherine Moore  <clm@cygnus.com>
-
-	* arm.h: Add R_ARM_THM_PC9 relocation.
-
-1998-07-30 16:25  Ulrich Drepper  <drepper@cygnus.com>
-
-	* common.h: Add new DT_* entries and there flag macros from Solaris.
-
-Tue Jul 28 18:14:07 1998  Stan Cox  <scox@equinox.cygnus.com>
-
-	* sparc.h: (R_SPARC_REV32): Added for little endian data e.g. sparc 86x.
-
-Fri Jul 24 11:22:06 1998  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.h: Add R_MN10300_24 relocation.
-
-1998-07-24  Ulrich Drepper  <drepper@cygnus.com>
-
-	* mips.h: Add MIPS64 relocation names and values.
-
-Wed Jul 22 19:29:00 Catherine Moore  <clm@cygnus.com>
-
-	* arm.h: Rename relocations.
-
-1998-07-22  Ulrich Drepper  <drepper@cygnus.com>
-
-	* ppc.h: Define enum as elf_ppc_reloc_type.
-
-Wed Jul 22 16:22:11 1998  Nick Clifton  <nickc@cygnus.com>
-
-	* reloc-macros.h: New file.  Provides relocation macros:
-	START_RELOC_NUMBERS, RELOC_NUMBER, FAKE_RELOC, EMPTY_RELOC and
-	END_RELOC_NUMBERS used by other elf header files.
-
-	* alpha.h: Use reloc-macros.h.
-	* arc.h: Use reloc-macros.h.
-	* arm.h: Use reloc-macros.h.
-	* d10v.h: Use reloc-macros.h.
-	* d30v.h: Use reloc-macros.h.
-	* hppa.h: Use reloc-macros.h.
-	* i386.h: Use reloc-macros.h.
-	* m32r.h: Use reloc-macros.h.
-	* m68k.h: Use reloc-macros.h.
-	* mips.h: Use reloc-macros.h.
-	* mn10200.h: Use reloc-macros.h.
-	* mn10300.h: Use reloc-macros.h.
-	* ppc.h: Use reloc-macros.h.
-	* sh.h: Use reloc-macros.h.
-	* sparc.h: Use reloc-macros.h.
-	* v850.h: Use reloc-macros.h.
-
-1998-07-22 13:07  Ulrich Drepper  <drepper@cygnus.com>
-
-	* mn10300.h: Rewrite relocation definition using macros.
-	* mips.h: Likewise.
-	* ppc.h: Likewise.
-	* alpha.h: Likewise.
-	* arm.h: Likewise.
-	* d10v.h: Likewise.
-	* d30v.h: Likewise.
-	* m32r.h: Likewise.
-	* m68k.h: Likewise.
-	* mn10200.h: Likewise.
-	* sh.h: Likewise.
-	* sparc.h: Likewise.
-
-1998-07-21 13:07  Ulrich Drepper  <drepper@cygnus.com>
-
-	* arm.h: New file.
-	* d10v.h: New file.
-	* d30v.h: New file.
-	* i386.h: New file.
-	* m68k.h: New file.
-	* mn10200.h: New file.
-	* sh.h: New file.
-
-	* mips.h: Add R_MIPS_* and SHT_MIPS_* entries.
-
-	* mn10300.h: Add R_MN10300_* entries.
-
-	* ppc.h: Add R_PPC_* entries.
-
-1998-07-20 07:11  Ulrich Drepper  <drepper@cygnus.com>
-
-	* mips.h: Add ODK_*, OEX_*, OPAD_*, OHW_*, and OGP_* constants.
-	Define Elf32_External_Lib.
-
-1998-07-19 15:24  Ulrich Drepper  <drepper@cygnus.com>
-
-	* mips.h (PT_MIPS_OPTIONS): New symbol.
-	Add lots of DT_MIPS_* symbols.
-
-Fri Jun 26 10:46:35 1998  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.h: New file.
-
-Thu Jun 18 19:27:56 1998  Nick Clifton  <nickc@cygnus.com>
-
-	* common.h (EM_960, EM_V800, EM_FR20, EM_RH32, EM_MMA,
-	EM_OLD_ALPHA): Add these constants.
-
-Thu Jun 11 17:59:01 1998  Nick Clifton  <nickc@cygnus.com>
-
-	* common.h (EM_486, EM_S370): Add these constants.
-
-Tue Jun  9 09:35:29 1998  Nick Clifton  <nickc@cygnus.com>
-
-	* common.h (EM_ARM): Add this constant.
-
-Wed May  6 09:45:30 1998  Gavin Koch  <gavin@cygnus.com>
-
-	* mips.h (EF_MIPS_MACH,E_MIPS_MACH_*): Added.
-
-Sat Apr 25 18:35:06 1998  Richard Henderson  <rth@cygnus.com>
-
-	* alpha.h (STO_ALPHA_NOPV, STO_ALPHA_STD_GPLOAD): New.
-
-Wed Apr 15 15:42:45 1998  Richard Henderson  <rth@cygnus.com>
-
-	* common.h (EM_SPARC64): Move and rename to EM_OLD_SPARCV9.
-	(EM_SPARCV9): New.  This is the official ABI name and number.
-
-Sat Feb 28 17:04:41 1998  Richard Henderson  <rth@cygnus.com>
-
-	* alpha.h (EF_ALPHA_32BIT, EF_ALPHA_CANRELAX): New.
-
-Mon Dec 15 15:07:49 1997  Nick Clifton  <nickc@cygnus.com>
-
-	* m32r.h (EF_M32R_ARCH, E_M32R_ARCH): New flags to
-	specify machine architecture.
-
-Fri Dec  5 11:20:08 1997  Nick Clifton  <nickc@cygnus.com>
-
-	* v850.h: New constants: SHN_V850_SCOMMON, SHN_V850_TCOMMON,
-	SHN_V850_ZCOMMON, SHT_V850_SCOMMON, SHT_V850_TCOMMON,
-	SHT_V850_ZCOMMON to handle v850 common sections.
-	enum reloc_type renamed to v850_reloc_type to avoid name
-	conflict.
-
-Thu Oct 23 13:55:24 1997  Richard Henderson  <rth@cygnus.com>
-
-	* sparc.h (enum elf_sparc_reloc_type): Add UA64 & UA16.
-
-Thu Oct 23 00:42:04 1997  Richard Henderson  <rth@dot.cygnus.com>
-
-	* sparc.h (DT_SPARC_REGISTER): New macro.
-	(DT_SPARC_PLTFMT): In support of old sparc64-linux .plts; will
-	go away soon.
-
-Tue Sep 30 13:26:58 1997  Doug Evans  <dje@canuck.cygnus.com>
-
-	* sparc.h (EF_SPARC_HAL_R1, EF_SPARC_EXT_MASK): New macros.
-	(EF_SPARCV9_{MM,TSO,PSO,RMO}): New macros.
-	(SHN_BEFORE,SHN_AFTER): New macros.
-	(SHF_EXCLUDE,SHF_ORDERED): New macros.
-	(STT_REGISTER): New macro.
-	(R_SPARC_GLOB_JMP): Deleted, but slot reserved.
-	(R_SPARC_{DISP64,PLT64,HIX22,LOX10}): New relocations.
-	(R_SPARC_{H44,M44,L44,REGISTER}): New relocations.
-	(ELF64_R_TYPE_{DATA,ID,INFO}): New macros.
-
-Wed Sep 17 16:41:42 1997  Nick Clifton  <nickc@cygnus.com>
-
-	* v850.h: Add R_V850_CALLT_6_7_OFFSET and R_V850_CALLT_16_16_OFFSET.
-
-Tue Sep 16 14:16:17 1997  Nick Clifton  <nickc@cygnus.com>
-
-	* v850.h (reloc_type): Add R_V850_TDA_16_16_OFFSET.
-
-Wed Sep  3 15:11:14 1997  Richard Henderson  <rth@cygnus.com>
-
-	* mips.h: Correct typo in comment.
-
-Wed Sep  3 11:25:57 1997  Nick Clifton  <nickc@cygnus.com>
-
-	* v850.h (reloc_type): Remove R_V850_16_PCREL.
-
-Tue Sep  2 17:41:05 1997  Nick Clifton  <nickc@cygnus.com>
-
-	* common.h: Remove magic number for V850E.
-	* common.h: Remove magic number for V850EA.
-	* v850.h: Add new flags for e_flags field in elf header.
-
-Mon Aug 25 16:06:47 1997  Nick Clifton  <nickc@cygnus.com>
-
-	* common.h (EM_CYGNUS_V850E): backend magic number for v850e.
-	* common.h (EM_CYGNUS_V850EA): backend magic number for v850ea.
-
-Mon Aug 18 11:05:23 1997  Nick Clifton  <nickc@cygnus.com>
-
-	* v850.h (reloc_type): Add 16 bit PC relative relocation.
-
-Fri Aug 15 05:10:09 1997  Doug Evans  <dje@canuck.cygnus.com>
-
-	* arc.h (enum reloc): Move here from elf32-arc.c.
-
-Fri Aug  8 17:05:29 1997  Doug Evans  <dje@canuck.cygnus.com>
-
-	* arc.h: New file.
-	* common.h (EM_CYGNUS_ARC): Define.
-
-Mon Jun 16 14:46:12 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* internal.h (Elf_Internal_Ehdr): Change e_phoff and e_shoff from
-	bfd_signed_vma to bfd_size_type, as they are not signed.
-
-Wed Mar  5 15:35:26 1997  Doug Evans  <dje@seba.cygnus.com>
-
-	* m32r.h (SHF_M32R_CAN_RELAX): Define.
-
-Mon Feb 24 17:49:01 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* external.h: Dump the 32/64 bit specific forms of the version
-	structures, and just define them as size independent.
-
-	* common.h (VERSYM_HIDDEN, VERSYM_VERSION): Define.
-
-Fri Feb 21 13:00:34 1997  Doug Evans  <dje@canuck.cygnus.com>
-
-	* m32r.h (enum reloc_type): Add R_M32R_SDA16.
-	(SHN_M32R_SCOMMON): Define.
-
-Wed Feb 19 15:35:31 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	From Eric Youngdale <eric@andante.jic.com>:
-	* external.h, internal.h, common.h: Added new structures and
-	definitions for ELF versions.
-
-Tue Feb 18 17:40:36 1997  Martin M. Hunt  <hunt@pizza.cygnus.com>
-
-	* common.h (EM_CYGNUS_D30V): Define.
-
-Mon Jan 27 11:54:44 1997  Doug Evans  <dje@seba.cygnus.com>
-
-	* m32r.h (enum reloc_type): Add R_M32R_HI16_[SU]LO,R_M32R_LO16.
-
-Fri Jan  3 11:32:51 1997  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* v850.h (V850_OTHER_{TDA_BYTE,ERROR}): New bits for the st_other
-	field.
-	(SHN_V850_*): Remove v850 specific section indexes, which are not
-	needed.
-	(enum reloc_type): Move the v850 relocations here from
-	elf32-v850.c
-
-Thu Jan  2 19:30:23 1997  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* v850.h: New file, provide V850 specific definitions.
-
-Tue Dec 31 14:44:32 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* common.h (DT_AUXILIARY): Define.
-	(DT_FILTER): Define.
-
-Wed Dec  4 05:03:37 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2.h: Update.
-
-Tue Nov 26 10:44:47 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips.h (STO_MIPS16): Define.
-
-Tue Nov 12 15:45:42 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
-
-	* d10v.h: Remove empty file.
-
-Tue Oct  8 11:31:24 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips.h (EF_MIPS_ABI2): Define.
-
-Thu Oct  3 10:01:40 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* common.h: Break mn10x00 support into mn10200 and mn10300.
-
-Wed Oct  2 21:26:43 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* common.h (EM_CYGNUS_MN10x00): Define.
-
-Mon Sep 23 09:18:04 1996  Doug Evans  <dje@seba.cygnus.com>
-
-	* m32r.h: New file.
-
-Fri Aug 30 17:06:21 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* common.h (EM_SH): Define.
-
-Tue Aug 20 14:47:54 1996  J.T. Conklin  <jtc@hippo.cygnus.com>
-
-	* common.h (EM_CYGNUS_V850): Define.
-
-Mon Aug 19 10:59:10 1996  Doug Evans  <dje@canuck.cygnus.com>
-
-	* common.h (EM_CYGNUS_M32R): Define.
-
-Mon Jul 22 18:59:55 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips.h (SHT_MIPS_IFACE, SHT_MIPS_CONTENT): Define.
-	(SHT_MIPS_SYMBOL_LIB): Define.
-	(SHF_MIPS_MERGE, SHF_MIPS_ADDR32, SHF_MIPS_ADDR64): Define.
-	(SHF_MIPS_NOSTRIP, SHF_MIPS_LOCAL, SHF_MIPS_NAMES): Define.
-
-Thu Jul 18 19:12:15 1996  Stan Shebs  <shebs@andros.cygnus.com>
-
-	* dwarf2.h: New file.
-
-Jul 18 13:20:39 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
-
-	* common.h (EM_CYGNUS_D10V): Define.
-	* d10v.h: New file.
-
-Fri Jun 21 12:33:24 1996  Richard Henderson  <rth@tamu.edu>
-
-	* alpha.h: New file.
-	* common.h (EM_ALPHA): Define.
-
-Fri May 31 17:28:05 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips.h (Elf_External_Options, Elf_Internal_Options): Define.
-	(bfd_mips_elf_swap_options_in): Declare.
-	(bfd_mips_elf_swap_options_out): Declare.
-	(ODK_*): Define.
-	(Elf64_External_RegInfo, Elf64_Internal_RegInfo): Define.
-	(bfd_mips_elf64_swap_reginfo_in): Declare.
-	(bfd_mips_elf64_swap_reginfo_out): Declare.
-
-Thu May 30 12:35:57 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips.h (E_MIPS_ARCH_4): Define.
-
-Wed May 29 15:35:33 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips.h (Elf64_Mips_External_Rel): Define.
-	(Elf64_Mips_Internal_Rel): Define.
-	(Elf64_Mips_External_Rela, Elf64_Mips_Internal_Rela): Define.
-	(RSS_*): Define.
-
-Mon Apr 22 18:26:30 1996  Doug Evans  <dje@canuck.cygnus.com>
-
-	* sparc.h (R_SPARC_[56]): Always define.
-
-Mon Feb 19 01:55:56 1996  Doug Evans  <dje@charmed.cygnus.com>
-
-	* sparc.h (R_SPARC_{PLT32,HIPLT22,LOPLT10,PCPLT32,PCPLT22,
-	PCPLT10,5,6}): Don't define ifdef SPARC64_OLD_RELOCS.
-
-Tue Feb  6 11:33:58 1996  Doug Evans  <dje@charmed.cygnus.com>
-
-	* sparc.h (enum sparc_elf_reloc_type): Define.
-
-Wed Jan 17 09:09:16 1996  Doug Evans  <dje@canuck.cygnus.com>
-
-	* common.h: Define EM_SPARC32PLUS.
-	* sparc.h: New file.
-
-Thu Jan 11 16:27:34 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* ppc.h (SHF_EXCLUDE, SHT_ORDERED): New fields from the abi.
-
-Thu Nov 30 16:47:18 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* internal.h (struct elf_segment_map): Add includes_filehdr and
-	includes_phdrs fields.
-
-Tue Nov 28 16:58:10 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* internal.h (struct elf_segment_map): Define.
-
-Tue Oct 31 15:19:36 1995  Fred Fish  <fnf@cygnus.com>
-
-	* common.h, dwarf.h, external.h, hppa.h, internal.h,
-	mips.h, ppc.h:  Protect against multiple inclusions.
-
-Thu Sep 21 13:51:58 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* ppc.h (EF_PPC_RELOCATABLE_LIB): Add new flag bit.
-
-Fri Sep  1 15:32:17 1995  Kazumoto Kojima  <kkojima@info.kanagawa-u.ac.jp>
-
-	* mips.h: Add some definitions used on Irix 5.
-
-Tue Jun 20 10:18:28 1995  Jeff Law  (law@snake.cs.utah.edu)
-
-	* hppa.h (CPU_PA_RISC1_0): Protect from redefinitions.
-	(CPU_PA_RISC1_1): Likewise.
-
-Wed Mar  8 18:14:37 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* ppc.h: New file for PowerPC support.
-
-Tue Feb 14 13:59:13 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* common.h (EM_PPC): Use offical value of 20, not 17.
-	(EM_PPC_OLD): Define this to be the old value of EM_PPC.
-
-Tue Jan 24 09:40:59 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* common.h (EM_PPC): New macro, PowerPC machine id.
-
-Tue Jan 17 10:51:38 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>
-
-	* mips.h (SHT_MIPS_MSYM, SHT_MIPS_DWARF, SHT_MIPS_EVENTS): Define.
-
-Mon Oct 17 13:43:59 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
-
-	* internal.h (Elf_Internal_Shdr): Remove rawdata and size fields.
-	Add bfd_section field.
-
-Tue May 24 16:11:50 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* mips.h (Elf32_External_gptab): Define.
-
-Mon May 16 13:22:04 1994  Jeff Law  (law@snake.cs.utah.edu)
-
-	* common.h (EM_HPPA): Delete.
-	(EM_PARISC): Add.
-	* hppa.h: New file.
-
-Mon May  9 13:27:03 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* common.h (SHN_LORESERVE): Rename from SHN_LORESERV.
-	(ELF32_R_TYPE, ELF32_R_INFO): Don't rely on size of unsigned char.
-	(ELF64_R_TYPE): Don't rely on size of unsigned long.
-
-Mon Apr 25 15:53:09 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* internal.h (Elf_Internal_Shdr): Use PTR, not void *.
-
-Fri Mar 11 00:34:59 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
-
-	* mips.h (SHN_MIPS_TEXT, SHN_MIPS_DATA):  Define.
-
-Sat Mar  5 14:08:54 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
-
-	* internal.h:  Remove Elf32_*, Elf64_* typedefs.  These names
-	cause conflicts with system headers, e.g. link.h in gdb/solib.c.
-	Combine 32- and 64-bit versions of *_Internal_Dyn.
-	* common.h:  Replace uses of Elf64_Word, Elf64_Xword typedefs
-	by their expansion.
-	* mips.h:  Replace uses of Elf32_Word, Elf32_Sword, Elf32_Addr
-	typedefs by their expansion. Add DT_MIPS_RLD_MAP definition.
-
-Fri Feb 18 10:39:54 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* common.h (EM_CYGNUS_POWERPC): Define.  This may be temporary,
-	depending upon how quickly I can find a real PowerPC ABI.
-
-Mon Feb  7 08:27:13 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* internal.h: Change HOST_64_BIT to BFD_HOST_64_BIT.
-
-Wed Feb  2 14:12:18 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* common.h: Add comments regarding value of EM_HPPA and how to
-	pick an unofficial value.
-
-Wed Nov 17 17:14:26 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* mips.h (SHT_MIPS_OPTIONS): Define.
-
-Mon Nov  8 17:57:00 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* mips.h: Added some more MIPS ABI macro definitions.
-
-Wed Nov  3 22:07:17 1993  Ken Raeburn  (raeburn@rtl.cygnus.com)
-
-	* common.h (EM_MIPS_RS4_BE): New macro.
-
-Tue Oct 12 07:28:18 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* mips.h: New file.  MIPS ABI specific information.
-
-Mon Jun 21 13:13:43 1993  Ken Raeburn  (raeburn@poseidon.cygnus.com)
-
-	* internal.h: Combined 32- and 64-bit versions of all structures
-	except *_Internal_Dyn.  This will simply the assembler interface,
-	and some bfd code.
-
-Tue May 25 02:00:16 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
-
-	* external.h, internal.h, common.h: Added 64-bit versions of some
-	structures and macros.  Renamed old versions to put "32" in the
-	name.  Some are unchanged.
-
-Thu Apr 29 12:12:20 1993  Ken Raeburn  (raeburn@deneb.cygnus.com)
-
-	* common.h (EM_HPPA, NT_VERSION, STN_UNDEF, DT_*): New macros.
-	* external.h (Elf_External_Dyn): New type.
-
-	* internal.h (Elf_Intenral_Shdr): New field `size'.
-	(Elf_Internal_Dyn): New type.
-
-Tue Apr 20 16:03:45 1993  Fred Fish  (fnf@cygnus.com)
-
-	* dwarf.h (LANG_CHILL):  Change value to one randomly picked in
-	the user defined range, to reduce probability of collisions.
-
-Sun Nov 15 09:34:02 1992  Fred Fish  (fnf@cygnus.com)
-
-	* dwarf.h (AT_src_coords):  Whitespace change only.
-	* dwarf.h (AT_body_begin, AT_body_end, LANG_MODULA2):
-	Add from latest gcc.
-	* dwarf.h (LANG_CHILL):  Add as GNU extension.
-
-Sat Aug  1 13:46:53 1992  Fred Fish  (fnf@cygnus.com)
-
-	* dwarf.h:  Replace with current version from gcc distribution.
-
-Fri Jun 19 19:05:09 1992  John Gilmore  (gnu at cygnus.com)
-
-	* internal.h:  Add real struct tags to all the Type_Defs, so they
-	can be used in prototypes where the Type_Defs are not known.
-
-Fri Apr  3 20:58:58 1992  Mark Eichin  (eichin at cygnus.com)
-
-	* common.h: added ELF_R_{SYM,TYPE,INFO} for handling relocation
-	info
-	added EM_MIPS, and corrected value of EM_860 based on System V ABI
-	manual.
-
-	* external.h: added Elf_External_{Rel,Rela}.
-
-	* internal.h: added Elf_Internal_{Rel,Rela}.
-	added rawdata to Elf_Internal_Shdr.
-
-Sat Nov 30 20:43:59 1991  Steve Chamberlain  (sac at rtl.cygnus.com)
-
-	* common.h, dwarf.h, external.h, internal.h, ChangeLog; moved from
-	../elf-<foo>
-
-
-Local Variables:
-version-control: never
-End:
diff --git a/include/elf/alpha.h b/include/elf/alpha.h
deleted file mode 100644
index e53202c..0000000
--- a/include/elf/alpha.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/* ALPHA ELF support for BFD.
-   Copyright 1996, 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
-
-   By Eric Youngdale, <eric@aib.com>.  No processor supplement available
-   for this platform.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* This file holds definitions specific to the ALPHA ELF ABI.  Note
-   that most of this is not actually implemented by BFD.  */
-
-#ifndef _ELF_ALPHA_H
-#define _ELF_ALPHA_H
-
-/* Processor specific flags for the ELF header e_flags field.  */
-
-/* All addresses must be below 2GB.  */
-#define EF_ALPHA_32BIT		0x00000001
-
-/* All relocations needed for relaxation with code movement are present.  */
-#define EF_ALPHA_CANRELAX	0x00000002
-
-/* Processor specific section flags.  */
-
-/* This section must be in the global data area.  */
-#define SHF_ALPHA_GPREL		0x10000000
-
-/* Section contains some sort of debugging information.  The exact
-   format is unspecified.  It's probably ECOFF symbols.  */
-#define SHT_ALPHA_DEBUG		0x70000001
-
-/* Section contains register usage information.  */
-#define SHT_ALPHA_REGINFO	0x70000002
-
-/* A section of type SHT_MIPS_REGINFO contains the following
-   structure.  */
-typedef struct
-{
-  /* Mask of general purpose registers used.  */
-  unsigned long ri_gprmask;
-  /* Mask of co-processor registers used.  */
-  unsigned long ri_cprmask[4];
-  /* GP register value for this object file.  */
-  long ri_gp_value;
-} Elf64_RegInfo;
-
-/* Special values for the st_other field in the symbol table.  */
-
-#define STO_ALPHA_NOPV		0x80
-#define STO_ALPHA_STD_GPLOAD	0x88
-
-/* Special values for Elf64_Dyn tag.  */
-#define DT_ALPHA_PLTRO		DT_LOPROC
-
-#include "elf/reloc-macros.h"
-
-/* Alpha relocs.  */
-START_RELOC_NUMBERS (elf_alpha_reloc_type)
-  RELOC_NUMBER (R_ALPHA_NONE, 0)	/* No reloc */
-  RELOC_NUMBER (R_ALPHA_REFLONG, 1)	/* Direct 32 bit */
-  RELOC_NUMBER (R_ALPHA_REFQUAD, 2)	/* Direct 64 bit */
-  RELOC_NUMBER (R_ALPHA_GPREL32, 3)	/* GP relative 32 bit */
-  RELOC_NUMBER (R_ALPHA_LITERAL, 4)	/* GP relative 16 bit w/optimization */
-  RELOC_NUMBER (R_ALPHA_LITUSE, 5)	/* Optimization hint for LITERAL */
-  RELOC_NUMBER (R_ALPHA_GPDISP, 6)	/* Add displacement to GP */
-  RELOC_NUMBER (R_ALPHA_BRADDR, 7)	/* PC+4 relative 23 bit shifted */
-  RELOC_NUMBER (R_ALPHA_HINT, 8)	/* PC+4 relative 16 bit shifted */
-  RELOC_NUMBER (R_ALPHA_SREL16, 9)	/* PC relative 16 bit */
-  RELOC_NUMBER (R_ALPHA_SREL32, 10)	/* PC relative 32 bit */
-  RELOC_NUMBER (R_ALPHA_SREL64, 11)	/* PC relative 64 bit */
-
-  /* Skip 12 - 16; deprecated ECOFF relocs.  */
-
-  RELOC_NUMBER (R_ALPHA_GPRELHIGH, 17)	/* GP relative 32 bit, high 16 bits */
-  RELOC_NUMBER (R_ALPHA_GPRELLOW, 18)	/* GP relative 32 bit, low 16 bits */
-  RELOC_NUMBER (R_ALPHA_GPREL16, 19)	/* GP relative 16 bit */
-
-  /* Skip 20 - 23; deprecated ECOFF relocs.  */
-
-  /* These relocations are specific to shared libraries.  */
-  RELOC_NUMBER (R_ALPHA_COPY, 24)	/* Copy symbol at runtime */
-  RELOC_NUMBER (R_ALPHA_GLOB_DAT, 25)	/* Create GOT entry */
-  RELOC_NUMBER (R_ALPHA_JMP_SLOT, 26)	/* Create PLT entry */
-  RELOC_NUMBER (R_ALPHA_RELATIVE, 27)	/* Adjust by program base */
-
-  /* Like BRADDR, but assert that the source and target object file
-     share the same GP value, and adjust the target address for 
-     STO_ALPHA_STD_GPLOAD.  */
-  RELOC_NUMBER (R_ALPHA_BRSGP, 28)
-
-  /* Thread-Local Storage.  */
-  RELOC_NUMBER (R_ALPHA_TLSGD, 29)
-  RELOC_NUMBER (R_ALPHA_TLSLDM, 30)
-  RELOC_NUMBER (R_ALPHA_DTPMOD64, 31)
-  RELOC_NUMBER (R_ALPHA_GOTDTPREL, 32)
-  RELOC_NUMBER (R_ALPHA_DTPREL64, 33)
-  RELOC_NUMBER (R_ALPHA_DTPRELHI, 34)
-  RELOC_NUMBER (R_ALPHA_DTPRELLO, 35)
-  RELOC_NUMBER (R_ALPHA_DTPREL16, 36)
-  RELOC_NUMBER (R_ALPHA_GOTTPREL, 37)
-  RELOC_NUMBER (R_ALPHA_TPREL64, 38)
-  RELOC_NUMBER (R_ALPHA_TPRELHI, 39)
-  RELOC_NUMBER (R_ALPHA_TPRELLO, 40)
-  RELOC_NUMBER (R_ALPHA_TPREL16, 41)
-
-END_RELOC_NUMBERS (R_ALPHA_max)
-
-#define LITUSE_ALPHA_ADDR	0
-#define LITUSE_ALPHA_BASE	1
-#define LITUSE_ALPHA_BYTOFF	2
-#define LITUSE_ALPHA_JSR	3
-#define LITUSE_ALPHA_TLSGD	4
-#define LITUSE_ALPHA_TLSLDM	5
-#define LITUSE_ALPHA_JSRDIRECT	6
-
-#endif /* _ELF_ALPHA_H */
diff --git a/include/elf/arc.h b/include/elf/arc.h
deleted file mode 100644
index e2f4f41..0000000
--- a/include/elf/arc.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* ARC ELF support for BFD.
-   Copyright 1995, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
-   Contributed by Doug Evans, (dje@cygnus.com)
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* This file holds definitions specific to the ARC ELF ABI.  */
-
-#ifndef _ELF_ARC_H
-#define _ELF_ARC_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-
-START_RELOC_NUMBERS (elf_arc_reloc_type)
-  RELOC_NUMBER (R_ARC_NONE, 0)
-  RELOC_NUMBER (R_ARC_32, 1)
-  RELOC_NUMBER (R_ARC_B26, 2)
-  RELOC_NUMBER (R_ARC_B22_PCREL, 3)
-END_RELOC_NUMBERS (R_ARC_max)
-
-/* Processor specific flags for the ELF header e_flags field.  */
-
-/* Four bit ARC machine type field.  */
-
-#define EF_ARC_MACH 0x0000000f
-
-/* Various CPU types.  */
-
-#define E_ARC_MACH_ARC5 0
-#define E_ARC_MACH_ARC6 1	
-#define E_ARC_MACH_ARC7 2
-#define E_ARC_MACH_ARC8 3
-
-/* Leave bits 0xf0 alone in case we ever have more than 16 cpu types.  */
-
-/* File contains position independent code.  */
-
-#define EF_ARC_PIC 0x00000100
-
-#endif /* _ELF_ARC_H */
diff --git a/include/elf/arm.h b/include/elf/arm.h
deleted file mode 100644
index 6b72977..0000000
--- a/include/elf/arm.h
+++ /dev/null
@@ -1,284 +0,0 @@
-/* ARM ELF support for BFD.
-   Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004
-   Free Software Foundation, Inc.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_ARM_H
-#define _ELF_ARM_H
-
-#include "elf/reloc-macros.h"
-
-/* Processor specific flags for the ELF header e_flags field.  */
-#define EF_ARM_RELEXEC     0x01
-#define EF_ARM_HASENTRY    0x02
-#define EF_ARM_INTERWORK   0x04
-#define EF_ARM_APCS_26     0x08
-#define EF_ARM_APCS_FLOAT  0x10
-#define EF_ARM_PIC         0x20
-#define EF_ARM_ALIGN8	   0x40		/* 8-bit structure alignment is in use.  */
-#define EF_ARM_NEW_ABI     0x80
-#define EF_ARM_OLD_ABI     0x100
-#define EF_ARM_SOFT_FLOAT  0x200
-#define EF_ARM_VFP_FLOAT   0x400
-#define EF_ARM_MAVERICK_FLOAT 0x800
-
-/* Frame unwind information */
-#define PT_ARM_EXIDX (PT_LOPROC + 1)
-
-/* Other constants defined in the ARM ELF spec. version B-01.  */
-#define EF_ARM_SYMSARESORTED 0x04	/* NB conflicts with EF_INTERWORK */
-#define EF_ARM_DYNSYMSUSESEGIDX 0x08	/* NB conflicts with EF_APCS26 */
-#define EF_ARM_MAPSYMSFIRST 0x10	/* NB conflicts with EF_APCS_FLOAT */
-#define EF_ARM_EABIMASK      0xFF000000
-
-/* Constants defined in AAELF.  */
-#define EF_ARM_BE8	    0x00800000
-#define EF_ARM_LE8	    0x00400000
-
-#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK)
-#define EF_ARM_EABI_UNKNOWN  0x00000000
-#define EF_ARM_EABI_VER1     0x01000000
-#define EF_ARM_EABI_VER2     0x02000000
-#define EF_ARM_EABI_VER3     0x03000000
-#define EF_ARM_EABI_VER4     0x04000000
-#define EF_ARM_EABI_VER5     0x05000000
-
-/* Local aliases for some flags to match names used by COFF port.  */
-#define F_INTERWORK	   EF_ARM_INTERWORK
-#define F_APCS26	   EF_ARM_APCS_26
-#define F_APCS_FLOAT	   EF_ARM_APCS_FLOAT
-#define F_PIC              EF_ARM_PIC
-#define F_SOFT_FLOAT	   EF_ARM_SOFT_FLOAT
-#define F_VFP_FLOAT	   EF_ARM_VFP_FLOAT
-
-/* Additional symbol types for Thumb.  */
-#define STT_ARM_TFUNC      STT_LOPROC   /* A Thumb function.  */
-#define STT_ARM_16BIT      STT_HIPROC   /* A Thumb label.  */
-
-/* Additional section types.  */
-#define SHT_ARM_EXIDX	   0x70000001	/* Section holds ARM unwind info.  */
-#define SHT_ARM_PREEMPTMAP 0x70000002	/* Section pre-emption details.  */
-#define SHT_ARM_ATTRIBUTES 0x70000003	/* Section holds attributes.  */
-
-/* ARM-specific values for sh_flags.  */
-#define SHF_ENTRYSECT      0x10000000   /* Section contains an entry point.  */
-#define SHF_COMDEF         0x80000000   /* Section may be multiply defined in the input to a link step.  */
-
-/* ARM-specific program header flags.  */
-#define PF_ARM_SB          0x10000000   /* Segment contains the location addressed by the static base.  */
-#define PF_ARM_PI          0x20000000   /* Segment is position-independent.  */
-#define PF_ARM_ABS         0x40000000   /* Segment must be loaded at its base address.  */
-
-/* Relocation types.  */
-
-START_RELOC_NUMBERS (elf_arm_reloc_type)
-/* AAELF official names and numbers.  */
-  RELOC_NUMBER (R_ARM_NONE,            	  0)
-  RELOC_NUMBER (R_ARM_PC24,            	  1)   /* deprecated */
-  RELOC_NUMBER (R_ARM_ABS32,           	  2)
-  RELOC_NUMBER (R_ARM_REL32,           	  3)
-  RELOC_NUMBER (R_ARM_LDR_PC_G0,       	  4)
-  RELOC_NUMBER (R_ARM_ABS16,           	  5)
-  RELOC_NUMBER (R_ARM_ABS12,           	  6)
-  RELOC_NUMBER (R_ARM_THM_ABS5,        	  7)
-  RELOC_NUMBER (R_ARM_ABS8,            	  8)
-  RELOC_NUMBER (R_ARM_SBREL32,         	  9)
-  RELOC_NUMBER (R_ARM_THM_CALL,        	 10)
-  RELOC_NUMBER (R_ARM_THM_PC8,         	 11)
-  RELOC_NUMBER (R_ARM_BREL_ADJ,	       	 12)
-  RELOC_NUMBER (R_ARM_SWI24,           	 13)   /* obsolete */
-  RELOC_NUMBER (R_ARM_THM_SWI8,        	 14)   /* obsolete */
-  RELOC_NUMBER (R_ARM_XPC25,           	 15)   /* obsolete */
-  RELOC_NUMBER (R_ARM_THM_XPC22,       	 16)   /* obsolete */
-  RELOC_NUMBER (R_ARM_TLS_DTPMOD32,    	 17)
-  RELOC_NUMBER (R_ARM_TLS_DTPOFF32,    	 18)
-  RELOC_NUMBER (R_ARM_TLS_TPOFF32,     	 19)
-  RELOC_NUMBER (R_ARM_COPY,            	 20)   /* Copy symbol at runtime.  */
-  RELOC_NUMBER (R_ARM_GLOB_DAT,        	 21)   /* Create GOT entry.  */
-  RELOC_NUMBER (R_ARM_JUMP_SLOT,       	 22)   /* Create PLT entry.  */
-  RELOC_NUMBER (R_ARM_RELATIVE,        	 23)   /* Adjust by program base.  */
-  RELOC_NUMBER (R_ARM_GOTOFF32,        	 24)   /* 32 bit offset to GOT.  */
-  RELOC_NUMBER (R_ARM_BASE_PREL,       	 25)   /* 32 bit PC relative offset to GOT.  */
-  RELOC_NUMBER (R_ARM_GOT_BREL,        	 26)   /* 32 bit GOT entry.  */
-  RELOC_NUMBER (R_ARM_PLT32,           	 27)   /* deprecated - 32 bit PLT address.  */
-  RELOC_NUMBER (R_ARM_CALL,            	 28)
-  RELOC_NUMBER (R_ARM_JUMP24,          	 29)
-  RELOC_NUMBER (R_ARM_THM_JUMP24,      	 30)
-  RELOC_NUMBER (R_ARM_BASE_ABS,        	 31)
-  RELOC_NUMBER (R_ARM_ALU_PCREL7_0,    	 32)   /* obsolete */
-  RELOC_NUMBER (R_ARM_ALU_PCREL15_8,   	 33)   /* obsolete */
-  RELOC_NUMBER (R_ARM_ALU_PCREL23_15,  	 34)   /* obsolete */
-  RELOC_NUMBER (R_ARM_LDR_SBREL_11_0,  	 35)   /* deprecated, should have _NC suffix */
-  RELOC_NUMBER (R_ARM_ALU_SBREL_19_12, 	 36)   /* deprecated, should have _NC suffix */
-  RELOC_NUMBER (R_ARM_ALU_SBREL_27_20, 	 37)   /* deprecated, should have _CK suffix */
-  RELOC_NUMBER (R_ARM_TARGET1,         	 38)
-  RELOC_NUMBER (R_ARM_SBREL31,         	 39)   /* deprecated */
-  RELOC_NUMBER (R_ARM_V4BX,            	 40)
-  RELOC_NUMBER (R_ARM_TARGET2,	       	 41)
-  RELOC_NUMBER (R_ARM_PREL31,	       	 42)
-  RELOC_NUMBER (R_ARM_MOVW_ABS_NC,     	 43)
-  RELOC_NUMBER (R_ARM_MOVT_ABS,        	 44)
-  RELOC_NUMBER (R_ARM_MOVW_PREL_NC,    	 45)
-  RELOC_NUMBER (R_ARM_MOVT_PREL,       	 46)
-  RELOC_NUMBER (R_ARM_THM_MOVW_ABS_NC, 	 47)
-  RELOC_NUMBER (R_ARM_THM_MOVT_ABS,    	 48)
-  RELOC_NUMBER (R_ARM_THM_MOVW_PREL_NC,	 49)
-  RELOC_NUMBER (R_ARM_THM_MOVT_PREL,   	 50)
-  RELOC_NUMBER (R_ARM_THM_JUMP19,      	 51)
-  RELOC_NUMBER (R_ARM_THM_JUMP6,       	 52)
-  RELOC_NUMBER (R_ARM_THM_ALU_PREL_11_0, 53)
-  RELOC_NUMBER (R_ARM_THM_PC12,        	 54)
-  RELOC_NUMBER (R_ARM_ABS32_NOI,       	 55)
-  RELOC_NUMBER (R_ARM_REL32_NOI,       	 56)
-  RELOC_NUMBER (R_ARM_ALU_PC_G0_NC,      57)
-  RELOC_NUMBER (R_ARM_ALU_PC_G0,         58)
-  RELOC_NUMBER (R_ARM_ALU_PC_G1_NC,      59)
-  RELOC_NUMBER (R_ARM_ALU_PC_G1,         60)
-  RELOC_NUMBER (R_ARM_ALU_PC_G2,         61)
-  RELOC_NUMBER (R_ARM_LDR_PC_G1,         62)
-  RELOC_NUMBER (R_ARM_LDR_PC_G2,         63)
-  RELOC_NUMBER (R_ARM_LDRS_PC_G0,        64)
-  RELOC_NUMBER (R_ARM_LDRS_PC_G1,        65)
-  RELOC_NUMBER (R_ARM_LDRS_PC_G2,        66)
-  RELOC_NUMBER (R_ARM_LDC_PC_G0,         67)
-  RELOC_NUMBER (R_ARM_LDC_PC_G1,         68)
-  RELOC_NUMBER (R_ARM_LDC_PC_G2,         69)
-  RELOC_NUMBER (R_ARM_ALU_SB_G0_NC,      70)
-  RELOC_NUMBER (R_ARM_ALU_SB_G0,         71)
-  RELOC_NUMBER (R_ARM_ALU_SB_G1_NC,      72)
-  RELOC_NUMBER (R_ARM_ALU_SB_G1,         73)
-  RELOC_NUMBER (R_ARM_ALU_SB_G2,         74)
-  RELOC_NUMBER (R_ARM_LDR_SB_G0,         75)
-  RELOC_NUMBER (R_ARM_LDR_SB_G1,         76)
-  RELOC_NUMBER (R_ARM_LDR_SB_G2,         77)
-  RELOC_NUMBER (R_ARM_LDRS_SB_G0,        78)
-  RELOC_NUMBER (R_ARM_LDRS_SB_G1,        79)
-  RELOC_NUMBER (R_ARM_LDRS_SB_G2,        80)
-  RELOC_NUMBER (R_ARM_LDC_SB_G0,         81)
-  RELOC_NUMBER (R_ARM_LDC_SB_G1,         82)
-  RELOC_NUMBER (R_ARM_LDC_SB_G2,         83)
-  RELOC_NUMBER (R_ARM_MOVW_BREL_NC,    	 84)
-  RELOC_NUMBER (R_ARM_MOVT_BREL,       	 85)
-  RELOC_NUMBER (R_ARM_MOVW_BREL,       	 86)
-  RELOC_NUMBER (R_ARM_THM_MOVW_BREL_NC,	 87)
-  RELOC_NUMBER (R_ARM_THM_MOVT_BREL,   	 88)
-  RELOC_NUMBER (R_ARM_THM_MOVW_BREL,   	 89)
-  /* 90-93 unallocated */
-  RELOC_NUMBER (R_ARM_PLT32_ABS,       	 94)
-  RELOC_NUMBER (R_ARM_GOT_ABS,	       	 95)
-  RELOC_NUMBER (R_ARM_GOT_PREL,	       	 96)
-  RELOC_NUMBER (R_ARM_GOT_BREL12,      	 97)
-  RELOC_NUMBER (R_ARM_GOTOFF12,	       	 98)
-  RELOC_NUMBER (R_ARM_GOTRELAX,	       	 99)
-  RELOC_NUMBER (R_ARM_GNU_VTENTRY,    	100)   /* deprecated - old C++ abi */
-  RELOC_NUMBER (R_ARM_GNU_VTINHERIT,  	101)   /* deprecated - old C++ abi */
-  RELOC_NUMBER (R_ARM_THM_JUMP11,     	102)
-  RELOC_NUMBER (R_ARM_THM_JUMP8,      	103)
-  RELOC_NUMBER (R_ARM_TLS_GD32,	      	104)
-  RELOC_NUMBER (R_ARM_TLS_LDM32,      	105)
-  RELOC_NUMBER (R_ARM_TLS_LDO32,      	106)
-  RELOC_NUMBER (R_ARM_TLS_IE32,       	107)
-  RELOC_NUMBER (R_ARM_TLS_LE32,	      	108)
-  RELOC_NUMBER (R_ARM_TLS_LDO12,      	109)
-  RELOC_NUMBER (R_ARM_TLS_LE12,	      	110)
-  RELOC_NUMBER (R_ARM_TLS_IE12GP,     	111)
-  /* 112 - 127 private range */
-  RELOC_NUMBER (R_ARM_ME_TOO,	        128)   /* obsolete */
-
-  /* Extensions?  R=read-only?  */
-  RELOC_NUMBER (R_ARM_RXPC25,         	249)
-  RELOC_NUMBER (R_ARM_RSBREL32,       	250)
-  RELOC_NUMBER (R_ARM_THM_RPC22,      	251)
-  RELOC_NUMBER (R_ARM_RREL32,         	252)
-  RELOC_NUMBER (R_ARM_RABS32,         	253)
-  RELOC_NUMBER (R_ARM_RPC24,          	254)
-  RELOC_NUMBER (R_ARM_RBASE,          	255)
-
-  /* Unofficial names for some of the relocs.  */
-  FAKE_RELOC (R_ARM_GOTOFF,             R_ARM_GOTOFF32)   /* 32 bit offset to GOT.  */
-  FAKE_RELOC (R_ARM_THM_PC22,           R_ARM_THM_CALL)
-  FAKE_RELOC (R_ARM_THM_PC11,           R_ARM_THM_JUMP11)
-  FAKE_RELOC (R_ARM_THM_PC9,            R_ARM_THM_JUMP8)
-
-  /* Relocs with both a different name, and (apparently) different meaning in
-     GNU usage.  */
-  FAKE_RELOC (R_ARM_GOTPC,              R_ARM_BASE_PREL)  /* 32 bit PC relative offset to GOT.  */
-  FAKE_RELOC (R_ARM_GOT32,              R_ARM_GOT_BREL)   /* 32 bit GOT entry.  */
-  FAKE_RELOC (R_ARM_ROSEGREL32,         R_ARM_SBREL31)    /* ??? */
-  FAKE_RELOC (R_ARM_AMP_VCALL9,         R_ARM_BREL_ADJ)   /* Thumb-something.  Not used.  */
-END_RELOC_NUMBERS (R_ARM_max)
-
-#ifdef BFD_ARCH_SIZE
-/* Routines for manipulating EABI object attributes.  */
-void elf32_arm_add_eabi_attr_int (bfd *, int, unsigned int);
-void elf32_arm_add_eabi_attr_string (bfd *, int, const char *);
-void elf32_arm_add_eabi_attr_compat (bfd *, unsigned int, const char *);
-int elf32_arm_get_eabi_attr_int (bfd *, int);
-
-void elf32_arm_set_eabi_attr_contents (bfd *, bfd_byte *, bfd_vma);
-bfd_vma elf32_arm_eabi_attr_size (bfd *);
-
-enum
-{
-  Tag_NULL,
-  Tag_File,
-  Tag_Section,
-  Tag_Symbol,
-  Tag_CPU_raw_name,
-  Tag_CPU_name,
-  Tag_CPU_arch,
-  Tag_CPU_arch_profile,
-  Tag_ARM_ISA_use,
-  Tag_THUMB_ISA_use,
-  Tag_VFP_arch,
-  Tag_WMMX_arch,
-  Tag_NEON_arch,
-  Tag_PCS_config,
-  Tag_ABI_PCS_R9_use,
-  Tag_ABI_PCS_RW_data,
-  Tag_ABI_PCS_RO_data,
-  Tag_ABI_PCS_GOT_use,
-  Tag_ABI_PCS_wchar_t,
-  Tag_ABI_FP_rounding,
-  Tag_ABI_FP_denormal,
-  Tag_ABI_FP_exceptions,
-  Tag_ABI_FP_user_exceptions,
-  Tag_ABI_FP_number_model,
-  Tag_ABI_align8_needed,
-  Tag_ABI_align8_preserved,
-  Tag_ABI_enum_size,
-  Tag_ABI_HardFP_use,
-  Tag_ABI_VFP_args,
-  Tag_ABI_WMMX_args,
-  Tag_ABI_optimization_goals,
-  Tag_ABI_FP_optimization_goals,
-  Tag_compatibility,
-};
-
-#endif
-
-/* The name of the note section used to identify arm variants.  */
-#define ARM_NOTE_SECTION ".note.gnu.arm.ident"
-
-/* Special section names.  */
-#define ELF_STRING_ARM_unwind           ".ARM.exidx"
-#define ELF_STRING_ARM_unwind_info      ".ARM.extab"
-#define ELF_STRING_ARM_unwind_once      ".gnu.linkonce.armexidx."
-#define ELF_STRING_ARM_unwind_info_once ".gnu.linkonce.armextab."
-
-#endif /* _ELF_ARM_H */
diff --git a/include/elf/avr.h b/include/elf/avr.h
deleted file mode 100644
index d2ffbe0..0000000
--- a/include/elf/avr.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/* AVR ELF support for BFD.
-   Copyright 1999, 2000, 2004, 2006 Free Software Foundation, Inc.
-   Contributed by Denis Chertykov <denisc@overta.ru>
-
-   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.,
-   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_AVR_H
-#define _ELF_AVR_H
-
-#include "elf/reloc-macros.h"
-
-/* Processor specific flags for the ELF header e_flags field.  */
-#define EF_AVR_MACH 0xf
-
-/* If bit #7 is set, it is assumed that the elf file uses local symbols
-   as reference for the relocations so that linker relaxation is possible.  */
-#define EF_AVR_LINKRELAX_PREPARED 0x80
-
-#define E_AVR_MACH_AVR1 1
-#define E_AVR_MACH_AVR2 2
-#define E_AVR_MACH_AVR3 3
-#define E_AVR_MACH_AVR4 4
-#define E_AVR_MACH_AVR5 5
-#define E_AVR_MACH_AVR6 6 
-
-/* Relocations.  */
-START_RELOC_NUMBERS (elf_avr_reloc_type)
-     RELOC_NUMBER (R_AVR_NONE,			0)
-     RELOC_NUMBER (R_AVR_32,			1)
-     RELOC_NUMBER (R_AVR_7_PCREL,		2)
-     RELOC_NUMBER (R_AVR_13_PCREL,		3)
-     RELOC_NUMBER (R_AVR_16, 			4)
-     RELOC_NUMBER (R_AVR_16_PM, 		5)
-     RELOC_NUMBER (R_AVR_LO8_LDI,		6)
-     RELOC_NUMBER (R_AVR_HI8_LDI,		7)
-     RELOC_NUMBER (R_AVR_HH8_LDI,		8)
-     RELOC_NUMBER (R_AVR_LO8_LDI_NEG,		9)
-     RELOC_NUMBER (R_AVR_HI8_LDI_NEG,	       10)
-     RELOC_NUMBER (R_AVR_HH8_LDI_NEG,	       11)
-     RELOC_NUMBER (R_AVR_LO8_LDI_PM,	       12)
-     RELOC_NUMBER (R_AVR_HI8_LDI_PM,	       13)
-     RELOC_NUMBER (R_AVR_HH8_LDI_PM,	       14)
-     RELOC_NUMBER (R_AVR_LO8_LDI_PM_NEG,       15)
-     RELOC_NUMBER (R_AVR_HI8_LDI_PM_NEG,       16)
-     RELOC_NUMBER (R_AVR_HH8_LDI_PM_NEG,       17)
-     RELOC_NUMBER (R_AVR_CALL,		       18)
-     RELOC_NUMBER (R_AVR_LDI,                  19)
-     RELOC_NUMBER (R_AVR_6,                    20)
-     RELOC_NUMBER (R_AVR_6_ADIW,               21)
-     RELOC_NUMBER (R_AVR_MS8_LDI,              22)
-     RELOC_NUMBER (R_AVR_MS8_LDI_NEG,          23)
-     RELOC_NUMBER (R_AVR_LO8_LDI_GS,	       24)
-     RELOC_NUMBER (R_AVR_HI8_LDI_GS,	       25)
-END_RELOC_NUMBERS (R_AVR_max)
-
-#endif /* _ELF_AVR_H */
diff --git a/include/elf/bfin.h b/include/elf/bfin.h
deleted file mode 100644
index 3c07cd1..0000000
--- a/include/elf/bfin.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Blackfin ELF support for BFD.
-   Copyright (C) 2005 Free Software Foundation, Inc.
-
-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.,
-51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_BFIN_H
-#define _ELF_BFIN_H
-			     
-#include "elf/reloc-macros.h"
-
-START_RELOC_NUMBERS (elf_bfin_reloc_type)
-  RELOC_NUMBER (R_unused0, 0x00) /* relocation type 0 is not defined*/
-  RELOC_NUMBER (R_pcrel5m2, 0x01) /*LSETUP part a*/
-  RELOC_NUMBER (R_unused1, 0x02) /* relocation type 2 is not defined*/
-  RELOC_NUMBER (R_pcrel10, 0x03) /* type 3, 0x00) if cc jump <target>  */
-  RELOC_NUMBER (R_pcrel12_jump, 0x04) /* type 4, 0x00) jump <target> */
-  RELOC_NUMBER (R_rimm16, 0x05)    /* type 0x5, 0x00) rN = <target> */
-  RELOC_NUMBER (R_luimm16, 0x06)  /* # 0x6, 0x00) preg.l=<target> Load imm 16 to lower half */
-  RELOC_NUMBER (R_huimm16, 0x07)  /* # 0x7, 0x00) preg.h=<target> Load imm 16 to upper half*/
-  RELOC_NUMBER (R_pcrel12_jump_s, 0x08) /* # 0x8 jump.s <target> */
-  RELOC_NUMBER (R_pcrel24_jump_x, 0x09) /* # 0x9 jump.x <target> */
-  RELOC_NUMBER (R_pcrel24, 0x0a)        /* # 0xa call <target> , 0x00) not expandable*/
-  RELOC_NUMBER (R_unusedb, 0x0b)         /* # 0xb not generated */
-  RELOC_NUMBER (R_unusedc, 0x0c)       /* # 0xc  not used */
-  RELOC_NUMBER (R_pcrel24_jump_l, 0x0d) /*0xd jump.l <target>*/
-  RELOC_NUMBER (R_pcrel24_call_x, 0x0e) /* 0xE, 0x00) call.x <target> if <target> is above 24 bit limit call through P1 */
-  RELOC_NUMBER (R_var_eq_symb, 0x0f)    /* 0xf, 0x00) linker should treat it same as 0x12 */
-  RELOC_NUMBER (R_byte_data, 0x10)      /* 0x10, 0x00) .byte var = symbol */
-  RELOC_NUMBER (R_byte2_data, 0x11)     /* 0x11, 0x00) .byte2 var = symbol */
-  RELOC_NUMBER (R_byte4_data, 0x12)     /* 0x12, 0x00) .byte4 var = symbol and .var var=symbol */
-  RELOC_NUMBER (R_pcrel11, 0x13)        /* 0x13, 0x00) lsetup part b */
-  RELOC_NUMBER (R_BFIN_GOT17M4, 0x14)
-  RELOC_NUMBER (R_BFIN_GOTHI, 0x15)
-  RELOC_NUMBER (R_BFIN_GOTLO, 0x16)
-  RELOC_NUMBER (R_BFIN_FUNCDESC, 0x17)
-  RELOC_NUMBER (R_BFIN_FUNCDESC_GOT17M4, 0x18)
-  RELOC_NUMBER (R_BFIN_FUNCDESC_GOTHI, 0x19)
-  RELOC_NUMBER (R_BFIN_FUNCDESC_GOTLO, 0x1a)
-  RELOC_NUMBER (R_BFIN_FUNCDESC_VALUE, 0x1b)
-  RELOC_NUMBER (R_BFIN_FUNCDESC_GOTOFF17M4, 0x1c)
-  RELOC_NUMBER (R_BFIN_FUNCDESC_GOTOFFHI, 0x1d)
-  RELOC_NUMBER (R_BFIN_FUNCDESC_GOTOFFLO, 0x1e)
-  RELOC_NUMBER (R_BFIN_GOTOFF17M4, 0x1f)
-  RELOC_NUMBER (R_BFIN_GOTOFFHI, 0x20)
-  RELOC_NUMBER (R_BFIN_GOTOFFLO, 0x21)
-
-  RELOC_NUMBER (R_push, 0xE0)
-  RELOC_NUMBER (R_const, 0xE1)
-  RELOC_NUMBER (R_add, 0xE2)
-  RELOC_NUMBER (R_sub, 0xE3)
-  RELOC_NUMBER (R_mult, 0xE4)
-  RELOC_NUMBER (R_div, 0xE5)
-  RELOC_NUMBER (R_mod, 0xE6)
-  RELOC_NUMBER (R_lshift, 0xE7)
-  RELOC_NUMBER (R_rshift, 0xE8)
-  RELOC_NUMBER (R_and, 0xE9)
-  RELOC_NUMBER (R_or, 0xEA)
-  RELOC_NUMBER (R_xor, 0xEB)
-  RELOC_NUMBER (R_land, 0xEC)
-  RELOC_NUMBER (R_lor, 0xED)
-  RELOC_NUMBER (R_len, 0xEE)
-  RELOC_NUMBER (R_neg, 0xEF)
-  RELOC_NUMBER (R_comp, 0xF0)
-  RELOC_NUMBER (R_page, 0xF1)
-  RELOC_NUMBER (R_hwpage, 0xF2)
-  RELOC_NUMBER (R_addr, 0xF3)
-  RELOC_NUMBER (R_pltpc, 0x40)          /* PLT gnu only relocation */
-  RELOC_NUMBER (R_got, 0x41)            /* GOT gnu only relocation */
-  RELOC_NUMBER (R_BFIN_GNU_VTINHERIT, 0x42) /* C++, gnu only */
-  RELOC_NUMBER (R_BFIN_GNU_VTENTRY, 0x43) /* C++, gnu only */
-END_RELOC_NUMBERS (R_max)
-
-/* Processor specific flags for the ELF header e_flags field.  */
-#define EF_BFIN_PIC		0x00000001	/* -fpic */
-#define EF_BFIN_FDPIC		0x00000002      /* -mfdpic */
-
-#define	EF_BFIN_PIC_FLAGS	(EF_BFIN_PIC | EF_BFIN_FDPIC)
-#endif /* _ELF_BFIN_H */
diff --git a/include/elf/common.h b/include/elf/common.h
deleted file mode 100644
index 0380a8f..0000000
--- a/include/elf/common.h
+++ /dev/null
@@ -1,769 +0,0 @@
-/* ELF support for BFD.
-   Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-   2001, 2002, 2003, 2004, 2005, 2006
-   Free Software Foundation, Inc.
-
-   Written by Fred Fish @ Cygnus Support, from information published
-   in "UNIX System V Release 4, Programmers Guide: ANSI C and
-   Programming Support Tools".
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-
-/* This file is part of ELF support for BFD, and contains the portions
-   that are common to both the internal and external representations.
-   For example, ELFMAG0 is the byte 0x7F in both the internal (in-memory)
-   and external (in-file) representations.  */
-
-#ifndef _ELF_COMMON_H
-#define _ELF_COMMON_H
-
-/* Fields in e_ident[].  */
-
-#define EI_MAG0		0	/* File identification byte 0 index */
-#define ELFMAG0		   0x7F	/* Magic number byte 0 */
-
-#define EI_MAG1		1	/* File identification byte 1 index */
-#define ELFMAG1		    'E'	/* Magic number byte 1 */
-
-#define EI_MAG2		2	/* File identification byte 2 index */
-#define ELFMAG2		    'L'	/* Magic number byte 2 */
-
-#define EI_MAG3		3	/* File identification byte 3 index */
-#define ELFMAG3		    'F'	/* Magic number byte 3 */
-
-#define EI_CLASS	4	/* File class */
-#define ELFCLASSNONE	      0	/* Invalid class */
-#define ELFCLASS32	      1	/* 32-bit objects */
-#define ELFCLASS64	      2	/* 64-bit objects */
-
-#define EI_DATA		5	/* Data encoding */
-#define ELFDATANONE	      0	/* Invalid data encoding */
-#define ELFDATA2LSB	      1	/* 2's complement, little endian */
-#define ELFDATA2MSB	      2	/* 2's complement, big endian */
-
-#define EI_VERSION	6	/* File version */
-
-#define EI_OSABI	7	/* Operating System/ABI indication */
-#define ELFOSABI_NONE	      0	/* UNIX System V ABI */
-#define ELFOSABI_HPUX	      1	/* HP-UX operating system */
-#define ELFOSABI_NETBSD	      2	/* NetBSD */
-#define ELFOSABI_LINUX	      3	/* GNU/Linux */
-#define ELFOSABI_HURD	      4	/* GNU/Hurd */
-#define ELFOSABI_SOLARIS      6	/* Solaris */
-#define ELFOSABI_AIX	      7	/* AIX */
-#define ELFOSABI_IRIX	      8	/* IRIX */
-#define ELFOSABI_FREEBSD      9	/* FreeBSD */
-#define ELFOSABI_TRU64	     10	/* TRU64 UNIX */
-#define ELFOSABI_MODESTO     11	/* Novell Modesto */
-#define ELFOSABI_OPENBSD     12	/* OpenBSD */
-#define ELFOSABI_OPENVMS     13	/* OpenVMS */
-#define ELFOSABI_NSK	     14	/* Hewlett-Packard Non-Stop Kernel */
-#define ELFOSABI_AROS	     15	/* Amiga Research OS */
-#define ELFOSABI_ARM	     97	/* ARM */
-#define ELFOSABI_STANDALONE 255	/* Standalone (embedded) application */
-
-#define EI_ABIVERSION	8	/* ABI version */
-
-#define EI_PAD		9	/* Start of padding bytes */
-
-
-/* Values for e_type, which identifies the object file type.  */
-
-#define ET_NONE		0	/* No file type */
-#define ET_REL		1	/* Relocatable file */
-#define ET_EXEC		2	/* Executable file */
-#define ET_DYN		3	/* Shared object file */
-#define ET_CORE		4	/* Core file */
-#define ET_LOOS		0xFE00	/* Operating system-specific */
-#define ET_HIOS		0xFEFF	/* Operating system-specific */
-#define ET_LOPROC	0xFF00	/* Processor-specific */
-#define ET_HIPROC	0xFFFF	/* Processor-specific */
-
-/* Values for e_machine, which identifies the architecture.  These numbers
-   are officially assigned by registry@caldera.com.  See below for a list of
-   ad-hoc numbers used during initial development.  */
-
-#define EM_NONE		  0	/* No machine */
-#define EM_M32		  1	/* AT&T WE 32100 */
-#define EM_SPARC	  2	/* SUN SPARC */
-#define EM_386		  3	/* Intel 80386 */
-#define EM_68K		  4	/* Motorola m68k family */
-#define EM_88K		  5	/* Motorola m88k family */
-#define EM_486		  6	/* Intel 80486 *//* Reserved for future use */
-#define EM_860		  7	/* Intel 80860 */
-#define EM_MIPS		  8	/* MIPS R3000 (officially, big-endian only) */
-#define EM_S370		  9	/* IBM System/370 */
-#define EM_MIPS_RS3_LE	 10	/* MIPS R3000 little-endian (Oct 4 1999 Draft) Deprecated */
-
-#define EM_PARISC	 15	/* HPPA */
-
-#define EM_VPP550	 17	/* Fujitsu VPP500 */
-#define EM_SPARC32PLUS	 18	/* Sun's "v8plus" */
-#define EM_960		 19	/* Intel 80960 */
-#define EM_PPC		 20	/* PowerPC */
-#define EM_PPC64	 21	/* 64-bit PowerPC */
-#define EM_S390		 22	/* IBM S/390 */
-
-#define EM_V800		 36	/* NEC V800 series */
-#define EM_FR20		 37	/* Fujitsu FR20 */
-#define EM_RH32		 38	/* TRW RH32 */
-#define EM_MCORE	 39	/* Motorola M*Core */ /* May also be taken by Fujitsu MMA */
-#define EM_RCE		 39	/* Old name for MCore */
-#define EM_ARM		 40	/* ARM */
-#define EM_OLD_ALPHA	 41	/* Digital Alpha */
-#define EM_SH		 42	/* Renesas (formerly Hitachi) / SuperH SH */
-#define EM_SPARCV9	 43	/* SPARC v9 64-bit */
-#define EM_TRICORE	 44	/* Siemens Tricore embedded processor */
-#define EM_ARC		 45	/* ARC Cores */
-#define EM_H8_300	 46	/* Renesas (formerly Hitachi) H8/300 */
-#define EM_H8_300H	 47	/* Renesas (formerly Hitachi) H8/300H */
-#define EM_H8S		 48	/* Renesas (formerly Hitachi) H8S */
-#define EM_H8_500	 49	/* Renesas (formerly Hitachi) H8/500 */
-#define EM_IA_64	 50	/* Intel IA-64 Processor */
-#define EM_MIPS_X	 51	/* Stanford MIPS-X */
-#define EM_COLDFIRE	 52	/* Motorola Coldfire */
-#define EM_68HC12	 53	/* Motorola M68HC12 */
-#define EM_MMA		 54	/* Fujitsu Multimedia Accelerator */
-#define EM_PCP		 55	/* Siemens PCP */
-#define EM_NCPU		 56	/* Sony nCPU embedded RISC processor */
-#define EM_NDR1		 57	/* Denso NDR1 microprocesspr */
-#define EM_STARCORE	 58	/* Motorola Star*Core processor */
-#define EM_ME16		 59	/* Toyota ME16 processor */
-#define EM_ST100	 60	/* STMicroelectronics ST100 processor */
-#define EM_TINYJ	 61	/* Advanced Logic Corp. TinyJ embedded processor */
-#define EM_X86_64	 62	/* Advanced Micro Devices X86-64 processor */
-
-#define EM_PDP10	 64	/* Digital Equipment Corp. PDP-10 */
-#define EM_PDP11	 65	/* Digital Equipment Corp. PDP-11 */
-#define EM_FX66		 66	/* Siemens FX66 microcontroller */
-#define EM_ST9PLUS	 67	/* STMicroelectronics ST9+ 8/16 bit microcontroller */
-#define EM_ST7		 68	/* STMicroelectronics ST7 8-bit microcontroller */
-#define EM_68HC16	 69	/* Motorola MC68HC16 Microcontroller */
-#define EM_68HC11	 70	/* Motorola MC68HC11 Microcontroller */
-#define EM_68HC08	 71	/* Motorola MC68HC08 Microcontroller */
-#define EM_68HC05	 72	/* Motorola MC68HC05 Microcontroller */
-#define EM_SVX		 73	/* Silicon Graphics SVx */
-#define EM_ST19		 74	/* STMicroelectronics ST19 8-bit cpu */
-#define EM_VAX		 75	/* Digital VAX */
-#define EM_CRIS		 76	/* Axis Communications 32-bit embedded processor */
-#define EM_JAVELIN	 77	/* Infineon Technologies 32-bit embedded cpu */
-#define EM_FIREPATH	 78	/* Element 14 64-bit DSP processor */
-#define EM_ZSP		 79	/* LSI Logic's 16-bit DSP processor */
-#define EM_MMIX		 80	/* Donald Knuth's educational 64-bit processor */
-#define EM_HUANY	 81	/* Harvard's machine-independent format */
-#define EM_PRISM	 82	/* SiTera Prism */
-#define EM_AVR		 83	/* Atmel AVR 8-bit microcontroller */
-#define EM_FR30		 84	/* Fujitsu FR30 */
-#define EM_D10V		 85	/* Mitsubishi D10V */
-#define EM_D30V		 86	/* Mitsubishi D30V */
-#define EM_V850		 87	/* NEC v850 */
-#define EM_M32R		 88	/* Renesas M32R (formerly Mitsubishi M32R) */
-#define EM_MN10300	 89	/* Matsushita MN10300 */
-#define EM_MN10200	 90	/* Matsushita MN10200 */
-#define EM_PJ		 91	/* picoJava */
-#define EM_OPENRISC	 92	/* OpenRISC 32-bit embedded processor */
-#define EM_ARC_A5	 93	/* ARC Cores Tangent-A5 */
-#define EM_XTENSA	 94	/* Tensilica Xtensa Architecture */
-#define EM_IP2K		101	/* Ubicom IP2022 micro controller */
-#define EM_CR		103	/* National Semiconductor CompactRISC */
-#define EM_MSP430	105	/* TI msp430 micro controller */
-#define EM_BLACKFIN	106	/* ADI Blackfin */
-#define EM_ALTERA_NIOS2	113	/* Altera Nios II soft-core processor */
-#define EM_CRX		114	/* National Semiconductor CRX */
-
-/* If it is necessary to assign new unofficial EM_* values, please pick large
-   random numbers (0x8523, 0xa7f2, etc.) to minimize the chances of collision
-   with official or non-GNU unofficial values.
-
-   NOTE: Do not just increment the most recent number by one.
-   Somebody else somewhere will do exactly the same thing, and you
-   will have a collision.  Instead, pick a random number.
-
-   Normally, each entity or maintainer responsible for a machine with an
-   unofficial e_machine number should eventually ask registry@caldera.com for
-   an officially blessed number to be added to the list above.	*/
-
-/* Old version of Sparc v9, from before the ABI;
-   This should be removed shortly.  */
-#define EM_OLD_SPARCV9		11
-
-/* Old version of PowerPC, this should be removed shortly. */
-#define EM_PPC_OLD		17
-
-/* picoJava */
-#define EM_PJ_OLD      		99
-
-/* AVR magic number.  Written in the absense of an ABI.  */
-#define EM_AVR_OLD		0x1057
-
-/* MSP430 magic number.  Written in the absense of everything.  */
-#define EM_MSP430_OLD		0x1059
-
-/* Morpho MT.   Written in the absense of an ABI.  */
-#define EM_MT                   0x2530
-
-/* FR30 magic number - no EABI available.  */
-#define EM_CYGNUS_FR30		0x3330
-
-/* OpenRISC magic number.  Written in the absense of an ABI.  */
-#define EM_OPENRISC_OLD		0x3426
-
-/* DLX magic number.  Written in the absense of an ABI.  */
-#define EM_DLX			0x5aa5
-
-/* FRV magic number - no EABI available??.  */
-#define EM_CYGNUS_FRV		0x5441
-
-/* Infineon Technologies 16-bit microcontroller with C166-V2 core.  */
-#define EM_XC16X   		0x4688
-
-/* D10V backend magic number.  Written in the absence of an ABI.  */
-#define EM_CYGNUS_D10V		0x7650
-
-/* D30V backend magic number.  Written in the absence of an ABI.  */
-#define EM_CYGNUS_D30V		0x7676
-
-/* Ubicom IP2xxx;   Written in the absense of an ABI.  */
-#define EM_IP2K_OLD		0x8217
-
-/* (Deprecated) Temporary number for the OpenRISC processor.  */
-#define EM_OR32			0x8472
-
-/* Cygnus PowerPC ELF backend.  Written in the absence of an ABI.  */
-#define EM_CYGNUS_POWERPC 	0x9025
-
-/* Alpha backend magic number.  Written in the absence of an ABI.  */
-#define EM_ALPHA		0x9026
-
-/* Cygnus M32R ELF backend.  Written in the absence of an ABI.  */
-#define EM_CYGNUS_M32R		0x9041
-
-/* V850 backend magic number.  Written in the absense of an ABI.  */
-#define EM_CYGNUS_V850		0x9080
-
-/* old S/390 backend magic number. Written in the absence of an ABI.  */
-#define EM_S390_OLD		0xa390
-
-/* Old, unofficial value for Xtensa.  */
-#define EM_XTENSA_OLD		0xabc7
-
-#define EM_XSTORMY16		0xad45
-
-/* mn10200 and mn10300 backend magic numbers.
-   Written in the absense of an ABI.  */
-#define EM_CYGNUS_MN10300	0xbeef
-#define EM_CYGNUS_MN10200	0xdead
-
-/* Renesas M32C and M16C.  */
-#define EM_M32C			0xFEB0
-
-/* Vitesse IQ2000.  */
-#define EM_IQ2000		0xFEBA
-
-/* NIOS magic number - no EABI available.  */
-#define EM_NIOS32		0xFEBB
-
-/* See the above comment before you add a new EM_* value here.  */
-
-/* Values for e_version.  */
-
-#define EV_NONE		0		/* Invalid ELF version */
-#define EV_CURRENT	1		/* Current version */
-
-/* Values for program header, p_type field.  */
-
-#define PT_NULL		0		/* Program header table entry unused */
-#define PT_LOAD		1		/* Loadable program segment */
-#define PT_DYNAMIC	2		/* Dynamic linking information */
-#define PT_INTERP	3		/* Program interpreter */
-#define PT_NOTE		4		/* Auxiliary information */
-#define PT_SHLIB	5		/* Reserved, unspecified semantics */
-#define PT_PHDR		6		/* Entry for header table itself */
-#define PT_TLS		7		/* Thread local storage segment */
-#define PT_LOOS		0x60000000	/* OS-specific */
-#define PT_HIOS		0x6fffffff	/* OS-specific */
-#define PT_LOPROC	0x70000000	/* Processor-specific */
-#define PT_HIPROC	0x7FFFFFFF	/* Processor-specific */
-
-#define PT_GNU_EH_FRAME	(PT_LOOS + 0x474e550) /* Frame unwind information */
-#define PT_SUNW_EH_FRAME PT_GNU_EH_FRAME      /* Solaris uses the same value */
-#define PT_GNU_STACK	(PT_LOOS + 0x474e551) /* Stack flags */
-#define PT_GNU_RELRO	(PT_LOOS + 0x474e552) /* Read-only after relocation */
-
-/* Program segment permissions, in program header p_flags field.  */
-
-#define PF_X		(1 << 0)	/* Segment is executable */
-#define PF_W		(1 << 1)	/* Segment is writable */
-#define PF_R		(1 << 2)	/* Segment is readable */
-/* #define PF_MASKOS	0x0F000000    *//* OS-specific reserved bits */
-#define PF_MASKOS	0x0FF00000	/* New value, Oct 4, 1999 Draft */
-#define PF_MASKPROC	0xF0000000	/* Processor-specific reserved bits */
-
-/* Values for section header, sh_type field.  */
-
-#define SHT_NULL	0		/* Section header table entry unused */
-#define SHT_PROGBITS	1		/* Program specific (private) data */
-#define SHT_SYMTAB	2		/* Link editing symbol table */
-#define SHT_STRTAB	3		/* A string table */
-#define SHT_RELA	4		/* Relocation entries with addends */
-#define SHT_HASH	5		/* A symbol hash table */
-#define SHT_DYNAMIC	6		/* Information for dynamic linking */
-#define SHT_NOTE	7		/* Information that marks file */
-#define SHT_NOBITS	8		/* Section occupies no space in file */
-#define SHT_REL		9		/* Relocation entries, no addends */
-#define SHT_SHLIB	10		/* Reserved, unspecified semantics */
-#define SHT_DYNSYM	11		/* Dynamic linking symbol table */
-
-#define SHT_INIT_ARRAY	  14		/* Array of ptrs to init functions */
-#define SHT_FINI_ARRAY	  15		/* Array of ptrs to finish functions */
-#define SHT_PREINIT_ARRAY 16		/* Array of ptrs to pre-init funcs */
-#define SHT_GROUP	  17		/* Section contains a section group */
-#define SHT_SYMTAB_SHNDX  18		/* Indicies for SHN_XINDEX entries */
-
-#define SHT_LOOS	0x60000000	/* First of OS specific semantics */
-#define SHT_HIOS	0x6fffffff	/* Last of OS specific semantics */
-
-#define SHT_GNU_HASH	0x6ffffff6	/* GNU style symbol hash table */
-#define SHT_GNU_LIBLIST	0x6ffffff7	/* List of prelink dependencies */
-
-/* The next three section types are defined by Solaris, and are named
-   SHT_SUNW*.  We use them in GNU code, so we also define SHT_GNU*
-   versions.  */
-#define SHT_SUNW_verdef	0x6ffffffd	/* Versions defined by file */
-#define SHT_SUNW_verneed 0x6ffffffe	/* Versions needed by file */
-#define SHT_SUNW_versym	0x6fffffff	/* Symbol versions */
-
-#define SHT_GNU_verdef	SHT_SUNW_verdef
-#define SHT_GNU_verneed	SHT_SUNW_verneed
-#define SHT_GNU_versym	SHT_SUNW_versym
-
-#define SHT_LOPROC	0x70000000	/* Processor-specific semantics, lo */
-#define SHT_HIPROC	0x7FFFFFFF	/* Processor-specific semantics, hi */
-#define SHT_LOUSER	0x80000000	/* Application-specific semantics */
-/* #define SHT_HIUSER	0x8FFFFFFF    *//* Application-specific semantics */
-#define SHT_HIUSER	0xFFFFFFFF	/* New value, defined in Oct 4, 1999 Draft */
-
-/* Values for section header, sh_flags field.  */
-
-#define SHF_WRITE	(1 << 0)	/* Writable data during execution */
-#define SHF_ALLOC	(1 << 1)	/* Occupies memory during execution */
-#define SHF_EXECINSTR	(1 << 2)	/* Executable machine instructions */
-#define SHF_MERGE	(1 << 4)	/* Data in this section can be merged */
-#define SHF_STRINGS	(1 << 5)	/* Contains null terminated character strings */
-#define SHF_INFO_LINK	(1 << 6)	/* sh_info holds section header table index */
-#define SHF_LINK_ORDER	(1 << 7)	/* Preserve section ordering when linking */
-#define SHF_OS_NONCONFORMING (1 << 8)	/* OS specific processing required */
-#define SHF_GROUP	(1 << 9)	/* Member of a section group */
-#define SHF_TLS		(1 << 10)	/* Thread local storage section */
-
-/* #define SHF_MASKOS	0x0F000000    *//* OS-specific semantics */
-#define SHF_MASKOS	0x0FF00000	/* New value, Oct 4, 1999 Draft */
-#define SHF_MASKPROC	0xF0000000	/* Processor-specific semantics */
-
-/* Values of note segment descriptor types for core files.  */
-
-#define NT_PRSTATUS	1		/* Contains copy of prstatus struct */
-#define NT_FPREGSET	2		/* Contains copy of fpregset struct */
-#define NT_PRPSINFO	3		/* Contains copy of prpsinfo struct */
-#define NT_TASKSTRUCT	4		/* Contains copy of task struct */
-#define NT_AUXV		6		/* Contains copy of Elfxx_auxv_t */
-#define NT_PRXFPREG	0x46e62b7f	/* Contains a user_xfpregs_struct; */
-					/*   note name must be "LINUX".  */
-
-/* Note segments for core files on dir-style procfs systems.  */
-
-#define NT_PSTATUS	10		/* Has a struct pstatus */
-#define NT_FPREGS	12		/* Has a struct fpregset */
-#define NT_PSINFO	13		/* Has a struct psinfo */
-#define NT_LWPSTATUS	16		/* Has a struct lwpstatus_t */
-#define NT_LWPSINFO	17		/* Has a struct lwpsinfo_t */
-#define NT_WIN32PSTATUS	18		/* Has a struct win32_pstatus */
-
-
-/* Note segments for core files on NetBSD systems.  Note name
-   must start with "NetBSD-CORE".  */
-
-#define NT_NETBSDCORE_PROCINFO	1	/* Has a struct procinfo */
-#define NT_NETBSDCORE_FIRSTMACH	32	/* start of machdep note types */
-
-
-/* Values of note segment descriptor types for object files.  */
-
-#define NT_VERSION	1		/* Contains a version string.  */
-#define NT_ARCH		2		/* Contains an architecture string.  */
-
-/* Values for GNU .note.ABI-tag notes.  Note name is "GNU".  */
-
-#define NT_GNU_ABI_TAG		1
-#define GNU_ABI_TAG_LINUX	0
-#define GNU_ABI_TAG_HURD	1
-#define GNU_ABI_TAG_SOLARIS	2
-#define GNU_ABI_TAG_FREEBSD	3
-#define GNU_ABI_TAG_NETBSD	4
-
-/* Values for NetBSD .note.netbsd.ident notes.  Note name is "NetBSD".  */
-
-#define NT_NETBSD_IDENT		1
-
-/* Values for OpenBSD .note.openbsd.ident notes.  Note name is "OpenBSD".  */
-
-#define NT_OPENBSD_IDENT	1
-
-/* Values for FreeBSD .note.ABI-tag notes.  Note name is "FreeBSD".  */
-
-#define NT_FREEBSD_ABI_TAG	1
-
-/* These three macros disassemble and assemble a symbol table st_info field,
-   which contains the symbol binding and symbol type.  The STB_ and STT_
-   defines identify the binding and type.  */
-
-#define ELF_ST_BIND(val)		(((unsigned int)(val)) >> 4)
-#define ELF_ST_TYPE(val)		((val) & 0xF)
-#define ELF_ST_INFO(bind,type)		(((bind) << 4) + ((type) & 0xF))
-
-/* The 64bit and 32bit versions of these macros are identical, but
-   the ELF spec defines them, so here they are.  */
-#define ELF32_ST_BIND  ELF_ST_BIND
-#define ELF32_ST_TYPE  ELF_ST_TYPE
-#define ELF32_ST_INFO  ELF_ST_INFO
-#define ELF64_ST_BIND  ELF_ST_BIND
-#define ELF64_ST_TYPE  ELF_ST_TYPE
-#define ELF64_ST_INFO  ELF_ST_INFO
-
-/* This macro disassembles and assembles a symbol's visibility into
-   the st_other field.  The STV_ defines specificy the actual visibility.  */
-
-#define ELF_ST_VISIBILITY(v)		((v) & 0x3)
-/* The remaining bits in the st_other field are not currently used.
-   They should be set to zero.  */
-
-#define ELF32_ST_VISIBILITY  ELF_ST_VISIBILITY
-#define ELF64_ST_VISIBILITY  ELF_ST_VISIBILITY
-
-
-#define STN_UNDEF	0		/* Undefined symbol index */
-
-#define STB_LOCAL	0		/* Symbol not visible outside obj */
-#define STB_GLOBAL	1		/* Symbol visible outside obj */
-#define STB_WEAK	2		/* Like globals, lower precedence */
-#define STB_LOOS	10		/* OS-specific semantics */
-#define STB_HIOS	12		/* OS-specific semantics */
-#define STB_LOPROC	13		/* Application-specific semantics */
-#define STB_HIPROC	15		/* Application-specific semantics */
-
-#define STT_NOTYPE	0		/* Symbol type is unspecified */
-#define STT_OBJECT	1		/* Symbol is a data object */
-#define STT_FUNC	2		/* Symbol is a code object */
-#define STT_SECTION	3		/* Symbol associated with a section */
-#define STT_FILE	4		/* Symbol gives a file name */
-#define STT_COMMON	5		/* An uninitialised common block */
-#define STT_TLS		6		/* Thread local data object */
-#define STT_LOOS	10		/* OS-specific semantics */
-#define STT_HIOS	12		/* OS-specific semantics */
-#define STT_LOPROC	13		/* Application-specific semantics */
-#define STT_HIPROC	15		/* Application-specific semantics */
-
-/* Special section indices, which may show up in st_shndx fields, among
-   other places.  */
-
-#define SHN_UNDEF	0		/* Undefined section reference */
-#define SHN_LORESERVE	0xFF00		/* Begin range of reserved indices */
-#define SHN_LOPROC	0xFF00		/* Begin range of appl-specific */
-#define SHN_HIPROC	0xFF1F		/* End range of appl-specific */
-#define SHN_LOOS	0xFF20		/* OS specific semantics, lo */
-#define SHN_HIOS	0xFF3F		/* OS specific semantics, hi */
-#define SHN_ABS		0xFFF1		/* Associated symbol is absolute */
-#define SHN_COMMON	0xFFF2		/* Associated symbol is in common */
-#define SHN_XINDEX	0xFFFF		/* Section index is held elsewhere */
-#define SHN_HIRESERVE	0xFFFF		/* End range of reserved indices */
-#define SHN_BAD		((unsigned) -1) /* Used internally by bfd */
-
-/* The following constants control how a symbol may be accessed once it has
-   become part of an executable or shared library.  */
-
-#define STV_DEFAULT	0		/* Visibility is specified by binding type */
-#define STV_INTERNAL	1		/* OS specific version of STV_HIDDEN */
-#define STV_HIDDEN	2		/* Can only be seen inside currect component */
-#define STV_PROTECTED	3		/* Treat as STB_LOCAL inside current component */
-
-/* Relocation info handling macros.  */
-
-#define ELF32_R_SYM(i)		((i) >> 8)
-#define ELF32_R_TYPE(i)		((i) & 0xff)
-#define ELF32_R_INFO(s,t)	(((s) << 8) + ((t) & 0xff))
-
-#define ELF64_R_SYM(i)		((i) >> 32)
-#define ELF64_R_TYPE(i)		((i) & 0xffffffff)
-#define ELF64_R_INFO(s,t)	(((bfd_vma) (s) << 31 << 1) + (bfd_vma) (t))
-
-/* Dynamic section tags.  */
-
-#define DT_NULL		0
-#define DT_NEEDED	1
-#define DT_PLTRELSZ	2
-#define DT_PLTGOT	3
-#define DT_HASH		4
-#define DT_STRTAB	5
-#define DT_SYMTAB	6
-#define DT_RELA		7
-#define DT_RELASZ	8
-#define DT_RELAENT	9
-#define DT_STRSZ	10
-#define DT_SYMENT	11
-#define DT_INIT		12
-#define DT_FINI		13
-#define DT_SONAME	14
-#define DT_RPATH	15
-#define DT_SYMBOLIC	16
-#define DT_REL		17
-#define DT_RELSZ	18
-#define DT_RELENT	19
-#define DT_PLTREL	20
-#define DT_DEBUG	21
-#define DT_TEXTREL	22
-#define DT_JMPREL	23
-#define DT_BIND_NOW	24
-#define DT_INIT_ARRAY	25
-#define DT_FINI_ARRAY	26
-#define DT_INIT_ARRAYSZ 27
-#define DT_FINI_ARRAYSZ 28
-#define DT_RUNPATH	29
-#define DT_FLAGS	30
-#define DT_ENCODING	31
-#define DT_PREINIT_ARRAY   32
-#define DT_PREINIT_ARRAYSZ 33
-
-/* Note, the Oct 4, 1999 draft of the ELF ABI changed the values
-   for DT_LOOS and DT_HIOS.  Some implementations however, use
-   values outside of the new range (see below).	 */
-#define OLD_DT_LOOS	0x60000000
-#define DT_LOOS		0x6000000d
-#define DT_HIOS		0x6ffff000
-#define OLD_DT_HIOS	0x6fffffff
-
-#define DT_LOPROC	0x70000000
-#define DT_HIPROC	0x7fffffff
-
-/* The next four dynamic tags are used on Solaris.  We support them
-   everywhere.	Note these values lie outside of the (new) range for
-   OS specific values.	This is a deliberate special case and we
-   maintain it for backwards compatability.  */
-#define DT_VALRNGLO	0x6ffffd00
-#define DT_GNU_PRELINKED 0x6ffffdf5
-#define DT_GNU_CONFLICTSZ 0x6ffffdf6
-#define DT_GNU_LIBLISTSZ 0x6ffffdf7
-#define DT_CHECKSUM	0x6ffffdf8
-#define DT_PLTPADSZ	0x6ffffdf9
-#define DT_MOVEENT	0x6ffffdfa
-#define DT_MOVESZ	0x6ffffdfb
-#define DT_FEATURE	0x6ffffdfc
-#define DT_POSFLAG_1	0x6ffffdfd
-#define DT_SYMINSZ	0x6ffffdfe
-#define DT_SYMINENT	0x6ffffdff
-#define DT_VALRNGHI	0x6ffffdff
-
-#define DT_ADDRRNGLO	0x6ffffe00
-#define DT_GNU_HASH	0x6ffffef5
-#define DT_TLSDESC_PLT	0x6ffffef6
-#define DT_TLSDESC_GOT	0x6ffffef7
-#define DT_GNU_CONFLICT	0x6ffffef8
-#define DT_GNU_LIBLIST	0x6ffffef9
-#define DT_CONFIG	0x6ffffefa
-#define DT_DEPAUDIT	0x6ffffefb
-#define DT_AUDIT	0x6ffffefc
-#define DT_PLTPAD	0x6ffffefd
-#define DT_MOVETAB	0x6ffffefe
-#define DT_SYMINFO	0x6ffffeff
-#define DT_ADDRRNGHI	0x6ffffeff
-
-#define DT_RELACOUNT	0x6ffffff9
-#define DT_RELCOUNT	0x6ffffffa
-#define DT_FLAGS_1	0x6ffffffb
-#define DT_VERDEF	0x6ffffffc
-#define DT_VERDEFNUM	0x6ffffffd
-#define DT_VERNEED	0x6ffffffe
-#define DT_VERNEEDNUM	0x6fffffff
-
-/* This tag is a GNU extension to the Solaris version scheme.  */
-#define DT_VERSYM	0x6ffffff0
-
-#define DT_LOPROC	0x70000000
-#define DT_HIPROC	0x7fffffff
-
-/* These section tags are used on Solaris.  We support them
-   everywhere, and hope they do not conflict.  */
-
-#define DT_AUXILIARY	0x7ffffffd
-#define DT_USED		0x7ffffffe
-#define DT_FILTER	0x7fffffff
-
-
-/* Values used in DT_FEATURE .dynamic entry.  */
-#define DTF_1_PARINIT	0x00000001
-/* From
-
-   http://docs.sun.com:80/ab2/coll.45.13/LLM/@Ab2PageView/21165?Ab2Lang=C&Ab2Enc=iso-8859-1
-
-   DTF_1_CONFEXP is the same as DTF_1_PARINIT. It is a typo. The value
-   defined here is the same as the one in <sys/link.h> on Solaris 8.  */
-#define DTF_1_CONFEXP	0x00000002
-
-/* Flag values used in the DT_POSFLAG_1 .dynamic entry.	 */
-#define DF_P1_LAZYLOAD	0x00000001
-#define DF_P1_GROUPPERM	0x00000002
-
-/* Flag value in in the DT_FLAGS_1 .dynamic entry.  */
-#define DF_1_NOW	0x00000001
-#define DF_1_GLOBAL	0x00000002
-#define DF_1_GROUP	0x00000004
-#define DF_1_NODELETE	0x00000008
-#define DF_1_LOADFLTR	0x00000010
-#define DF_1_INITFIRST	0x00000020
-#define DF_1_NOOPEN	0x00000040
-#define DF_1_ORIGIN	0x00000080
-#define DF_1_DIRECT	0x00000100
-#define DF_1_TRANS	0x00000200
-#define DF_1_INTERPOSE	0x00000400
-#define DF_1_NODEFLIB	0x00000800
-#define DF_1_NODUMP	0x00001000
-#define DF_1_CONLFAT	0x00002000
-
-/* Flag values for the DT_FLAGS entry.	*/
-#define DF_ORIGIN	(1 << 0)
-#define DF_SYMBOLIC	(1 << 1)
-#define DF_TEXTREL	(1 << 2)
-#define DF_BIND_NOW	(1 << 3)
-#define DF_STATIC_TLS	(1 << 4)
-
-/* These constants are used for the version number of a Elf32_Verdef
-   structure.  */
-
-#define VER_DEF_NONE		0
-#define VER_DEF_CURRENT		1
-
-/* These constants appear in the vd_flags field of a Elf32_Verdef
-   structure.  */
-
-#define VER_FLG_BASE		0x1
-#define VER_FLG_WEAK		0x2
-
-/* These special constants can be found in an Elf32_Versym field.  */
-
-#define VER_NDX_LOCAL		0
-#define VER_NDX_GLOBAL		1
-
-/* These constants are used for the version number of a Elf32_Verneed
-   structure.  */
-
-#define VER_NEED_NONE		0
-#define VER_NEED_CURRENT	1
-
-/* This flag appears in a Versym structure.  It means that the symbol
-   is hidden, and is only visible with an explicit version number.
-   This is a GNU extension.  */
-
-#define VERSYM_HIDDEN		0x8000
-
-/* This is the mask for the rest of the Versym information.  */
-
-#define VERSYM_VERSION		0x7fff
-
-/* This is a special token which appears as part of a symbol name.  It
-   indictes that the rest of the name is actually the name of a
-   version node, and is not part of the actual name.  This is a GNU
-   extension.  For example, the symbol name `stat@ver2' is taken to
-   mean the symbol `stat' in version `ver2'.  */
-
-#define ELF_VER_CHR	'@'
-
-/* Possible values for si_boundto.  */
-
-#define SYMINFO_BT_SELF		0xffff	/* Symbol bound to self */
-#define SYMINFO_BT_PARENT	0xfffe	/* Symbol bound to parent */
-#define SYMINFO_BT_LOWRESERVE	0xff00	/* Beginning of reserved entries */
-
-/* Possible bitmasks for si_flags.  */
-
-#define SYMINFO_FLG_DIRECT	0x0001	/* Direct bound symbol */
-#define SYMINFO_FLG_PASSTHRU	0x0002	/* Pass-thru symbol for translator */
-#define SYMINFO_FLG_COPY	0x0004	/* Symbol is a copy-reloc */
-#define SYMINFO_FLG_LAZYLOAD	0x0008	/* Symbol bound to object to be lazy loaded */
-
-/* Syminfo version values.  */
-
-#define SYMINFO_NONE		0
-#define SYMINFO_CURRENT		1
-#define SYMINFO_NUM		2
-
-/* Section Group Flags.	 */
-
-#define GRP_COMDAT		0x1	/* A COMDAT group */
-
-/* Auxv a_type values.  */
-
-#define AT_NULL		0		/* End of vector */
-#define AT_IGNORE	1		/* Entry should be ignored */
-#define AT_EXECFD	2		/* File descriptor of program */
-#define AT_PHDR		3		/* Program headers for program */
-#define AT_PHENT	4		/* Size of program header entry */
-#define AT_PHNUM	5		/* Number of program headers */
-#define AT_PAGESZ	6		/* System page size */
-#define AT_BASE		7		/* Base address of interpreter */
-#define AT_FLAGS	8		/* Flags */
-#define AT_ENTRY	9		/* Entry point of program */
-#define AT_NOTELF	10		/* Program is not ELF */
-#define AT_UID		11		/* Real uid */
-#define AT_EUID		12		/* Effective uid */
-#define AT_GID		13		/* Real gid */
-#define AT_EGID		14		/* Effective gid */
-#define AT_CLKTCK	17		/* Frequency of times() */
-#define AT_PLATFORM	15		/* String identifying platform.  */
-#define AT_HWCAP	16		/* Machine dependent hints about
-					   processor capabilities.  */
-#define AT_FPUCW	18		/* Used FPU control word.  */
-#define AT_DCACHEBSIZE	19		/* Data cache block size.  */
-#define AT_ICACHEBSIZE	20		/* Instruction cache block size.  */
-#define AT_UCACHEBSIZE	21		/* Unified cache block size.  */
-#define AT_IGNOREPPC	22		/* Entry should be ignored */
-#define	AT_SECURE	23		/* Boolean, was exec setuid-like?  */
-/* Pointer to the global system page used for system calls and other
-   nice things.  */
-#define AT_SYSINFO	32
-#define AT_SYSINFO_EHDR	33 /* Pointer to ELF header of system-supplied DSO.  */
-
-#define AT_SUN_UID      2000    /* Effective user ID.  */
-#define AT_SUN_RUID     2001    /* Real user ID.  */
-#define AT_SUN_GID      2002    /* Effective group ID.  */
-#define AT_SUN_RGID     2003    /* Real group ID.  */
-#define AT_SUN_LDELF    2004    /* Dynamic linker's ELF header.  */
-#define AT_SUN_LDSHDR   2005    /* Dynamic linker's section headers.  */
-#define AT_SUN_LDNAME   2006    /* String giving name of dynamic linker.  */
-#define AT_SUN_LPAGESZ  2007    /* Large pagesize.   */
-#define AT_SUN_PLATFORM 2008    /* Platform name string.  */
-#define AT_SUN_HWCAP    2009	/* Machine dependent hints about
-				   processor capabilities.  */
-#define AT_SUN_IFLUSH   2010    /* Should flush icache? */
-#define AT_SUN_CPU      2011    /* CPU name string.  */
-#define AT_SUN_EMUL_ENTRY 2012	/* COFF entry point address.  */
-#define AT_SUN_EMUL_EXECFD 2013	/* COFF executable file descriptor.  */
-#define AT_SUN_EXECNAME 2014    /* Canonicalized file name given to execve.  */
-#define AT_SUN_MMU      2015    /* String for name of MMU module.   */
-#define AT_SUN_LDDATA   2016    /* Dynamic linker's data segment address.  */
-
-
-#endif /* _ELF_COMMON_H */
diff --git a/include/elf/cr16c.h b/include/elf/cr16c.h
deleted file mode 100644
index de66a49..0000000
--- a/include/elf/cr16c.h
+++ /dev/null
@@ -1,258 +0,0 @@
-/* CR16C ELF support for BFD.
-   Copyright 2004 Free Software Foundation, Inc.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_CR16C_H
-#define _ELF_CR16C_H
-
-#include "bfd.h"
-#include "elf/reloc-macros.h"
-
-/* Creating indices for reloc_map_index array.  */
-START_RELOC_NUMBERS (elf_cr16c_reloc_type)
-     RELOC_NUMBER (RINDEX_16C_NUM08,		0)
-     RELOC_NUMBER (RINDEX_16C_NUM08_C,		1)
-     RELOC_NUMBER (RINDEX_16C_NUM16,		2)
-     RELOC_NUMBER (RINDEX_16C_NUM16_C,		3)
-     RELOC_NUMBER (RINDEX_16C_NUM32,		4)
-     RELOC_NUMBER (RINDEX_16C_NUM32_C,		5)
-     RELOC_NUMBER (RINDEX_16C_DISP04,		6)
-     RELOC_NUMBER (RINDEX_16C_DISP04_C,		7)
-     RELOC_NUMBER (RINDEX_16C_DISP08,		8)
-     RELOC_NUMBER (RINDEX_16C_DISP08_C,		9)
-     RELOC_NUMBER (RINDEX_16C_DISP16,		10)
-     RELOC_NUMBER (RINDEX_16C_DISP16_C,		11)
-     RELOC_NUMBER (RINDEX_16C_DISP24,		12)
-     RELOC_NUMBER (RINDEX_16C_DISP24_C,		13)
-     RELOC_NUMBER (RINDEX_16C_DISP24a,		14)
-     RELOC_NUMBER (RINDEX_16C_DISP24a_C,	15)
-     RELOC_NUMBER (RINDEX_16C_REG04,		16)
-     RELOC_NUMBER (RINDEX_16C_REG04_C,		17)
-     RELOC_NUMBER (RINDEX_16C_REG04a,		18)
-     RELOC_NUMBER (RINDEX_16C_REG04a_C,		19)
-     RELOC_NUMBER (RINDEX_16C_REG14,		20)
-     RELOC_NUMBER (RINDEX_16C_REG14_C,		21)
-     RELOC_NUMBER (RINDEX_16C_REG16,		22)
-     RELOC_NUMBER (RINDEX_16C_REG16_C,		23)
-     RELOC_NUMBER (RINDEX_16C_REG20,		24)
-     RELOC_NUMBER (RINDEX_16C_REG20_C,		25)
-     RELOC_NUMBER (RINDEX_16C_ABS20,		26)
-     RELOC_NUMBER (RINDEX_16C_ABS20_C,		27)
-     RELOC_NUMBER (RINDEX_16C_ABS24,		28)
-     RELOC_NUMBER (RINDEX_16C_ABS24_C,		29)
-     RELOC_NUMBER (RINDEX_16C_IMM04,		30)
-     RELOC_NUMBER (RINDEX_16C_IMM04_C,		31)
-     RELOC_NUMBER (RINDEX_16C_IMM16,		32)
-     RELOC_NUMBER (RINDEX_16C_IMM16_C,		33)
-     RELOC_NUMBER (RINDEX_16C_IMM20,		34)
-     RELOC_NUMBER (RINDEX_16C_IMM20_C,		35)
-     RELOC_NUMBER (RINDEX_16C_IMM24,		36)
-     RELOC_NUMBER (RINDEX_16C_IMM24_C,		37)
-     RELOC_NUMBER (RINDEX_16C_IMM32,		38)
-     RELOC_NUMBER (RINDEX_16C_IMM32_C,		39)
-END_RELOC_NUMBERS (RINDEX_16C_MAX)
-
-/* CR16C Relocation Types ('cr_reloc_type' entry in the reloc_map structure).
-   The relocation constant name is determined as follows :
-
-   R_16C_<format><size>[_C]
-
-   Where :
-
-     <format> is one of the following:
-	NUM  - R_NUMBER mnemonic,
-	DISP - R_16C_DISPL mnemonic,
-	REG  - R_16C_REGREL mnemonic,
-	ABS  - R_16C_ABS mnemonic,
-	IMM  - R_16C_IMMED mnemonic,
-     <size> stands for R_S_16C_<size> 
-     _C means 'code label' and is only added when R_ADDRTYPE subfield 
-     is of type R_CODE_ADDR.  */
-   
-/* The table below shows what the hex digits in the definition of the
-   relocation type constants correspond to.
-   ------------------------------------------------------------------
-	R_SIZESP	R_FORMAT	R_RELTO	      R_ADDRTYPE
-   ------------------------------------------------------------------  */
-/*	R_S_16C_08	R_NUMBER 	R_ABS 	      R_ADDRESS */
-#define R_16C_NUM08	0X0001
-
-/*	R_S_16C_08	R_NUMBER 	R_ABS 	      R_CODE_ADDR */
-#define R_16C_NUM08_C	0X0006
-
-/*	R_S_16C_16	R_NUMBER 	R_ABS 	      R_ADDRESS */
-#define R_16C_NUM16	0X1001
-
-/*	R_S_16C_16	R_NUMBER 	R_ABS 	      R_CODE_ADDR */
-#define R_16C_NUM16_C 	0X1006
-
-/*      R_S_16C_32      R_NUMBER	R_ABS	      R_ADDRESS */
-#define R_16C_NUM32     0X2001
-
-/*      R_S_16C_32      R_NUMBER	R_ABS	      R_CODE_ADDR */
-#define R_16C_NUM32_C   0X2006
-
-/*	R_S_16C_04	R_16C_DISPL 	R_PCREL	      R_ADDRESS */
-#define R_16C_DISP04	0X5411
-
-/*	R_S_16C_04	R_16C_DISPL 	R_PCREL	      R_CODE_ADDR */
-#define R_16C_DISP04_C	0X5416
-
-/*	R_S_16C_08	R_16C_DISPL 	R_PCREL	      R_ADDRESS */
-#define R_16C_DISP08	0X0411
-
-/*	R_S_16C_08	R_16C_DISPL 	R_PCREL	      R_CODE_ADDR */
-#define R_16C_DISP08_C	0X0416
-
-/*	R_S_16C_16	R_16C_DISPL 	R_PCREL	      R_ADDRESS */
-#define R_16C_DISP16	0X1411
-
-/*	R_S_16C_16	R_16C_DISPL 	R_PCREL	      R_CODE_ADDR */
-#define R_16C_DISP16_C	0X1416
-
-/*	R_S_16C_24	R_16C_DISPL 	R_PCREL	      R_ADDRESS */
-#define R_16C_DISP24	0X7411
-
-/*	R_S_16C_24	R_16C_DISPL 	R_PCREL	      R_CODE_ADDR */
-#define R_16C_DISP24_C	0X7416
-
-/*	R_S_16C_24a	R_16C_DISPL 	R_PCREL	      R_ADDRESS */
-#define R_16C_DISP24a	0X6411
-
-/*	R_S_16C_24a	R_16C_DISPL 	R_PCREL	      R_CODE_ADDR */
-#define R_16C_DISP24a_C	0X6416
-
-/*	R_S_16C_04	R_16C_REGREL 	R_ABS 	      R_ADDRESS */
-#define R_16C_REG04	0X5201
-
-/*	R_S_16C_04	R_16C_REGREL 	R_ABS 	      R_CODE_ADDR */
-#define R_16C_REG04_C	0X5206
-
-/*	R_S_16C_04_a	R_16C_REGREL 	R_ABS 	      R_ADDRESS */
-#define R_16C_REG04a	0X4201
-
-/*	R_S_16C_04_a	R_16C_REGREL 	R_ABS 	      R_CODE_ADDR */
-#define R_16C_REG04a_C	0X4206
-
-/*	R_S_16C_14	R_16C_REGREL 	R_ABS 	      R_ADDRESS */
-#define R_16C_REG14	0X3201
-
-/*	R_S_16C_14	R_16C_REGREL 	R_ABS 	      R_CODE_ADDR */
-#define R_16C_REG14_C	0X3206
-
-/*	R_S_16C_16	R_16C_REGREL 	R_ABS 	      R_ADDRESS */
-#define R_16C_REG16	0X1201
-
-/*	R_S_16C_16	R_16C_REGREL 	R_ABS 	      R_CODE_ADDR */
-#define R_16C_REG16_C	0X1206
-
-/*	R_S_16C_20	R_16C_REGREL 	R_ABS 	      R_ADDRESS */
-#define R_16C_REG20	0X8201
-
-/*	R_S_16C_20	R_16C_REGREL 	R_ABS 	      R_CODE_ADDR */
-#define R_16C_REG20_C	0X8206
-
-/*      R_S_16C_20      R_16C_ABS	R_ABS	      R_ADDRESS */
-#define R_16C_ABS20     0X8101
-
-/*      R_S_16C_20      R_16C_ABS	R_ABS	      R_CODE_ADDR */
-#define R_16C_ABS20_C   0X8106
-
-/*      R_S_16C_24      R_16C_ABS	R_ABS	      R_ADDRESS */
-#define R_16C_ABS24     0X7101
-
-/*      R_S_16C_24      R_16C_ABS	R_ABS	      R_CODE_ADDR */
-#define R_16C_ABS24_C   0X7106
-
-/*      R_S_16C_04      R_16C_IMMED	R_ABS	      R_ADDRESS */
-#define R_16C_IMM04     0X5301
-
-/*      R_S_16C_04      R_16C_IMMED	R_ABS	      R_CODE_ADDR */
-#define R_16C_IMM04_C   0X5306
-
-/*      R_S_16C_16      R_16C_IMMED	R_ABS	      R_ADDRESS */
-#define R_16C_IMM16     0X1301
-
-/*      R_S_16C_16      R_16C_IMMED	R_ABS	      R_CODE_ADDR */
-#define R_16C_IMM16_C   0X1306
-
-/*      R_S_16C_20      R_16C_IMMED	R_ABS	      R_ADDRESS */
-#define R_16C_IMM20     0X8301
-
-/*      R_S_16C_20      R_16C_IMMED	R_ABS	      R_CODE_ADDR */
-#define R_16C_IMM20_C   0X8306
-
-/*      R_S_16C_24      R_16C_IMMED	R_ABS	      R_ADDRESS */
-#define R_16C_IMM24     0X7301
-
-/*      R_S_16C_24      R_16C_IMMED	R_ABS	      R_CODE_ADDR */
-#define R_16C_IMM24_C   0X7306
-
-/*      R_S_16C_32      R_16C_IMMED	R_ABS	      R_ADDRESS */
-#define R_16C_IMM32     0X2301
-
-/*      R_S_16C_32      R_16C_IMMED	R_ABS	      R_CODE_ADDR */
-#define R_16C_IMM32_C   0X2306
-
-
-/* Relocation item type.  */
-#define   R_ADDRTYPE	 0x000f
-#define   R_ADDRESS      0x0001    /* Take address of symbol.  */
-#define   R_CODE_ADDR    0x0006    /* Take address of symbol divided by 2.  */
-
-/* Relocation action.  */
-#define   R_RELTO        0x00f0
-#define   R_ABS          0x0000    /* Keep symbol's address as such.  */
-#define   R_PCREL        0x0010    /* Subtract the pc address of hole.  */
-
-/* Relocation item data format.  */
-#define   R_FORMAT       0x0f00
-#define   R_NUMBER       0x0000    /* Retain as two's complement value.  */
-#define   R_16C_DISPL    0x0400    /* CR16C displacement type.  */
-#define   R_16C_ABS      0x0100    /* CR16C absolute type.  */
-#define   R_16C_REGREL   0x0200    /* CR16C register-relative type.  */
-#define   R_16C_IMMED    0x0300    /* CR16C immediate type.  */
-
-/* Relocation item size. */
-#define   R_SIZESP       0xf000
-#define   R_S_16C_04     0x5000
-#define   R_S_16C_04_a   0x4000
-#define   R_S_16C_08	 0x0000
-#define   R_S_16C_14     0x3000
-#define   R_S_16C_16	 0x1000
-#define   R_S_16C_20     0x8000
-#define   R_S_16C_24_a   0x6000
-#define   R_S_16C_24	 0x7000
-#define   R_S_16C_32     0x2000
-
-
-/* Processor specific section indices.  These sections do not actually
-   exist.  Symbols with a st_shndx field corresponding to one of these
-   values have a special meaning.  */
-
-/* Far common symbol.  */
-#define SHN_CR16C_FCOMMON	0xff00
-#define SHN_CR16C_NCOMMON	0xff01
-
-typedef struct reloc_map
-{
-  unsigned short            cr_reloc_type;  /* CR relocation type.  */
-  bfd_reloc_code_real_type  bfd_reloc_enum; /* BFD relocation enum.  */
-} RELOC_MAP;
-
-#endif /* _ELF_CR16C_H */
diff --git a/include/elf/cris.h b/include/elf/cris.h
deleted file mode 100644
index 8225baa..0000000
--- a/include/elf/cris.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/* CRIS ELF support for BFD.
-   Copyright 2000, 2001, 2004 Free Software Foundation, Inc.
-   Contributed by Axis Communications AB, Lund, Sweden.
-   Written by Hans-Peter Nilsson.
-
-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.,
-51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_CRIS_H
-#define _ELF_CRIS_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-START_RELOC_NUMBERS (elf_cris_reloc_type)
-  RELOC_NUMBER (R_CRIS_NONE,		0)
-  RELOC_NUMBER (R_CRIS_8,		1)
-  RELOC_NUMBER (R_CRIS_16,		2)
-  RELOC_NUMBER (R_CRIS_32,		3)
-
-  /* The "PC" position is the location right after the relocation.  */
-  RELOC_NUMBER (R_CRIS_8_PCREL,		4)
-  RELOC_NUMBER (R_CRIS_16_PCREL,	5)
-  RELOC_NUMBER (R_CRIS_32_PCREL,	6)
-
-  RELOC_NUMBER (R_CRIS_GNU_VTINHERIT,	7)
-  RELOC_NUMBER (R_CRIS_GNU_VTENTRY,	8)
-
-  /* Copy contents at dynlinking.  Generated by the linker.
-     The BFD equivalent is BFD_RELOC_CRIS_COPY.  */
-  RELOC_NUMBER (R_CRIS_COPY, 9)
-
-  /* Create GOT entry.  Generated by the linker.
-     The BFD equivalent is BFD_RELOC_CRIS_GLOB_DAT.  */
-  RELOC_NUMBER (R_CRIS_GLOB_DAT, 10)
-
-  /* Create PLT entry.  Generated by the linker.
-     The BFD equivalent is BFD_RELOC_CRIS_JUMP_SLOT.  */
-  RELOC_NUMBER (R_CRIS_JUMP_SLOT, 11)
-
-  /* Adjust by program base.  Generated by the linker.
-     The BFD equivalent is BFD_RELOC_CRIS_RELATIVE.  */
-  RELOC_NUMBER (R_CRIS_RELATIVE, 12)
-
-  /* A 16-bit offset to entry in GOT and request to create GOT entry for
-     that symbol.
-     The BFD equivalent is BFD_RELOC_CRIS_16_GOT.  */
-  RELOC_NUMBER (R_CRIS_16_GOT, 13)
-
-  /* A 32-bit offset to entry in GOT and request to create GOT entry for
-     that symbol.
-     The BFD equivalent is BFD_RELOC_CRIS_32_GOT.  */
-  RELOC_NUMBER (R_CRIS_32_GOT, 14)
-
-  /* A 16-bit offset to entry in PLT part of GOT and request to create PLT
-     entry for that symbol.
-     The BFD equivalent is BFD_RELOC_CRIS_16_GOTPLT.  */
-  RELOC_NUMBER (R_CRIS_16_GOTPLT, 15)
-
-  /* A 32-bit offset to entry in PLT part of GOT and request to create PLT
-     entry for that symbol.
-     The BFD equivalent is BFD_RELOC_CRIS_32_GOTPLT.  */
-  RELOC_NUMBER (R_CRIS_32_GOTPLT, 16)
-
-  /* A 32-bit offset from GOT to (local) symbol: no GOT entry should be
-     necessary.
-     The BFD equivalent is BFD_RELOC_CRIS_32_GOTREL.  */
-  RELOC_NUMBER (R_CRIS_32_GOTREL, 17)
-
-  /* A 32-bit offset from GOT to entry for this symbol in PLT and request
-     to create PLT entry for symbol.
-     The BFD equivalent is BFD_RELOC_CRIS_32_GOTREL.  */
-  RELOC_NUMBER (R_CRIS_32_PLT_GOTREL, 18)
-
-  /* A 32-bit offset from location after this relocation (addend specifies
-     offset) to entry for this symbol in PLT and request to create PLT
-     entry for symbol.
-     The BFD equivalent is BFD_RELOC_CRIS_32_PLT_PCREL.  */
-  RELOC_NUMBER (R_CRIS_32_PLT_PCREL, 19)
-
-  /* No other relocs must be visible outside the assembler.  */
-
-END_RELOC_NUMBERS (R_CRIS_max)
-
-/* User symbols in this file have a leading underscore.  */
-#define EF_CRIS_UNDERSCORE		0x00000001
-
-/* This is a mask for different incompatible machine variants.  */
-#define EF_CRIS_VARIANT_MASK		0x0000000e
-
-/* Variant 0; may contain v0..10 object.  */
-#define EF_CRIS_VARIANT_ANY_V0_V10	0x00000000
-
-/* Variant 1; contains v32 object.  */
-#define EF_CRIS_VARIANT_V32		0x00000002
-
-/* Variant 2; contains object compatible with v32 and v10.  */
-#define EF_CRIS_VARIANT_COMMON_V10_V32	0x00000004
-
-#endif /* _ELF_CRIS_H */
diff --git a/include/elf/crx.h b/include/elf/crx.h
deleted file mode 100644
index 4893d48..0000000
--- a/include/elf/crx.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* CRX ELF support for BFD.
-   Copyright 2004 Free Software Foundation, Inc.
-   Contributed by Tomer Levi, NSC, Israel.
-   Originally written for GAS 2.12 by Tomer Levi, NSC, Israel.
-   Updates, BFDizing, GNUifying and ELF support by Tomer Levi.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_CRX_H
-#define _ELF_CRX_H
-
-#include "elf/reloc-macros.h"
-
-/* Creating indices for reloc_map_index array.  */
-START_RELOC_NUMBERS(elf_crx_reloc_type)
-  RELOC_NUMBER (R_CRX_NONE,           0)
-  RELOC_NUMBER (R_CRX_REL4,           1)
-  RELOC_NUMBER (R_CRX_REL8,           2)
-  RELOC_NUMBER (R_CRX_REL8_CMP,       3)
-  RELOC_NUMBER (R_CRX_REL16,          4)
-  RELOC_NUMBER (R_CRX_REL24,          5)
-  RELOC_NUMBER (R_CRX_REL32,          6)
-  RELOC_NUMBER (R_CRX_REGREL12,       7)
-  RELOC_NUMBER (R_CRX_REGREL22,       8)
-  RELOC_NUMBER (R_CRX_REGREL28,       9)
-  RELOC_NUMBER (R_CRX_REGREL32,       10)
-  RELOC_NUMBER (R_CRX_ABS16,          11)
-  RELOC_NUMBER (R_CRX_ABS32,          12)
-  RELOC_NUMBER (R_CRX_NUM8,	      13)
-  RELOC_NUMBER (R_CRX_NUM16,          14)
-  RELOC_NUMBER (R_CRX_NUM32,          15)
-  RELOC_NUMBER (R_CRX_IMM16,	      16)
-  RELOC_NUMBER (R_CRX_IMM32,	      17)
-  RELOC_NUMBER (R_CRX_SWITCH8,	      18)
-  RELOC_NUMBER (R_CRX_SWITCH16,	      19)
-  RELOC_NUMBER (R_CRX_SWITCH32,	      20)
-END_RELOC_NUMBERS(R_CRX_MAX)
-	
-#endif /* _ELF_CRX_H */
diff --git a/include/elf/d10v.h b/include/elf/d10v.h
deleted file mode 100644
index bc32d8e..0000000
--- a/include/elf/d10v.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* d10v ELF support for BFD.
-   Copyright 1998, 2000 Free Software Foundation, Inc.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_D10V_H
-#define _ELF_D10V_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocation types.  */
-START_RELOC_NUMBERS (elf_d10v_reloc_type)
-  RELOC_NUMBER (R_D10V_NONE, 0)
-  RELOC_NUMBER (R_D10V_10_PCREL_R, 1)
-  RELOC_NUMBER (R_D10V_10_PCREL_L, 2)
-  RELOC_NUMBER (R_D10V_16, 3)
-  RELOC_NUMBER (R_D10V_18, 4)
-  RELOC_NUMBER (R_D10V_18_PCREL, 5)
-  RELOC_NUMBER (R_D10V_32, 6)
-  RELOC_NUMBER (R_D10V_GNU_VTINHERIT, 7)
-  RELOC_NUMBER (R_D10V_GNU_VTENTRY, 8)
-END_RELOC_NUMBERS (R_D10V_max)
-
-#endif
diff --git a/include/elf/d30v.h b/include/elf/d30v.h
deleted file mode 100644
index 8483a78..0000000
--- a/include/elf/d30v.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* d30v ELF support for BFD.
-   Copyright 1998, 2000 Free Software Foundation, Inc.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_D30V_H
-#define _ELF_D30V_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-START_RELOC_NUMBERS (elf_d30v_reloc_type)
-  RELOC_NUMBER (R_D30V_NONE, 0)
-  RELOC_NUMBER (R_D30V_6, 1)
-  RELOC_NUMBER (R_D30V_9_PCREL, 2)
-  RELOC_NUMBER (R_D30V_9_PCREL_R, 3)
-  RELOC_NUMBER (R_D30V_15, 4)
-  RELOC_NUMBER (R_D30V_15_PCREL, 5)
-  RELOC_NUMBER (R_D30V_15_PCREL_R, 6)
-  RELOC_NUMBER (R_D30V_21, 7)
-  RELOC_NUMBER (R_D30V_21_PCREL, 8)
-  RELOC_NUMBER (R_D30V_21_PCREL_R, 9)
-  RELOC_NUMBER (R_D30V_32, 10)
-  RELOC_NUMBER (R_D30V_32_PCREL, 11)
-  RELOC_NUMBER (R_D30V_32_NORMAL, 12)
-END_RELOC_NUMBERS (R_D30V_max)
-
-#endif
diff --git a/include/elf/dlx.h b/include/elf/dlx.h
deleted file mode 100644
index eea5b80..0000000
--- a/include/elf/dlx.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* DLX support for BFD.
-   Copyright 2002 Free Software Foundation, Inc.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_DLX_H
-#define _ELF_DLX_H
-
-#include "elf/reloc-macros.h"
-
-#if 0
-START_RELOC_NUMBERS (elf_dlx_reloc_type)
-     RELOC_NUMBER (R_DLX_NONE,            0)
-     RELOC_NUMBER (R_DLX_RELOC_16,        1)
-     RELOC_NUMBER (R_DLX_RELOC_26,        2)
-     RELOC_NUMBER (R_DLX_RELOC_32,        3)
-     RELOC_NUMBER (R_DLX_GNU_VTINHERIT,   4)
-     RELOC_NUMBER (R_DLX_GNU_VTENTRY,     5)
-     RELOC_NUMBER (R_DLX_RELOC_16_HI,     6)
-     RELOC_NUMBER (R_DLX_RELOC_16_LO,     7)
-     RELOC_NUMBER (R_DLX_RELOC_16_PCREL,  8)
-     RELOC_NUMBER (R_DLX_RELOC_26_PCREL,  9)
-END_RELOC_NUMBERS (R_DLX_max)
-#else
-START_RELOC_NUMBERS (elf_dlx_reloc_type)
-     RELOC_NUMBER (R_DLX_NONE,            0)
-     RELOC_NUMBER (R_DLX_RELOC_8,         1)
-     RELOC_NUMBER (R_DLX_RELOC_16,        2)
-     RELOC_NUMBER (R_DLX_RELOC_32,        3)
-     RELOC_NUMBER (R_DLX_GNU_VTINHERIT,   4)
-     RELOC_NUMBER (R_DLX_GNU_VTENTRY,     5)
-     RELOC_NUMBER (R_DLX_RELOC_16_HI,     6)
-     RELOC_NUMBER (R_DLX_RELOC_16_LO,     7)
-     RELOC_NUMBER (R_DLX_RELOC_16_PCREL,  8)
-     RELOC_NUMBER (R_DLX_RELOC_26_PCREL,  9)
-END_RELOC_NUMBERS (R_DLX_max)
-#endif /* 0 */
-
-#endif /* _ELF_DLX_H */
diff --git a/include/elf/dwarf.h b/include/elf/dwarf.h
deleted file mode 100644
index 6f1bca3..0000000
--- a/include/elf/dwarf.h
+++ /dev/null
@@ -1,324 +0,0 @@
-/* Declarations and definitions of codes relating to the DWARF symbolic
-   debugging information format.
-
-   Written by Ron Guilmette (rfg@netcom.com)
-
-Copyright 1992, 1993, 1995, 1999, 2005 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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.
-
-GCC 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 GCC; see the file COPYING.  If not, write to the Free
-Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
-02110-1301, USA.  */
-
-/* This file is derived from the DWARF specification (a public document)
-   Revision 1.0.1 (April 8, 1992) developed by the UNIX International
-   Programming Languages Special Interest Group (UI/PLSIG) and distributed
-   by UNIX International.  Copies of this specification are available from
-   UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.
-*/
-
-#ifndef _ELF_DWARF_H
-#define _ELF_DWARF_H
-
-/* Tag names and codes.  */
-
-enum dwarf_tag {
-    TAG_padding			= 0x0000,
-    TAG_array_type		= 0x0001,
-    TAG_class_type		= 0x0002,
-    TAG_entry_point		= 0x0003,
-    TAG_enumeration_type	= 0x0004,
-    TAG_formal_parameter	= 0x0005,
-    TAG_global_subroutine	= 0x0006,
-    TAG_global_variable		= 0x0007,
-    				/* 0x0008 -- reserved */
-				/* 0x0009 -- reserved */
-    TAG_label			= 0x000a,
-    TAG_lexical_block		= 0x000b,
-    TAG_local_variable		= 0x000c,
-    TAG_member			= 0x000d,
-				/* 0x000e -- reserved */
-    TAG_pointer_type		= 0x000f,
-    TAG_reference_type		= 0x0010,
-    TAG_compile_unit		= 0x0011,
-    TAG_string_type		= 0x0012,
-    TAG_structure_type		= 0x0013,
-    TAG_subroutine		= 0x0014,
-    TAG_subroutine_type		= 0x0015,
-    TAG_typedef			= 0x0016,
-    TAG_union_type		= 0x0017,
-    TAG_unspecified_parameters	= 0x0018,
-    TAG_variant			= 0x0019,
-    TAG_common_block		= 0x001a,
-    TAG_common_inclusion	= 0x001b,
-    TAG_inheritance		= 0x001c,
-    TAG_inlined_subroutine	= 0x001d,
-    TAG_module			= 0x001e,
-    TAG_ptr_to_member_type	= 0x001f,
-    TAG_set_type		= 0x0020,
-    TAG_subrange_type		= 0x0021,
-    TAG_with_stmt		= 0x0022,
-
-    /* GNU extensions */
-
-    TAG_format_label		= 0x8000,  /* for FORTRAN 77 and Fortran 90 */
-    TAG_namelist		= 0x8001,  /* For Fortran 90 */
-    TAG_function_template	= 0x8002,  /* for C++ */
-    TAG_class_template		= 0x8003   /* for C++ */
-};
-
-#define TAG_lo_user	0x8000  /* implementation-defined range start */
-#define TAG_hi_user	0xffff  /* implementation-defined range end */
-#define TAG_source_file TAG_compile_unit  /* for backward compatibility */
-
-/* Form names and codes.  */
-
-enum dwarf_form {
-    FORM_ADDR	= 0x1,
-    FORM_REF	= 0x2,
-    FORM_BLOCK2	= 0x3,
-    FORM_BLOCK4	= 0x4,
-    FORM_DATA2	= 0x5,
-    FORM_DATA4	= 0x6,
-    FORM_DATA8	= 0x7,
-    FORM_STRING	= 0x8
-};
-
-/* Attribute names and codes.  */
-
-enum dwarf_attribute {
-    AT_sibling			= (0x0010|FORM_REF),
-    AT_location			= (0x0020|FORM_BLOCK2),
-    AT_name			= (0x0030|FORM_STRING),
-    AT_fund_type		= (0x0050|FORM_DATA2),
-    AT_mod_fund_type		= (0x0060|FORM_BLOCK2),
-    AT_user_def_type		= (0x0070|FORM_REF),
-    AT_mod_u_d_type		= (0x0080|FORM_BLOCK2),
-    AT_ordering			= (0x0090|FORM_DATA2),
-    AT_subscr_data		= (0x00a0|FORM_BLOCK2),
-    AT_byte_size		= (0x00b0|FORM_DATA4),
-    AT_bit_offset		= (0x00c0|FORM_DATA2),
-    AT_bit_size			= (0x00d0|FORM_DATA4),
-				/* (0x00e0|FORM_xxxx) -- reserved */
-    AT_element_list		= (0x00f0|FORM_BLOCK4),
-    AT_stmt_list		= (0x0100|FORM_DATA4),
-    AT_low_pc			= (0x0110|FORM_ADDR),
-    AT_high_pc			= (0x0120|FORM_ADDR),
-    AT_language			= (0x0130|FORM_DATA4),
-    AT_member			= (0x0140|FORM_REF),
-    AT_discr			= (0x0150|FORM_REF),
-    AT_discr_value		= (0x0160|FORM_BLOCK2),
-				/* (0x0170|FORM_xxxx) -- reserved */
-				/* (0x0180|FORM_xxxx) -- reserved */
-    AT_string_length		= (0x0190|FORM_BLOCK2),
-    AT_common_reference		= (0x01a0|FORM_REF),
-    AT_comp_dir			= (0x01b0|FORM_STRING),
-        AT_const_value_string	= (0x01c0|FORM_STRING),
-        AT_const_value_data2	= (0x01c0|FORM_DATA2),
-        AT_const_value_data4	= (0x01c0|FORM_DATA4),
-        AT_const_value_data8	= (0x01c0|FORM_DATA8),
-        AT_const_value_block2	= (0x01c0|FORM_BLOCK2),
-        AT_const_value_block4	= (0x01c0|FORM_BLOCK4),
-    AT_containing_type		= (0x01d0|FORM_REF),
-        AT_default_value_addr	= (0x01e0|FORM_ADDR),
-        AT_default_value_data2	= (0x01e0|FORM_DATA2),
-        AT_default_value_data4	= (0x01e0|FORM_DATA4),
-        AT_default_value_data8	= (0x01e0|FORM_DATA8),
-        AT_default_value_string	= (0x01e0|FORM_STRING),
-    AT_friends			= (0x01f0|FORM_BLOCK2),
-    AT_inline			= (0x0200|FORM_STRING),
-    AT_is_optional		= (0x0210|FORM_STRING),
-        AT_lower_bound_ref	= (0x0220|FORM_REF),
-        AT_lower_bound_data2	= (0x0220|FORM_DATA2),
-        AT_lower_bound_data4	= (0x0220|FORM_DATA4),
-        AT_lower_bound_data8	= (0x0220|FORM_DATA8),
-    AT_private			= (0x0240|FORM_STRING),
-    AT_producer			= (0x0250|FORM_STRING),
-    AT_program			= (0x0230|FORM_STRING),
-    AT_protected		= (0x0260|FORM_STRING),
-    AT_prototyped		= (0x0270|FORM_STRING),
-    AT_public			= (0x0280|FORM_STRING),
-    AT_pure_virtual		= (0x0290|FORM_STRING),
-    AT_return_addr		= (0x02a0|FORM_BLOCK2),
-    AT_abstract_origin		= (0x02b0|FORM_REF),
-    AT_start_scope		= (0x02c0|FORM_DATA4),
-    AT_stride_size		= (0x02e0|FORM_DATA4),
-        AT_upper_bound_ref	= (0x02f0|FORM_REF),
-        AT_upper_bound_data2	= (0x02f0|FORM_DATA2),
-        AT_upper_bound_data4	= (0x02f0|FORM_DATA4),
-        AT_upper_bound_data8	= (0x02f0|FORM_DATA8),
-    AT_virtual			= (0x0300|FORM_STRING),
-
-    /* GNU extensions.  */
-
-    AT_sf_names			= (0x8000|FORM_DATA4),
-    AT_src_info			= (0x8010|FORM_DATA4),
-    AT_mac_info			= (0x8020|FORM_DATA4),
-    AT_src_coords		= (0x8030|FORM_DATA4),
-    AT_body_begin		= (0x8040|FORM_ADDR),
-    AT_body_end			= (0x8050|FORM_ADDR)
-};
-
-#define AT_lo_user	0x2000	/* implementation-defined range start */
-#define AT_hi_user	0x3ff0	/* implementation-defined range end */
-
-/* Location atom names and codes.  */
-
-enum dwarf_location_atom {
-    OP_REG	= 0x01,
-    OP_BASEREG	= 0x02,
-    OP_ADDR	= 0x03,
-    OP_CONST	= 0x04,
-    OP_DEREF2	= 0x05,
-    OP_DEREF4	= 0x06,
-    OP_ADD	= 0x07,
-
-    /* GNU extensions.  */
-
-    OP_MULT	= 0x80
-};
-
-#define OP_LO_USER	0x80  /* implementation-defined range start */
-#define OP_HI_USER	0xff  /* implementation-defined range end */
-
-/* Fundamental type names and codes.  */
-
-enum dwarf_fundamental_type {
-    FT_char		= 0x0001,
-    FT_signed_char	= 0x0002,
-    FT_unsigned_char	= 0x0003,
-    FT_short		= 0x0004,
-    FT_signed_short	= 0x0005,
-    FT_unsigned_short	= 0x0006,
-    FT_integer		= 0x0007,
-    FT_signed_integer	= 0x0008,
-    FT_unsigned_integer	= 0x0009,
-    FT_long		= 0x000a,
-    FT_signed_long	= 0x000b,
-    FT_unsigned_long	= 0x000c,
-    FT_pointer		= 0x000d,  /* an alias for (void *) */
-    FT_float		= 0x000e,
-    FT_dbl_prec_float	= 0x000f,
-    FT_ext_prec_float	= 0x0010,  /* breaks "classic" svr4 SDB */
-    FT_complex		= 0x0011,  /* breaks "classic" svr4 SDB */
-    FT_dbl_prec_complex	= 0x0012,  /* breaks "classic" svr4 SDB */
-			/* 0x0013 -- reserved */
-    FT_void		= 0x0014,
-    FT_boolean		= 0x0015,  /* breaks "classic" svr4 SDB */
-    FT_ext_prec_complex	= 0x0016,  /* breaks "classic" svr4 SDB */
-    FT_label		= 0x0017,
-  
-    /* GNU extensions
-       The low order byte must indicate the size (in bytes) for the type.
-       All of these types will probably break "classic" svr4 SDB.  */
-
-    FT_long_long	= 0x8008,
-    FT_signed_long_long	= 0x8108,
-    FT_unsigned_long_long = 0x8208,
-
-    FT_int8		= 0x9001,
-    FT_signed_int8	= 0x9101,
-    FT_unsigned_int8	= 0x9201,
-    FT_int16		= 0x9302,
-    FT_signed_int16	= 0x9402,
-    FT_unsigned_int16	= 0x9502,
-    FT_int32		= 0x9604,
-    FT_signed_int32	= 0x9704,
-    FT_unsigned_int32	= 0x9804,
-    FT_int64		= 0x9908,
-    FT_signed_int64	= 0x9a08,
-    FT_unsigned_int64	= 0x9b08,
-    FT_int128		= 0x9c10,
-    FT_signed_int128	= 0x9d10,
-    FT_unsigned_int128	= 0x9e10,
-
-    FT_real32		= 0xa004,
-    FT_real64		= 0xa108,
-    FT_real96		= 0xa20c,
-    FT_real128		= 0xa310
-};
-
-#define FT_lo_user	0x8000  /* implementation-defined range start */
-#define FT_hi_user	0xffff  /* implementation defined range end */
-
-/* Type modifier names and codes.  */
-
-enum dwarf_type_modifier {
-    MOD_pointer_to	= 0x01,
-    MOD_reference_to	= 0x02,
-    MOD_const		= 0x03,
-    MOD_volatile	= 0x04
-};
-
-#define MOD_lo_user	0x80  /* implementation-defined range start */
-#define MOD_hi_user	0xff  /* implementation-defined range end */
-
-/* Array ordering names and codes.  */
-
-enum dwarf_array_dim_ordering {
-    ORD_row_major	= 0,
-    ORD_col_major	= 1
-};
-
-/* Array subscript format names and codes.  */
-
-enum dwarf_subscr_data_formats {
-    FMT_FT_C_C	= 0x0,
-    FMT_FT_C_X	= 0x1,
-    FMT_FT_X_C	= 0x2,
-    FMT_FT_X_X	= 0x3,
-    FMT_UT_C_C	= 0x4,
-    FMT_UT_C_X	= 0x5,
-    FMT_UT_X_C	= 0x6,
-    FMT_UT_X_X	= 0x7,
-    FMT_ET	= 0x8
-};
-
-/* Derived from above for ease of use.  */
-
-#define FMT_CODE(_FUNDAMENTAL_TYPE_P, _LB_CONST_P, _UB_CONST_P) \
- (((_FUNDAMENTAL_TYPE_P) ? 0 : 4)	\
-  | ((_LB_CONST_P) ? 0 : 2)		\
-  | ((_UB_CONST_P) ? 0 : 1))
-
-/* Source language names and codes.  */
-
-enum dwarf_source_language {
-    LANG_C89		= 0x00000001,
-    LANG_C		= 0x00000002,
-    LANG_ADA83		= 0x00000003,
-    LANG_C_PLUS_PLUS	= 0x00000004,
-    LANG_COBOL74	= 0x00000005,
-    LANG_COBOL85	= 0x00000006,
-    LANG_FORTRAN77	= 0x00000007,
-    LANG_FORTRAN90	= 0x00000008,
-    LANG_PASCAL83	= 0x00000009,
-    LANG_MODULA2	= 0x0000000a,
-    LANG_JAVA		= 0x0000000b
-};
-
-#define LANG_lo_user	0x00008000  /* implementation-defined range start */
-#define LANG_hi_user	0x0000ffff  /* implementation-defined range end */
-
-/* Names and codes for GNU "macinfo" extension.  */
-
-enum dwarf_macinfo_record_type {
-    MACINFO_start	= 's',
-    MACINFO_resume	= 'r',
-    MACINFO_define	= 'd',
-    MACINFO_undef	= 'u'
-};
-
-#endif /* _ELF_DWARF_H */
diff --git a/include/elf/dwarf2.h b/include/elf/dwarf2.h
deleted file mode 100644
index 264952a..0000000
--- a/include/elf/dwarf2.h
+++ /dev/null
@@ -1,836 +0,0 @@
-/* Declarations and definitions of codes relating to the DWARF2 and
-   DWARF3 symbolic debugging information formats.
-   Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002,
-   2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-
-   Written by Gary Funck (gary@intrepid.com) The Ada Joint Program
-   Office (AJPO), Florida State University and Silicon Graphics Inc.
-   provided support for this effort -- June 21, 1995.
-
-   Derived from the DWARF 1 implementation written by Ron Guilmette
-   (rfg@netcom.com), November 1990.
-
-   This file is part of GCC.
-
-   GCC 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.
-
-   GCC 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 GCC; see the file COPYING.  If not, write to the Free
-   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
-   02110-1301, USA.  */
-
-/* This file is derived from the DWARF specification (a public document)
-   Revision 2.0.0 (July 27, 1993) developed by the UNIX International
-   Programming Languages Special Interest Group (UI/PLSIG) and distributed
-   by UNIX International.  Copies of this specification are available from
-   UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.
-
-   This file also now contains definitions from the DWARF 3 specification.  */
-
-/* This file is shared between GCC and GDB, and should not contain
-   prototypes.  */
-
-#ifndef _ELF_DWARF2_H
-#define _ELF_DWARF2_H
-
-/* Structure found in the .debug_line section.  */
-typedef struct
-{
-  unsigned char li_length          [4];
-  unsigned char li_version         [2];
-  unsigned char li_prologue_length [4];
-  unsigned char li_min_insn_length [1];
-  unsigned char li_default_is_stmt [1];
-  unsigned char li_line_base       [1];
-  unsigned char li_line_range      [1];
-  unsigned char li_opcode_base     [1];
-}
-DWARF2_External_LineInfo;
-
-typedef struct
-{
-  unsigned long  li_length;
-  unsigned short li_version;
-  unsigned int   li_prologue_length;
-  unsigned char  li_min_insn_length;
-  unsigned char  li_default_is_stmt;
-  int            li_line_base;
-  unsigned char  li_line_range;
-  unsigned char  li_opcode_base;
-}
-DWARF2_Internal_LineInfo;
-
-/* Structure found in .debug_pubnames section.  */
-typedef struct
-{
-  unsigned char pn_length  [4];
-  unsigned char pn_version [2];
-  unsigned char pn_offset  [4];
-  unsigned char pn_size    [4];
-}
-DWARF2_External_PubNames;
-
-typedef struct
-{
-  unsigned long  pn_length;
-  unsigned short pn_version;
-  unsigned long  pn_offset;
-  unsigned long  pn_size;
-}
-DWARF2_Internal_PubNames;
-
-/* Structure found in .debug_info section.  */
-typedef struct
-{
-  unsigned char  cu_length        [4];
-  unsigned char  cu_version       [2];
-  unsigned char  cu_abbrev_offset [4];
-  unsigned char  cu_pointer_size  [1];
-}
-DWARF2_External_CompUnit;
-
-typedef struct
-{
-  unsigned long  cu_length;
-  unsigned short cu_version;
-  unsigned long  cu_abbrev_offset;
-  unsigned char  cu_pointer_size;
-}
-DWARF2_Internal_CompUnit;
-
-typedef struct
-{
-  unsigned char  ar_length       [4];
-  unsigned char  ar_version      [2];
-  unsigned char  ar_info_offset  [4];
-  unsigned char  ar_pointer_size [1];
-  unsigned char  ar_segment_size [1];
-}
-DWARF2_External_ARange;
-
-typedef struct
-{
-  unsigned long  ar_length;
-  unsigned short ar_version;
-  unsigned long  ar_info_offset;
-  unsigned char  ar_pointer_size;
-  unsigned char  ar_segment_size;
-}
-DWARF2_Internal_ARange;
-
-
-/* Tag names and codes.  */
-enum dwarf_tag
-  {
-    DW_TAG_padding = 0x00,
-    DW_TAG_array_type = 0x01,
-    DW_TAG_class_type = 0x02,
-    DW_TAG_entry_point = 0x03,
-    DW_TAG_enumeration_type = 0x04,
-    DW_TAG_formal_parameter = 0x05,
-    DW_TAG_imported_declaration = 0x08,
-    DW_TAG_label = 0x0a,
-    DW_TAG_lexical_block = 0x0b,
-    DW_TAG_member = 0x0d,
-    DW_TAG_pointer_type = 0x0f,
-    DW_TAG_reference_type = 0x10,
-    DW_TAG_compile_unit = 0x11,
-    DW_TAG_string_type = 0x12,
-    DW_TAG_structure_type = 0x13,
-    DW_TAG_subroutine_type = 0x15,
-    DW_TAG_typedef = 0x16,
-    DW_TAG_union_type = 0x17,
-    DW_TAG_unspecified_parameters = 0x18,
-    DW_TAG_variant = 0x19,
-    DW_TAG_common_block = 0x1a,
-    DW_TAG_common_inclusion = 0x1b,
-    DW_TAG_inheritance = 0x1c,
-    DW_TAG_inlined_subroutine = 0x1d,
-    DW_TAG_module = 0x1e,
-    DW_TAG_ptr_to_member_type = 0x1f,
-    DW_TAG_set_type = 0x20,
-    DW_TAG_subrange_type = 0x21,
-    DW_TAG_with_stmt = 0x22,
-    DW_TAG_access_declaration = 0x23,
-    DW_TAG_base_type = 0x24,
-    DW_TAG_catch_block = 0x25,
-    DW_TAG_const_type = 0x26,
-    DW_TAG_constant = 0x27,
-    DW_TAG_enumerator = 0x28,
-    DW_TAG_file_type = 0x29,
-    DW_TAG_friend = 0x2a,
-    DW_TAG_namelist = 0x2b,
-    DW_TAG_namelist_item = 0x2c,
-    DW_TAG_packed_type = 0x2d,
-    DW_TAG_subprogram = 0x2e,
-    DW_TAG_template_type_param = 0x2f,
-    DW_TAG_template_value_param = 0x30,
-    DW_TAG_thrown_type = 0x31,
-    DW_TAG_try_block = 0x32,
-    DW_TAG_variant_part = 0x33,
-    DW_TAG_variable = 0x34,
-    DW_TAG_volatile_type = 0x35,
-    /* DWARF 3.  */
-    DW_TAG_dwarf_procedure = 0x36,
-    DW_TAG_restrict_type = 0x37,
-    DW_TAG_interface_type = 0x38,
-    DW_TAG_namespace = 0x39,
-    DW_TAG_imported_module = 0x3a,
-    DW_TAG_unspecified_type = 0x3b,
-    DW_TAG_partial_unit = 0x3c,
-    DW_TAG_imported_unit = 0x3d,
-    DW_TAG_condition = 0x3f,
-    DW_TAG_shared_type = 0x40,
-    /* SGI/MIPS Extensions.  */
-    DW_TAG_MIPS_loop = 0x4081,
-    /* HP extensions.  See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz .  */
-    DW_TAG_HP_array_descriptor = 0x4090,
-    /* GNU extensions.  */
-    DW_TAG_format_label = 0x4101,	/* For FORTRAN 77 and Fortran 90.  */
-    DW_TAG_function_template = 0x4102,	/* For C++.  */
-    DW_TAG_class_template = 0x4103,	/* For C++.  */
-    DW_TAG_GNU_BINCL = 0x4104,
-    DW_TAG_GNU_EINCL = 0x4105,
-    /* Extensions for UPC.  See: http://upc.gwu.edu/~upc.  */
-    DW_TAG_upc_shared_type = 0x8765,
-    DW_TAG_upc_strict_type = 0x8766,
-    DW_TAG_upc_relaxed_type = 0x8767,
-    /* PGI (STMicroelectronics) extensions.  No documentation available.  */
-    DW_TAG_PGI_kanji_type      = 0xA000,
-    DW_TAG_PGI_interface_block = 0xA020
-  };
-
-#define DW_TAG_lo_user	0x4080
-#define DW_TAG_hi_user	0xffff
-
-/* Flag that tells whether entry has a child or not.  */
-#define DW_children_no   0
-#define	DW_children_yes  1
-
-/* Form names and codes.  */
-enum dwarf_form
-  {
-    DW_FORM_addr = 0x01,
-    DW_FORM_block2 = 0x03,
-    DW_FORM_block4 = 0x04,
-    DW_FORM_data2 = 0x05,
-    DW_FORM_data4 = 0x06,
-    DW_FORM_data8 = 0x07,
-    DW_FORM_string = 0x08,
-    DW_FORM_block = 0x09,
-    DW_FORM_block1 = 0x0a,
-    DW_FORM_data1 = 0x0b,
-    DW_FORM_flag = 0x0c,
-    DW_FORM_sdata = 0x0d,
-    DW_FORM_strp = 0x0e,
-    DW_FORM_udata = 0x0f,
-    DW_FORM_ref_addr = 0x10,
-    DW_FORM_ref1 = 0x11,
-    DW_FORM_ref2 = 0x12,
-    DW_FORM_ref4 = 0x13,
-    DW_FORM_ref8 = 0x14,
-    DW_FORM_ref_udata = 0x15,
-    DW_FORM_indirect = 0x16
-  };
-
-/* Attribute names and codes.  */
-enum dwarf_attribute
-  {
-    DW_AT_sibling = 0x01,
-    DW_AT_location = 0x02,
-    DW_AT_name = 0x03,
-    DW_AT_ordering = 0x09,
-    DW_AT_subscr_data = 0x0a,
-    DW_AT_byte_size = 0x0b,
-    DW_AT_bit_offset = 0x0c,
-    DW_AT_bit_size = 0x0d,
-    DW_AT_element_list = 0x0f,
-    DW_AT_stmt_list = 0x10,
-    DW_AT_low_pc = 0x11,
-    DW_AT_high_pc = 0x12,
-    DW_AT_language = 0x13,
-    DW_AT_member = 0x14,
-    DW_AT_discr = 0x15,
-    DW_AT_discr_value = 0x16,
-    DW_AT_visibility = 0x17,
-    DW_AT_import = 0x18,
-    DW_AT_string_length = 0x19,
-    DW_AT_common_reference = 0x1a,
-    DW_AT_comp_dir = 0x1b,
-    DW_AT_const_value = 0x1c,
-    DW_AT_containing_type = 0x1d,
-    DW_AT_default_value = 0x1e,
-    DW_AT_inline = 0x20,
-    DW_AT_is_optional = 0x21,
-    DW_AT_lower_bound = 0x22,
-    DW_AT_producer = 0x25,
-    DW_AT_prototyped = 0x27,
-    DW_AT_return_addr = 0x2a,
-    DW_AT_start_scope = 0x2c,
-    DW_AT_stride_size = 0x2e,
-    DW_AT_upper_bound = 0x2f,
-    DW_AT_abstract_origin = 0x31,
-    DW_AT_accessibility = 0x32,
-    DW_AT_address_class = 0x33,
-    DW_AT_artificial = 0x34,
-    DW_AT_base_types = 0x35,
-    DW_AT_calling_convention = 0x36,
-    DW_AT_count = 0x37,
-    DW_AT_data_member_location = 0x38,
-    DW_AT_decl_column = 0x39,
-    DW_AT_decl_file = 0x3a,
-    DW_AT_decl_line = 0x3b,
-    DW_AT_declaration = 0x3c,
-    DW_AT_discr_list = 0x3d,
-    DW_AT_encoding = 0x3e,
-    DW_AT_external = 0x3f,
-    DW_AT_frame_base = 0x40,
-    DW_AT_friend = 0x41,
-    DW_AT_identifier_case = 0x42,
-    DW_AT_macro_info = 0x43,
-    DW_AT_namelist_items = 0x44,
-    DW_AT_priority = 0x45,
-    DW_AT_segment = 0x46,
-    DW_AT_specification = 0x47,
-    DW_AT_static_link = 0x48,
-    DW_AT_type = 0x49,
-    DW_AT_use_location = 0x4a,
-    DW_AT_variable_parameter = 0x4b,
-    DW_AT_virtuality = 0x4c,
-    DW_AT_vtable_elem_location = 0x4d,
-    /* DWARF 3 values.  */
-    DW_AT_allocated     = 0x4e,
-    DW_AT_associated    = 0x4f,
-    DW_AT_data_location = 0x50,
-    DW_AT_stride        = 0x51,
-    DW_AT_entry_pc      = 0x52,
-    DW_AT_use_UTF8      = 0x53,
-    DW_AT_extension     = 0x54,
-    DW_AT_ranges        = 0x55,
-    DW_AT_trampoline    = 0x56,
-    DW_AT_call_column   = 0x57,
-    DW_AT_call_file     = 0x58,
-    DW_AT_call_line     = 0x59,
-    DW_AT_description   = 0x5a,
-    DW_AT_binary_scale  = 0x5b,
-    DW_AT_decimal_scale = 0x5c,
-    DW_AT_small         = 0x5d,
-    DW_AT_decimal_sign  = 0x5e,
-    DW_AT_digit_count   = 0x5f,
-    DW_AT_picture_string = 0x60,
-    DW_AT_mutable       = 0x61,
-    DW_AT_threads_scaled = 0x62,
-    DW_AT_explicit      = 0x63,
-    DW_AT_object_pointer = 0x64,
-    DW_AT_endianity     = 0x65,
-    DW_AT_elemental     = 0x66,
-    DW_AT_pure          = 0x67,
-    DW_AT_recursive     = 0x68,
-    /* SGI/MIPS extensions.  */
-    DW_AT_MIPS_fde = 0x2001,
-    DW_AT_MIPS_loop_begin = 0x2002,
-    DW_AT_MIPS_tail_loop_begin = 0x2003,
-    DW_AT_MIPS_epilog_begin = 0x2004,
-    DW_AT_MIPS_loop_unroll_factor = 0x2005,
-    DW_AT_MIPS_software_pipeline_depth = 0x2006,
-    DW_AT_MIPS_linkage_name = 0x2007,
-    DW_AT_MIPS_stride = 0x2008,
-    DW_AT_MIPS_abstract_name = 0x2009,
-    DW_AT_MIPS_clone_origin = 0x200a,
-    DW_AT_MIPS_has_inlines = 0x200b,
-    /* HP extensions.  */
-    DW_AT_HP_block_index         = 0x2000,
-    DW_AT_HP_unmodifiable        = 0x2001, /* Same as DW_AT_MIPS_fde.  */
-    DW_AT_HP_actuals_stmt_list   = 0x2010,
-    DW_AT_HP_proc_per_section    = 0x2011,
-    DW_AT_HP_raw_data_ptr        = 0x2012,
-    DW_AT_HP_pass_by_reference   = 0x2013,
-    DW_AT_HP_opt_level           = 0x2014,
-    DW_AT_HP_prof_version_id     = 0x2015,
-    DW_AT_HP_opt_flags           = 0x2016,
-    DW_AT_HP_cold_region_low_pc  = 0x2017,
-    DW_AT_HP_cold_region_high_pc = 0x2018,
-    DW_AT_HP_all_variables_modifiable = 0x2019,
-    DW_AT_HP_linkage_name        = 0x201a,
-    DW_AT_HP_prof_flags          = 0x201b,  /* In comp unit of procs_info for -g.  */
-    /* GNU extensions.  */
-    DW_AT_sf_names   = 0x2101,
-    DW_AT_src_info   = 0x2102,
-    DW_AT_mac_info   = 0x2103,
-    DW_AT_src_coords = 0x2104,
-    DW_AT_body_begin = 0x2105,
-    DW_AT_body_end   = 0x2106,
-    DW_AT_GNU_vector = 0x2107,
-    /* VMS extensions.  */
-    DW_AT_VMS_rtnbeg_pd_address = 0x2201,
-    /* UPC extension.  */
-    DW_AT_upc_threads_scaled = 0x3210,
-    /* PGI (STMicroelectronics) extensions.  */
-    DW_AT_PGI_lbase    = 0x3a00,
-    DW_AT_PGI_soffset  = 0x3a01,
-    DW_AT_PGI_lstride  = 0x3a02
-  };
-
-#define DW_AT_lo_user	0x2000	/* Implementation-defined range start.  */
-#define DW_AT_hi_user	0x3ff0	/* Implementation-defined range end.  */
-
-/* Location atom names and codes.  */
-enum dwarf_location_atom
-  {
-    DW_OP_addr = 0x03,
-    DW_OP_deref = 0x06,
-    DW_OP_const1u = 0x08,
-    DW_OP_const1s = 0x09,
-    DW_OP_const2u = 0x0a,
-    DW_OP_const2s = 0x0b,
-    DW_OP_const4u = 0x0c,
-    DW_OP_const4s = 0x0d,
-    DW_OP_const8u = 0x0e,
-    DW_OP_const8s = 0x0f,
-    DW_OP_constu = 0x10,
-    DW_OP_consts = 0x11,
-    DW_OP_dup = 0x12,
-    DW_OP_drop = 0x13,
-    DW_OP_over = 0x14,
-    DW_OP_pick = 0x15,
-    DW_OP_swap = 0x16,
-    DW_OP_rot = 0x17,
-    DW_OP_xderef = 0x18,
-    DW_OP_abs = 0x19,
-    DW_OP_and = 0x1a,
-    DW_OP_div = 0x1b,
-    DW_OP_minus = 0x1c,
-    DW_OP_mod = 0x1d,
-    DW_OP_mul = 0x1e,
-    DW_OP_neg = 0x1f,
-    DW_OP_not = 0x20,
-    DW_OP_or = 0x21,
-    DW_OP_plus = 0x22,
-    DW_OP_plus_uconst = 0x23,
-    DW_OP_shl = 0x24,
-    DW_OP_shr = 0x25,
-    DW_OP_shra = 0x26,
-    DW_OP_xor = 0x27,
-    DW_OP_bra = 0x28,
-    DW_OP_eq = 0x29,
-    DW_OP_ge = 0x2a,
-    DW_OP_gt = 0x2b,
-    DW_OP_le = 0x2c,
-    DW_OP_lt = 0x2d,
-    DW_OP_ne = 0x2e,
-    DW_OP_skip = 0x2f,
-    DW_OP_lit0 = 0x30,
-    DW_OP_lit1 = 0x31,
-    DW_OP_lit2 = 0x32,
-    DW_OP_lit3 = 0x33,
-    DW_OP_lit4 = 0x34,
-    DW_OP_lit5 = 0x35,
-    DW_OP_lit6 = 0x36,
-    DW_OP_lit7 = 0x37,
-    DW_OP_lit8 = 0x38,
-    DW_OP_lit9 = 0x39,
-    DW_OP_lit10 = 0x3a,
-    DW_OP_lit11 = 0x3b,
-    DW_OP_lit12 = 0x3c,
-    DW_OP_lit13 = 0x3d,
-    DW_OP_lit14 = 0x3e,
-    DW_OP_lit15 = 0x3f,
-    DW_OP_lit16 = 0x40,
-    DW_OP_lit17 = 0x41,
-    DW_OP_lit18 = 0x42,
-    DW_OP_lit19 = 0x43,
-    DW_OP_lit20 = 0x44,
-    DW_OP_lit21 = 0x45,
-    DW_OP_lit22 = 0x46,
-    DW_OP_lit23 = 0x47,
-    DW_OP_lit24 = 0x48,
-    DW_OP_lit25 = 0x49,
-    DW_OP_lit26 = 0x4a,
-    DW_OP_lit27 = 0x4b,
-    DW_OP_lit28 = 0x4c,
-    DW_OP_lit29 = 0x4d,
-    DW_OP_lit30 = 0x4e,
-    DW_OP_lit31 = 0x4f,
-    DW_OP_reg0 = 0x50,
-    DW_OP_reg1 = 0x51,
-    DW_OP_reg2 = 0x52,
-    DW_OP_reg3 = 0x53,
-    DW_OP_reg4 = 0x54,
-    DW_OP_reg5 = 0x55,
-    DW_OP_reg6 = 0x56,
-    DW_OP_reg7 = 0x57,
-    DW_OP_reg8 = 0x58,
-    DW_OP_reg9 = 0x59,
-    DW_OP_reg10 = 0x5a,
-    DW_OP_reg11 = 0x5b,
-    DW_OP_reg12 = 0x5c,
-    DW_OP_reg13 = 0x5d,
-    DW_OP_reg14 = 0x5e,
-    DW_OP_reg15 = 0x5f,
-    DW_OP_reg16 = 0x60,
-    DW_OP_reg17 = 0x61,
-    DW_OP_reg18 = 0x62,
-    DW_OP_reg19 = 0x63,
-    DW_OP_reg20 = 0x64,
-    DW_OP_reg21 = 0x65,
-    DW_OP_reg22 = 0x66,
-    DW_OP_reg23 = 0x67,
-    DW_OP_reg24 = 0x68,
-    DW_OP_reg25 = 0x69,
-    DW_OP_reg26 = 0x6a,
-    DW_OP_reg27 = 0x6b,
-    DW_OP_reg28 = 0x6c,
-    DW_OP_reg29 = 0x6d,
-    DW_OP_reg30 = 0x6e,
-    DW_OP_reg31 = 0x6f,
-    DW_OP_breg0 = 0x70,
-    DW_OP_breg1 = 0x71,
-    DW_OP_breg2 = 0x72,
-    DW_OP_breg3 = 0x73,
-    DW_OP_breg4 = 0x74,
-    DW_OP_breg5 = 0x75,
-    DW_OP_breg6 = 0x76,
-    DW_OP_breg7 = 0x77,
-    DW_OP_breg8 = 0x78,
-    DW_OP_breg9 = 0x79,
-    DW_OP_breg10 = 0x7a,
-    DW_OP_breg11 = 0x7b,
-    DW_OP_breg12 = 0x7c,
-    DW_OP_breg13 = 0x7d,
-    DW_OP_breg14 = 0x7e,
-    DW_OP_breg15 = 0x7f,
-    DW_OP_breg16 = 0x80,
-    DW_OP_breg17 = 0x81,
-    DW_OP_breg18 = 0x82,
-    DW_OP_breg19 = 0x83,
-    DW_OP_breg20 = 0x84,
-    DW_OP_breg21 = 0x85,
-    DW_OP_breg22 = 0x86,
-    DW_OP_breg23 = 0x87,
-    DW_OP_breg24 = 0x88,
-    DW_OP_breg25 = 0x89,
-    DW_OP_breg26 = 0x8a,
-    DW_OP_breg27 = 0x8b,
-    DW_OP_breg28 = 0x8c,
-    DW_OP_breg29 = 0x8d,
-    DW_OP_breg30 = 0x8e,
-    DW_OP_breg31 = 0x8f,
-    DW_OP_regx = 0x90,
-    DW_OP_fbreg = 0x91,
-    DW_OP_bregx = 0x92,
-    DW_OP_piece = 0x93,
-    DW_OP_deref_size = 0x94,
-    DW_OP_xderef_size = 0x95,
-    DW_OP_nop = 0x96,
-    /* DWARF 3 extensions.  */
-    DW_OP_push_object_address = 0x97,
-    DW_OP_call2 = 0x98,
-    DW_OP_call4 = 0x99,
-    DW_OP_call_ref = 0x9a,
-    DW_OP_form_tls_address = 0x9b,
-    DW_OP_call_frame_cfa = 0x9c,
-    DW_OP_bit_piece = 0x9d,
-    /* GNU extensions.  */
-    DW_OP_GNU_push_tls_address = 0xe0,
-    /* HP extensions.  */
-    DW_OP_HP_unknown     = 0xe0, /* Ouch, the same as GNU_push_tls_address.  */
-    DW_OP_HP_is_value    = 0xe1,
-    DW_OP_HP_fltconst4   = 0xe2,
-    DW_OP_HP_fltconst8   = 0xe3,
-    DW_OP_HP_mod_range   = 0xe4,
-    DW_OP_HP_unmod_range = 0xe5,
-    DW_OP_HP_tls         = 0xe6
-  };
-
-#define DW_OP_lo_user	0xe0	/* Implementation-defined range start.  */
-#define DW_OP_hi_user	0xff	/* Implementation-defined range end.  */
-
-/* Type encodings.  */
-enum dwarf_type
-  {
-    DW_ATE_void = 0x0,
-    DW_ATE_address = 0x1,
-    DW_ATE_boolean = 0x2,
-    DW_ATE_complex_float = 0x3,
-    DW_ATE_float = 0x4,
-    DW_ATE_signed = 0x5,
-    DW_ATE_signed_char = 0x6,
-    DW_ATE_unsigned = 0x7,
-    DW_ATE_unsigned_char = 0x8,
-    /* DWARF 3.  */
-    DW_ATE_imaginary_float = 0x9,
-    DW_ATE_packed_decimal = 0xa,
-    DW_ATE_numeric_string = 0xb,
-    DW_ATE_edited = 0xc,
-    DW_ATE_signed_fixed = 0xd,
-    DW_ATE_unsigned_fixed = 0xe,
-    DW_ATE_decimal_float = 0xf,
-    /* HP extensions.  */
-    DW_ATE_HP_float80            = 0x80, /* Floating-point (80 bit).  */
-    DW_ATE_HP_complex_float80    = 0x81, /* Complex floating-point (80 bit).  */
-    DW_ATE_HP_float128           = 0x82, /* Floating-point (128 bit).  */
-    DW_ATE_HP_complex_float128   = 0x83, /* Complex floating-point (128 bit).  */
-    DW_ATE_HP_floathpintel       = 0x84, /* Floating-point (82 bit IA64).  */
-    DW_ATE_HP_imaginary_float80  = 0x85,
-    DW_ATE_HP_imaginary_float128 = 0x86
-  };
-
-#define	DW_ATE_lo_user 0x80
-#define	DW_ATE_hi_user 0xff
-
-/* Decimal sign encodings.  */
-enum dwarf_decimal_sign_encoding
-  {
-    /* DWARF 3.  */
-    DW_DS_unsigned = 0x01,
-    DW_DS_leading_overpunch = 0x02,
-    DW_DS_trailing_overpunch = 0x03,
-    DW_DS_leading_separate = 0x04,
-    DW_DS_trailing_separate = 0x05
-  };
-
-/* Endianity encodings.  */
-enum dwarf_endianity_encoding
-  {
-    /* DWARF 3.  */
-    DW_END_default = 0x00,
-    DW_END_big = 0x01,
-    DW_END_little = 0x02
-  };
-
-#define DW_END_lo_user 0x40
-#define DW_END_hi_user 0xff
-
-/* Array ordering names and codes.  */
-enum dwarf_array_dim_ordering
-  {
-    DW_ORD_row_major = 0,
-    DW_ORD_col_major = 1
-  };
-
-/* Access attribute.  */
-enum dwarf_access_attribute
-  {
-    DW_ACCESS_public = 1,
-    DW_ACCESS_protected = 2,
-    DW_ACCESS_private = 3
-  };
-
-/* Visibility.  */
-enum dwarf_visibility_attribute
-  {
-    DW_VIS_local = 1,
-    DW_VIS_exported = 2,
-    DW_VIS_qualified = 3
-  };
-
-/* Virtuality.  */
-enum dwarf_virtuality_attribute
-  {
-    DW_VIRTUALITY_none = 0,
-    DW_VIRTUALITY_virtual = 1,
-    DW_VIRTUALITY_pure_virtual = 2
-  };
-
-/* Case sensitivity.  */
-enum dwarf_id_case
-  {
-    DW_ID_case_sensitive = 0,
-    DW_ID_up_case = 1,
-    DW_ID_down_case = 2,
-    DW_ID_case_insensitive = 3
-  };
-
-/* Calling convention.  */
-enum dwarf_calling_convention
-  {
-    DW_CC_normal = 0x1,
-    DW_CC_program = 0x2,
-    DW_CC_nocall = 0x3,
-    DW_CC_GNU_renesas_sh = 0x40
-  };
-
-#define DW_CC_lo_user 0x40
-#define DW_CC_hi_user 0xff
-
-/* Inline attribute.  */
-enum dwarf_inline_attribute
-  {
-    DW_INL_not_inlined = 0,
-    DW_INL_inlined = 1,
-    DW_INL_declared_not_inlined = 2,
-    DW_INL_declared_inlined = 3
-  };
-
-/* Discriminant lists.  */
-enum dwarf_discrim_list
-  {
-    DW_DSC_label = 0,
-    DW_DSC_range = 1
-  };
-
-/* Line number opcodes.  */
-enum dwarf_line_number_ops
-  {
-    DW_LNS_extended_op = 0,
-    DW_LNS_copy = 1,
-    DW_LNS_advance_pc = 2,
-    DW_LNS_advance_line = 3,
-    DW_LNS_set_file = 4,
-    DW_LNS_set_column = 5,
-    DW_LNS_negate_stmt = 6,
-    DW_LNS_set_basic_block = 7,
-    DW_LNS_const_add_pc = 8,
-    DW_LNS_fixed_advance_pc = 9,
-    /* DWARF 3.  */
-    DW_LNS_set_prologue_end = 10,
-    DW_LNS_set_epilogue_begin = 11,
-    DW_LNS_set_isa = 12
-  };
-
-/* Line number extended opcodes.  */
-enum dwarf_line_number_x_ops
-  {
-    DW_LNE_end_sequence = 1,
-    DW_LNE_set_address = 2,
-    DW_LNE_define_file = 3,
-    /* HP extensions.  */
-    DW_LNE_HP_negate_is_UV_update      = 0x11,
-    DW_LNE_HP_push_context             = 0x12,
-    DW_LNE_HP_pop_context              = 0x13,
-    DW_LNE_HP_set_file_line_column     = 0x14,
-    DW_LNE_HP_set_routine_name         = 0x15,
-    DW_LNE_HP_set_sequence             = 0x16,
-    DW_LNE_HP_negate_post_semantics    = 0x17,
-    DW_LNE_HP_negate_function_exit     = 0x18,
-    DW_LNE_HP_negate_front_end_logical = 0x19,
-    DW_LNE_HP_define_proc              = 0x20
-  };
-
-#define DW_LNE_lo_user 0x80
-#define DW_LNE_hi_user 0xff
-
-/* Call frame information.  */
-enum dwarf_call_frame_info
-  {
-    DW_CFA_advance_loc = 0x40,
-    DW_CFA_offset = 0x80,
-    DW_CFA_restore = 0xc0,
-    DW_CFA_nop = 0x00,
-    DW_CFA_set_loc = 0x01,
-    DW_CFA_advance_loc1 = 0x02,
-    DW_CFA_advance_loc2 = 0x03,
-    DW_CFA_advance_loc4 = 0x04,
-    DW_CFA_offset_extended = 0x05,
-    DW_CFA_restore_extended = 0x06,
-    DW_CFA_undefined = 0x07,
-    DW_CFA_same_value = 0x08,
-    DW_CFA_register = 0x09,
-    DW_CFA_remember_state = 0x0a,
-    DW_CFA_restore_state = 0x0b,
-    DW_CFA_def_cfa = 0x0c,
-    DW_CFA_def_cfa_register = 0x0d,
-    DW_CFA_def_cfa_offset = 0x0e,
-    /* DWARF 3.  */
-    DW_CFA_def_cfa_expression = 0x0f,
-    DW_CFA_expression = 0x10,
-    DW_CFA_offset_extended_sf = 0x11,
-    DW_CFA_def_cfa_sf = 0x12,
-    DW_CFA_def_cfa_offset_sf = 0x13,
-    DW_CFA_val_offset = 0x14,
-    DW_CFA_val_offset_sf = 0x15,
-    DW_CFA_val_expression = 0x16,
-    /* SGI/MIPS specific.  */
-    DW_CFA_MIPS_advance_loc8 = 0x1d,
-    /* GNU extensions.  */
-    DW_CFA_GNU_window_save = 0x2d,
-    DW_CFA_GNU_args_size = 0x2e,
-    DW_CFA_GNU_negative_offset_extended = 0x2f
-  };
-
-#define DW_CIE_ID	  0xffffffff
-#define DW_CIE_VERSION	  1
-
-#define DW_CFA_extended   0
-#define DW_CFA_lo_user    0x1c
-#define DW_CFA_hi_user    0x3f
-
-#define DW_CHILDREN_no		     0x00
-#define DW_CHILDREN_yes		     0x01
-
-#define DW_ADDR_none		0
-
-/* Source language names and codes.  */
-enum dwarf_source_language
-  {
-    DW_LANG_C89 = 0x0001,
-    DW_LANG_C = 0x0002,
-    DW_LANG_Ada83 = 0x0003,
-    DW_LANG_C_plus_plus = 0x0004,
-    DW_LANG_Cobol74 = 0x0005,
-    DW_LANG_Cobol85 = 0x0006,
-    DW_LANG_Fortran77 = 0x0007,
-    DW_LANG_Fortran90 = 0x0008,
-    DW_LANG_Pascal83 = 0x0009,
-    DW_LANG_Modula2 = 0x000a,
-    /* DWARF 3.  */
-    DW_LANG_Java = 0x000b,
-    DW_LANG_C99 = 0x000c,
-    DW_LANG_Ada95 = 0x000d,
-    DW_LANG_Fortran95 = 0x000e,
-    DW_LANG_PLI = 0x000f,
-    DW_LANG_ObjC = 0x0010,
-    DW_LANG_ObjC_plus_plus = 0x0011,
-    DW_LANG_UPC = 0x0012,
-    DW_LANG_D = 0x0013,
-    /* MIPS.  */
-    DW_LANG_Mips_Assembler = 0x8001,
-    /* UPC.  */
-    DW_LANG_Upc = 0x8765
-  };
-
-#define DW_LANG_lo_user 0x8000	/* Implementation-defined range start.  */
-#define DW_LANG_hi_user 0xffff	/* Implementation-defined range start.  */
-
-/* Names and codes for macro information.  */
-enum dwarf_macinfo_record_type
-  {
-    DW_MACINFO_define = 1,
-    DW_MACINFO_undef = 2,
-    DW_MACINFO_start_file = 3,
-    DW_MACINFO_end_file = 4,
-    DW_MACINFO_vendor_ext = 255
-  };
-
-/* @@@ For use with GNU frame unwind information.  */
-
-#define DW_EH_PE_absptr		0x00
-#define DW_EH_PE_omit		0xff
-
-#define DW_EH_PE_uleb128	0x01
-#define DW_EH_PE_udata2		0x02
-#define DW_EH_PE_udata4		0x03
-#define DW_EH_PE_udata8		0x04
-#define DW_EH_PE_sleb128	0x09
-#define DW_EH_PE_sdata2		0x0A
-#define DW_EH_PE_sdata4		0x0B
-#define DW_EH_PE_sdata8		0x0C
-#define DW_EH_PE_signed		0x08
-
-#define DW_EH_PE_pcrel		0x10
-#define DW_EH_PE_textrel	0x20
-#define DW_EH_PE_datarel	0x30
-#define DW_EH_PE_funcrel	0x40
-#define DW_EH_PE_aligned	0x50
-
-#define DW_EH_PE_indirect	0x80
-
-#endif /* _ELF_DWARF2_H */
diff --git a/include/elf/external.h b/include/elf/external.h
deleted file mode 100644
index 5985e94..0000000
--- a/include/elf/external.h
+++ /dev/null
@@ -1,279 +0,0 @@
-/* ELF support for BFD.
-   Copyright 1991, 1992, 1993, 1995, 1997, 1998, 1999, 2001, 2003, 2005
-   Free Software Foundation, Inc.
-
-   Written by Fred Fish @ Cygnus Support, from information published
-   in "UNIX System V Release 4, Programmers Guide: ANSI C and
-   Programming Support Tools".
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-
-/* This file is part of ELF support for BFD, and contains the portions
-   that describe how ELF is represented externally by the BFD library.
-   I.E. it describes the in-file representation of ELF.  It requires
-   the elf/common.h file which contains the portions that are common to
-   both the internal and external representations. */
-
-/* The 64-bit stuff is kind of random.  Perhaps someone will publish a
-   spec someday.  */
-
-#ifndef _ELF_EXTERNAL_H
-#define _ELF_EXTERNAL_H
-
-/* ELF Header (32-bit implementations) */
-
-typedef struct {
-  unsigned char	e_ident[16];		/* ELF "magic number" */
-  unsigned char	e_type[2];		/* Identifies object file type */
-  unsigned char	e_machine[2];		/* Specifies required architecture */
-  unsigned char	e_version[4];		/* Identifies object file version */
-  unsigned char	e_entry[4];		/* Entry point virtual address */
-  unsigned char	e_phoff[4];		/* Program header table file offset */
-  unsigned char	e_shoff[4];		/* Section header table file offset */
-  unsigned char	e_flags[4];		/* Processor-specific flags */
-  unsigned char	e_ehsize[2];		/* ELF header size in bytes */
-  unsigned char	e_phentsize[2];		/* Program header table entry size */
-  unsigned char	e_phnum[2];		/* Program header table entry count */
-  unsigned char	e_shentsize[2];		/* Section header table entry size */
-  unsigned char	e_shnum[2];		/* Section header table entry count */
-  unsigned char	e_shstrndx[2];		/* Section header string table index */
-} Elf32_External_Ehdr;
-
-typedef struct {
-  unsigned char	e_ident[16];		/* ELF "magic number" */
-  unsigned char	e_type[2];		/* Identifies object file type */
-  unsigned char	e_machine[2];		/* Specifies required architecture */
-  unsigned char	e_version[4];		/* Identifies object file version */
-  unsigned char	e_entry[8];		/* Entry point virtual address */
-  unsigned char	e_phoff[8];		/* Program header table file offset */
-  unsigned char	e_shoff[8];		/* Section header table file offset */
-  unsigned char	e_flags[4];		/* Processor-specific flags */
-  unsigned char	e_ehsize[2];		/* ELF header size in bytes */
-  unsigned char	e_phentsize[2];		/* Program header table entry size */
-  unsigned char	e_phnum[2];		/* Program header table entry count */
-  unsigned char	e_shentsize[2];		/* Section header table entry size */
-  unsigned char	e_shnum[2];		/* Section header table entry count */
-  unsigned char	e_shstrndx[2];		/* Section header string table index */
-} Elf64_External_Ehdr;
-
-/* Program header */
-
-typedef struct {
-  unsigned char	p_type[4];		/* Identifies program segment type */
-  unsigned char	p_offset[4];		/* Segment file offset */
-  unsigned char	p_vaddr[4];		/* Segment virtual address */
-  unsigned char	p_paddr[4];		/* Segment physical address */
-  unsigned char	p_filesz[4];		/* Segment size in file */
-  unsigned char	p_memsz[4];		/* Segment size in memory */
-  unsigned char	p_flags[4];		/* Segment flags */
-  unsigned char	p_align[4];		/* Segment alignment, file & memory */
-} Elf32_External_Phdr;
-
-typedef struct {
-  unsigned char	p_type[4];		/* Identifies program segment type */
-  unsigned char	p_flags[4];		/* Segment flags */
-  unsigned char	p_offset[8];		/* Segment file offset */
-  unsigned char	p_vaddr[8];		/* Segment virtual address */
-  unsigned char	p_paddr[8];		/* Segment physical address */
-  unsigned char	p_filesz[8];		/* Segment size in file */
-  unsigned char	p_memsz[8];		/* Segment size in memory */
-  unsigned char	p_align[8];		/* Segment alignment, file & memory */
-} Elf64_External_Phdr;
-
-/* Section header */
-
-typedef struct {
-  unsigned char	sh_name[4];		/* Section name, index in string tbl */
-  unsigned char	sh_type[4];		/* Type of section */
-  unsigned char	sh_flags[4];		/* Miscellaneous section attributes */
-  unsigned char	sh_addr[4];		/* Section virtual addr at execution */
-  unsigned char	sh_offset[4];		/* Section file offset */
-  unsigned char	sh_size[4];		/* Size of section in bytes */
-  unsigned char	sh_link[4];		/* Index of another section */
-  unsigned char	sh_info[4];		/* Additional section information */
-  unsigned char	sh_addralign[4];	/* Section alignment */
-  unsigned char	sh_entsize[4];		/* Entry size if section holds table */
-} Elf32_External_Shdr;
-
-typedef struct {
-  unsigned char	sh_name[4];		/* Section name, index in string tbl */
-  unsigned char	sh_type[4];		/* Type of section */
-  unsigned char	sh_flags[8];		/* Miscellaneous section attributes */
-  unsigned char	sh_addr[8];		/* Section virtual addr at execution */
-  unsigned char	sh_offset[8];		/* Section file offset */
-  unsigned char	sh_size[8];		/* Size of section in bytes */
-  unsigned char	sh_link[4];		/* Index of another section */
-  unsigned char	sh_info[4];		/* Additional section information */
-  unsigned char	sh_addralign[8];	/* Section alignment */
-  unsigned char	sh_entsize[8];		/* Entry size if section holds table */
-} Elf64_External_Shdr;
-
-/* Symbol table entry */
-
-typedef struct {
-  unsigned char	st_name[4];		/* Symbol name, index in string tbl */
-  unsigned char	st_value[4];		/* Value of the symbol */
-  unsigned char	st_size[4];		/* Associated symbol size */
-  unsigned char	st_info[1];		/* Type and binding attributes */
-  unsigned char	st_other[1];		/* No defined meaning, 0 */
-  unsigned char	st_shndx[2];		/* Associated section index */
-} Elf32_External_Sym;
-
-typedef struct {
-  unsigned char	st_name[4];		/* Symbol name, index in string tbl */
-  unsigned char	st_info[1];		/* Type and binding attributes */
-  unsigned char	st_other[1];		/* No defined meaning, 0 */
-  unsigned char	st_shndx[2];		/* Associated section index */
-  unsigned char	st_value[8];		/* Value of the symbol */
-  unsigned char	st_size[8];		/* Associated symbol size */
-} Elf64_External_Sym;
-
-typedef struct {
-  unsigned char est_shndx[4];		/* Section index */
-} Elf_External_Sym_Shndx;
-
-/* Note segments */
-
-typedef struct {
-  unsigned char	namesz[4];		/* Size of entry's owner string */
-  unsigned char	descsz[4];		/* Size of the note descriptor */
-  unsigned char	type[4];		/* Interpretation of the descriptor */
-  char		name[1];		/* Start of the name+desc data */
-} Elf_External_Note;
-
-/* Relocation Entries */
-typedef struct {
-  unsigned char r_offset[4];	/* Location at which to apply the action */
-  unsigned char	r_info[4];	/* index and type of relocation */
-} Elf32_External_Rel;
-
-typedef struct {
-  unsigned char r_offset[4];	/* Location at which to apply the action */
-  unsigned char	r_info[4];	/* index and type of relocation */
-  unsigned char	r_addend[4];	/* Constant addend used to compute value */
-} Elf32_External_Rela;
-
-typedef struct {
-  unsigned char r_offset[8];	/* Location at which to apply the action */
-  unsigned char	r_info[8];	/* index and type of relocation */
-} Elf64_External_Rel;
-
-typedef struct {
-  unsigned char r_offset[8];	/* Location at which to apply the action */
-  unsigned char	r_info[8];	/* index and type of relocation */
-  unsigned char	r_addend[8];	/* Constant addend used to compute value */
-} Elf64_External_Rela;
-
-/* dynamic section structure */
-
-typedef struct {
-  unsigned char	d_tag[4];		/* entry tag value */
-  union {
-    unsigned char	d_val[4];
-    unsigned char	d_ptr[4];
-  } d_un;
-} Elf32_External_Dyn;
-
-typedef struct {
-  unsigned char	d_tag[8];		/* entry tag value */
-  union {
-    unsigned char	d_val[8];
-    unsigned char	d_ptr[8];
-  } d_un;
-} Elf64_External_Dyn;
-
-/* The version structures are currently size independent.  They are
-   named without a 32 or 64.  If that ever changes, these structures
-   will need to be renamed.  */
-
-/* This structure appears in a SHT_GNU_verdef section.  */
-
-typedef struct {
-  unsigned char		vd_version[2];
-  unsigned char		vd_flags[2];
-  unsigned char		vd_ndx[2];
-  unsigned char		vd_cnt[2];
-  unsigned char		vd_hash[4];
-  unsigned char		vd_aux[4];
-  unsigned char		vd_next[4];
-} Elf_External_Verdef;
-
-/* This structure appears in a SHT_GNU_verdef section.  */
-
-typedef struct {
-  unsigned char		vda_name[4];
-  unsigned char		vda_next[4];
-} Elf_External_Verdaux;
-
-/* This structure appears in a SHT_GNU_verneed section.  */
-
-typedef struct {
-  unsigned char		vn_version[2];
-  unsigned char		vn_cnt[2];
-  unsigned char		vn_file[4];
-  unsigned char		vn_aux[4];
-  unsigned char		vn_next[4];
-} Elf_External_Verneed;
-
-/* This structure appears in a SHT_GNU_verneed section.  */
-
-typedef struct {
-  unsigned char		vna_hash[4];
-  unsigned char		vna_flags[2];
-  unsigned char		vna_other[2];
-  unsigned char		vna_name[4];
-  unsigned char		vna_next[4];
-} Elf_External_Vernaux;
-
-/* This structure appears in a SHT_GNU_versym section.  This is not a
-   standard ELF structure; ELF just uses Elf32_Half.  */
-
-typedef struct {
-  unsigned char		vs_vers[2];
-}
-#ifdef __GNUC__
-  __attribute__ ((packed))
-#endif
-  Elf_External_Versym;
-
-/* Structure for syminfo section.  */
-typedef struct
-{
-  unsigned char		si_boundto[2];
-  unsigned char		si_flags[2];
-} Elf_External_Syminfo;
-
-
-/* This structure appears on the stack and in NT_AUXV core file notes.  */
-typedef struct
-{
-  unsigned char		a_type[4];
-  unsigned char		a_val[4];
-} Elf32_External_Auxv;
-
-typedef struct
-{
-  unsigned char		a_type[8];
-  unsigned char		a_val[8];
-} Elf64_External_Auxv;
-
-/* Size of SHT_GROUP section entry.  */
-
-#define GRP_ENTRY_SIZE		4
-
-#endif /* _ELF_EXTERNAL_H */
diff --git a/include/elf/fr30.h b/include/elf/fr30.h
deleted file mode 100644
index eb2b937..0000000
--- a/include/elf/fr30.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* FR30 ELF support for BFD.
-   Copyright 1998, 1999, 2000 Free Software Foundation, Inc.
-
-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.,
-51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_FR30_H
-#define _ELF_FR30_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-START_RELOC_NUMBERS (elf_fr30_reloc_type)
-  RELOC_NUMBER (R_FR30_NONE, 0)
-  RELOC_NUMBER (R_FR30_8, 1)
-  RELOC_NUMBER (R_FR30_20, 2)
-  RELOC_NUMBER (R_FR30_32, 3)
-  RELOC_NUMBER (R_FR30_48, 4)
-  RELOC_NUMBER (R_FR30_6_IN_4, 5)
-  RELOC_NUMBER (R_FR30_8_IN_8, 6)
-  RELOC_NUMBER (R_FR30_9_IN_8, 7)
-  RELOC_NUMBER (R_FR30_10_IN_8, 8)
-  RELOC_NUMBER (R_FR30_9_PCREL, 9)
-  RELOC_NUMBER (R_FR30_12_PCREL, 10)
-  RELOC_NUMBER (R_FR30_GNU_VTINHERIT, 11)
-  RELOC_NUMBER (R_FR30_GNU_VTENTRY, 12)
-END_RELOC_NUMBERS (R_FR30_max)
-
-#endif /* _ELF_FR30_H */
diff --git a/include/elf/frv.h b/include/elf/frv.h
deleted file mode 100644
index f2b1097..0000000
--- a/include/elf/frv.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/* FRV ELF support for BFD.
-   Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-
-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.,
-51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_FRV_H
-#define _ELF_FRV_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-START_RELOC_NUMBERS (elf_frv_reloc_type)
-  RELOC_NUMBER (R_FRV_NONE, 0)
-  RELOC_NUMBER (R_FRV_32, 1)
-  RELOC_NUMBER (R_FRV_LABEL16, 2)
-  RELOC_NUMBER (R_FRV_LABEL24, 3)
-  RELOC_NUMBER (R_FRV_LO16, 4)
-  RELOC_NUMBER (R_FRV_HI16, 5)
-  RELOC_NUMBER (R_FRV_GPREL12, 6)
-  RELOC_NUMBER (R_FRV_GPRELU12, 7)
-  RELOC_NUMBER (R_FRV_GPREL32, 8)
-  RELOC_NUMBER (R_FRV_GPRELHI, 9)
-  RELOC_NUMBER (R_FRV_GPRELLO, 10)
-  RELOC_NUMBER (R_FRV_GOT12, 11)
-  RELOC_NUMBER (R_FRV_GOTHI, 12)
-  RELOC_NUMBER (R_FRV_GOTLO, 13)
-  RELOC_NUMBER (R_FRV_FUNCDESC, 14)
-  RELOC_NUMBER (R_FRV_FUNCDESC_GOT12, 15)
-  RELOC_NUMBER (R_FRV_FUNCDESC_GOTHI, 16)
-  RELOC_NUMBER (R_FRV_FUNCDESC_GOTLO, 17)
-  RELOC_NUMBER (R_FRV_FUNCDESC_VALUE, 18)
-  RELOC_NUMBER (R_FRV_FUNCDESC_GOTOFF12, 19)
-  RELOC_NUMBER (R_FRV_FUNCDESC_GOTOFFHI, 20)
-  RELOC_NUMBER (R_FRV_FUNCDESC_GOTOFFLO, 21)
-  RELOC_NUMBER (R_FRV_GOTOFF12, 22)
-  RELOC_NUMBER (R_FRV_GOTOFFHI, 23)
-  RELOC_NUMBER (R_FRV_GOTOFFLO, 24)
-  RELOC_NUMBER (R_FRV_GETTLSOFF, 25)
-  RELOC_NUMBER (R_FRV_TLSDESC_VALUE, 26)
-  RELOC_NUMBER (R_FRV_GOTTLSDESC12, 27)
-  RELOC_NUMBER (R_FRV_GOTTLSDESCHI, 28)
-  RELOC_NUMBER (R_FRV_GOTTLSDESCLO, 29)
-  RELOC_NUMBER (R_FRV_TLSMOFF12, 30)
-  RELOC_NUMBER (R_FRV_TLSMOFFHI, 31)
-  RELOC_NUMBER (R_FRV_TLSMOFFLO, 32)
-  RELOC_NUMBER (R_FRV_GOTTLSOFF12, 33)
-  RELOC_NUMBER (R_FRV_GOTTLSOFFHI, 34)
-  RELOC_NUMBER (R_FRV_GOTTLSOFFLO, 35)
-  RELOC_NUMBER (R_FRV_TLSOFF, 36)
-  RELOC_NUMBER (R_FRV_TLSDESC_RELAX, 37)
-  RELOC_NUMBER (R_FRV_GETTLSOFF_RELAX, 38)
-  RELOC_NUMBER (R_FRV_TLSOFF_RELAX, 39)
-  RELOC_NUMBER (R_FRV_TLSMOFF, 40)
-  RELOC_NUMBER (R_FRV_GNU_VTINHERIT, 200)
-  RELOC_NUMBER (R_FRV_GNU_VTENTRY, 201)
-END_RELOC_NUMBERS(R_FRV_max)
-
-/* Processor specific flags for the ELF header e_flags field.  */
-						/* gpr support */
-#define EF_FRV_GPR_MASK		0x00000003	/* mask for # of gprs */
-#define EF_FRV_GPR_32		0x00000001	/* -mgpr-32 */
-#define EF_FRV_GPR_64		0x00000002	/* -mgpr-64 */
-
-						/* fpr support */
-#define EF_FRV_FPR_MASK		0x0000000c	/* mask for # of fprs */
-#define EF_FRV_FPR_32		0x00000004	/* -mfpr-32 */
-#define EF_FRV_FPR_64		0x00000008	/* -mfpr-64 */
-#define EF_FRV_FPR_NONE		0x0000000c	/* -msoft-float */
-
-						/* double word support */
-#define EF_FRV_DWORD_MASK	0x00000030	/* mask for dword support */
-#define EF_FRV_DWORD_YES	0x00000010	/* use double word insns */
-#define EF_FRV_DWORD_NO		0x00000020	/* don't use double word insn*/
-
-#define EF_FRV_DOUBLE		0x00000040	/* -mdouble */
-#define EF_FRV_MEDIA		0x00000080	/* -mmedia */
-
-#define EF_FRV_PIC		0x00000100	/* -fpic */
-#define EF_FRV_NON_PIC_RELOCS	0x00000200	/* used non pic safe relocs */
-
-#define EF_FRV_MULADD		0x00000400	/* -mmuladd */
-#define EF_FRV_BIGPIC		0x00000800	/* -fPIC */
-#define	EF_FRV_LIBPIC		0x00001000	/* -mlibrary-pic */
-#define EF_FRV_G0		0x00002000	/* -G 0, no small data ptr */
-#define EF_FRV_NOPACK		0x00004000	/* -mnopack */
-#define EF_FRV_FDPIC		0x00008000      /* -mfdpic */
-
-#define	EF_FRV_CPU_MASK		0xff000000	/* specific cpu bits */
-#define EF_FRV_CPU_GENERIC	0x00000000	/* generic FRV */
-#define EF_FRV_CPU_FR500	0x01000000	/* FRV500 */
-#define EF_FRV_CPU_FR300	0x02000000	/* FRV300 */
-#define EF_FRV_CPU_SIMPLE	0x03000000	/* SIMPLE */
-#define EF_FRV_CPU_TOMCAT	0x04000000	/* Tomcat, FR500 prototype */
-#define EF_FRV_CPU_FR400	0x05000000	/* FRV400 */
-#define EF_FRV_CPU_FR550	0x06000000	/* FRV550 */
-#define EF_FRV_CPU_FR405	0x07000000
-#define EF_FRV_CPU_FR450	0x08000000
-
-						/* Mask of PIC related bits */
-#define	EF_FRV_PIC_FLAGS	(EF_FRV_PIC | EF_FRV_LIBPIC | EF_FRV_BIGPIC \
-				 | EF_FRV_FDPIC)
-
-						/* Mask of all flags */
-#define EF_FRV_ALL_FLAGS	(EF_FRV_GPR_MASK | \
-				 EF_FRV_FPR_MASK | \
-				 EF_FRV_DWORD_MASK | \
-				 EF_FRV_DOUBLE | \
-				 EF_FRV_MEDIA | \
-				 EF_FRV_PIC_FLAGS | \
-				 EF_FRV_NON_PIC_RELOCS | \
-				 EF_FRV_MULADD | \
-				 EF_FRV_G0 | \
-				 EF_FRV_NOPACK | \
-				 EF_FRV_CPU_MASK)
-
-#endif /* _ELF_FRV_H */
diff --git a/include/elf/h8.h b/include/elf/h8.h
deleted file mode 100644
index 1a115ad..0000000
--- a/include/elf/h8.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/* H8300/h8500 ELF support for BFD.
-   Copyright 2001, 2003 Free Software Foundation, Inc.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_H8_H
-#define _ELF_H8_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-/* Relocations 59..63 are GNU extensions.  */
-START_RELOC_NUMBERS (elf_h8_reloc_type)
-  RELOC_NUMBER (R_H8_NONE, 0)
-  RELOC_NUMBER (R_H8_DIR32, 1)
-  RELOC_NUMBER (R_H8_DIR32_28, 2)
-  RELOC_NUMBER (R_H8_DIR32_24, 3)
-  RELOC_NUMBER (R_H8_DIR32_16, 4)
-  RELOC_NUMBER (R_H8_DIR32U, 6)
-  RELOC_NUMBER (R_H8_DIR32U_28, 7)
-  RELOC_NUMBER (R_H8_DIR32U_24, 8)
-  RELOC_NUMBER (R_H8_DIR32U_20, 9)
-  RELOC_NUMBER (R_H8_DIR32U_16, 10)
-  RELOC_NUMBER (R_H8_DIR24, 11)
-  RELOC_NUMBER (R_H8_DIR24_20, 12)
-  RELOC_NUMBER (R_H8_DIR24_16, 13)
-  RELOC_NUMBER (R_H8_DIR24U, 14)
-  RELOC_NUMBER (R_H8_DIR24U_20, 15)
-  RELOC_NUMBER (R_H8_DIR24U_16, 16)
-  RELOC_NUMBER (R_H8_DIR16, 17)
-  RELOC_NUMBER (R_H8_DIR16U, 18)
-  RELOC_NUMBER (R_H8_DIR16S_32, 19)
-  RELOC_NUMBER (R_H8_DIR16S_28, 20)
-  RELOC_NUMBER (R_H8_DIR16S_24, 21)
-  RELOC_NUMBER (R_H8_DIR16S_20, 22)
-  RELOC_NUMBER (R_H8_DIR16S, 23)
-  RELOC_NUMBER (R_H8_DIR8, 24)
-  RELOC_NUMBER (R_H8_DIR8U, 25)
-  RELOC_NUMBER (R_H8_DIR8Z_32, 26)
-  RELOC_NUMBER (R_H8_DIR8Z_28, 27)
-  RELOC_NUMBER (R_H8_DIR8Z_24, 28)
-  RELOC_NUMBER (R_H8_DIR8Z_20, 29)
-  RELOC_NUMBER (R_H8_DIR8Z_16, 30)
-  RELOC_NUMBER (R_H8_PCREL16, 31)
-  RELOC_NUMBER (R_H8_PCREL8, 32)
-  RELOC_NUMBER (R_H8_BPOS, 33)
-  FAKE_RELOC (R_H8_FIRST_INVALID_DIR_RELOC, 34)
-  FAKE_RELOC (R_H8_LAST_INVALID_DIR_RELOC, 58)
-  RELOC_NUMBER (R_H8_DIR16A8, 59)
-  RELOC_NUMBER (R_H8_DIR16R8, 60)
-  RELOC_NUMBER (R_H8_DIR24A8, 61)
-  RELOC_NUMBER (R_H8_DIR24R8, 62)
-  RELOC_NUMBER (R_H8_DIR32A16, 63)
-  RELOC_NUMBER (R_H8_ABS32, 65)
-  RELOC_NUMBER (R_H8_ABS32A16, 127)
-  RELOC_NUMBER (R_H8_SYM, 128)
-  RELOC_NUMBER (R_H8_OPneg, 129)
-  RELOC_NUMBER (R_H8_OPadd, 130)
-  RELOC_NUMBER (R_H8_OPsub, 131)
-  RELOC_NUMBER (R_H8_OPmul, 132)
-  RELOC_NUMBER (R_H8_OPdiv, 133)
-  RELOC_NUMBER (R_H8_OPshla, 134)
-  RELOC_NUMBER (R_H8_OPshra, 135)
-  RELOC_NUMBER (R_H8_OPsctsize, 136)
-  RELOC_NUMBER (R_H8_OPhword, 137)
-  RELOC_NUMBER (R_H8_OPlword, 138)
-  RELOC_NUMBER (R_H8_OPhigh, 139)
-  RELOC_NUMBER (R_H8_OPlow, 140)
-  RELOC_NUMBER (R_H8_OPscttop, 141)
-END_RELOC_NUMBERS (R_H8_max)
-
-/* Machine variant if we know it.  This field was invented at Cygnus,
-   but it is hoped that other vendors will adopt it.  If some standard
-   is developed, this code should be changed to follow it. */
-
-#define EF_H8_MACH		0x00FF0000
-
-#define E_H8_MACH_H8300		0x00800000
-#define E_H8_MACH_H8300H	0x00810000
-#define E_H8_MACH_H8300S	0x00820000
-#define E_H8_MACH_H8300HN	0x00830000
-#define E_H8_MACH_H8300SN	0x00840000
-#define E_H8_MACH_H8300SX	0x00850000
-#define E_H8_MACH_H8300SXN	0x00860000
-
-#endif
diff --git a/include/elf/hppa.h b/include/elf/hppa.h
deleted file mode 100644
index c9b3200..0000000
--- a/include/elf/hppa.h
+++ /dev/null
@@ -1,634 +0,0 @@
-/* HPPA ELF support for BFD.
-   Copyright 1993, 1994, 1995, 1998, 1999, 2000, 2005, 2006
-   Free Software Foundation, Inc.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* This file holds definitions specific to the HPPA ELF ABI.  Note
-   that most of this is not actually implemented by BFD.  */
-
-#ifndef _ELF_HPPA_H
-#define _ELF_HPPA_H
-
-/* Processor specific flags for the ELF header e_flags field.  */
-
-/* Trap null address dereferences.  */
-#define EF_PARISC_TRAPNIL	0x00010000
-
-/* .PARISC.archext section is present.  */
-#define EF_PARISC_EXT		0x00020000
-
-/* Program expects little-endian mode.  */
-#define EF_PARISC_LSB		0x00040000
-
-/* Program expects wide mode.  */
-#define EF_PARISC_WIDE		0x00080000
-
-/* Do not allow kernel-assisted branch prediction.  */
-#define EF_PARISC_NO_KABP	0x00100000
-
-/* Allow lazy swap for dynamically allocated program segments.  */
-#define EF_PARISC_LAZYSWAP	0x00400000
-
-/* Architecture version */
-#define EF_PARISC_ARCH		0x0000ffff
-
-#define EFA_PARISC_1_0			0x020b
-#define EFA_PARISC_1_1			0x0210
-#define EFA_PARISC_2_0			0x0214
-
-/* Special section indices.  */
-/* A symbol that has been declared as a tentative definition in an ANSI C
-   compilation.  */
-#define SHN_PARISC_ANSI_COMMON 	0xff00
-
-/* A symbol that has been declared as a common block using the
-   huge memory model.  */
-#define SHN_PARISC_HUGE_COMMON	0xff01
-
-/* Processor specific section types.  */
-
-/* Section contains product specific extension bits.  */
-#define SHT_PARISC_EXT		0x70000000
-
-/* Section contains unwind table entries.  */
-#define SHT_PARISC_UNWIND	0x70000001
-
-/* Section contains debug information for optimized code.  */
-#define SHT_PARISC_DOC		0x70000002
-
-/* Section contains code annotations.  */
-#define SHT_PARISC_ANNOT	0x70000003
-
-/* DLKM special section.  */
-#define SHT_PARISC_DLKM		0x70000004
-
-/* These are strictly for compatibility with the older elf32-hppa
-   implementation.  Hopefully we can eliminate them in the future.  */
-/* Optional section holding argument location/relocation info.  */
-#define SHT_PARISC_SYMEXTN    SHT_LOPROC + 8
-
-/* Option section for linker stubs.  */
-#define SHT_PARISC_STUBS      SHT_LOPROC + 9
-
-/* Processor specific section flags.  */
-
-/* Section contains code compiled for static branch prediction.  */
-#define SHF_PARISC_SBP		0x80000000
-
-/* Section should be allocated from from GP.  */
-#define SHF_PARISC_HUGE		0x40000000
-
-/* Section should go near GP.  */
-#define SHF_PARISC_SHORT	0x20000000
-
-/* Section is weak ordered.  */
-#define SHF_PARISC_WEAKORDER	0x10000000
-
-/* Identifies the entry point of a millicode routine.  */
-#define STT_PARISC_MILLI	13
-
-/* ELF/HPPA relocation types */
-
-/* Note: PA-ELF is defined to use only RELA relocations.  */
-#include "elf/reloc-macros.h"
-
-START_RELOC_NUMBERS (elf_hppa_reloc_type)
-RELOC_NUMBER (R_PARISC_NONE,	         0) /* No reloc */
-
-/*		Data / Inst. Format	   Relocation Expression	  */
-
-RELOC_NUMBER (R_PARISC_DIR32,	   	 1)
-/*		32-bit word            	   symbol + addend    		  */
-
-RELOC_NUMBER (R_PARISC_DIR21L,	   	 2)
-/*		long immediate (7)	   LR(symbol, addend) 		  */
-
-RELOC_NUMBER (R_PARISC_DIR17R,	   	 3)
-/*		branch external (19)	   RR(symbol, addend) 		  */
-
-RELOC_NUMBER (R_PARISC_DIR17F,	   	 4)
-/*		branch external (19)	   symbol + addend    		  */
-
-RELOC_NUMBER (R_PARISC_DIR14R,	   	 6)
-/*		load/store (1)		   RR(symbol, addend) 		  */
-
-RELOC_NUMBER (R_PARISC_DIR14F,	   	 7)
-/*		load/store (1)		   symbol, addend 		  */
-
-/* PC-relative relocation types
-   Typically used for calls.
-   Note PCREL17C and PCREL17F differ only in overflow handling.
-   PCREL17C never reports a relocation error.
-
-   When supporting argument relocations, function calls must be
-   accompanied by parameter relocation information.  This information is
-   carried in the ten high-order bits of the addend field.  The remaining
-   22 bits of of the addend field are sign-extended to form the Addend.
-
-   Note the code to build argument relocations depends on the
-   addend being zero.  A consequence of this limitation is GAS
-   can not perform relocation reductions for function symbols.  */
-
-RELOC_NUMBER (R_PARISC_PCREL12F,  	 8)
-/*		op & branch (17)	   symbol - PC - 8 + addend    	  */
-
-RELOC_NUMBER (R_PARISC_PCREL32,   	 9)
-/*		32-bit word		   symbol - PC - 8 + addend    	  */
-
-RELOC_NUMBER (R_PARISC_PCREL21L,  	10)
-/*		long immediate (7)	   L(symbol - PC - 8 + addend) 	  */
-
-RELOC_NUMBER (R_PARISC_PCREL17R,  	11)
-/*		branch external (19)	   R(symbol - PC - 8 + addend) 	  */
-
-RELOC_NUMBER (R_PARISC_PCREL17F,  	12)
-/*		branch (20)		   symbol - PC - 8 + addend    	  */
-
-RELOC_NUMBER (R_PARISC_PCREL17C,  	13)
-/*		branch (20)		   symbol - PC - 8 + addend    	  */
-
-RELOC_NUMBER (R_PARISC_PCREL14R,  	14)
-/*		load/store (1)		   R(symbol - PC - 8 + addend) 	  */
-
-RELOC_NUMBER (R_PARISC_PCREL14F,  	15)
-/*		load/store (1)             symbol - PC - 8 + addend    	  */
-
-
-/* DP-relative relocation types.  */
-RELOC_NUMBER (R_PARISC_DPREL21L,  	18)
-/*		long immediate (7)         LR(symbol - GP, addend)  	  */
-
-RELOC_NUMBER (R_PARISC_DPREL14WR, 	19)
-/*		load/store mod. comp. (2)  RR(symbol - GP, addend)  	  */
-
-RELOC_NUMBER (R_PARISC_DPREL14DR, 	20)
-/*		load/store doubleword (3)  RR(symbol - GP, addend)  	  */
-
-RELOC_NUMBER (R_PARISC_DPREL14R,  	22)
-/*		load/store (1)             RR(symbol - GP, addend)  	  */
-
-RELOC_NUMBER (R_PARISC_DPREL14F,  	23)
-/*		load/store (1)             symbol - GP + addend     	  */
-
-
-/* Data linkage table (DLT) relocation types
-
-   SOM DLT_REL fixup requests are used to for static data references
-   from position-independent code within shared libraries.  They are
-   similar to the GOT relocation types in some SVR4 implementations.  */
-
-RELOC_NUMBER (R_PARISC_DLTREL21L,     	26)
-/*		long immediate (7)         LR(symbol - GP, addend) 	  */
-
-RELOC_NUMBER (R_PARISC_DLTREL14R,     	30)
-/*		load/store (1)             RR(symbol - GP, addend) 	  */
-
-RELOC_NUMBER (R_PARISC_DLTREL14F,     	31)
-/*		load/store (1)             symbol - GP + addend    	  */
-
-
-/* DLT indirect relocation types  */
-RELOC_NUMBER (R_PARISC_DLTIND21L,     	34)
-/*		long immediate (7)         L(ltoff(symbol + addend)) 	  */
-
-RELOC_NUMBER (R_PARISC_DLTIND14R,     	38)
-/*		load/store (1)             R(ltoff(symbol + addend)) 	  */
-
-RELOC_NUMBER (R_PARISC_DLTIND14F,     	39)
-/*		load/store (1)             ltoff(symbol + addend)    	  */
-
-
-/* Base relative relocation types.  Ugh.  These imply lots of state */
-RELOC_NUMBER (R_PARISC_SETBASE,       	40)
-/*		none                       no reloc; base := sym     	  */
-
-RELOC_NUMBER (R_PARISC_SECREL32,      	41)
-/*		32-bit word                symbol - SECT + addend    	  */
-
-RELOC_NUMBER (R_PARISC_BASEREL21L,    	42)
-/*		long immediate (7)         LR(symbol - base, addend) 	  */
-
-RELOC_NUMBER (R_PARISC_BASEREL17R,    	43)
-/*		branch external (19)       RR(symbol - base, addend) 	  */
-
-RELOC_NUMBER (R_PARISC_BASEREL17F,    	44)
-/*		branch external (19)       symbol - base + addend    	  */
-
-RELOC_NUMBER (R_PARISC_BASEREL14R,    	46)
-/*		load/store (1)             RR(symbol - base, addend) 	  */
-
-RELOC_NUMBER (R_PARISC_BASEREL14F,    	47)
-/*		load/store (1)             symbol - base, addend     	  */
-
-
-/* Segment relative relocation types.  */
-RELOC_NUMBER (R_PARISC_SEGBASE,       	48)
-/*		none                       no relocation; SB := sym  	  */
-
-RELOC_NUMBER (R_PARISC_SEGREL32,      	49)
-/*		32-bit word                symbol - SB + addend 	  */
-  
-
-/* Offsets from the PLT.  */  
-RELOC_NUMBER (R_PARISC_PLTOFF21L,     	50)
-/*		long immediate (7)         LR(pltoff(symbol), addend) 	  */
-
-RELOC_NUMBER (R_PARISC_PLTOFF14R,     	54)
-/*		load/store (1)             RR(pltoff(symbol), addend) 	  */
-
-RELOC_NUMBER (R_PARISC_PLTOFF14F,     	55)
-/*		load/store (1)             pltoff(symbol) + addend    	  */
-
-
-RELOC_NUMBER (R_PARISC_LTOFF_FPTR32,  	57)
-/*		32-bit word                ltoff(fptr(symbol+addend))     */
-
-RELOC_NUMBER (R_PARISC_LTOFF_FPTR21L, 	58)
-/*		long immediate (7)         L(ltoff(fptr(symbol+addend)))  */
-
-RELOC_NUMBER (R_PARISC_LTOFF_FPTR14R, 	62)
-/*		load/store (1)             R(ltoff(fptr(symbol+addend)))  */
-
-
-RELOC_NUMBER (R_PARISC_FPTR64,        	64)
-/*		64-bit doubleword          fptr(symbol+addend) 		  */
-
-
-/* Plabel relocation types.  */	 
-RELOC_NUMBER (R_PARISC_PLABEL32,      	65)
-/*		32-bit word	  	   fptr(symbol) 		  */
-
-RELOC_NUMBER (R_PARISC_PLABEL21L,     	66)
-/*		long immediate (7)         L(fptr(symbol))		  */
-
-RELOC_NUMBER (R_PARISC_PLABEL14R,     	70)
-/*		load/store (1)             R(fptr(symbol))		  */
-
-  
-/* PCREL relocations.  */  
-RELOC_NUMBER (R_PARISC_PCREL64,       	72)
-/*		64-bit doubleword          symbol - PC - 8 + addend       */
-
-RELOC_NUMBER (R_PARISC_PCREL22C,      	73)
-/*		branch & link (21)         symbol - PC - 8 + addend       */
-
-RELOC_NUMBER (R_PARISC_PCREL22F,      	74)
-/*		branch & link (21)         symbol - PC - 8 + addend       */
-
-RELOC_NUMBER (R_PARISC_PCREL14WR,     	75)
-/*		load/store mod. comp. (2)  R(symbol - PC - 8 + addend)    */
-
-RELOC_NUMBER (R_PARISC_PCREL14DR,     	76)
-/*		load/store doubleword (3)  R(symbol - PC - 8 + addend)    */
-
-RELOC_NUMBER (R_PARISC_PCREL16F,      	77)
-/*		load/store (1)             symbol - PC - 8 + addend       */
-
-RELOC_NUMBER (R_PARISC_PCREL16WF,     	78)
-/*		load/store mod. comp. (2)  symbol - PC - 8 + addend       */
-
-RELOC_NUMBER (R_PARISC_PCREL16DF,     	79)
-/*		load/store doubleword (3)  symbol - PC - 8 + addend       */
-
-
-RELOC_NUMBER (R_PARISC_DIR64,         	80)
-/*		64-bit doubleword          symbol + addend    		  */
-
-RELOC_NUMBER (R_PARISC_DIR14WR,       	83)
-/*		load/store mod. comp. (2)  RR(symbol, addend) 		  */
-
-RELOC_NUMBER (R_PARISC_DIR14DR,       	84)
-/*		load/store doubleword (3)  RR(symbol, addend) 		  */
-
-RELOC_NUMBER (R_PARISC_DIR16F,        	85)
-/*		load/store (1)             symbol + addend    		  */
-
-RELOC_NUMBER (R_PARISC_DIR16WF,       	86)
-/*		load/store mod. comp. (2)  symbol + addend    		  */
-
-RELOC_NUMBER (R_PARISC_DIR16DF,       	87)
-/*		load/store doubleword (3)  symbol + addend    		  */
-  
-RELOC_NUMBER (R_PARISC_GPREL64,       	88)
-/*		64-bit doubleword          symbol - GP + addend 	  */
-  
-RELOC_NUMBER (R_PARISC_DLTREL14WR,    	91)
-/*		load/store mod. comp. (2)  RR(symbol - GP, addend) 	  */
-
-RELOC_NUMBER (R_PARISC_DLTREL14DR,    	92)
-/*		load/store doubleword (3)  RR(symbol - GP, addend) 	  */
-
-RELOC_NUMBER (R_PARISC_GPREL16F,      	93)
-/*		load/store (1)             symbol - GP + addend    	  */
-
-RELOC_NUMBER (R_PARISC_GPREL16WF,     	94)
-/*		load/store mod. comp. (2)  symbol - GP + addend    	  */
-
-RELOC_NUMBER (R_PARISC_GPREL16DF,     	95)
-/*		load/store doubleword (3)  symbol - GP + addend    	  */
-
-
-RELOC_NUMBER (R_PARISC_LTOFF64,      	96)
-/*		64-bit doubleword          ltoff(symbol + addend)    	  */
-
-RELOC_NUMBER (R_PARISC_DLTIND14WR,   	99)
-/*		load/store mod. comp. (2)  R(ltoff(symbol + addend)) 	  */
-
-RELOC_NUMBER (R_PARISC_DLTIND14DR,     100)
-/*		load/store doubleword (3)  R(ltoff(symbol + addend)) 	  */
-
-RELOC_NUMBER (R_PARISC_LTOFF16F,       101)
-/*		load/store (1)             ltoff(symbol + addend)    	  */
-
-RELOC_NUMBER (R_PARISC_LTOFF16WF,      102)
-/*		load/store mod. comp. (2)  ltoff(symbol + addend)    	  */
-
-RELOC_NUMBER (R_PARISC_LTOFF16DF,      103)
-/*		load/store doubleword (3)  ltoff(symbol + addend)    	  */
-
-
-RELOC_NUMBER (R_PARISC_SECREL64,       104)
-/*		64-bit doubleword          symbol - SECT + addend 	  */
-
-RELOC_NUMBER (R_PARISC_BASEREL14WR,    107)
-/*		load/store mod. comp. (2)  RR(symbol - base, addend) 	  */
-
-RELOC_NUMBER (R_PARISC_BASEREL14DR,    108)
-/*		load/store doubleword (3)  RR(symbol - base, addend) 	  */
-
-
-RELOC_NUMBER (R_PARISC_SEGREL64,       112)
-/*		64-bit doubleword          symbol - SB + addend 	  */
-  
-RELOC_NUMBER (R_PARISC_PLTOFF14WR,     115)
-/*		load/store mod. comp. (2)  RR(pltoff(symbol), addend) 	  */
-
-RELOC_NUMBER (R_PARISC_PLTOFF14DR,     116)    
-/*		load/store doubleword (3)  RR(pltoff(symbol), addend) 	  */
-
-RELOC_NUMBER (R_PARISC_PLTOFF16F,      117)    
-/*		load/store (1)             pltoff(symbol) + addend    	  */
-
-RELOC_NUMBER (R_PARISC_PLTOFF16WF,     118)    
-/*		load/store mod. comp. (2)  pltoff(symbol) + addend    	  */
-
-RELOC_NUMBER (R_PARISC_PLTOFF16DF,     119)    
-/*		load/store doubleword (3)  pltoff(symbol) + addend    	  */
-
-
-RELOC_NUMBER (R_PARISC_LTOFF_FPTR64,   120)
-/*		64-bit doubleword          ltoff(fptr(symbol+addend))     */
-
-RELOC_NUMBER (R_PARISC_LTOFF_FPTR14WR, 123)
-/*		load/store mod. comp. (2)  R(ltoff(fptr(symbol+addend)))  */
-
-RELOC_NUMBER (R_PARISC_LTOFF_FPTR14DR, 124)
-/*		load/store doubleword (3)  R(ltoff(fptr(symbol+addend)))  */
-
-RELOC_NUMBER (R_PARISC_LTOFF_FPTR16F,  125)
-/*		load/store (1)             ltoff(fptr(symbol+addend))     */
-
-RELOC_NUMBER (R_PARISC_LTOFF_FPTR16WF, 126)
-/*		load/store mod. comp. (2)  ltoff(fptr(symbol+addend))     */
-
-RELOC_NUMBER (R_PARISC_LTOFF_FPTR16DF, 127)
-/*		load/store doubleword (3)  ltoff(fptr(symbol+addend))     */
-
-
-RELOC_NUMBER (R_PARISC_COPY, 	       128)
-/*		data                       Dynamic relocations only 	  */
-
-RELOC_NUMBER (R_PARISC_IPLT, 	       129)
-/*		plt                                                 	  */
-
-RELOC_NUMBER (R_PARISC_EPLT, 	       130)
-/*		plt                                                 	  */
-
-
-RELOC_NUMBER (R_PARISC_TPREL32,        153)
-/*		32-bit word                symbol - TP + addend    	  */
-
-RELOC_NUMBER (R_PARISC_TPREL21L,       154)
-/*		long immediate (7)         LR(symbol - TP, addend) 	  */
-
-RELOC_NUMBER (R_PARISC_TPREL14R,       158)
-/*		load/store (1)             RR(symbol - TP, addend) 	  */
-
-
-RELOC_NUMBER (R_PARISC_LTOFF_TP21L,    162)
-/*		long immediate (7)         L(ltoff(symbol - TP + addend)) */
-
-RELOC_NUMBER (R_PARISC_LTOFF_TP14R,    166)
-/*		load/store (1)             R(ltoff(symbol - TP + addend)) */
-
-RELOC_NUMBER (R_PARISC_LTOFF_TP14F,    167)
-/*		load/store (1)             ltoff(symbol - TP + addend)    */
-
-
-RELOC_NUMBER (R_PARISC_TPREL64,        216)
-/*		64-bit word                symbol - TP + addend        	  */
-
-RELOC_NUMBER (R_PARISC_TPREL14WR,      219)    	  
-/*		load/store mod. comp. (2)  RR(symbol - TP, addend)     	  */
-
-RELOC_NUMBER (R_PARISC_TPREL14DR,      220)    	  
-/*		load/store doubleword (3)  RR(symbol - TP, addend)     	  */
-
-RELOC_NUMBER (R_PARISC_TPREL16F,       221)    	  
-/*		load/store (1)             symbol - TP + addend        	  */
-
-RELOC_NUMBER (R_PARISC_TPREL16WF,      222)    	  
-/*		load/store mod. comp. (2)  symbol - TP + addend        	  */
-
-RELOC_NUMBER (R_PARISC_TPREL16DF,      223)    	  
-/*		load/store doubleword (3)  symbol - TP + addend        	  */
-
-
-RELOC_NUMBER (R_PARISC_LTOFF_TP64,     224)
-/*		64-bit doubleword          ltoff(symbol - TP + addend)    */
-
-RELOC_NUMBER (R_PARISC_LTOFF_TP14WR,   227)
-/*		load/store mod. comp. (2)  R(ltoff(symbol - TP + addend)) */
-
-RELOC_NUMBER (R_PARISC_LTOFF_TP14DR,   228)
-/*		load/store doubleword (3)  R(ltoff(symbol - TP + addend)) */
-
-RELOC_NUMBER (R_PARISC_LTOFF_TP16F,    229)
-/*		load/store (1)             ltoff(symbol - TP + addend)    */
-
-RELOC_NUMBER (R_PARISC_LTOFF_TP16WF,   230)
-/*		load/store mod. comp. (2)  ltoff(symbol - TP + addend)    */
-
-RELOC_NUMBER (R_PARISC_LTOFF_TP16DF,   231)
-/*		load/store doubleword (3)  ltoff(symbol - TP + addend)    */
-
-RELOC_NUMBER (R_PARISC_GNU_VTENTRY,    232)
-RELOC_NUMBER (R_PARISC_GNU_VTINHERIT,  233)
-
-RELOC_NUMBER (R_PARISC_TLS_GD21L,      234)
-RELOC_NUMBER (R_PARISC_TLS_GD14R,      235)
-RELOC_NUMBER (R_PARISC_TLS_GDCALL,     236)
-RELOC_NUMBER (R_PARISC_TLS_LDM21L,     237)
-RELOC_NUMBER (R_PARISC_TLS_LDM14R,     238)
-RELOC_NUMBER (R_PARISC_TLS_LDMCALL,    239)
-RELOC_NUMBER (R_PARISC_TLS_LDO21L,     240)
-RELOC_NUMBER (R_PARISC_TLS_LDO14R,     241)
-RELOC_NUMBER (R_PARISC_TLS_DTPMOD32,   242)
-RELOC_NUMBER (R_PARISC_TLS_DTPMOD64,   243)
-RELOC_NUMBER (R_PARISC_TLS_DTPOFF32,   244)
-RELOC_NUMBER (R_PARISC_TLS_DTPOFF64,   245)
-
-END_RELOC_NUMBERS (R_PARISC_UNIMPLEMENTED)
-
-#define R_PARISC_TLS_LE21L     R_PARISC_TPREL21L
-#define R_PARISC_TLS_LE14R     R_PARISC_TPREL14R
-#define R_PARISC_TLS_IE21L     R_PARISC_LTOFF_TP21L
-#define R_PARISC_TLS_IE14R     R_PARISC_LTOFF_TP14R
-#define R_PARISC_TLS_TPREL32   R_PARISC_TPREL32
-#define R_PARISC_TLS_TPREL64   R_PARISC_TPREL64
-
-#ifndef RELOC_MACROS_GEN_FUNC
-typedef enum elf_hppa_reloc_type elf_hppa_reloc_type;
-#endif
-
-#define PT_PARISC_ARCHEXT	0x70000000
-#define PT_PARISC_UNWIND	0x70000001
-#define PT_PARISC_WEAKORDER	0x70000002
-
-/* Flag bits in sh_flags of ElfXX_Shdr.  */
-#define SHF_HP_TLS              0x01000000
-#define SHF_HP_NEAR_SHARED      0x02000000
-#define SHF_HP_FAR_SHARED       0x04000000
-#define SHF_HP_COMDAT           0x08000000
-#define SHF_HP_CONST            0x00800000
-
-/* Reserved section header indices.  */
-#define SHN_TLS_COMMON          (SHN_LOOS + 0x0)
-#define SHN_NS_COMMON           (SHN_LOOS + 0x1)
-#define SHN_FS_COMMON           (SHN_LOOS + 0x2)
-#define SHN_NS_UNDEF            (SHN_LOOS + 0x3)
-#define SHN_FS_UNDEF            (SHN_LOOS + 0x4)
-#define SHN_HP_EXTERN           (SHN_LOOS + 0x5)
-#define SHN_HP_EXTHINT          (SHN_LOOS + 0x6)
-#define SHN_HP_UNDEF_BIND_IMM   (SHN_LOOS + 0x7)
-
-/* Values of sh_type in ElfXX_Shdr.  */
-#define SHT_HP_OVLBITS  (SHT_LOOS + 0x0)
-#define SHT_HP_DLKM     (SHT_LOOS + 0x1)
-#define SHT_HP_COMDAT   (SHT_LOOS + 0x2)
-#define SHT_HP_OBJDICT  (SHT_LOOS + 0x3)
-#define SHT_HP_ANNOT    (SHT_LOOS + 0x4)
-
-/* Flag bits in p_flags of ElfXX_Phdr.  */
-#define PF_HP_CODE		0x00040000
-#define PF_HP_MODIFY		0x00080000
-#define PF_HP_PAGE_SIZE		0x00100000
-#define PF_HP_FAR_SHARED	0x00200000
-#define PF_HP_NEAR_SHARED	0x00400000
-#define PF_HP_LAZYSWAP		0x00800000
-#define PF_HP_CODE_DEPR		0x01000000
-#define PF_HP_MODIFY_DEPR	0x02000000
-#define PF_HP_LAZYSWAP_DEPR	0x04000000
-#define PF_PARISC_SBP		0x08000000
-#define PF_HP_SBP		0x08000000
-
-
-/* Processor specific dynamic array tags.  */
-
-/* Arggh.  HP's tools define these symbols based on the
-   old value of DT_LOOS.  So we must do the same to be
-   compatible.  */
-#define DT_HP_LOAD_MAP		(OLD_DT_LOOS + 0x0)
-#define DT_HP_DLD_FLAGS		(OLD_DT_LOOS + 0x1)
-#define DT_HP_DLD_HOOK		(OLD_DT_LOOS + 0x2)
-#define DT_HP_UX10_INIT		(OLD_DT_LOOS + 0x3)
-#define DT_HP_UX10_INITSZ	(OLD_DT_LOOS + 0x4)
-#define DT_HP_PREINIT		(OLD_DT_LOOS + 0x5)
-#define DT_HP_PREINITSZ		(OLD_DT_LOOS + 0x6)
-#define DT_HP_NEEDED		(OLD_DT_LOOS + 0x7)
-#define DT_HP_TIME_STAMP	(OLD_DT_LOOS + 0x8)
-#define DT_HP_CHECKSUM		(OLD_DT_LOOS + 0x9)
-#define DT_HP_GST_SIZE		(OLD_DT_LOOS + 0xa)
-#define DT_HP_GST_VERSION	(OLD_DT_LOOS + 0xb)
-#define DT_HP_GST_HASHVAL	(OLD_DT_LOOS + 0xc)
-#define DT_HP_EPLTREL		(OLD_DT_LOOS + 0xd)
-#define DT_HP_EPLTRELSZ		(OLD_DT_LOOS + 0xe)
-#define DT_HP_FILTERED		(OLD_DT_LOOS + 0xf)
-#define DT_HP_FILTER_TLS	(OLD_DT_LOOS + 0x10)
-#define DT_HP_COMPAT_FILTERED	(OLD_DT_LOOS + 0x11)
-#define DT_HP_LAZYLOAD		(OLD_DT_LOOS + 0x12)
-#define DT_HP_BIND_NOW_COUNT	(OLD_DT_LOOS + 0x13)
-#define DT_PLT			(OLD_DT_LOOS + 0x14)
-#define DT_PLT_SIZE		(OLD_DT_LOOS + 0x15)
-#define DT_DLT			(OLD_DT_LOOS + 0x16)
-#define DT_DLT_SIZE		(OLD_DT_LOOS + 0x17)
-
-/* Values for DT_HP_DLD_FLAGS.  */
-#define DT_HP_DEBUG_PRIVATE		0x00001 /* Map text private */
-#define DT_HP_DEBUG_CALLBACK		0x00002 /* Callback */
-#define DT_HP_DEBUG_CALLBACK_BOR	0x00004 /* BOR callback */
-#define DT_HP_NO_ENVVAR			0x00008 /* No env var */
-#define DT_HP_BIND_NOW			0x00010 /* Bind now */
-#define DT_HP_BIND_NONFATAL		0x00020 /* Bind non-fatal */
-#define DT_HP_BIND_VERBOSE		0x00040 /* Bind verbose */
-#define DT_HP_BIND_RESTRICTED		0x00080 /* Bind restricted */
-#define DT_HP_BIND_SYMBOLIC		0x00100 /* Bind symbolic */
-#define DT_HP_RPATH_FIRST		0x00200 /* RPATH first */
-#define DT_HP_BIND_DEPTH_FIRST		0x00400 /* Bind depth-first */
-#define DT_HP_GST			0x00800 /* Dld global sym table */
-#define DT_HP_SHLIB_FIXED		0x01000 /* shared vtable support */
-#define DT_HP_MERGE_SHLIB_SEG		0x02000 /* merge shlib data segs */
-#define DT_HP_NODELETE			0x04000 /* never unload */
-#define DT_HP_GROUP			0x08000 /* bind only within group */
-#define DT_HP_PROTECT_LINKAGE_TABLE	0x10000 /* protected linkage table */
-
-/* Program header extensions.  */
-#define PT_HP_TLS		(PT_LOOS + 0x0)
-#define PT_HP_CORE_NONE		(PT_LOOS + 0x1)
-#define PT_HP_CORE_VERSION	(PT_LOOS + 0x2)
-#define PT_HP_CORE_KERNEL	(PT_LOOS + 0x3)
-#define PT_HP_CORE_COMM		(PT_LOOS + 0x4)
-#define PT_HP_CORE_PROC		(PT_LOOS + 0x5)
-#define PT_HP_CORE_LOADABLE	(PT_LOOS + 0x6)
-#define PT_HP_CORE_STACK	(PT_LOOS + 0x7)
-#define PT_HP_CORE_SHM		(PT_LOOS + 0x8)
-#define PT_HP_CORE_MMF		(PT_LOOS + 0x9)
-#define PT_HP_PARALLEL		(PT_LOOS + 0x10)
-#define PT_HP_FASTBIND		(PT_LOOS + 0x11)
-#define PT_HP_OPT_ANNOT		(PT_LOOS + 0x12)
-#define PT_HP_HSL_ANNOT		(PT_LOOS + 0x13)
-#define PT_HP_STACK		(PT_LOOS + 0x14)
-#define PT_HP_CORE_UTSNAME	(PT_LOOS + 0x15)
-
-/* Binding information.  */
-#define STB_HP_ALIAS		(STB_LOOS + 0x0)
-
-/* Additional symbol types.  */
-#define STT_HP_OPAQUE		(STT_LOOS + 0x1)
-#define STT_HP_STUB		(STT_LOOS + 0x2)
-
-/* Note types.  */
-#define NT_HP_COMPILER		1
-#define NT_HP_COPYRIGHT		2
-#define NT_HP_VERSION		3
-#define NT_HP_SRCFILE_INFO	4
-#define NT_HP_LINKER		5
-#define NT_HP_INSTRUMENTED	6
-#define NT_HP_UX_OPTIONS	7
-
-#endif /* _ELF_HPPA_H */
diff --git a/include/elf/i370.h b/include/elf/i370.h
deleted file mode 100644
index 27bfdcc..0000000
--- a/include/elf/i370.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* i370 ELF support for BFD.
-   Copyright 2000, 2002 Free Software Foundation, Inc.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* This file holds definitions specific to the i370 ELF ABI.  Note
-   that most of this is not actually implemented by BFD.  */
-
-#ifndef _ELF_I370_H
-#define _ELF_I370_H
-
-#include "elf/reloc-macros.h"
-
-/* Processor specific section headers, sh_type field */
-
-#define SHT_ORDERED		SHT_HIPROC	/* Link editor is to sort the \
-						   entries in this section \
-						   based on the address \
-						   specified in the associated \
-						   symbol table entry.  */
-
-#define	EF_I370_RELOCATABLE	0x00010000	/* i370 -mrelocatable flag */
-#define	EF_I370_RELOCATABLE_LIB	0x00008000	/* i370 -mrelocatable-lib flag */
-/* Processor specific section flags, sh_flags field */
-
-#define SHF_EXCLUDE		0x80000000	/* Link editor is to exclude \
-						   this section from executable \
-						   and shared objects that it \
-						   builds when those objects \
-						   are not to be furhter \
-						   relocated.  */
-
-/* i370 relocations
-   Note that there is really just one relocation that we currently
-   support (and only one that we seem to need, at the moment), and
-   that is the 31-bit address relocation.  Note that the 370/390
-   only supports a 31-bit (2GB) address space.  */
-
-START_RELOC_NUMBERS (i370_reloc_type)
-  RELOC_NUMBER (R_I370_NONE,      0)
-  RELOC_NUMBER (R_I370_ADDR31,    1)
-  RELOC_NUMBER (R_I370_ADDR32,    2)
-  RELOC_NUMBER (R_I370_ADDR16,    3) 
-  RELOC_NUMBER (R_I370_REL31,     4)
-  RELOC_NUMBER (R_I370_REL32,     5)  
-  RELOC_NUMBER (R_I370_ADDR12,    6)
-  RELOC_NUMBER (R_I370_REL12,     7)
-  RELOC_NUMBER (R_I370_ADDR8,     8)
-  RELOC_NUMBER (R_I370_REL8,      9)
-  RELOC_NUMBER (R_I370_COPY,     10)
-  RELOC_NUMBER (R_I370_RELATIVE, 11)
-END_RELOC_NUMBERS (R_I370_max)
-
-#endif /* _ELF_I370_H */
diff --git a/include/elf/i386.h b/include/elf/i386.h
deleted file mode 100644
index e167871..0000000
--- a/include/elf/i386.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* ix86 ELF support for BFD.
-   Copyright 1998, 1999, 2000, 2002, 2004, 2005, 2006
-   Free Software Foundation, Inc.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_I386_H
-#define _ELF_I386_H
-
-#include "elf/reloc-macros.h"
-
-START_RELOC_NUMBERS (elf_i386_reloc_type)
-     RELOC_NUMBER (R_386_NONE,      0)	/* No reloc */
-     RELOC_NUMBER (R_386_32,        1)	/* Direct 32 bit  */
-     RELOC_NUMBER (R_386_PC32,      2)	/* PC relative 32 bit */
-     RELOC_NUMBER (R_386_GOT32,     3)	/* 32 bit GOT entry */
-     RELOC_NUMBER (R_386_PLT32,	    4)	/* 32 bit PLT address */
-     RELOC_NUMBER (R_386_COPY,	    5)	/* Copy symbol at runtime */
-     RELOC_NUMBER (R_386_GLOB_DAT,  6)	/* Create GOT entry */
-     RELOC_NUMBER (R_386_JUMP_SLOT, 7)	/* Create PLT entry */
-     RELOC_NUMBER (R_386_RELATIVE,  8)	/* Adjust by program base */
-     RELOC_NUMBER (R_386_GOTOFF,    9)	/* 32 bit offset to GOT */
-     RELOC_NUMBER (R_386_GOTPC,    10)	/* 32 bit PC relative offset to GOT */
-     RELOC_NUMBER (R_386_32PLT,    11)	/* Used by Sun */
-     FAKE_RELOC   (FIRST_INVALID_RELOC, 12)
-     FAKE_RELOC   (LAST_INVALID_RELOC,  13)
-     RELOC_NUMBER (R_386_TLS_TPOFF,14)
-     RELOC_NUMBER (R_386_TLS_IE,   15)
-     RELOC_NUMBER (R_386_TLS_GOTIE,16)
-     RELOC_NUMBER (R_386_TLS_LE,   17)
-     RELOC_NUMBER (R_386_TLS_GD,   18)
-     RELOC_NUMBER (R_386_TLS_LDM,  19)
-     RELOC_NUMBER (R_386_16,       20)
-     RELOC_NUMBER (R_386_PC16,     21)
-     RELOC_NUMBER (R_386_8,	   22)
-     RELOC_NUMBER (R_386_PC8,      23)
-     RELOC_NUMBER (R_386_TLS_GD_32,    24)
-     RELOC_NUMBER (R_386_TLS_GD_PUSH,  25)
-     RELOC_NUMBER (R_386_TLS_GD_CALL,  26)
-     RELOC_NUMBER (R_386_TLS_GD_POP,   27)
-     RELOC_NUMBER (R_386_TLS_LDM_32,   28)
-     RELOC_NUMBER (R_386_TLS_LDM_PUSH, 29)
-     RELOC_NUMBER (R_386_TLS_LDM_CALL, 30)
-     RELOC_NUMBER (R_386_TLS_LDM_POP,  31)
-     RELOC_NUMBER (R_386_TLS_LDO_32,   32)
-     RELOC_NUMBER (R_386_TLS_IE_32,    33)
-     RELOC_NUMBER (R_386_TLS_LE_32,    34)
-     RELOC_NUMBER (R_386_TLS_DTPMOD32, 35)
-     RELOC_NUMBER (R_386_TLS_DTPOFF32, 36)
-     RELOC_NUMBER (R_386_TLS_TPOFF32,  37)
-/* 38 */
-     RELOC_NUMBER (R_386_TLS_GOTDESC,  39)
-     RELOC_NUMBER (R_386_TLS_DESC_CALL,40)
-     RELOC_NUMBER (R_386_TLS_DESC,     41)
-
-     /* Used by Intel.  */
-     RELOC_NUMBER (R_386_USED_BY_INTEL_200, 200)
-
-     /* These are GNU extensions to enable C++ vtable garbage collection.  */
-     RELOC_NUMBER (R_386_GNU_VTINHERIT, 250)
-     RELOC_NUMBER (R_386_GNU_VTENTRY, 251)
-END_RELOC_NUMBERS (R_386_max)
-
-#endif
diff --git a/include/elf/i860.h b/include/elf/i860.h
deleted file mode 100644
index 9e76dcd..0000000
--- a/include/elf/i860.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* i860 ELF support for BFD.
-   Copyright 2000 Free Software Foundation, Inc.
-
-   Contributed by Jason Eckhardt <jle@cygnus.com>.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_I860_H
-#define _ELF_I860_H
-
-/* Note: i860 ELF is defined to use only RELA relocations.  */
-
-#include "elf/reloc-macros.h"
-
-START_RELOC_NUMBERS (elf_i860_reloc_type)
-     RELOC_NUMBER (R_860_NONE,      0x00)	/* No reloc */
-     RELOC_NUMBER (R_860_32,        0x01)	/* S+A  */
-     RELOC_NUMBER (R_860_COPY,	    0x02)	/* No calculation */
-     RELOC_NUMBER (R_860_GLOB_DAT,  0x03)	/* S, Create GOT entry */
-     RELOC_NUMBER (R_860_JUMP_SLOT, 0x04)	/* S+A, Create PLT entry */
-     RELOC_NUMBER (R_860_RELATIVE,  0x05)	/* B+A, Adj by program base */
-     RELOC_NUMBER (R_860_PC26,      0x30)	/* (S+A-P) >> 2 */ 
-     RELOC_NUMBER (R_860_PLT26,	    0x31)	/* (L+A-P) >> 2 */
-     RELOC_NUMBER (R_860_PC16,      0x32)	/* (S+A-P) >> 2 */
-     RELOC_NUMBER (R_860_LOW0,      0x40)	/* S+A */
-     RELOC_NUMBER (R_860_SPLIT0,    0x42)	/* S+A */       
-     RELOC_NUMBER (R_860_LOW1,      0x44)	/* S+A */
-     RELOC_NUMBER (R_860_SPLIT1,    0x46)	/* S+A */
-     RELOC_NUMBER (R_860_LOW2,      0x48)	/* S+A */
-     RELOC_NUMBER (R_860_SPLIT2,    0x4A)	/* S+A */
-     RELOC_NUMBER (R_860_LOW3,      0x4C)	/* S+A */
-     RELOC_NUMBER (R_860_LOGOT0,    0x50)	/* G */
-     RELOC_NUMBER (R_860_SPGOT0,    0x52)	/* G */
-     RELOC_NUMBER (R_860_LOGOT1,    0x54)	/* G */
-     RELOC_NUMBER (R_860_SPGOT1,    0x56)	/* G */
-     RELOC_NUMBER (R_860_LOGOTOFF0, 0x60)	/* O */
-     RELOC_NUMBER (R_860_SPGOTOFF0, 0x62)	/* O */
-     RELOC_NUMBER (R_860_LOGOTOFF1, 0x64)	/* O */
-     RELOC_NUMBER (R_860_SPGOTOFF1, 0x66)	/* O */
-     RELOC_NUMBER (R_860_LOGOTOFF2, 0x68)	/* O */
-     RELOC_NUMBER (R_860_LOGOTOFF3, 0x6C)	/* O */
-     RELOC_NUMBER (R_860_LOPC,      0x70)	/* (S+A-P) >> 2 */
-     RELOC_NUMBER (R_860_HIGHADJ,   0x80)	/* hiadj(S+A) */
-     RELOC_NUMBER (R_860_HAGOT,     0x90)	/* hiadj(G) */
-     RELOC_NUMBER (R_860_HAGOTOFF,  0xA0)	/* hiadj(O) */
-     RELOC_NUMBER (R_860_HAPC,      0xB0)	/* hiadj((S+A-P) >> 2) */
-     RELOC_NUMBER (R_860_HIGH,      0xC0)	/* (S+A) >> 16 */
-     RELOC_NUMBER (R_860_HIGOT,     0xD0)	/* G >> 16 */
-     RELOC_NUMBER (R_860_HIGOTOFF,  0xE0)	/* O */
-END_RELOC_NUMBERS (R_860_max)
-
-#endif
diff --git a/include/elf/i960.h b/include/elf/i960.h
deleted file mode 100644
index b96aae9..0000000
--- a/include/elf/i960.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Intel 960 ELF support for BFD.
-   Copyright 1999, 2000 Free Software Foundation, Inc.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_I960_H
-#define _ELF_I960_H
-
-#include "elf/reloc-macros.h"
-
-
-START_RELOC_NUMBERS (elf_i960_reloc_type)
-     RELOC_NUMBER (R_960_NONE,	    0)
-     RELOC_NUMBER (R_960_12,	    1)
-     RELOC_NUMBER (R_960_32,	    2)
-     RELOC_NUMBER (R_960_IP24,	    3)
-     RELOC_NUMBER (R_960_SUB,	    4)
-     RELOC_NUMBER (R_960_OPTCALL,   5)
-     RELOC_NUMBER (R_960_OPTCALLX,  6)
-     RELOC_NUMBER (R_960_OPTCALLXA, 7)
-END_RELOC_NUMBERS (R_960_max)
-
-#endif /* _ELF_I960_H */
diff --git a/include/elf/ia64.h b/include/elf/ia64.h
deleted file mode 100644
index c63edc3..0000000
--- a/include/elf/ia64.h
+++ /dev/null
@@ -1,219 +0,0 @@
-/* IA-64 ELF support for BFD.
-   Copyright 1998, 1999, 2000, 2001, 2002, 2003
-   Free Software Foundation, Inc.
-   Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_IA64_H
-#define _ELF_IA64_H
-
-/* Bits in the e_flags field of the Elf64_Ehdr:  */
-
-#define EF_IA_64_MASKOS	 0x0000000f	/* OS-specific flags.  */
-#define EF_IA_64_ARCH	 0xff000000	/* Arch. version mask.  */
-
-/* ??? These four definitions are not part of the SVR4 ABI.
-   They were present in David's initial code drop, so it is probable
-   that they are used by HP/UX.  */
-#define EF_IA_64_TRAPNIL (1 << 0)	/* Trap NIL pointer dereferences.  */
-#define EF_IA_64_EXT	 (1 << 2)	/* Program uses arch. extensions.  */
-#define EF_IA_64_BE	 (1 << 3)	/* PSR BE bit set (big-endian).  */
-#define EFA_IA_64_EAS2_3 0x23000000	/* IA64 EAS 2.3.  */
-
-#define EF_IA_64_ABI64		    (1 << 4) /* 64-bit ABI.  */
-/* Not used yet.  */
-#define EF_IA_64_REDUCEDFP	    (1 << 5) /* Only FP6-FP11 used.  */
-#define EF_IA_64_CONS_GP	    (1 << 6) /* gp as program wide constant.  */
-#define EF_IA_64_NOFUNCDESC_CONS_GP (1 << 7) /* And no function descriptors.  */
-/* Not used yet.  */
-#define EF_IA_64_ABSOLUTE	    (1 << 8) /* Load at absolute addresses.  */
-
-#define ELF_STRING_ia64_archext		".IA_64.archext"
-#define ELF_STRING_ia64_pltoff		".IA_64.pltoff"
-#define ELF_STRING_ia64_unwind		".IA_64.unwind"
-#define ELF_STRING_ia64_unwind_info	".IA_64.unwind_info"
-#define ELF_STRING_ia64_unwind_once	".gnu.linkonce.ia64unw."
-#define ELF_STRING_ia64_unwind_info_once ".gnu.linkonce.ia64unwi."
-/* .IA_64.unwind_hdr is only used by HP-UX.  */
-#define ELF_STRING_ia64_unwind_hdr	".IA_64.unwind_hdr"
-
-/* Bits in the sh_flags field of Elf64_Shdr:  */
-
-#define SHF_IA_64_SHORT		0x10000000	/* Section near gp.  */
-#define SHF_IA_64_NORECOV	0x20000000	/* Spec insns w/o recovery.  */
-
-#define SHF_IA_64_HP_TLS	0x01000000	/* HP specific TLS flag.  */
-
-/* Possible values for sh_type in Elf64_Shdr: */
-
-#define SHT_IA_64_EXT		(SHT_LOPROC + 0)	/* Extension bits.  */
-#define SHT_IA_64_UNWIND	(SHT_LOPROC + 1)	/* Unwind bits.  */
-#define SHT_IA_64_LOPSREG	(SHT_LOPROC + 0x8000000) 
-/* ABI says (SHT_LOPROC + 0xfffffff) but I think it's a typo -- this makes sense.  */
-#define SHT_IA_64_HIPSREG	(SHT_LOPROC + 0x8ffffff) 
-#define SHT_IA_64_PRIORITY_INIT (SHT_LOPROC + 0x9000000)
-
-/* SHT_IA_64_HP_OPT_ANOT is only generated by HPUX compilers for its
-   optimization annotation section.  GCC does not generate it but we
-   want readelf to know what they are.  Do not use two capital Ns in
-   annotate or sed will turn it into 32 or 64 during the build.  */
-#define SHT_IA_64_HP_OPT_ANOT	0x60000004
-
-/* Bits in the p_flags field of Elf64_Phdr:  */
-
-#define PF_IA_64_NORECOV	0x80000000
-
-/* Possible values for p_type in Elf64_Phdr:  */
-
-#define PT_IA_64_ARCHEXT	(PT_LOPROC + 0)	/* Arch extension bits,  */
-#define PT_IA_64_UNWIND 	(PT_LOPROC + 1)	/* IA64 unwind bits.  */
-
-/* HP-UX specific values for p_type in Elf64_Phdr.
-   These values are currently just used to make
-   readelf more usable on HP-UX.  */
-
-#define PT_IA_64_HP_OPT_ANOT	(PT_LOOS + 0x12)
-#define PT_IA_64_HP_HSL_ANOT	(PT_LOOS + 0x13)
-#define PT_IA_64_HP_STACK	(PT_LOOS + 0x14)
-
-/* Possible values for d_tag in Elf64_Dyn:  */
-
-#define DT_IA_64_PLT_RESERVE	(DT_LOPROC + 0)
-
-/* This section only used by HP-UX, The HP linker gives weak symbols
-   precedence over regular common symbols.  We want common to override
-   weak.  Using this common instead of SHN_COMMON does that.  */
-#define SHN_IA_64_ANSI_COMMON 0xFF00
-
-/* IA64-specific relocation types: */
-
-/* Relocs apply to specific instructions within a bundle.  The least
-   significant 2 bits of the address indicate which instruction in the
-   bundle the reloc refers to (0=first slot, 1=second slow, 2=third
-   slot, 3=undefined) and the remaining bits give the address of the
-   bundle (16 byte aligned).
-
-   The top 5 bits of the reloc code specifies the expression type, the
-   low 3 bits the format of the data word being relocated.  */
-
-#include "elf/reloc-macros.h"
-
-START_RELOC_NUMBERS (elf_ia64_reloc_type)
-  RELOC_NUMBER (R_IA64_NONE, 0x00)	/* none */
-
-  RELOC_NUMBER (R_IA64_IMM14, 0x21)	/* symbol + addend, add imm14 */
-  RELOC_NUMBER (R_IA64_IMM22, 0x22)	/* symbol + addend, add imm22 */
-  RELOC_NUMBER (R_IA64_IMM64, 0x23)	/* symbol + addend, mov imm64 */
-  RELOC_NUMBER (R_IA64_DIR32MSB, 0x24)	/* symbol + addend, data4 MSB */
-  RELOC_NUMBER (R_IA64_DIR32LSB, 0x25)	/* symbol + addend, data4 LSB */
-  RELOC_NUMBER (R_IA64_DIR64MSB, 0x26)	/* symbol + addend, data8 MSB */
-  RELOC_NUMBER (R_IA64_DIR64LSB, 0x27)	/* symbol + addend, data8 LSB */
-
-  RELOC_NUMBER (R_IA64_GPREL22, 0x2a)	/* @gprel(sym+add), add imm22 */
-  RELOC_NUMBER (R_IA64_GPREL64I, 0x2b)	/* @gprel(sym+add), mov imm64 */
-  RELOC_NUMBER (R_IA64_GPREL32MSB, 0x2c) /* @gprel(sym+add), data4 MSB */
-  RELOC_NUMBER (R_IA64_GPREL32LSB, 0x2d) /* @gprel(sym+add), data4 LSB */
-  RELOC_NUMBER (R_IA64_GPREL64MSB, 0x2e) /* @gprel(sym+add), data8 MSB */
-  RELOC_NUMBER (R_IA64_GPREL64LSB, 0x2f) /* @gprel(sym+add), data8 LSB */
-
-  RELOC_NUMBER (R_IA64_LTOFF22, 0x32)	/* @ltoff(sym+add), add imm22 */
-  RELOC_NUMBER (R_IA64_LTOFF64I, 0x33)	/* @ltoff(sym+add), mov imm64 */
-
-  RELOC_NUMBER (R_IA64_PLTOFF22, 0x3a)	/* @pltoff(sym+add), add imm22 */
-  RELOC_NUMBER (R_IA64_PLTOFF64I, 0x3b)	/* @pltoff(sym+add), mov imm64 */
-  RELOC_NUMBER (R_IA64_PLTOFF64MSB, 0x3e) /* @pltoff(sym+add), data8 MSB */
-  RELOC_NUMBER (R_IA64_PLTOFF64LSB, 0x3f) /* @pltoff(sym+add), data8 LSB */
-
-  RELOC_NUMBER (R_IA64_FPTR64I, 0x43)	/* @fptr(sym+add), mov imm64 */
-  RELOC_NUMBER (R_IA64_FPTR32MSB, 0x44)	/* @fptr(sym+add), data4 MSB */
-  RELOC_NUMBER (R_IA64_FPTR32LSB, 0x45)	/* @fptr(sym+add), data4 LSB */
-  RELOC_NUMBER (R_IA64_FPTR64MSB, 0x46)	/* @fptr(sym+add), data8 MSB */
-  RELOC_NUMBER (R_IA64_FPTR64LSB, 0x47)	/* @fptr(sym+add), data8 LSB */
-
-  RELOC_NUMBER (R_IA64_PCREL60B, 0x48)	/* @pcrel(sym+add), brl */
-  RELOC_NUMBER (R_IA64_PCREL21B, 0x49)	/* @pcrel(sym+add), ptb, call */
-  RELOC_NUMBER (R_IA64_PCREL21M, 0x4a)	/* @pcrel(sym+add), chk.s */
-  RELOC_NUMBER (R_IA64_PCREL21F, 0x4b)	/* @pcrel(sym+add), fchkf */
-  RELOC_NUMBER (R_IA64_PCREL32MSB, 0x4c) /* @pcrel(sym+add), data4 MSB */
-  RELOC_NUMBER (R_IA64_PCREL32LSB, 0x4d) /* @pcrel(sym+add), data4 LSB */
-  RELOC_NUMBER (R_IA64_PCREL64MSB, 0x4e) /* @pcrel(sym+add), data8 MSB */
-  RELOC_NUMBER (R_IA64_PCREL64LSB, 0x4f) /* @pcrel(sym+add), data8 LSB */
-
-  RELOC_NUMBER (R_IA64_LTOFF_FPTR22, 0x52) /* @ltoff(@fptr(s+a)), imm22 */
-  RELOC_NUMBER (R_IA64_LTOFF_FPTR64I, 0x53) /* @ltoff(@fptr(s+a)), imm64 */
-  RELOC_NUMBER (R_IA64_LTOFF_FPTR32MSB, 0x54) /* @ltoff(@fptr(s+a)), 4 MSB */
-  RELOC_NUMBER (R_IA64_LTOFF_FPTR32LSB, 0x55) /* @ltoff(@fptr(s+a)), 4 LSB */
-  RELOC_NUMBER (R_IA64_LTOFF_FPTR64MSB, 0x56) /* @ltoff(@fptr(s+a)), 8 MSB */
-  RELOC_NUMBER (R_IA64_LTOFF_FPTR64LSB, 0x57) /* @ltoff(@fptr(s+a)), 8 LSB */
-
-  RELOC_NUMBER (R_IA64_SEGREL32MSB, 0x5c) /* @segrel(sym+add), data4 MSB */
-  RELOC_NUMBER (R_IA64_SEGREL32LSB, 0x5d) /* @segrel(sym+add), data4 LSB */
-  RELOC_NUMBER (R_IA64_SEGREL64MSB, 0x5e) /* @segrel(sym+add), data8 MSB */
-  RELOC_NUMBER (R_IA64_SEGREL64LSB, 0x5f) /* @segrel(sym+add), data8 LSB */
-
-  RELOC_NUMBER (R_IA64_SECREL32MSB, 0x64) /* @secrel(sym+add), data4 MSB */
-  RELOC_NUMBER (R_IA64_SECREL32LSB, 0x65) /* @secrel(sym+add), data4 LSB */
-  RELOC_NUMBER (R_IA64_SECREL64MSB, 0x66) /* @secrel(sym+add), data8 MSB */
-  RELOC_NUMBER (R_IA64_SECREL64LSB, 0x67) /* @secrel(sym+add), data8 LSB */
-
-  RELOC_NUMBER (R_IA64_REL32MSB, 0x6c)	/* data 4 + REL */
-  RELOC_NUMBER (R_IA64_REL32LSB, 0x6d)	/* data 4 + REL */
-  RELOC_NUMBER (R_IA64_REL64MSB, 0x6e)	/* data 8 + REL */
-  RELOC_NUMBER (R_IA64_REL64LSB, 0x6f)	/* data 8 + REL */
-
-  RELOC_NUMBER (R_IA64_LTV32MSB, 0x74)	/* symbol + addend, data4 MSB */
-  RELOC_NUMBER (R_IA64_LTV32LSB, 0x75)	/* symbol + addend, data4 LSB */
-  RELOC_NUMBER (R_IA64_LTV64MSB, 0x76)	/* symbol + addend, data8 MSB */
-  RELOC_NUMBER (R_IA64_LTV64LSB, 0x77)	/* symbol + addend, data8 LSB */
-
-  RELOC_NUMBER (R_IA64_PCREL21BI, 0x79)	/* @pcrel(sym+add), ptb, call */
-  RELOC_NUMBER (R_IA64_PCREL22, 0x7a)	/* @pcrel(sym+add), imm22 */
-  RELOC_NUMBER (R_IA64_PCREL64I, 0x7b)	/* @pcrel(sym+add), imm64 */
-
-  RELOC_NUMBER (R_IA64_IPLTMSB, 0x80)	/* dynamic reloc, imported PLT, MSB */
-  RELOC_NUMBER (R_IA64_IPLTLSB, 0x81)	/* dynamic reloc, imported PLT, LSB */
-  RELOC_NUMBER (R_IA64_COPY, 0x84)	/* dynamic reloc, data copy */
-  RELOC_NUMBER (R_IA64_LTOFF22X, 0x86)  /* LTOFF22, relaxable.  */
-  RELOC_NUMBER (R_IA64_LDXMOV, 0x87)	/* Use of LTOFF22X.  */
-
-  RELOC_NUMBER (R_IA64_TPREL14, 0x91)	 /* @tprel(sym+add), add imm14 */
-  RELOC_NUMBER (R_IA64_TPREL22, 0x92)	 /* @tprel(sym+add), add imm22 */
-  RELOC_NUMBER (R_IA64_TPREL64I, 0x93)	 /* @tprel(sym+add), add imm64 */
-  RELOC_NUMBER (R_IA64_TPREL64MSB, 0x96) /* @tprel(sym+add), data8 MSB */
-  RELOC_NUMBER (R_IA64_TPREL64LSB, 0x97) /* @tprel(sym+add), data8 LSB */
-
-  RELOC_NUMBER (R_IA64_LTOFF_TPREL22, 0x9a) /* @ltoff(@tprel(s+a)), add imm22 */
-
-  RELOC_NUMBER (R_IA64_DTPMOD64MSB, 0xa6) /* @dtpmod(sym+add), data8 MSB */
-  RELOC_NUMBER (R_IA64_DTPMOD64LSB, 0xa7) /* @dtpmod(sym+add), data8 LSB */
-  RELOC_NUMBER (R_IA64_LTOFF_DTPMOD22, 0xaa) /* @ltoff(@dtpmod(s+a)), imm22 */
-
-  RELOC_NUMBER (R_IA64_DTPREL14, 0xb1)    /* @dtprel(sym+add), imm14 */
-  RELOC_NUMBER (R_IA64_DTPREL22, 0xb2)    /* @dtprel(sym+add), imm22 */
-  RELOC_NUMBER (R_IA64_DTPREL64I, 0xb3)   /* @dtprel(sym+add), imm64 */
-  RELOC_NUMBER (R_IA64_DTPREL32MSB, 0xb4) /* @dtprel(sym+add), data4 MSB */
-  RELOC_NUMBER (R_IA64_DTPREL32LSB, 0xb5) /* @dtprel(sym+add), data4 LSB */
-  RELOC_NUMBER (R_IA64_DTPREL64MSB, 0xb6) /* @dtprel(sym+add), data8 MSB */
-  RELOC_NUMBER (R_IA64_DTPREL64LSB, 0xb7) /* @dtprel(sym+add), data8 LSB */
-
-  RELOC_NUMBER (R_IA64_LTOFF_DTPREL22, 0xba) /* @ltoff(@dtprel(s+a)), imm22 */
-
-  FAKE_RELOC (R_IA64_MAX_RELOC_CODE, 0xba)
-END_RELOC_NUMBERS (R_IA64_max)
-
-#endif /* _ELF_IA64_H */
diff --git a/include/elf/internal.h b/include/elf/internal.h
deleted file mode 100644
index d368a3f..0000000
--- a/include/elf/internal.h
+++ /dev/null
@@ -1,297 +0,0 @@
-/* ELF support for BFD.
-   Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2001, 2002,
-   2003, 2006 Free Software Foundation, Inc.
-
-   Written by Fred Fish @ Cygnus Support, from information published
-   in "UNIX System V Release 4, Programmers Guide: ANSI C and
-   Programming Support Tools".
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-
-/* This file is part of ELF support for BFD, and contains the portions
-   that describe how ELF is represented internally in the BFD library.
-   I.E. it describes the in-memory representation of ELF.  It requires
-   the elf-common.h file which contains the portions that are common to
-   both the internal and external representations. */
-
-
-/* NOTE that these structures are not kept in the same order as they appear
-   in the object file.  In some cases they've been reordered for more optimal
-   packing under various circumstances.  */
-
-#ifndef _ELF_INTERNAL_H
-#define _ELF_INTERNAL_H
-
-/* ELF Header */
-
-#define EI_NIDENT	16		/* Size of e_ident[] */
-
-typedef struct elf_internal_ehdr {
-  unsigned char		e_ident[EI_NIDENT]; /* ELF "magic number" */
-  bfd_vma		e_entry;	/* Entry point virtual address */
-  bfd_size_type		e_phoff;	/* Program header table file offset */
-  bfd_size_type		e_shoff;	/* Section header table file offset */
-  unsigned long		e_version;	/* Identifies object file version */
-  unsigned long		e_flags;	/* Processor-specific flags */
-  unsigned short	e_type;		/* Identifies object file type */
-  unsigned short	e_machine;	/* Specifies required architecture */
-  unsigned int		e_ehsize;	/* ELF header size in bytes */
-  unsigned int		e_phentsize;	/* Program header table entry size */
-  unsigned int		e_phnum;	/* Program header table entry count */
-  unsigned int		e_shentsize;	/* Section header table entry size */
-  unsigned int		e_shnum;	/* Section header table entry count */
-  unsigned int		e_shstrndx;	/* Section header string table index */
-} Elf_Internal_Ehdr;
-
-/* Program header */
-
-struct elf_internal_phdr {
-  unsigned long	p_type;			/* Identifies program segment type */
-  unsigned long	p_flags;		/* Segment flags */
-  bfd_vma	p_offset;		/* Segment file offset */
-  bfd_vma	p_vaddr;		/* Segment virtual address */
-  bfd_vma	p_paddr;		/* Segment physical address */
-  bfd_vma	p_filesz;		/* Segment size in file */
-  bfd_vma	p_memsz;		/* Segment size in memory */
-  bfd_vma	p_align;		/* Segment alignment, file & memory */
-};
-
-typedef struct elf_internal_phdr Elf_Internal_Phdr;
-
-/* Section header */
-
-typedef struct elf_internal_shdr {
-  unsigned int	sh_name;		/* Section name, index in string tbl */
-  unsigned int	sh_type;		/* Type of section */
-  bfd_vma	sh_flags;		/* Miscellaneous section attributes */
-  bfd_vma	sh_addr;		/* Section virtual addr at execution */
-  bfd_size_type	sh_size;		/* Size of section in bytes */
-  bfd_size_type	sh_entsize;		/* Entry size if section holds table */
-  unsigned long	sh_link;		/* Index of another section */
-  unsigned long	sh_info;		/* Additional section information */
-  file_ptr	sh_offset;		/* Section file offset */
-  unsigned int	sh_addralign;		/* Section alignment */
-
-  /* The internal rep also has some cached info associated with it. */
-  asection *	bfd_section;		/* Associated BFD section.  */
-  unsigned char *contents;		/* Section contents.  */
-} Elf_Internal_Shdr;
-
-/* Symbol table entry */
-
-struct elf_internal_sym {
-  bfd_vma	st_value;		/* Value of the symbol */
-  bfd_vma	st_size;		/* Associated symbol size */
-  unsigned long	st_name;		/* Symbol name, index in string tbl */
-  unsigned char	st_info;		/* Type and binding attributes */
-  unsigned char	st_other;		/* Visibilty, and target specific */
-  unsigned int  st_shndx;		/* Associated section index */
-};
-
-typedef struct elf_internal_sym Elf_Internal_Sym;
-
-/* Note segments */
-
-typedef struct elf_internal_note {
-  unsigned long	namesz;			/* Size of entry's owner string */
-  unsigned long	descsz;			/* Size of the note descriptor */
-  unsigned long	type;			/* Interpretation of the descriptor */
-  char *	namedata;		/* Start of the name+desc data */
-  char *	descdata;		/* Start of the desc data */
-  bfd_vma	descpos;		/* File offset of the descdata */
-} Elf_Internal_Note;
-
-/* Relocation Entries */
-
-typedef struct elf_internal_rela {
-  bfd_vma	r_offset;	/* Location at which to apply the action */
-  bfd_vma	r_info;		/* Index and Type of relocation */
-  bfd_vma	r_addend;	/* Constant addend used to compute value */
-} Elf_Internal_Rela;
-
-/* dynamic section structure */
-
-typedef struct elf_internal_dyn {
-  /* This needs to support 64-bit values in elf64.  */
-  bfd_vma d_tag;		/* entry tag value */
-  union {
-    /* This needs to support 64-bit values in elf64.  */
-    bfd_vma	d_val;
-    bfd_vma	d_ptr;
-  } d_un;
-} Elf_Internal_Dyn;
-
-/* This structure appears in a SHT_GNU_verdef section.  */
-
-typedef struct elf_internal_verdef {
-  unsigned short vd_version;	/* Version number of structure.  */
-  unsigned short vd_flags;	/* Flags (VER_FLG_*).  */
-  unsigned short vd_ndx;	/* Version index.  */
-  unsigned short vd_cnt;	/* Number of verdaux entries.  */
-  unsigned long	 vd_hash;	/* Hash of name.  */
-  unsigned long	 vd_aux;	/* Offset to verdaux entries.  */
-  unsigned long	 vd_next;	/* Offset to next verdef.  */
-
-  /* These fields are set up when BFD reads in the structure.  FIXME:
-     It would be cleaner to store these in a different structure.  */
-  bfd			      *vd_bfd;		/* BFD.  */
-  const char		      *vd_nodename;	/* Version name.  */
-  struct elf_internal_verdef  *vd_nextdef;	/* vd_next as pointer.  */
-  struct elf_internal_verdaux *vd_auxptr;	/* vd_aux as pointer.  */
-  unsigned int		       vd_exp_refno;	/* Used by the linker.  */
-} Elf_Internal_Verdef;
-
-/* This structure appears in a SHT_GNU_verdef section.  */
-
-typedef struct elf_internal_verdaux {
-  unsigned long vda_name;	/* String table offset of name.  */
-  unsigned long vda_next;	/* Offset to next verdaux.  */
-
-  /* These fields are set up when BFD reads in the structure.  FIXME:
-     It would be cleaner to store these in a different structure.  */
-  const char *vda_nodename;			/* vda_name as pointer.  */
-  struct elf_internal_verdaux *vda_nextptr;	/* vda_next as pointer.  */
-} Elf_Internal_Verdaux;
-
-/* This structure appears in a SHT_GNU_verneed section.  */
-
-typedef struct elf_internal_verneed {
-  unsigned short vn_version;	/* Version number of structure.  */
-  unsigned short vn_cnt;	/* Number of vernaux entries.  */
-  unsigned long	 vn_file;	/* String table offset of library name.  */
-  unsigned long	 vn_aux;	/* Offset to vernaux entries.  */
-  unsigned long	 vn_next;	/* Offset to next verneed.  */
-
-  /* These fields are set up when BFD reads in the structure.  FIXME:
-     It would be cleaner to store these in a different structure.  */
-  bfd			      *vn_bfd;		/* BFD.  */
-  const char                  *vn_filename;	/* vn_file as pointer.  */
-  struct elf_internal_vernaux *vn_auxptr;	/* vn_aux as pointer.  */
-  struct elf_internal_verneed *vn_nextref;	/* vn_nextref as pointer.  */
-} Elf_Internal_Verneed;
-
-/* This structure appears in a SHT_GNU_verneed section.  */
-
-typedef struct elf_internal_vernaux {
-  unsigned long	 vna_hash;	/* Hash of dependency name.  */
-  unsigned short vna_flags;	/* Flags (VER_FLG_*).  */
-  unsigned short vna_other;	/* Unused.  */
-  unsigned long	 vna_name;	/* String table offset to version name.  */
-  unsigned long	 vna_next;	/* Offset to next vernaux.  */
-
-  /* These fields are set up when BFD reads in the structure.  FIXME:
-     It would be cleaner to store these in a different structure.  */
-  const char                  *vna_nodename;	/* vna_name as pointer.  */
-  struct elf_internal_vernaux *vna_nextptr;	/* vna_next as pointer.  */
-} Elf_Internal_Vernaux;
-
-/* This structure appears in a SHT_GNU_versym section.  This is not a
-   standard ELF structure; ELF just uses Elf32_Half.  */
-
-typedef struct elf_internal_versym {
-  unsigned short vs_vers;
-} Elf_Internal_Versym;
-
-/* Structure for syminfo section.  */
-typedef struct
-{
-  unsigned short int 	si_boundto;
-  unsigned short int	si_flags;
-} Elf_Internal_Syminfo;
-
-/* This structure appears on the stack and in NT_AUXV core file notes.  */
-typedef struct
-{
-  bfd_vma a_type;
-  bfd_vma a_val;
-} Elf_Internal_Auxv;
-
-
-/* This structure is used to describe how sections should be assigned
-   to program segments.  */
-
-struct elf_segment_map
-{
-  /* Next program segment.  */
-  struct elf_segment_map *next;
-  /* Program segment type.  */
-  unsigned long p_type;
-  /* Program segment flags.  */
-  unsigned long p_flags;
-  /* Program segment physical address.  */
-  bfd_vma p_paddr;
-  /* Program segment alignment.  */
-  bfd_vma p_align;
-  /* Whether the p_flags field is valid; if not, the flags are based
-     on the section flags.  */
-  unsigned int p_flags_valid : 1;
-  /* Whether the p_paddr field is valid; if not, the physical address
-     is based on the section lma values.  */
-  unsigned int p_paddr_valid : 1;
-  /* Whether the p_align field is valid; if not, PT_LOAD segment
-     alignment is based on the default maximum page size.  */
-  unsigned int p_align_valid : 1;
-  /* Whether this segment includes the file header.  */
-  unsigned int includes_filehdr : 1;
-  /* Whether this segment includes the program headers.  */
-  unsigned int includes_phdrs : 1;
-  /* Number of sections (may be 0).  */
-  unsigned int count;
-  /* Sections.  Actual number of elements is in count field.  */
-  asection *sections[1];
-};
-
-/* .tbss is special.  It doesn't contribute memory space to normal
-   segments and it doesn't take file space in normal segments.  */
-#define ELF_SECTION_SIZE(sec_hdr, segment)			\
-   (((sec_hdr->sh_flags & SHF_TLS) == 0				\
-     || sec_hdr->sh_type != SHT_NOBITS				\
-     || segment->p_type == PT_TLS) ? sec_hdr->sh_size : 0)
-
-/* Decide if the given sec_hdr is in the given segment.  PT_TLS segment
-   contains only SHF_TLS sections.  Only PT_LOAD and PT_TLS segments
-   can contain SHF_TLS sections.  */
-#define ELF_IS_SECTION_IN_SEGMENT(sec_hdr, segment)		\
-  (((((sec_hdr->sh_flags & SHF_TLS) != 0)			\
-     && (segment->p_type == PT_TLS				\
-	 || segment->p_type == PT_LOAD))			\
-    || ((sec_hdr->sh_flags & SHF_TLS) == 0			\
-	&& segment->p_type != PT_TLS))				\
-   /* Compare allocated sec_hdrs by VMA, unallocated sec_hdrs	\
-      by file offset.  */					\
-   && (sec_hdr->sh_flags & SHF_ALLOC				\
-       ? (sec_hdr->sh_addr >= segment->p_vaddr			\
-	  && (sec_hdr->sh_addr					\
-	      + ELF_SECTION_SIZE(sec_hdr, segment)		\
-	      <= segment->p_vaddr + segment->p_memsz))		\
-       : ((bfd_vma) sec_hdr->sh_offset >= segment->p_offset	\
-	  && (sec_hdr->sh_offset				\
-	      + ELF_SECTION_SIZE(sec_hdr, segment)		\
-	      <= segment->p_offset + segment->p_filesz))))
-
-/* Decide if the given sec_hdr is in the given segment in file.  */
-#define ELF_IS_SECTION_IN_SEGMENT_FILE(sec_hdr, segment)	\
-  (sec_hdr->sh_size > 0						\
-   && ELF_IS_SECTION_IN_SEGMENT (sec_hdr, segment))
-
-/* Decide if the given sec_hdr is in the given segment in memory.  */
-#define ELF_IS_SECTION_IN_SEGMENT_MEMORY(sec_hdr, segment)	\
-  (ELF_SECTION_SIZE(sec_hdr, segment) > 0			\
-   && ELF_IS_SECTION_IN_SEGMENT (sec_hdr, segment))
-
-#endif /* _ELF_INTERNAL_H */
diff --git a/include/elf/ip2k.h b/include/elf/ip2k.h
deleted file mode 100644
index 83fe1d4..0000000
--- a/include/elf/ip2k.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* IP2xxx ELF support for BFD.
-   Copyright (C) 2000, 2002 Free Software Foundation, Inc.
-
-   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.,
-   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_IP2K_H
-#define _ELF_IP2K_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-START_RELOC_NUMBERS (elf_ip2k_reloc_type)
-  RELOC_NUMBER (R_IP2K_NONE, 0)
-  RELOC_NUMBER (R_IP2K_16, 1)
-  RELOC_NUMBER (R_IP2K_32, 2)
-  RELOC_NUMBER (R_IP2K_FR9, 3)
-  RELOC_NUMBER (R_IP2K_BANK, 4)
-  RELOC_NUMBER (R_IP2K_ADDR16CJP, 5)
-  RELOC_NUMBER (R_IP2K_PAGE3, 6)
-  RELOC_NUMBER (R_IP2K_LO8DATA, 7)
-  RELOC_NUMBER (R_IP2K_HI8DATA, 8)
-  RELOC_NUMBER (R_IP2K_LO8INSN, 9)
-  RELOC_NUMBER (R_IP2K_HI8INSN, 10)
-  RELOC_NUMBER (R_IP2K_PC_SKIP, 11)
-  RELOC_NUMBER (R_IP2K_TEXT, 12)
-  RELOC_NUMBER (R_IP2K_FR_OFFSET, 13)
-  RELOC_NUMBER (R_IP2K_EX8DATA, 14)
-END_RELOC_NUMBERS(R_IP2K_max)
-
-
-/* Define the data & instruction memory discriminator.  In a linked
-   executable, an symbol should be deemed to point to an instruction
-   if ((address & IP2K_INSN_MASK) == IP2K_INSN_VALUE), and similarly
-   for the data space.  See also `ld/emulparams/elf32ip2k.sh'.  */
-/* ??? Consider extending the _MASK values to include all the
-   intermediate bits that must be zero due to the limited physical
-   memory size on the IP2K.  */
-
-#define IP2K_DATA_MASK   0xff000000
-#define IP2K_DATA_VALUE  0x01000000
-#define IP2K_INSN_MASK   0xff000000
-#define IP2K_INSN_VALUE  0x02000000
-
-/* The location of the memory mapped hardware stack.  */
-#define IP2K_STACK_VALUE 0x0f000000
-#define IP2K_STACK_SIZE  0x20
-
-#endif /* _ELF_IP2K_H */
diff --git a/include/elf/iq2000.h b/include/elf/iq2000.h
deleted file mode 100644
index 012f253..0000000
--- a/include/elf/iq2000.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* IQ2000 ELF support for BFD.
-   Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-
-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.,
-51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_IQ2000_H
-#define _ELF_IQ2000_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-START_RELOC_NUMBERS (elf_iq2000_reloc_type)
-  RELOC_NUMBER (R_IQ2000_NONE, 0)
-  RELOC_NUMBER (R_IQ2000_16, 1)
-  RELOC_NUMBER (R_IQ2000_32, 2)
-  RELOC_NUMBER (R_IQ2000_26, 3)
-  RELOC_NUMBER (R_IQ2000_PC16, 4)
-  RELOC_NUMBER (R_IQ2000_HI16, 5)
-  RELOC_NUMBER (R_IQ2000_LO16, 6)
-  RELOC_NUMBER (R_IQ2000_OFFSET_16, 7)
-  RELOC_NUMBER (R_IQ2000_OFFSET_21, 8)
-  RELOC_NUMBER (R_IQ2000_UHI16, 9)
-  RELOC_NUMBER (R_IQ2000_32_DEBUG, 10)
-  RELOC_NUMBER (R_IQ2000_GNU_VTINHERIT, 200)
-  RELOC_NUMBER (R_IQ2000_GNU_VTENTRY, 201)
-END_RELOC_NUMBERS(R_IQ2000_max)
-
-#define EF_IQ2000_CPU_IQ2000	0x00000001      /* default */
-#define EF_IQ2000_CPU_IQ10      0x00000002      /* IQ10 */
-#define EF_IQ2000_CPU_MASK	0x00000003	/* specific cpu bits */
-#define EF_IQ2000_ALL_FLAGS	(EF_IQ2000_CPU_MASK)
-
-/* Define the data & instruction memory discriminator.  In a linked
-   executable, an symbol should be deemed to point to an instruction
-   if ((address & IQ2000_INSN_MASK) == IQ2000_INSN_VALUE), and similarly
-   for the data space.  */
-
-#define IQ2000_DATA_MASK   0x80000000
-#define IQ2000_DATA_VALUE  0x00000000
-#define IQ2000_INSN_MASK   0x80000000
-#define IQ2000_INSN_VALUE  0x80000000
-
-
-#endif /* _ELF_IQ2000_H */
diff --git a/include/elf/m32c.h b/include/elf/m32c.h
deleted file mode 100644
index 143773b..0000000
--- a/include/elf/m32c.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* M32C ELF support for BFD.
-   Copyright (C) 2004 Free Software Foundation, Inc.
-
-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.,
-59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-#ifndef _ELF_M32C_H
-#define _ELF_M32C_H
-
-#include "elf/reloc-macros.h"
-
-  /* Relocations.  */
-  START_RELOC_NUMBERS (elf_m32c_reloc_type)
-     RELOC_NUMBER (R_M32C_NONE, 0)
-     RELOC_NUMBER (R_M32C_16, 1)
-     RELOC_NUMBER (R_M32C_24, 2)
-     RELOC_NUMBER (R_M32C_32, 3)
-     RELOC_NUMBER (R_M32C_8_PCREL, 4)
-     RELOC_NUMBER (R_M32C_16_PCREL, 5)
-
-    /* 8 bit unsigned address, used for dsp8[a0] etc */
-     RELOC_NUMBER (R_M32C_8, 6)
-    /* Bits 0..15 of an address, for SMOVF's A0, A1A0, etc. */
-     RELOC_NUMBER (R_M32C_LO16, 7)
-    /* Bits 16..23 of an address, for SMOVF's R1H etc. */
-     RELOC_NUMBER (R_M32C_HI8, 8)
-    /* Bits 16..31 of an address, for LDE's A1A0 etc. */
-     RELOC_NUMBER (R_M32C_HI16, 9)
-
-    /* These are relocs we need when relaxing.  */
-    /* Marks various jump opcodes.  */
-     RELOC_NUMBER (R_M32C_RL_JUMP, 10)
-    /* Marks standard one-address form.  */
-     RELOC_NUMBER (R_M32C_RL_1ADDR, 11)
-    /* Marks standard two-address form.  */
-     RELOC_NUMBER (R_M32C_RL_2ADDR, 12)
-
-     END_RELOC_NUMBERS (R_M32C_max)
-
-#define EF_M32C_CPU_M16C	0x00000075      /* default */
-#define EF_M32C_CPU_M32C        0x00000078      /* m32c */
-#define EF_M32C_CPU_MASK	0x0000007F	/* specific cpu bits */
-#define EF_M32C_ALL_FLAGS	(EF_M32C_CPU_MASK)
-
-/* Define the data & instruction memory discriminator.  In a linked
-   executable, an symbol should be deemed to point to an instruction
-   if ((address & M16C_INSN_MASK) == M16C_INSN_VALUE), and similarly
-   for the data space.  See also `ld/emulparams/elf32m32c.sh'.  */
-#define M32C_DATA_MASK   0xffc00000
-#define M32C_DATA_VALUE  0x00000000
-#define M32C_INSN_MASK   0xffc00000
-#define M32C_INSN_VALUE  0x00400000
-
-#endif /* _ELF_M32C_H */
diff --git a/include/elf/m32r.h b/include/elf/m32r.h
deleted file mode 100644
index d648df9..0000000
--- a/include/elf/m32r.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/* M32R ELF support for BFD.
-   Copyright 1996, 1997, 1998, 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
-
-   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.,
-   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_M32R_H
-#define _ELF_M32R_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-START_RELOC_NUMBERS (elf_m32r_reloc_type)
-  RELOC_NUMBER (R_M32R_NONE, 0)
-  /* REL relocations */
-  RELOC_NUMBER (R_M32R_16, 1)		 /* For backwards compatibility. */
-  RELOC_NUMBER (R_M32R_32, 2)		 /* For backwards compatibility. */
-  RELOC_NUMBER (R_M32R_24, 3)		 /* For backwards compatibility. */
-  RELOC_NUMBER (R_M32R_10_PCREL, 4)	 /* For backwards compatibility. */
-  RELOC_NUMBER (R_M32R_18_PCREL, 5)	 /* For backwards compatibility. */
-  RELOC_NUMBER (R_M32R_26_PCREL, 6)	 /* For backwards compatibility. */
-  RELOC_NUMBER (R_M32R_HI16_ULO, 7)	 /* For backwards compatibility. */
-  RELOC_NUMBER (R_M32R_HI16_SLO, 8)	 /* For backwards compatibility. */
-  RELOC_NUMBER (R_M32R_LO16, 9)		 /* For backwards compatibility. */
-  RELOC_NUMBER (R_M32R_SDA16, 10)	 /* For backwards compatibility. */
-  RELOC_NUMBER (R_M32R_GNU_VTINHERIT, 11)/* For backwards compatibility. */
-  RELOC_NUMBER (R_M32R_GNU_VTENTRY, 12)	 /* For backwards compatibility. */
-
-  /* RELA relocations */
-  RELOC_NUMBER (R_M32R_16_RELA, 33)
-  RELOC_NUMBER (R_M32R_32_RELA, 34)
-  RELOC_NUMBER (R_M32R_24_RELA, 35)
-  RELOC_NUMBER (R_M32R_10_PCREL_RELA, 36)
-  RELOC_NUMBER (R_M32R_18_PCREL_RELA, 37)
-  RELOC_NUMBER (R_M32R_26_PCREL_RELA, 38)
-  RELOC_NUMBER (R_M32R_HI16_ULO_RELA, 39)
-  RELOC_NUMBER (R_M32R_HI16_SLO_RELA, 40)
-  RELOC_NUMBER (R_M32R_LO16_RELA, 41)
-  RELOC_NUMBER (R_M32R_SDA16_RELA, 42)
-  RELOC_NUMBER (R_M32R_RELA_GNU_VTINHERIT, 43)
-  RELOC_NUMBER (R_M32R_RELA_GNU_VTENTRY, 44)
-
-  RELOC_NUMBER (R_M32R_REL32, 45)
-                                                                                
-  RELOC_NUMBER (R_M32R_GOT24, 48)
-  RELOC_NUMBER (R_M32R_26_PLTREL, 49)
-  RELOC_NUMBER (R_M32R_COPY, 50)
-  RELOC_NUMBER (R_M32R_GLOB_DAT, 51)
-  RELOC_NUMBER (R_M32R_JMP_SLOT, 52)
-  RELOC_NUMBER (R_M32R_RELATIVE, 53)
-  RELOC_NUMBER (R_M32R_GOTOFF, 54)
-  RELOC_NUMBER (R_M32R_GOTPC24, 55)
-  RELOC_NUMBER (R_M32R_GOT16_HI_ULO, 56)
-  RELOC_NUMBER (R_M32R_GOT16_HI_SLO, 57)
-  RELOC_NUMBER (R_M32R_GOT16_LO, 58)
-  RELOC_NUMBER (R_M32R_GOTPC_HI_ULO, 59)
-  RELOC_NUMBER (R_M32R_GOTPC_HI_SLO, 60)
-  RELOC_NUMBER (R_M32R_GOTPC_LO, 61)
-  RELOC_NUMBER (R_M32R_GOTOFF_HI_ULO, 62)
-  RELOC_NUMBER (R_M32R_GOTOFF_HI_SLO, 63)
-  RELOC_NUMBER (R_M32R_GOTOFF_LO, 64)
-
-END_RELOC_NUMBERS (R_M32R_max)
-
-/* Processor specific section indices.  These sections do not actually
-   exist.  Symbols with a st_shndx field corresponding to one of these
-   values have a special meaning.  */
-
-/* Small common symbol.  */
-#define SHN_M32R_SCOMMON	0xff00
-
-/* Processor specific section flags.  */
-
-/* This section contains sufficient relocs to be relaxed.
-   When relaxing, even relocs of branch instructions the assembler could
-   complete must be present because relaxing may cause the branch target to
-   move.  */
-#define SHF_M32R_CAN_RELAX	0x10000000
-
-/* Processor specific flags for the ELF header e_flags field.  */
-
-/* Two bit m32r architecture field.  */
-#define EF_M32R_ARCH		0x30000000
-
-/* m32r code.  */
-#define E_M32R_ARCH		0x00000000
-/* m32rx code.  */
-#define E_M32RX_ARCH            0x10000000
-/* m32r2 code.  */
-#define E_M32R2_ARCH            0x20000000
-
-/* 12 bit m32r new instructions field.  */
-#define EF_M32R_INST            0x0FFF0000
-/* Parallel instructions.  */
-#define E_M32R_HAS_PARALLEL     0x00010000
-/* Hidden instructions for m32rx:
-   jc, jnc, macwhi-a, macwlo-a, mulwhi-a, mulwlo-a, sth+, shb+, sat, pcmpbz,
-   sc, snc.  */
-#define E_M32R_HAS_HIDDEN_INST  0x00020000
-/* New bit instructions:
-   clrpsw, setpsw, bset, bclr, btst.  */
-#define E_M32R_HAS_BIT_INST     0x00040000
-/* Floating point instructions.  */
-#define E_M32R_HAS_FLOAT_INST   0x00080000
-
-/* 4 bit m32r ignore to check field.  */
-#define EF_M32R_IGNORE          0x0000000F
-
-#endif
diff --git a/include/elf/m68hc11.h b/include/elf/m68hc11.h
deleted file mode 100644
index 1cd4600..0000000
--- a/include/elf/m68hc11.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* m68hc11 & m68hc12 ELF support for BFD.
-   Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_M68HC11_H
-#define _ELF_M68HC11_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocation types.  */
-START_RELOC_NUMBERS (elf_m68hc11_reloc_type)
-  RELOC_NUMBER (R_M68HC11_NONE, 0)
-  RELOC_NUMBER (R_M68HC11_8, 1)
-  RELOC_NUMBER (R_M68HC11_HI8, 2)
-  RELOC_NUMBER (R_M68HC11_LO8, 3)
-  RELOC_NUMBER (R_M68HC11_PCREL_8, 4)
-  RELOC_NUMBER (R_M68HC11_16, 5)
-  RELOC_NUMBER (R_M68HC11_32, 6)
-  RELOC_NUMBER (R_M68HC11_3B, 7)
-  RELOC_NUMBER (R_M68HC11_PCREL_16, 8)
-
-     /* These are GNU extensions to enable C++ vtable garbage collection.  */
-  RELOC_NUMBER (R_M68HC11_GNU_VTINHERIT, 9)
-  RELOC_NUMBER (R_M68HC11_GNU_VTENTRY, 10)
-
-  RELOC_NUMBER (R_M68HC11_24, 11)
-  RELOC_NUMBER (R_M68HC11_LO16, 12)
-  RELOC_NUMBER (R_M68HC11_PAGE, 13)
-
-     /* GNU extension for linker relaxation.
-        Mark beginning of a jump instruction (any form).  */
-  RELOC_NUMBER (R_M68HC11_RL_JUMP, 20)
-
-     /* Mark beginning of Gcc relaxation group instruction.  */
-  RELOC_NUMBER (R_M68HC11_RL_GROUP, 21)
-END_RELOC_NUMBERS (R_M68HC11_max)
-
-/* Processor specific flags for the ELF header e_flags field.  */
-
-/* ABI identification.  */
-#define EF_M68HC11_ABI  0x00000000F
-
-/* Integers are 32-bit long.  */
-#define E_M68HC11_I32   0x000000001
-
-/* Doubles are 64-bit long.  */
-#define E_M68HC11_F64   0x000000002
-
-/* Uses 68HC12 memory banks.  */
-#define E_M68HC12_BANKS 0x000000004
-
-#define EF_M68HC11_MACH_MASK 0xF0
-#define EF_M68HC11_GENERIC   0x00 /* Generic 68HC12/backward compatibility.  */
-#define EF_M68HC12_MACH      0x10 /* 68HC12 microcontroller.  */
-#define EF_M68HCS12_MACH     0x20 /* 68HCS12 microcontroller.  */
-#define EF_M68HC11_MACH(mach) ((mach) & EF_M68HC11_MACH_MASK)
-
-/* True if we can merge machines.  A generic HC12 can work on any proc
-   but once we have specific code, merge is not possible.  */
-#define EF_M68HC11_CAN_MERGE_MACH(mach1, mach2) \
-  ((EF_M68HC11_MACH (mach1) == EF_M68HC11_MACH (mach2)) \
-   || (EF_M68HC11_MACH (mach1) == EF_M68HC11_GENERIC) \
-   || (EF_M68HC11_MACH (mach2) == EF_M68HC11_GENERIC))
-
-#define EF_M68HC11_MERGE_MACH(mach1, mach2) \
-  (((EF_M68HC11_MACH (mach1) == EF_M68HC11_MACH (mach2)) \
-    || (EF_M68HC11_MACH (mach1) == EF_M68HC11_GENERIC)) ? \
-      EF_M68HC11_MACH (mach2) : EF_M68HC11_MACH (mach1))
-
-
-/* Special values for the st_other field in the symbol table.  These
-   are used for 68HC12 to identify far functions (must be called with
-   'call' and returns with 'rtc').  */
-#define STO_M68HC12_FAR 0x80
-
-/* Identify interrupt handlers.  This is used by the debugger to
-   correctly compute the stack frame.  */
-#define STO_M68HC12_INTERRUPT 0x40
-     
-#endif
diff --git a/include/elf/m68k.h b/include/elf/m68k.h
deleted file mode 100644
index 08d0c44..0000000
--- a/include/elf/m68k.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* MC68k ELF support for BFD.
-   Copyright 1998, 1999, 2000, 2002, 2005, 2006 Free Software Foundation, Inc.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_M68K_H
-#define _ELF_M68K_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocation types.  */
-START_RELOC_NUMBERS (elf_m68k_reloc_type)
-  RELOC_NUMBER (R_68K_NONE, 0)		/* No reloc */
-  RELOC_NUMBER (R_68K_32, 1)		/* Direct 32 bit  */
-  RELOC_NUMBER (R_68K_16, 2)		/* Direct 16 bit  */
-  RELOC_NUMBER (R_68K_8, 3)		/* Direct 8 bit  */
-  RELOC_NUMBER (R_68K_PC32, 4)		/* PC relative 32 bit */
-  RELOC_NUMBER (R_68K_PC16, 5)		/* PC relative 16 bit */
-  RELOC_NUMBER (R_68K_PC8, 6)		/* PC relative 8 bit */
-  RELOC_NUMBER (R_68K_GOT32, 7)		/* 32 bit PC relative GOT entry */
-  RELOC_NUMBER (R_68K_GOT16, 8)		/* 16 bit PC relative GOT entry */
-  RELOC_NUMBER (R_68K_GOT8, 9)		/* 8 bit PC relative GOT entry */
-  RELOC_NUMBER (R_68K_GOT32O, 10)	/* 32 bit GOT offset */
-  RELOC_NUMBER (R_68K_GOT16O, 11)	/* 16 bit GOT offset */
-  RELOC_NUMBER (R_68K_GOT8O, 12)	/* 8 bit GOT offset */
-  RELOC_NUMBER (R_68K_PLT32, 13)	/* 32 bit PC relative PLT address */
-  RELOC_NUMBER (R_68K_PLT16, 14)	/* 16 bit PC relative PLT address */
-  RELOC_NUMBER (R_68K_PLT8, 15)		/* 8 bit PC relative PLT address */
-  RELOC_NUMBER (R_68K_PLT32O, 16)	/* 32 bit PLT offset */
-  RELOC_NUMBER (R_68K_PLT16O, 17)	/* 16 bit PLT offset */
-  RELOC_NUMBER (R_68K_PLT8O, 18)	/* 8 bit PLT offset */
-  RELOC_NUMBER (R_68K_COPY, 19)		/* Copy symbol at runtime */
-  RELOC_NUMBER (R_68K_GLOB_DAT, 20)	/* Create GOT entry */
-  RELOC_NUMBER (R_68K_JMP_SLOT, 21)	/* Create PLT entry */
-  RELOC_NUMBER (R_68K_RELATIVE, 22)	/* Adjust by program base */
-  /* These are GNU extensions to enable C++ vtable garbage collection.  */
-  RELOC_NUMBER (R_68K_GNU_VTINHERIT, 23)
-  RELOC_NUMBER (R_68K_GNU_VTENTRY, 24)
-END_RELOC_NUMBERS (R_68K_max)
-
-#define EF_M68K_CPU32    0x00810000
-#define EF_M68K_M68000   0x01000000
-#define EF_M68K_CFV4E    0x00008000
-
-/* We use the bottom 8 bits to encode information about the
-   coldfire variant.  */
-#define EF_M68K_ISA_MASK	0x0F  /* Which ISA */
-#define EF_M68K_ISA_A_NODIV	0x01  /* ISA A except for div */
-#define EF_M68K_ISA_A		0x02
-#define EF_M68K_ISA_A_PLUS	0x03
-#define EF_M68K_ISA_B_NOUSP	0x04  /* ISA_B except for USP */
-#define EF_M68K_ISA_B		0x05
-#define EF_M68K_ISA_C		0x06
-#define EF_M68K_MAC_MASK	0x30 
-#define EF_M68K_MAC		0x10  /* MAC */
-#define EF_M68K_EMAC		0x20  /* EMAC */
-#define EF_M68K_EMAC_B		0x30  /* EMAC_B */
-#define EF_M68K_FLOAT		0x40  /* Has float insns */
-#define EF_M68K_CF_MASK		0xFF
-     
-#endif
diff --git a/include/elf/mcore.h b/include/elf/mcore.h
deleted file mode 100644
index 5600df7..0000000
--- a/include/elf/mcore.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Motorola MCore support for BFD.
-   Copyright 1995, 1999, 2000 Free Software Foundation, Inc.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* This file holds definitions specific to the MCore ELF ABI. */
-#ifndef _ELF_MORE_H
-#define _ELF_MORE_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-START_RELOC_NUMBERS (elf_mcore_reloc_type)
-  RELOC_NUMBER (R_MCORE_NONE, 0)
-  RELOC_NUMBER (R_MCORE_ADDR32, 1)
-  RELOC_NUMBER (R_MCORE_PCRELIMM8BY4, 2)
-  RELOC_NUMBER (R_MCORE_PCRELIMM11BY2, 3)
-  RELOC_NUMBER (R_MCORE_PCRELIMM4BY2, 4)
-  RELOC_NUMBER (R_MCORE_PCREL32, 5)
-  RELOC_NUMBER (R_MCORE_PCRELJSR_IMM11BY2, 6)
-  RELOC_NUMBER (R_MCORE_GNU_VTINHERIT, 7)
-  RELOC_NUMBER (R_MCORE_GNU_VTENTRY, 8)
-  RELOC_NUMBER (R_MCORE_RELATIVE, 9)
-  RELOC_NUMBER (R_MCORE_COPY, 10)
-  RELOC_NUMBER (R_MCORE_GLOB_DAT, 11)
-  RELOC_NUMBER (R_MCORE_JUMP_SLOT, 12)
-END_RELOC_NUMBERS (R_MCORE_max)
-
-/* Section Attributes.  */
-#define SHF_MCORE_NOREAD	0x80000000
-
-#endif /* _ELF_MCORE_H */
diff --git a/include/elf/mips.h b/include/elf/mips.h
deleted file mode 100644
index f22bd4d..0000000
--- a/include/elf/mips.h
+++ /dev/null
@@ -1,1008 +0,0 @@
-/* MIPS ELF support for BFD.
-   Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-   2003, 2004, 2005
-   Free Software Foundation, Inc.
-
-   By Ian Lance Taylor, Cygnus Support, <ian@cygnus.com>, from
-   information in the System V Application Binary Interface, MIPS
-   Processor Supplement.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* This file holds definitions specific to the MIPS ELF ABI.  Note
-   that most of this is not actually implemented by BFD.  */
-
-#ifndef _ELF_MIPS_H
-#define _ELF_MIPS_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocation types.  */
-START_RELOC_NUMBERS (elf_mips_reloc_type)
-  RELOC_NUMBER (R_MIPS_NONE, 0)
-  RELOC_NUMBER (R_MIPS_16, 1)
-  RELOC_NUMBER (R_MIPS_32, 2)		/* In Elf 64: alias R_MIPS_ADD */
-  RELOC_NUMBER (R_MIPS_REL32, 3)	/* In Elf 64: alias R_MIPS_REL */
-  RELOC_NUMBER (R_MIPS_26, 4)
-  RELOC_NUMBER (R_MIPS_HI16, 5)
-  RELOC_NUMBER (R_MIPS_LO16, 6)
-  RELOC_NUMBER (R_MIPS_GPREL16, 7)	/* In Elf 64: alias R_MIPS_GPREL */
-  RELOC_NUMBER (R_MIPS_LITERAL, 8)
-  RELOC_NUMBER (R_MIPS_GOT16, 9)	/* In Elf 64: alias R_MIPS_GOT */
-  RELOC_NUMBER (R_MIPS_PC16, 10)
-  RELOC_NUMBER (R_MIPS_CALL16, 11)	/* In Elf 64: alias R_MIPS_CALL */
-  RELOC_NUMBER (R_MIPS_GPREL32, 12)
-  /* The remaining relocs are defined on Irix, although they are not
-     in the MIPS ELF ABI.  */
-  RELOC_NUMBER (R_MIPS_UNUSED1, 13)
-  RELOC_NUMBER (R_MIPS_UNUSED2, 14)
-  RELOC_NUMBER (R_MIPS_UNUSED3, 15)
-  RELOC_NUMBER (R_MIPS_SHIFT5, 16)
-  RELOC_NUMBER (R_MIPS_SHIFT6, 17)
-  RELOC_NUMBER (R_MIPS_64, 18)
-  RELOC_NUMBER (R_MIPS_GOT_DISP, 19)
-  RELOC_NUMBER (R_MIPS_GOT_PAGE, 20)
-  RELOC_NUMBER (R_MIPS_GOT_OFST, 21)
-  RELOC_NUMBER (R_MIPS_GOT_HI16, 22)
-  RELOC_NUMBER (R_MIPS_GOT_LO16, 23)
-  RELOC_NUMBER (R_MIPS_SUB, 24)
-  RELOC_NUMBER (R_MIPS_INSERT_A, 25)
-  RELOC_NUMBER (R_MIPS_INSERT_B, 26)
-  RELOC_NUMBER (R_MIPS_DELETE, 27)
-  RELOC_NUMBER (R_MIPS_HIGHER, 28)
-  RELOC_NUMBER (R_MIPS_HIGHEST, 29)
-  RELOC_NUMBER (R_MIPS_CALL_HI16, 30)
-  RELOC_NUMBER (R_MIPS_CALL_LO16, 31)
-  RELOC_NUMBER (R_MIPS_SCN_DISP, 32)
-  RELOC_NUMBER (R_MIPS_REL16, 33)
-  RELOC_NUMBER (R_MIPS_ADD_IMMEDIATE, 34)
-  RELOC_NUMBER (R_MIPS_PJUMP, 35)
-  RELOC_NUMBER (R_MIPS_RELGOT, 36)
-  RELOC_NUMBER (R_MIPS_JALR, 37)
-  /* TLS relocations.  */
-  RELOC_NUMBER (R_MIPS_TLS_DTPMOD32, 38)
-  RELOC_NUMBER (R_MIPS_TLS_DTPREL32, 39)
-  RELOC_NUMBER (R_MIPS_TLS_DTPMOD64, 40)
-  RELOC_NUMBER (R_MIPS_TLS_DTPREL64, 41)
-  RELOC_NUMBER (R_MIPS_TLS_GD, 42)
-  RELOC_NUMBER (R_MIPS_TLS_LDM, 43)
-  RELOC_NUMBER (R_MIPS_TLS_DTPREL_HI16, 44)
-  RELOC_NUMBER (R_MIPS_TLS_DTPREL_LO16, 45)
-  RELOC_NUMBER (R_MIPS_TLS_GOTTPREL, 46)
-  RELOC_NUMBER (R_MIPS_TLS_TPREL32, 47)
-  RELOC_NUMBER (R_MIPS_TLS_TPREL64, 48)
-  RELOC_NUMBER (R_MIPS_TLS_TPREL_HI16, 49)
-  RELOC_NUMBER (R_MIPS_TLS_TPREL_LO16, 50)
-  FAKE_RELOC (R_MIPS_max, 51)
-  /* These relocs are used for the mips16.  */
-  FAKE_RELOC (R_MIPS16_min, 100)
-  RELOC_NUMBER (R_MIPS16_26, 100)
-  RELOC_NUMBER (R_MIPS16_GPREL, 101)
-  RELOC_NUMBER (R_MIPS16_GOT16, 102)
-  RELOC_NUMBER (R_MIPS16_CALL16, 103)
-  RELOC_NUMBER (R_MIPS16_HI16, 104)
-  RELOC_NUMBER (R_MIPS16_LO16, 105)
-  FAKE_RELOC (R_MIPS16_max, 106)
-  /* These relocations are specific to VxWorks.  */
-  RELOC_NUMBER (R_MIPS_COPY, 126)
-  RELOC_NUMBER (R_MIPS_JUMP_SLOT, 127)
-  /* This was a GNU extension used by embedded-PIC.  It was co-opted by
-     mips-linux for exception-handling data.  It is no longer used, but
-     should continue to be supported by the linker for backward
-     compatibility.  (GCC stopped using it in May, 2004.)  */
-  RELOC_NUMBER (R_MIPS_PC32, 248)
-  /* FIXME: this relocation is used internally by gas.  */
-  RELOC_NUMBER (R_MIPS_GNU_REL16_S2, 250)
-  /* These are GNU extensions to enable C++ vtable garbage collection.  */
-  RELOC_NUMBER (R_MIPS_GNU_VTINHERIT, 253)
-  RELOC_NUMBER (R_MIPS_GNU_VTENTRY, 254)
-END_RELOC_NUMBERS (R_MIPS_maxext)
-
-/* Processor specific flags for the ELF header e_flags field.  */
-
-/* At least one .noreorder directive appears in the source.  */
-#define EF_MIPS_NOREORDER	0x00000001
-
-/* File contains position independent code.  */
-#define EF_MIPS_PIC		0x00000002
-
-/* Code in file uses the standard calling sequence for calling
-   position independent code.  */
-#define EF_MIPS_CPIC		0x00000004
-
-/* ???  Unknown flag, set in IRIX 6's BSDdup2.o in libbsd.a.  */
-#define EF_MIPS_XGOT		0x00000008
-
-/* Code in file uses UCODE (obsolete) */
-#define EF_MIPS_UCODE		0x00000010
-
-/* Code in file uses new ABI (-n32 on Irix 6).  */
-#define EF_MIPS_ABI2		0x00000020
-
-/* Process the .MIPS.options section first by ld */
-#define EF_MIPS_OPTIONS_FIRST	0x00000080
-
-/* Architectural Extensions used by this file */
-#define EF_MIPS_ARCH_ASE	0x0f000000
-
-/* Use MDMX multimedia extensions */
-#define EF_MIPS_ARCH_ASE_MDMX	0x08000000
-
-/* Use MIPS-16 ISA extensions */
-#define EF_MIPS_ARCH_ASE_M16	0x04000000
-
-/* Indicates code compiled for a 64-bit machine in 32-bit mode.
-   (regs are 32-bits wide.) */
-#define EF_MIPS_32BITMODE       0x00000100
-
-/* Four bit MIPS architecture field.  */
-#define EF_MIPS_ARCH		0xf0000000
-
-/* -mips1 code.  */
-#define E_MIPS_ARCH_1		0x00000000
-
-/* -mips2 code.  */
-#define E_MIPS_ARCH_2		0x10000000
-
-/* -mips3 code.  */
-#define E_MIPS_ARCH_3		0x20000000
-
-/* -mips4 code.  */
-#define E_MIPS_ARCH_4		0x30000000
-
-/* -mips5 code.  */
-#define E_MIPS_ARCH_5           0x40000000
-
-/* -mips32 code.  */
-#define E_MIPS_ARCH_32          0x50000000
-
-/* -mips64 code.  */
-#define E_MIPS_ARCH_64          0x60000000
-
-/* -mips32r2 code.  */
-#define E_MIPS_ARCH_32R2        0x70000000
-
-/* -mips64r2 code.  */
-#define E_MIPS_ARCH_64R2        0x80000000
-
-/* The ABI of the file.  Also see EF_MIPS_ABI2 above. */
-#define EF_MIPS_ABI		0x0000F000
-
-/* The original o32 abi. */
-#define E_MIPS_ABI_O32          0x00001000
-
-/* O32 extended to work on 64 bit architectures */
-#define E_MIPS_ABI_O64          0x00002000
-
-/* EABI in 32 bit mode */
-#define E_MIPS_ABI_EABI32       0x00003000
-
-/* EABI in 64 bit mode */
-#define E_MIPS_ABI_EABI64       0x00004000
-
-
-/* Machine variant if we know it.  This field was invented at Cygnus,
-   but it is hoped that other vendors will adopt it.  If some standard
-   is developed, this code should be changed to follow it. */
-
-#define EF_MIPS_MACH		0x00FF0000
-
-/* Cygnus is choosing values between 80 and 9F;
-   00 - 7F should be left for a future standard;
-   the rest are open. */
-
-#define E_MIPS_MACH_3900	0x00810000
-#define E_MIPS_MACH_4010	0x00820000
-#define E_MIPS_MACH_4100	0x00830000
-#define E_MIPS_MACH_4650	0x00850000
-#define E_MIPS_MACH_4120	0x00870000
-#define E_MIPS_MACH_4111	0x00880000
-#define E_MIPS_MACH_SB1         0x008a0000
-#define E_MIPS_MACH_5400	0x00910000
-#define E_MIPS_MACH_5500	0x00980000
-#define E_MIPS_MACH_9000	0x00990000
-
-/* Processor specific section indices.  These sections do not actually
-   exist.  Symbols with a st_shndx field corresponding to one of these
-   values have a special meaning.  */
-
-/* Defined and allocated common symbol.  Value is virtual address.  If
-   relocated, alignment must be preserved.  */
-#define SHN_MIPS_ACOMMON	0xff00
-
-/* Defined and allocated text symbol.  Value is virtual address.
-   Occur in the dynamic symbol table of Alpha OSF/1 and Irix 5 executables.  */
-#define SHN_MIPS_TEXT		0xff01
-
-/* Defined and allocated data symbol.  Value is virtual address.
-   Occur in the dynamic symbol table of Alpha OSF/1 and Irix 5 executables.  */
-#define SHN_MIPS_DATA		0xff02
-
-/* Small common symbol.  */
-#define SHN_MIPS_SCOMMON	0xff03
-
-/* Small undefined symbol.  */
-#define SHN_MIPS_SUNDEFINED	0xff04
-
-/* Processor specific section types.  */
-
-/* Section contains the set of dynamic shared objects used when
-   statically linking.  */
-#define SHT_MIPS_LIBLIST	0x70000000
-
-/* I'm not sure what this is, but it's used on Irix 5.  */
-#define SHT_MIPS_MSYM		0x70000001
-
-/* Section contains list of symbols whose definitions conflict with
-   symbols defined in shared objects.  */
-#define SHT_MIPS_CONFLICT	0x70000002
-
-/* Section contains the global pointer table.  */
-#define SHT_MIPS_GPTAB		0x70000003
-
-/* Section contains microcode information.  The exact format is
-   unspecified.  */
-#define SHT_MIPS_UCODE		0x70000004
-
-/* Section contains some sort of debugging information.  The exact
-   format is unspecified.  It's probably ECOFF symbols.  */
-#define SHT_MIPS_DEBUG		0x70000005
-
-/* Section contains register usage information.  */
-#define SHT_MIPS_REGINFO	0x70000006
-
-/* ??? */
-#define SHT_MIPS_PACKAGE	0x70000007
-
-/* ??? */
-#define SHT_MIPS_PACKSYM	0x70000008
-
-/* ??? */
-#define SHT_MIPS_RELD		0x70000009
-
-/* Section contains interface information.  */
-#define SHT_MIPS_IFACE		0x7000000b
-
-/* Section contains description of contents of another section.  */
-#define SHT_MIPS_CONTENT	0x7000000c
-
-/* Section contains miscellaneous options.  */
-#define SHT_MIPS_OPTIONS	0x7000000d
-
-/* ??? */
-#define SHT_MIPS_SHDR		0x70000010
-
-/* ??? */
-#define SHT_MIPS_FDESC		0x70000011
-
-/* ??? */
-#define SHT_MIPS_EXTSYM		0x70000012
-
-/* ??? */
-#define SHT_MIPS_DENSE		0x70000013
-
-/* ??? */
-#define SHT_MIPS_PDESC		0x70000014
-
-/* ??? */
-#define SHT_MIPS_LOCSYM		0x70000015
-
-/* ??? */
-#define SHT_MIPS_AUXSYM		0x70000016
-
-/* ??? */
-#define SHT_MIPS_OPTSYM		0x70000017
-
-/* ??? */
-#define SHT_MIPS_LOCSTR		0x70000018
-
-/* ??? */
-#define SHT_MIPS_LINE		0x70000019
-
-/* ??? */
-#define SHT_MIPS_RFDESC		0x7000001a
-
-/* Delta C++: symbol table */
-#define SHT_MIPS_DELTASYM	0x7000001b
-
-/* Delta C++: instance table */
-#define SHT_MIPS_DELTAINST	0x7000001c
-
-/* Delta C++: class table */
-#define SHT_MIPS_DELTACLASS	0x7000001d
-
-/* DWARF debugging section.  */
-#define SHT_MIPS_DWARF		0x7000001e
-
-/* Delta C++: declarations */
-#define SHT_MIPS_DELTADECL	0x7000001f
-
-/* List of libraries the binary depends on.  Includes a time stamp, version
-   number.  */
-#define SHT_MIPS_SYMBOL_LIB	0x70000020
-
-/* Events section.  */
-#define SHT_MIPS_EVENTS		0x70000021
-
-/* ??? */
-#define SHT_MIPS_TRANSLATE	0x70000022
-
-/* Special pixie sections */
-#define SHT_MIPS_PIXIE		0x70000023
-
-/* Address translation table (for debug info) */
-#define SHT_MIPS_XLATE		0x70000024
-
-/* SGI internal address translation table (for debug info) */
-#define SHT_MIPS_XLATE_DEBUG	0x70000025
-
-/* Intermediate code */
-#define SHT_MIPS_WHIRL		0x70000026
-
-/* C++ exception handling region info */
-#define SHT_MIPS_EH_REGION	0x70000027
-
-/* Obsolete address translation table (for debug info) */
-#define SHT_MIPS_XLATE_OLD	0x70000028
-
-/* Runtime procedure descriptor table exception information (ucode) ??? */
-#define SHT_MIPS_PDR_EXCEPTION	0x70000029
-
-
-/* A section of type SHT_MIPS_LIBLIST contains an array of the
-   following structure.  The sh_link field is the section index of the
-   string table.  The sh_info field is the number of entries in the
-   section.  */
-typedef struct
-{
-  /* String table index for name of shared object.  */
-  unsigned long l_name;
-  /* Time stamp.  */
-  unsigned long l_time_stamp;
-  /* Checksum of symbol names and common sizes.  */
-  unsigned long l_checksum;
-  /* String table index for version.  */
-  unsigned long l_version;
-  /* Flags.  */
-  unsigned long l_flags;
-} Elf32_Lib;
-
-/* The external version of Elf32_Lib.  */
-typedef struct
-{
-  unsigned char l_name[4];
-  unsigned char l_time_stamp[4];
-  unsigned char l_checksum[4];
-  unsigned char l_version[4];
-  unsigned char l_flags[4];
-} Elf32_External_Lib;
-
-/* The l_flags field of an Elf32_Lib structure may contain the
-   following flags.  */
-
-/* Require an exact match at runtime.  */
-#define LL_EXACT_MATCH		0x00000001
-
-/* Ignore version incompatibilities at runtime.  */
-#define LL_IGNORE_INT_VER	0x00000002
-
-/* Require matching minor version number.  */
-#define LL_REQUIRE_MINOR	0x00000004
-
-/* ??? */
-#define LL_EXPORTS		0x00000008
-
-/* Delay loading of this library until really needed.  */
-#define LL_DELAY_LOAD		0x00000010
-
-/* ??? Delta C++ stuff ??? */
-#define LL_DELTA		0x00000020
-
-
-/* A section of type SHT_MIPS_CONFLICT is an array of indices into the
-   .dynsym section.  Each element has the following type.  */
-typedef unsigned long Elf32_Conflict;
-typedef unsigned char Elf32_External_Conflict[4];
-
-typedef unsigned long Elf64_Conflict;
-typedef unsigned char Elf64_External_Conflict[8];
-
-/* A section of type SHT_MIPS_GPTAB contains information about how
-   much GP space would be required for different -G arguments.  This
-   information is only used so that the linker can provide informative
-   suggestions as to the best -G value to use.  The sh_info field is
-   the index of the section for which this information applies.  The
-   contents of the section are an array of the following union.  The
-   first element uses the gt_header field.  The remaining elements use
-   the gt_entry field.  */
-typedef union
-{
-  struct
-    {
-      /* -G value actually used for this object file.  */
-      unsigned long gt_current_g_value;
-      /* Unused.  */
-      unsigned long gt_unused;
-    } gt_header;
-  struct
-    {
-      /* If this -G argument has been used...  */
-      unsigned long gt_g_value;
-      /* ...this many GP section bytes would be required.  */
-      unsigned long gt_bytes;
-    } gt_entry;
-} Elf32_gptab;
-
-/* The external version of Elf32_gptab.  */
-
-typedef union
-{
-  struct
-    {
-      unsigned char gt_current_g_value[4];
-      unsigned char gt_unused[4];
-    } gt_header;
-  struct
-    {
-      unsigned char gt_g_value[4];
-      unsigned char gt_bytes[4];
-    } gt_entry;
-} Elf32_External_gptab;
-
-/* A section of type SHT_MIPS_REGINFO contains the following
-   structure.  */
-typedef struct
-{
-  /* Mask of general purpose registers used.  */
-  unsigned long ri_gprmask;
-  /* Mask of co-processor registers used.  */
-  unsigned long ri_cprmask[4];
-  /* GP register value for this object file.  */
-  long ri_gp_value;
-} Elf32_RegInfo;
-
-/* The external version of the Elf_RegInfo structure.  */
-typedef struct
-{
-  unsigned char ri_gprmask[4];
-  unsigned char ri_cprmask[4][4];
-  unsigned char ri_gp_value[4];
-} Elf32_External_RegInfo;
-
-/* MIPS ELF .reginfo swapping routines.  */
-extern void bfd_mips_elf32_swap_reginfo_in
-  (bfd *, const Elf32_External_RegInfo *, Elf32_RegInfo *);
-extern void bfd_mips_elf32_swap_reginfo_out
-  (bfd *, const Elf32_RegInfo *, Elf32_External_RegInfo *);
-
-/* Processor specific section flags.  */
-
-/* This section must be in the global data area.  */
-#define SHF_MIPS_GPREL		0x10000000
-
-/* This section should be merged.  */
-#define SHF_MIPS_MERGE		0x20000000
-
-/* This section contains address data of size implied by section
-   element size.  */
-#define SHF_MIPS_ADDR		0x40000000
-
-/* This section contains string data.  */
-#define SHF_MIPS_STRING		0x80000000
-
-/* This section may not be stripped.  */
-#define SHF_MIPS_NOSTRIP	0x08000000
-
-/* This section is local to threads.  */
-#define SHF_MIPS_LOCAL		0x04000000
-
-/* Linker should generate implicit weak names for this section.  */
-#define SHF_MIPS_NAMES		0x02000000
-
-/* Section contais text/data which may be replicated in other sections.
-   Linker should retain only one copy.  */
-#define SHF_MIPS_NODUPES	0x01000000
-
-/* Processor specific program header types.  */
-
-/* Register usage information.  Identifies one .reginfo section.  */
-#define PT_MIPS_REGINFO		0x70000000
-
-/* Runtime procedure table.  */
-#define PT_MIPS_RTPROC		0x70000001
-
-/* .MIPS.options section.  */
-#define PT_MIPS_OPTIONS		0x70000002
-
-/* Processor specific dynamic array tags.  */
-
-/* 32 bit version number for runtime linker interface.  */
-#define DT_MIPS_RLD_VERSION	0x70000001
-
-/* Time stamp.  */
-#define DT_MIPS_TIME_STAMP	0x70000002
-
-/* Checksum of external strings and common sizes.  */
-#define DT_MIPS_ICHECKSUM	0x70000003
-
-/* Index of version string in string table.  */
-#define DT_MIPS_IVERSION	0x70000004
-
-/* 32 bits of flags.  */
-#define DT_MIPS_FLAGS		0x70000005
-
-/* Base address of the segment.  */
-#define DT_MIPS_BASE_ADDRESS	0x70000006
-
-/* ??? */
-#define DT_MIPS_MSYM		0x70000007
-
-/* Address of .conflict section.  */
-#define DT_MIPS_CONFLICT	0x70000008
-
-/* Address of .liblist section.  */
-#define DT_MIPS_LIBLIST		0x70000009
-
-/* Number of local global offset table entries.  */
-#define DT_MIPS_LOCAL_GOTNO	0x7000000a
-
-/* Number of entries in the .conflict section.  */
-#define DT_MIPS_CONFLICTNO	0x7000000b
-
-/* Number of entries in the .liblist section.  */
-#define DT_MIPS_LIBLISTNO	0x70000010
-
-/* Number of entries in the .dynsym section.  */
-#define DT_MIPS_SYMTABNO	0x70000011
-
-/* Index of first external dynamic symbol not referenced locally.  */
-#define DT_MIPS_UNREFEXTNO	0x70000012
-
-/* Index of first dynamic symbol in global offset table.  */
-#define DT_MIPS_GOTSYM		0x70000013
-
-/* Number of page table entries in global offset table.  */
-#define DT_MIPS_HIPAGENO	0x70000014
-
-/* Address of run time loader map, used for debugging.  */
-#define DT_MIPS_RLD_MAP		0x70000016
-
-/* Delta C++ class definition.  */
-#define DT_MIPS_DELTA_CLASS	0x70000017
-
-/* Number of entries in DT_MIPS_DELTA_CLASS.  */
-#define DT_MIPS_DELTA_CLASS_NO	0x70000018
-
-/* Delta C++ class instances.  */
-#define DT_MIPS_DELTA_INSTANCE	0x70000019
-
-/* Number of entries in DT_MIPS_DELTA_INSTANCE.  */
-#define DT_MIPS_DELTA_INSTANCE_NO	0x7000001a
-
-/* Delta relocations.  */
-#define DT_MIPS_DELTA_RELOC	0x7000001b
-
-/* Number of entries in DT_MIPS_DELTA_RELOC.  */
-#define DT_MIPS_DELTA_RELOC_NO	0x7000001c
-
-/* Delta symbols that Delta relocations refer to.  */
-#define DT_MIPS_DELTA_SYM	0x7000001d
-
-/* Number of entries in DT_MIPS_DELTA_SYM.  */
-#define DT_MIPS_DELTA_SYM_NO	0x7000001e
-
-/* Delta symbols that hold class declarations.  */
-#define DT_MIPS_DELTA_CLASSSYM	0x70000020
-
-/* Number of entries in DT_MIPS_DELTA_CLASSSYM.  */
-#define DT_MIPS_DELTA_CLASSSYM_NO	0x70000021
-
-/* Flags indicating information about C++ flavor.  */
-#define DT_MIPS_CXX_FLAGS	0x70000022
-
-/* Pixie information (???).  */
-#define DT_MIPS_PIXIE_INIT	0x70000023
-
-/* Address of .MIPS.symlib */
-#define DT_MIPS_SYMBOL_LIB	0x70000024
-
-/* The GOT index of the first PTE for a segment */
-#define DT_MIPS_LOCALPAGE_GOTIDX	0x70000025
-
-/* The GOT index of the first PTE for a local symbol */
-#define DT_MIPS_LOCAL_GOTIDX	0x70000026
-
-/* The GOT index of the first PTE for a hidden symbol */
-#define DT_MIPS_HIDDEN_GOTIDX	0x70000027
-
-/* The GOT index of the first PTE for a protected symbol */
-#define DT_MIPS_PROTECTED_GOTIDX	0x70000028
-
-/* Address of `.MIPS.options'.  */
-#define DT_MIPS_OPTIONS		0x70000029
-
-/* Address of `.interface'.  */
-#define DT_MIPS_INTERFACE	0x7000002a
-
-/* ??? */
-#define DT_MIPS_DYNSTR_ALIGN	0x7000002b
-
-/* Size of the .interface section.  */
-#define DT_MIPS_INTERFACE_SIZE	0x7000002c
-
-/* Size of rld_text_resolve function stored in the GOT.  */
-#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR	0x7000002d
-
-/* Default suffix of DSO to be added by rld on dlopen() calls.  */
-#define DT_MIPS_PERF_SUFFIX	0x7000002e
-
-/* Size of compact relocation section (O32).  */
-#define DT_MIPS_COMPACT_SIZE	0x7000002f
-
-/* GP value for auxiliary GOTs.  */
-#define DT_MIPS_GP_VALUE	0x70000030
-
-/* Address of auxiliary .dynamic.  */
-#define DT_MIPS_AUX_DYNAMIC	0x70000031
-
-/* Flags which may appear in a DT_MIPS_FLAGS entry.  */
-
-/* No flags.  */
-#define RHF_NONE		0x00000000
-
-/* Uses shortcut pointers.  */
-#define RHF_QUICKSTART		0x00000001
-
-/* Hash size is not a power of two.  */
-#define RHF_NOTPOT		0x00000002
-
-/* Ignore LD_LIBRARY_PATH.  */
-#define RHS_NO_LIBRARY_REPLACEMENT 0x00000004
-
-/* DSO address may not be relocated. */
-#define RHF_NO_MOVE		0x00000008
-
-/* SGI specific features. */
-#define RHF_SGI_ONLY		0x00000010
-
-/* Guarantee that .init will finish executing before any non-init
-   code in DSO is called. */
-#define RHF_GUARANTEE_INIT	   0x00000020
-
-/* Contains Delta C++ code. */
-#define RHF_DELTA_C_PLUS_PLUS	   0x00000040
-
-/* Guarantee that .init will start executing before any non-init
-   code in DSO is called. */
-#define RHF_GUARANTEE_START_INIT   0x00000080
-
-/* Generated by pixie. */
-#define RHF_PIXIE		   0x00000100
-
-/* Delay-load DSO by default. */
-#define RHF_DEFAULT_DELAY_LOAD	   0x00000200
-
-/* Object may be requickstarted */
-#define RHF_REQUICKSTART	   0x00000400
-
-/* Object has been requickstarted */
-#define RHF_REQUICKSTARTED	   0x00000800
-
-/* Generated by cord. */
-#define RHF_CORD		   0x00001000
-
-/* Object contains no unresolved undef symbols. */
-#define RHF_NO_UNRES_UNDEF	   0x00002000
-
-/* Symbol table is in a safe order. */
-#define RHF_RLD_ORDER_SAFE	   0x00004000
-
-/* Special values for the st_other field in the symbol table.  These
-   are used in an Irix 5 dynamic symbol table.  */
-
-#define STO_DEFAULT		STV_DEFAULT
-#define STO_INTERNAL		STV_INTERNAL
-#define STO_HIDDEN		STV_HIDDEN
-#define STO_PROTECTED		STV_PROTECTED
-
-/* This value is used for a mips16 .text symbol.  */
-#define STO_MIPS16		0xf0
-
-/* This bit is used on Irix to indicate a symbol whose definition
-   is optional - if, at final link time, it cannot be found, no
-   error message should be produced.  */
-#define STO_OPTIONAL		(1 << 2)
-/* A macro to examine the STO_OPTIONAL bit.  */
-#define ELF_MIPS_IS_OPTIONAL(other)	((other) & STO_OPTIONAL)
-
-/* The 64-bit MIPS ELF ABI uses an unusual reloc format.  Each
-   relocation entry specifies up to three actual relocations, all at
-   the same address.  The first relocation which required a symbol
-   uses the symbol in the r_sym field.  The second relocation which
-   requires a symbol uses the symbol in the r_ssym field.  If all
-   three relocations require a symbol, the third one uses a zero
-   value.  */
-
-/* An entry in a 64 bit SHT_REL section.  */
-
-typedef struct
-{
-  /* Address of relocation.  */
-  unsigned char r_offset[8];
-  /* Symbol index.  */
-  unsigned char r_sym[4];
-  /* Special symbol.  */
-  unsigned char r_ssym[1];
-  /* Third relocation.  */
-  unsigned char r_type3[1];
-  /* Second relocation.  */
-  unsigned char r_type2[1];
-  /* First relocation.  */
-  unsigned char r_type[1];
-} Elf64_Mips_External_Rel;
-
-typedef struct
-{
-  /* Address of relocation.  */
-  bfd_vma r_offset;
-  /* Symbol index.  */
-  unsigned long r_sym;
-  /* Special symbol.  */
-  unsigned char r_ssym;
-  /* Third relocation.  */
-  unsigned char r_type3;
-  /* Second relocation.  */
-  unsigned char r_type2;
-  /* First relocation.  */
-  unsigned char r_type;
-} Elf64_Mips_Internal_Rel;
-
-/* An entry in a 64 bit SHT_RELA section.  */
-
-typedef struct
-{
-  /* Address of relocation.  */
-  unsigned char r_offset[8];
-  /* Symbol index.  */
-  unsigned char r_sym[4];
-  /* Special symbol.  */
-  unsigned char r_ssym[1];
-  /* Third relocation.  */
-  unsigned char r_type3[1];
-  /* Second relocation.  */
-  unsigned char r_type2[1];
-  /* First relocation.  */
-  unsigned char r_type[1];
-  /* Addend.  */
-  unsigned char r_addend[8];
-} Elf64_Mips_External_Rela;
-
-typedef struct
-{
-  /* Address of relocation.  */
-  bfd_vma r_offset;
-  /* Symbol index.  */
-  unsigned long r_sym;
-  /* Special symbol.  */
-  unsigned char r_ssym;
-  /* Third relocation.  */
-  unsigned char r_type3;
-  /* Second relocation.  */
-  unsigned char r_type2;
-  /* First relocation.  */
-  unsigned char r_type;
-  /* Addend.  */
-  bfd_signed_vma r_addend;
-} Elf64_Mips_Internal_Rela;
-
-/* MIPS ELF 64 relocation info access macros.  */
-#define ELF64_MIPS_R_SSYM(i) (((i) >> 24) & 0xff)
-#define ELF64_MIPS_R_TYPE3(i) (((i) >> 16) & 0xff)
-#define ELF64_MIPS_R_TYPE2(i) (((i) >> 8) & 0xff)
-#define ELF64_MIPS_R_TYPE(i) ((i) & 0xff)
-
-/* Values found in the r_ssym field of a relocation entry.  */
-
-/* No relocation.  */
-#define RSS_UNDEF	0
-
-/* Value of GP.  */
-#define RSS_GP		1
-
-/* Value of GP in object being relocated.  */
-#define RSS_GP0		2
-
-/* Address of location being relocated.  */
-#define RSS_LOC		3
-
-/* A SHT_MIPS_OPTIONS section contains a series of options, each of
-   which starts with this header.  */
-
-typedef struct
-{
-  /* Type of option.  */
-  unsigned char kind[1];
-  /* Size of option descriptor, including header.  */
-  unsigned char size[1];
-  /* Section index of affected section, or 0 for global option.  */
-  unsigned char section[2];
-  /* Information specific to this kind of option.  */
-  unsigned char info[4];
-} Elf_External_Options;
-
-typedef struct
-{
-  /* Type of option.  */
-  unsigned char kind;
-  /* Size of option descriptor, including header.  */
-  unsigned char size;
-  /* Section index of affected section, or 0 for global option.  */
-  unsigned short section;
-  /* Information specific to this kind of option.  */
-  unsigned long info;
-} Elf_Internal_Options;
-
-/* MIPS ELF option header swapping routines.  */
-extern void bfd_mips_elf_swap_options_in
-  (bfd *, const Elf_External_Options *, Elf_Internal_Options *);
-extern void bfd_mips_elf_swap_options_out
-  (bfd *, const Elf_Internal_Options *, Elf_External_Options *);
-
-/* Values which may appear in the kind field of an Elf_Options
-   structure.  */
-
-/* Undefined.  */
-#define ODK_NULL	0
-
-/* Register usage and GP value.  */
-#define ODK_REGINFO	1
-
-/* Exception processing information.  */
-#define ODK_EXCEPTIONS	2
-
-/* Section padding information.  */
-#define ODK_PAD		3
-
-/* Hardware workarounds performed.  */
-#define ODK_HWPATCH	4
-
-/* Fill value used by the linker.  */
-#define ODK_FILL	5
-
-/* Reserved space for desktop tools.  */
-#define ODK_TAGS	6
-
-/* Hardware workarounds, AND bits when merging.  */
-#define ODK_HWAND	7
-
-/* Hardware workarounds, OR bits when merging.  */
-#define ODK_HWOR	8
-
-/* GP group to use for text/data sections.  */
-#define ODK_GP_GROUP	9
-
-/* ID information.  */
-#define ODK_IDENT	10
-
-/* In the 32 bit ABI, an ODK_REGINFO option is just a Elf32_RegInfo
-   structure.  In the 64 bit ABI, it is the following structure.  The
-   info field of the options header is not used.  */
-
-typedef struct
-{
-  /* Mask of general purpose registers used.  */
-  unsigned char ri_gprmask[4];
-  /* Padding.  */
-  unsigned char ri_pad[4];
-  /* Mask of co-processor registers used.  */
-  unsigned char ri_cprmask[4][4];
-  /* GP register value for this object file.  */
-  unsigned char ri_gp_value[8];
-} Elf64_External_RegInfo;
-
-typedef struct
-{
-  /* Mask of general purpose registers used.  */
-  unsigned long ri_gprmask;
-  /* Padding.  */
-  unsigned long ri_pad;
-  /* Mask of co-processor registers used.  */
-  unsigned long ri_cprmask[4];
-  /* GP register value for this object file.  */
-  bfd_vma ri_gp_value;
-} Elf64_Internal_RegInfo;
-
-typedef struct
-{
-  /* The hash value computed from the name of the corresponding
-     dynamic symbol.  */
-  unsigned char ms_hash_value[4];
-  /* Contains both the dynamic relocation index and the symbol flags
-     field.  The macros ELF32_MS_REL_INDEX and ELF32_MS_FLAGS are used
-     to access the individual values.  The dynamic relocation index
-     identifies the first entry in the .rel.dyn section that
-     references the dynamic symbol corresponding to this msym entry.
-     If the index is 0, no dynamic relocations are associated with the
-     symbol.  The symbol flags field is reserved for future use.  */
-  unsigned char ms_info[4];
-} Elf32_External_Msym;
-
-typedef struct
-{
-  /* The hash value computed from the name of the corresponding
-     dynamic symbol.  */
-  unsigned long ms_hash_value;
-  /* Contains both the dynamic relocation index and the symbol flags
-     field.  The macros ELF32_MS_REL_INDEX and ELF32_MS_FLAGS are used
-     to access the individual values.  The dynamic relocation index
-     identifies the first entry in the .rel.dyn section that
-     references the dynamic symbol corresponding to this msym entry.
-     If the index is 0, no dynamic relocations are associated with the
-     symbol.  The symbol flags field is reserved for future use.  */
-  unsigned long ms_info;
-} Elf32_Internal_Msym;
-
-#define ELF32_MS_REL_INDEX(i) ((i) >> 8)
-#define ELF32_MS_FLAGS(i)     (i) & 0xff)
-#define ELF32_MS_INFO(r, f)   (((r) << 8) + ((f) & 0xff))
-
-/* MIPS ELF reginfo swapping routines.  */
-extern void bfd_mips_elf64_swap_reginfo_in
-  (bfd *, const Elf64_External_RegInfo *, Elf64_Internal_RegInfo *);
-extern void bfd_mips_elf64_swap_reginfo_out
-  (bfd *, const Elf64_Internal_RegInfo *, Elf64_External_RegInfo *);
-
-/* Masks for the info work of an ODK_EXCEPTIONS descriptor.  */
-#define OEX_FPU_MIN	0x1f	/* FPEs which must be enabled.  */
-#define OEX_FPU_MAX	0x1f00	/* FPEs which may be enabled.  */
-#define OEX_PAGE0	0x10000	/* Page zero must be mapped.  */
-#define OEX_SMM		0x20000	/* Force sequential memory mode.  */
-#define OEX_FPDBUG	0x40000	/* Force precise floating-point
-				   exceptions (debug mode).  */
-#define OEX_DISMISS	0x80000	/* Dismiss invalid address faults.  */
-
-/* Masks of the FP exceptions for OEX_FPU_MIN and OEX_FPU_MAX.  */
-#define OEX_FPU_INVAL	0x10	/* Invalid operation exception.  */
-#define OEX_FPU_DIV0	0x08	/* Division by zero exception.  */
-#define OEX_FPU_OFLO	0x04	/* Overflow exception.  */
-#define OEX_FPU_UFLO	0x02	/* Underflow exception.  */
-#define OEX_FPU_INEX	0x01	/* Inexact exception.  */
-
-/* Masks for the info word of an ODK_PAD descriptor.  */
-#define OPAD_PREFIX	0x01
-#define OPAD_POSTFIX	0x02
-#define OPAD_SYMBOL	0x04
-
-/* Masks for the info word of an ODK_HWPATCH descriptor.  */
-#define OHW_R4KEOP	0x00000001	/* R4000 end-of-page patch.  */
-#define OHW_R8KPFETCH	0x00000002	/* May need R8000 prefetch patch.  */
-#define OHW_R5KEOP	0x00000004	/* R5000 end-of-page patch.  */
-#define OHW_R5KCVTL	0x00000008	/* R5000 cvt.[ds].l bug
-					   (clean == 1).  */
-#define OHW_R10KLDL	0x00000010	/* Needs R10K misaligned
-					   load patch. */
-
-/* Masks for the info word of an ODK_IDENT/ODK_GP_GROUP descriptor.  */
-#define OGP_GROUP	0x0000ffff	/* GP group number.  */
-#define OGP_SELF	0xffff0000	/* Self-contained GP groups.  */
-
-/* Masks for the info word of an ODK_HWAND/ODK_HWOR descriptor.  */
-#define OHWA0_R4KEOP_CHECKED	0x00000001
-#define OHWA0_R4KEOP_CLEAN	0x00000002
-
-
-#endif /* _ELF_MIPS_H */
diff --git a/include/elf/mmix.h b/include/elf/mmix.h
deleted file mode 100644
index 9661e87..0000000
--- a/include/elf/mmix.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/* MMIX support for BFD.
-   Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* This file holds definitions specific to the MMIX ELF ABI. */
-#ifndef ELF_MMIX_H
-#define ELF_MMIX_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  See the reloc table in bfd/elf64-mmix.c for details.  */
-START_RELOC_NUMBERS (elf_mmix_reloc_type)
-  RELOC_NUMBER (R_MMIX_NONE, 0)
-
-  /* Standard absolute relocations.  */
-  RELOC_NUMBER (R_MMIX_8, 1)
-  RELOC_NUMBER (R_MMIX_16, 2)
-  RELOC_NUMBER (R_MMIX_24, 3)
-  RELOC_NUMBER (R_MMIX_32, 4)
-  RELOC_NUMBER (R_MMIX_64, 5)
-
-  /* Standard relative relocations.  */
-  RELOC_NUMBER (R_MMIX_PC_8, 6)
-  RELOC_NUMBER (R_MMIX_PC_16, 7)
-  RELOC_NUMBER (R_MMIX_PC_24, 8)
-  RELOC_NUMBER (R_MMIX_PC_32, 9)
-  RELOC_NUMBER (R_MMIX_PC_64, 10)
-
-  /* GNU extensions for C++ vtables.  */
-  RELOC_NUMBER (R_MMIX_GNU_VTINHERIT, 11)
-  RELOC_NUMBER (R_MMIX_GNU_VTENTRY, 12)
-
-  /* A GETA instruction.  */
-  RELOC_NUMBER (R_MMIX_GETA, 13)
-  RELOC_NUMBER (R_MMIX_GETA_1, 14)
-  RELOC_NUMBER (R_MMIX_GETA_2, 15)
-  RELOC_NUMBER (R_MMIX_GETA_3, 16)
-
-  /* A conditional branch instruction.  */
-  RELOC_NUMBER (R_MMIX_CBRANCH, 17)
-  RELOC_NUMBER (R_MMIX_CBRANCH_J, 18)
-  RELOC_NUMBER (R_MMIX_CBRANCH_1, 19)
-  RELOC_NUMBER (R_MMIX_CBRANCH_2, 20)
-  RELOC_NUMBER (R_MMIX_CBRANCH_3, 21)
-
-  /* A PUSHJ instruction.  */
-  RELOC_NUMBER (R_MMIX_PUSHJ, 22)
-  RELOC_NUMBER (R_MMIX_PUSHJ_1, 23)
-  RELOC_NUMBER (R_MMIX_PUSHJ_2, 24)
-  RELOC_NUMBER (R_MMIX_PUSHJ_3, 25)
-
-  /* A JMP instruction.  */
-  RELOC_NUMBER (R_MMIX_JMP, 26)
-  RELOC_NUMBER (R_MMIX_JMP_1, 27)
-  RELOC_NUMBER (R_MMIX_JMP_2, 28)
-  RELOC_NUMBER (R_MMIX_JMP_3, 29)
-
-  /* A relative address such as in a GETA or a branch.  */
-  RELOC_NUMBER (R_MMIX_ADDR19, 30)
-
-  /* A relative address such as in a JMP (only).  */
-  RELOC_NUMBER (R_MMIX_ADDR27, 31)
-
-  /* A general register or a number 0..255.  */
-  RELOC_NUMBER (R_MMIX_REG_OR_BYTE, 32)
-
-  /* A general register. */
-  RELOC_NUMBER (R_MMIX_REG, 33)
-
-  /* A global register and an offset, the global register (allocated at
-     link time) contents plus the offset made equivalent to the relocation
-     expression at link time.  The relocation must point at the Y field of
-     an instruction.  */
-  RELOC_NUMBER (R_MMIX_BASE_PLUS_OFFSET, 34)
-
-  /* A LOCAL assertion.  */
-  RELOC_NUMBER (R_MMIX_LOCAL, 35)
-
-  /* A PUSHJ instruction, generating a stub if it does not reach.  */
-  RELOC_NUMBER (R_MMIX_PUSHJ_STUBBABLE, 36)
-END_RELOC_NUMBERS (R_MMIX_max)
-
-
-/* Section Attributes.  */
-/* A section containing necessary information for relaxation.  */
-#define SHF_MMIX_CANRELAX	0x80000000
-
-/* Symbol attributes.  */
-/* A symbol with this section-index is a register.  */
-#define SHN_REGISTER	SHN_LOPROC
-
-/* This section holds contents for each initialized register, at VMA
-   regno*8.  A symbol relative to this section will be transformed to an
-   absolute symbol with the value corresponding to the register number at
-   final link time.  A symbol with a value outside the inclusive range
-   32*8 .. 254*8 is an error.  It is highly recommended to only use an
-   upper bound of 253*8 or lower as specified in the (currently
-   unspecified) ABI.  */
-#define MMIX_REG_CONTENTS_SECTION_NAME ".MMIX.reg_contents"
-
-/* At link time, a section by this name is created, expected to be
-   included in MMIX_REG_CONTENTS_SECTION_NAME in the output.  */
-#define MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME \
- ".MMIX.reg_contents.linker_allocated"
-
-/* This is a faked section holding symbols with SHN_REGISTER.  Don't
-   confuse it with MMIX_REG_CONTENTS_SECTION_NAME; this one has no
-   contents, just values.  It is an error for a value in this section to
-   be outside the range 32..255 and it must never become an actual section
-   in an object file.  */
-#define MMIX_REG_SECTION_NAME "*REG*"
-
-/* Appended with a number N=0..65535, this is a representation of the
-   mmixal "BSPEC N" ... "ESPEC" directive pair; the contents go into an
-   ELF section by name ".MMIX.spec_data.N".  */
-#define MMIX_OTHER_SPEC_SECTION_PREFIX ".MMIX.spec_data."
-
-/* A section SECNAME is noted to start at "__.MMIX.start.SECNAME" by the
-   presence of this symbol.  Currently only implemented for ".text"
-   through the symbol "__.MMIX.start..text".  */
-#define MMIX_LOC_SECTION_START_SYMBOL_PREFIX "__.MMIX.start."
-
-/* This symbol is always a function.  */
-#define MMIX_START_SYMBOL_NAME "Main"
-
-
-/* We smuggle in a few MMO specifics here.  We don't make a specific MMO
-   file, since we can't reasonably support MMO without ELF; we have to
-   include this file anyway.  */
-
-#define MMO_TEXT_SECTION_NAME ".text"
-#define MMO_DATA_SECTION_NAME ".data"
-
-/* A definition for the flags we put in spec data in files.  A copy of our
-   own of some flags to keep immune to BFD flag changes.  See section.c of
-   2001-07-18 for flag documentation.  */
-#define MMO_SEC_ALLOC      0x001
-#define MMO_SEC_LOAD       0x002
-#define MMO_SEC_RELOC      0x004
-#define MMO_SEC_READONLY   0x010
-#define MMO_SEC_CODE       0x020
-#define MMO_SEC_DATA       0x040
-#define MMO_SEC_NEVER_LOAD 0x400
-#define MMO_SEC_IS_COMMON 0x8000
-#define MMO_SEC_DEBUGGING 0x10000
-
-#ifdef BFD_ARCH_SIZE
-extern bfd_boolean _bfd_mmix_before_linker_allocation
-  (bfd *, struct bfd_link_info *);
-extern bfd_boolean _bfd_mmix_after_linker_allocation
-  (bfd *, struct bfd_link_info *);
-extern bfd_boolean _bfd_mmix_check_all_relocs
-  (bfd *, struct bfd_link_info *);
-#endif
-
-#endif /* ELF_MMIX_H */
diff --git a/include/elf/mn10200.h b/include/elf/mn10200.h
deleted file mode 100644
index 8461588..0000000
--- a/include/elf/mn10200.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* MN10200 ELF support for BFD.
-   Copyright 1998, 2000 Free Software Foundation, Inc.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* This file holds definitions specific to the MN10200 ELF ABI. */
-
-#ifndef _ELF_MN10200_H
-#define _ELF_MN10200_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-START_RELOC_NUMBERS (elf_mn10200_reloc_type)
-  RELOC_NUMBER (R_MN10200_NONE, 0)
-  RELOC_NUMBER (R_MN10200_32, 1)
-  RELOC_NUMBER (R_MN10200_16, 2)
-  RELOC_NUMBER (R_MN10200_8, 3)
-  RELOC_NUMBER (R_MN10200_24, 4)
-  RELOC_NUMBER (R_MN10200_PCREL8, 5)
-  RELOC_NUMBER (R_MN10200_PCREL16, 6)
-  RELOC_NUMBER (R_MN10200_PCREL24, 7)
-END_RELOC_NUMBERS (R_MN10200_max)
-
-#endif /* _ELF_MN10200_H */
diff --git a/include/elf/mn10300.h b/include/elf/mn10300.h
deleted file mode 100644
index d241e9c..0000000
--- a/include/elf/mn10300.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* MN10300 ELF support for BFD.
-   Copyright 1998, 1999, 2000, 2003 Free Software Foundation, Inc.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* This file holds definitions specific to the MN10300 ELF ABI. */
-
-#ifndef _ELF_MN10300_H
-#define _ELF_MN10300_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-START_RELOC_NUMBERS (elf_mn10300_reloc_type)
-  RELOC_NUMBER (R_MN10300_NONE, 0)
-  RELOC_NUMBER (R_MN10300_32, 1)
-  RELOC_NUMBER (R_MN10300_16, 2)
-  RELOC_NUMBER (R_MN10300_8, 3)
-  RELOC_NUMBER (R_MN10300_PCREL32, 4)
-  RELOC_NUMBER (R_MN10300_PCREL16, 5)
-  RELOC_NUMBER (R_MN10300_PCREL8, 6)
-  RELOC_NUMBER (R_MN10300_GNU_VTINHERIT, 7)
-  RELOC_NUMBER (R_MN10300_GNU_VTENTRY, 8)
-  RELOC_NUMBER (R_MN10300_24, 9)
-  RELOC_NUMBER (R_MN10300_GOTPC32, 10)
-  RELOC_NUMBER (R_MN10300_GOTPC16, 11)
-  RELOC_NUMBER (R_MN10300_GOTOFF32, 12)
-  RELOC_NUMBER (R_MN10300_GOTOFF24, 13)
-  RELOC_NUMBER (R_MN10300_GOTOFF16, 14)
-  RELOC_NUMBER (R_MN10300_PLT32, 15)
-  RELOC_NUMBER (R_MN10300_PLT16, 16)
-  RELOC_NUMBER (R_MN10300_GOT32, 17)
-  RELOC_NUMBER (R_MN10300_GOT24, 18)
-  RELOC_NUMBER (R_MN10300_GOT16, 19)
-  RELOC_NUMBER (R_MN10300_COPY, 20)
-  RELOC_NUMBER (R_MN10300_GLOB_DAT, 21)
-  RELOC_NUMBER (R_MN10300_JMP_SLOT, 22)
-  RELOC_NUMBER (R_MN10300_RELATIVE, 23)
-END_RELOC_NUMBERS (R_MN10300_MAX)
-
-/* Machine variant if we know it.  This field was invented at Cygnus,
-   but it is hoped that other vendors will adopt it.  If some standard
-   is developed, this code should be changed to follow it. */
-
-#define EF_MN10300_MACH		0x00FF0000
-
-/* Cygnus is choosing values between 80 and 9F;
-   00 - 7F should be left for a future standard;
-   the rest are open. */
-
-#define E_MN10300_MACH_MN10300	0x00810000
-#define E_MN10300_MACH_AM33	0x00820000
-#define E_MN10300_MACH_AM33_2   0x00830000
-#endif /* _ELF_MN10300_H */
diff --git a/include/elf/msp430.h b/include/elf/msp430.h
deleted file mode 100644
index ff16ba2..0000000
--- a/include/elf/msp430.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* MSP430 ELF support for BFD.
-   Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
-   Contributed by Dmitry Diky <diwil@mail.ru>
-
-   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.,
-   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_MSP430_H
-#define _ELF_MSP430_H
-
-#include "elf/reloc-macros.h"
-
-/* Processor specific flags for the ELF header e_flags field.  */
-#define EF_MSP430_MACH 		0xff
-
-#define E_MSP430_MACH_MSP430x11  11
-#define E_MSP430_MACH_MSP430x11x1  110
-#define E_MSP430_MACH_MSP430x12  12
-#define E_MSP430_MACH_MSP430x13  13
-#define E_MSP430_MACH_MSP430x14  14
-#define E_MSP430_MACH_MSP430x15  15
-#define E_MSP430_MACH_MSP430x16  16
-#define E_MSP430_MACH_MSP430x31  31
-#define E_MSP430_MACH_MSP430x32  32
-#define E_MSP430_MACH_MSP430x33  33
-#define E_MSP430_MACH_MSP430x41  41
-#define E_MSP430_MACH_MSP430x42  42
-#define E_MSP430_MACH_MSP430x43  43
-#define E_MSP430_MACH_MSP430x44  44
-
-/* Relocations.  */
-START_RELOC_NUMBERS (elf_msp430_reloc_type)
-     RELOC_NUMBER (R_MSP430_NONE,		0)
-     RELOC_NUMBER (R_MSP430_32,			1)
-     RELOC_NUMBER (R_MSP430_10_PCREL,		2)
-     RELOC_NUMBER (R_MSP430_16, 		3)
-     RELOC_NUMBER (R_MSP430_16_PCREL, 		4)
-     RELOC_NUMBER (R_MSP430_16_BYTE, 		5)
-     RELOC_NUMBER (R_MSP430_16_PCREL_BYTE, 	6)
-     RELOC_NUMBER (R_MSP430_2X_PCREL,		7)
-     RELOC_NUMBER (R_MSP430_RL_PCREL,		8)
-
-END_RELOC_NUMBERS (R_MSP430_max)
-
-#endif /* _ELF_MSP430_H */
diff --git a/include/elf/mt.h b/include/elf/mt.h
deleted file mode 100644
index 974c2de..0000000
--- a/include/elf/mt.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* MS1  ELF support for BFD.
-   Copyright (C) 2000, 2005 Free Software Foundation, Inc.
-
-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.,
-59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-#ifndef _ELF_MT_H
-#define _ELF_MT_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-START_RELOC_NUMBERS (elf_mt_reloc_type)
-  RELOC_NUMBER (R_MT_NONE, 0)
-  RELOC_NUMBER (R_MT_16, 1)
-  RELOC_NUMBER (R_MT_32, 2)
-  RELOC_NUMBER (R_MT_32_PCREL, 3)
-  RELOC_NUMBER (R_MT_PC16, 4)
-  RELOC_NUMBER (R_MT_HI16, 5)
-  RELOC_NUMBER (R_MT_LO16, 6)
-END_RELOC_NUMBERS(R_MT_max)
-
-#define EF_MT_CPU_MRISC		0x00000001	/* default */
-#define EF_MT_CPU_MRISC2	0x00000002	/* MRISC2 */
-#define EF_MT_CPU_MS2		0x00000003      /* MS2 */
-#define EF_MT_CPU_MASK		0x00000003	/* specific cpu bits */
-#define EF_MT_ALL_FLAGS		(EF_MT_CPU_MASK)
-
-/* The location of the memory mapped hardware stack.  */
-#define MT_STACK_VALUE 0x0f000000
-#define MT_STACK_SIZE  0x20
-
-#endif /* _ELF_MT_H */
diff --git a/include/elf/openrisc.h b/include/elf/openrisc.h
deleted file mode 100644
index 326834e..0000000
--- a/include/elf/openrisc.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* OpenRISC ELF support for BFD.
-   Copyright 2001 Free Software Foundation, Inc.
-
-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.,
-51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_OPENRISC_H
-#define _ELF_OPENRISC_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-START_RELOC_NUMBERS (elf_openrisc_reloc_type)
-  RELOC_NUMBER (R_OPENRISC_NONE, 0)
-  RELOC_NUMBER (R_OPENRISC_INSN_REL_26, 1)
-  RELOC_NUMBER (R_OPENRISC_INSN_ABS_26, 2)
-  RELOC_NUMBER (R_OPENRISC_LO_16_IN_INSN, 3)
-  RELOC_NUMBER (R_OPENRISC_HI_16_IN_INSN, 4)
-  RELOC_NUMBER (R_OPENRISC_8, 5)
-  RELOC_NUMBER (R_OPENRISC_16, 6)
-  RELOC_NUMBER (R_OPENRISC_32, 7)
-  RELOC_NUMBER (R_OPENRISC_GNU_VTINHERIT, 8)
-  RELOC_NUMBER (R_OPENRISC_GNU_VTENTRY, 9)
-END_RELOC_NUMBERS (R_OPENRISC_max)
-
-#endif /* _ELF_OPENRISC_H */
diff --git a/include/elf/or32.h b/include/elf/or32.h
deleted file mode 100644
index bc308e7..0000000
--- a/include/elf/or32.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* OR1K ELF support for BFD. Derived from ppc.h.
-   Copyright (C) 2002 Free Software Foundation, Inc.
-   Contributed by Ivan Guzvinec  <ivang@opencores.org>
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_OR1K_H
-#define _ELF_OR1K_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-START_RELOC_NUMBERS (elf_or32_reloc_type)
-  RELOC_NUMBER (R_OR32_NONE, 0)
-  RELOC_NUMBER (R_OR32_32, 1)
-  RELOC_NUMBER (R_OR32_16, 2)
-  RELOC_NUMBER (R_OR32_8, 3)
-  RELOC_NUMBER (R_OR32_CONST, 4)
-  RELOC_NUMBER (R_OR32_CONSTH, 5)
-  RELOC_NUMBER (R_OR32_JUMPTARG, 6)
-  RELOC_NUMBER (R_OR32_GNU_VTENTRY, 7)
-  RELOC_NUMBER (R_OR32_GNU_VTINHERIT, 8)
-END_RELOC_NUMBERS (R_OR32_max)
-
-/* Four bit OR32 machine type field.  */
-#define EF_OR32_MACH             0x0000000f
-
-/* Various CPU types.  */
-#define E_OR32_MACH_BASE         0x00000000
-#define E_OR32_MACH_UNUSED1      0x00000001
-#define E_OR32_MACH_UNUSED2      0x00000002
-#define E_OR32_MACH_UNUSED4      0x00000003
-
-/* Processor specific section headers, sh_type field */
-#define SHT_ORDERED		SHT_HIPROC	/* Link editor is to sort the \
-						   entries in this section \
-						   based on the address \
-						   specified in the associated \
-						   symbol table entry.  */
-
-/* Processor specific section flags, sh_flags field */
-#define SHF_EXCLUDE		0x80000000	/* Link editor is to exclude \
-						   this section from executable \
-						   and shared objects that it \
-						   builds when those objects \
-						   are not to be furhter \
-						   relocated.  */
-#endif /* _ELF_OR1K_H */
diff --git a/include/elf/pj.h b/include/elf/pj.h
deleted file mode 100644
index 45cc7b3..0000000
--- a/include/elf/pj.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* picoJava ELF support for BFD.
-   Copyright 1999, 2000 Free Software Foundation, Inc.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_PJ_H
-#define _ELF_PJ_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-
-START_RELOC_NUMBERS (elf_pj_reloc_type)
-  RELOC_NUMBER (R_PJ_NONE, 0)
-  RELOC_NUMBER (R_PJ_DATA_DIR32, 1)
-  RELOC_NUMBER (R_PJ_CODE_REL32, 2)
-  RELOC_NUMBER (R_PJ_CODE_REL16, 3) 
-  RELOC_NUMBER (R_PJ_CODE_DIR32, 6)
-  RELOC_NUMBER (R_PJ_CODE_DIR16, 7)  
-  RELOC_NUMBER (R_PJ_CODE_LO16, 13)
-  RELOC_NUMBER (R_PJ_CODE_HI16, 14)
-  RELOC_NUMBER (R_PJ_GNU_VTINHERIT, 15)
-  RELOC_NUMBER (R_PJ_GNU_VTENTRY, 16)
-END_RELOC_NUMBERS (R_PJ_max)
-
-#define EF_PICOJAVA_ARCH     0x0000000f
-#define EF_PICOJAVA_NEWCALLS 0x00000010
-#define EF_PICOJAVA_GNUCALLS 0x00000020  /* The (currently) non standard GNU calling convention */
-
-#endif
diff --git a/include/elf/ppc.h b/include/elf/ppc.h
deleted file mode 100644
index ca50352..0000000
--- a/include/elf/ppc.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/* PPC ELF support for BFD.
-   Copyright 1995, 1996, 1998, 2000, 2001, 2002, 2003, 2005
-   Free Software Foundation, Inc.
-
-   By Michael Meissner, Cygnus Support, <meissner@cygnus.com>, from information
-   in the System V Application Binary Interface, PowerPC Processor Supplement
-   and the PowerPC Embedded Application Binary Interface (eabi).
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* This file holds definitions specific to the PPC ELF ABI.  Note
-   that most of this is not actually implemented by BFD.  */
-
-#ifndef _ELF_PPC_H
-#define _ELF_PPC_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-START_RELOC_NUMBERS (elf_ppc_reloc_type)
-  RELOC_NUMBER (R_PPC_NONE,		  0)
-  RELOC_NUMBER (R_PPC_ADDR32,		  1)
-  RELOC_NUMBER (R_PPC_ADDR24,		  2)
-  RELOC_NUMBER (R_PPC_ADDR16,		  3)
-  RELOC_NUMBER (R_PPC_ADDR16_LO,	  4)
-  RELOC_NUMBER (R_PPC_ADDR16_HI,	  5)
-  RELOC_NUMBER (R_PPC_ADDR16_HA,	  6)
-  RELOC_NUMBER (R_PPC_ADDR14,		  7)
-  RELOC_NUMBER (R_PPC_ADDR14_BRTAKEN,	  8)
-  RELOC_NUMBER (R_PPC_ADDR14_BRNTAKEN,	  9)
-  RELOC_NUMBER (R_PPC_REL24,		 10)
-  RELOC_NUMBER (R_PPC_REL14,		 11)
-  RELOC_NUMBER (R_PPC_REL14_BRTAKEN,	 12)
-  RELOC_NUMBER (R_PPC_REL14_BRNTAKEN,	 13)
-  RELOC_NUMBER (R_PPC_GOT16,		 14)
-  RELOC_NUMBER (R_PPC_GOT16_LO,		 15)
-  RELOC_NUMBER (R_PPC_GOT16_HI,		 16)
-  RELOC_NUMBER (R_PPC_GOT16_HA,		 17)
-  RELOC_NUMBER (R_PPC_PLTREL24,		 18)
-  RELOC_NUMBER (R_PPC_COPY,		 19)
-  RELOC_NUMBER (R_PPC_GLOB_DAT,		 20)
-  RELOC_NUMBER (R_PPC_JMP_SLOT,		 21)
-  RELOC_NUMBER (R_PPC_RELATIVE,		 22)
-  RELOC_NUMBER (R_PPC_LOCAL24PC,	 23)
-  RELOC_NUMBER (R_PPC_UADDR32,		 24)
-  RELOC_NUMBER (R_PPC_UADDR16,		 25)
-  RELOC_NUMBER (R_PPC_REL32,		 26)
-  RELOC_NUMBER (R_PPC_PLT32,		 27)
-  RELOC_NUMBER (R_PPC_PLTREL32,		 28)
-  RELOC_NUMBER (R_PPC_PLT16_LO,		 29)
-  RELOC_NUMBER (R_PPC_PLT16_HI,		 30)
-  RELOC_NUMBER (R_PPC_PLT16_HA,		 31)
-  RELOC_NUMBER (R_PPC_SDAREL16,		 32)
-  RELOC_NUMBER (R_PPC_SECTOFF,		 33)
-  RELOC_NUMBER (R_PPC_SECTOFF_LO,	 34)
-  RELOC_NUMBER (R_PPC_SECTOFF_HI,	 35)
-  RELOC_NUMBER (R_PPC_SECTOFF_HA,	 36)
-  RELOC_NUMBER (R_PPC_ADDR30,		 37)
-
-  /* Relocs added to support TLS.  */
-  RELOC_NUMBER (R_PPC_TLS,		 67)
-  RELOC_NUMBER (R_PPC_DTPMOD32,		 68)
-  RELOC_NUMBER (R_PPC_TPREL16,		 69)
-  RELOC_NUMBER (R_PPC_TPREL16_LO,	 70)
-  RELOC_NUMBER (R_PPC_TPREL16_HI,	 71)
-  RELOC_NUMBER (R_PPC_TPREL16_HA,	 72)
-  RELOC_NUMBER (R_PPC_TPREL32,		 73)
-  RELOC_NUMBER (R_PPC_DTPREL16,		 74)
-  RELOC_NUMBER (R_PPC_DTPREL16_LO,	 75)
-  RELOC_NUMBER (R_PPC_DTPREL16_HI,	 76)
-  RELOC_NUMBER (R_PPC_DTPREL16_HA,	 77)
-  RELOC_NUMBER (R_PPC_DTPREL32,		 78)
-  RELOC_NUMBER (R_PPC_GOT_TLSGD16,	 79)
-  RELOC_NUMBER (R_PPC_GOT_TLSGD16_LO,	 80)
-  RELOC_NUMBER (R_PPC_GOT_TLSGD16_HI,	 81)
-  RELOC_NUMBER (R_PPC_GOT_TLSGD16_HA,	 82)
-  RELOC_NUMBER (R_PPC_GOT_TLSLD16,	 83)
-  RELOC_NUMBER (R_PPC_GOT_TLSLD16_LO,	 84)
-  RELOC_NUMBER (R_PPC_GOT_TLSLD16_HI,	 85)
-  RELOC_NUMBER (R_PPC_GOT_TLSLD16_HA,	 86)
-  RELOC_NUMBER (R_PPC_GOT_TPREL16,	 87)
-  RELOC_NUMBER (R_PPC_GOT_TPREL16_LO,	 88)
-  RELOC_NUMBER (R_PPC_GOT_TPREL16_HI,	 89)
-  RELOC_NUMBER (R_PPC_GOT_TPREL16_HA,	 90)
-  RELOC_NUMBER (R_PPC_GOT_DTPREL16,	 91)
-  RELOC_NUMBER (R_PPC_GOT_DTPREL16_LO,	 92)
-  RELOC_NUMBER (R_PPC_GOT_DTPREL16_HI,	 93)
-  RELOC_NUMBER (R_PPC_GOT_DTPREL16_HA,	 94)
-
-/* The remaining relocs are from the Embedded ELF ABI, and are not
-   in the SVR4 ELF ABI.  */
-  RELOC_NUMBER (R_PPC_EMB_NADDR32,	101)
-  RELOC_NUMBER (R_PPC_EMB_NADDR16,	102)
-  RELOC_NUMBER (R_PPC_EMB_NADDR16_LO,	103)
-  RELOC_NUMBER (R_PPC_EMB_NADDR16_HI,	104)
-  RELOC_NUMBER (R_PPC_EMB_NADDR16_HA,	105)
-  RELOC_NUMBER (R_PPC_EMB_SDAI16,	106)
-  RELOC_NUMBER (R_PPC_EMB_SDA2I16,	107)
-  RELOC_NUMBER (R_PPC_EMB_SDA2REL,	108)
-  RELOC_NUMBER (R_PPC_EMB_SDA21,	109)
-  RELOC_NUMBER (R_PPC_EMB_MRKREF,	110)
-  RELOC_NUMBER (R_PPC_EMB_RELSEC16,	111)
-  RELOC_NUMBER (R_PPC_EMB_RELST_LO,	112)
-  RELOC_NUMBER (R_PPC_EMB_RELST_HI,	113)
-  RELOC_NUMBER (R_PPC_EMB_RELST_HA,	114)
-  RELOC_NUMBER (R_PPC_EMB_BIT_FLD,	115)
-  RELOC_NUMBER (R_PPC_EMB_RELSDA,	116)
-
-/* Fake relocations for branch stubs, only used internally by ld.  */
-#define R_PPC_RELAX32 245
-#define R_PPC_RELAX32PC 246
-#define R_PPC_RELAX32_PLT 247
-#define R_PPC_RELAX32PC_PLT 248
-
-/* These are GNU extensions used in PIC code sequences.  */
-  RELOC_NUMBER (R_PPC_REL16,		249)
-  RELOC_NUMBER (R_PPC_REL16_LO,		250)
-  RELOC_NUMBER (R_PPC_REL16_HI,		251)
-  RELOC_NUMBER (R_PPC_REL16_HA,		252)
-
-/* These are GNU extensions to enable C++ vtable garbage collection.  */
-  RELOC_NUMBER (R_PPC_GNU_VTINHERIT,	253)
-  RELOC_NUMBER (R_PPC_GNU_VTENTRY,	254)
-
-/* This is a phony reloc to handle any old fashioned TOC16 references
-   that may still be in object files.  */
-  RELOC_NUMBER (R_PPC_TOC16,		255)
-
-END_RELOC_NUMBERS (R_PPC_max)
-
-#define IS_PPC_TLS_RELOC(R) \
-  ((R) >= R_PPC_TLS && (R) <= R_PPC_GOT_DTPREL16_HA)
-
-/* Specify the value of _GLOBAL_OFFSET_TABLE_.  */
-#define DT_PPC_GOT		DT_LOPROC
-
-/* Processor specific flags for the ELF header e_flags field.  */
-
-#define	EF_PPC_EMB		0x80000000	/* PowerPC embedded flag.  */
-
-#define	EF_PPC_RELOCATABLE	0x00010000	/* PowerPC -mrelocatable flag.  */
-#define	EF_PPC_RELOCATABLE_LIB	0x00008000	/* PowerPC -mrelocatable-lib flag.  */
-
-/* Processor specific section headers, sh_type field.  */
-
-#define SHT_ORDERED		SHT_HIPROC	/* Link editor is to sort the \
-						   entries in this section \
-						   based on the address \
-						   specified in the associated \
-						   symbol table entry.  */
-
-/* Processor specific section flags, sh_flags field.  */
-
-#define SHF_EXCLUDE		0x80000000	/* Link editor is to exclude \
-						   this section from executable \
-						   and shared objects that it \
-						   builds when those objects \
-						   are not to be furhter \
-						   relocated.  */
-#endif /* _ELF_PPC_H */
diff --git a/include/elf/ppc64.h b/include/elf/ppc64.h
deleted file mode 100644
index 4aab2ec..0000000
--- a/include/elf/ppc64.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/* PPC64 ELF support for BFD.
-   Copyright 2003 Free Software Foundation, Inc.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_PPC64_H
-#define _ELF_PPC64_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-START_RELOC_NUMBERS (elf_ppc64_reloc_type)
-  RELOC_NUMBER (R_PPC64_NONE,		     0)
-  RELOC_NUMBER (R_PPC64_ADDR32,		     1)
-  RELOC_NUMBER (R_PPC64_ADDR24,		     2)
-  RELOC_NUMBER (R_PPC64_ADDR16,		     3)
-  RELOC_NUMBER (R_PPC64_ADDR16_LO,	     4)
-  RELOC_NUMBER (R_PPC64_ADDR16_HI,	     5)
-  RELOC_NUMBER (R_PPC64_ADDR16_HA,	     6)
-  RELOC_NUMBER (R_PPC64_ADDR14,		     7)
-  RELOC_NUMBER (R_PPC64_ADDR14_BRTAKEN,	     8)
-  RELOC_NUMBER (R_PPC64_ADDR14_BRNTAKEN,     9)
-  RELOC_NUMBER (R_PPC64_REL24,		    10)
-  RELOC_NUMBER (R_PPC64_REL14,		    11)
-  RELOC_NUMBER (R_PPC64_REL14_BRTAKEN,	    12)
-  RELOC_NUMBER (R_PPC64_REL14_BRNTAKEN,	    13)
-  RELOC_NUMBER (R_PPC64_GOT16,		    14)
-  RELOC_NUMBER (R_PPC64_GOT16_LO,	    15)
-  RELOC_NUMBER (R_PPC64_GOT16_HI,	    16)
-  RELOC_NUMBER (R_PPC64_GOT16_HA,	    17)
-  /* 18 unused.  32-bit reloc is R_PPC_PLTREL24.  */
-  RELOC_NUMBER (R_PPC64_COPY,		    19)
-  RELOC_NUMBER (R_PPC64_GLOB_DAT,	    20)
-  RELOC_NUMBER (R_PPC64_JMP_SLOT,	    21)
-  RELOC_NUMBER (R_PPC64_RELATIVE,	    22)
-  /* 23 unused.  32-bit reloc is R_PPC_LOCAL24PC.  */
-  RELOC_NUMBER (R_PPC64_UADDR32,	    24)
-  RELOC_NUMBER (R_PPC64_UADDR16,	    25)
-  RELOC_NUMBER (R_PPC64_REL32,		    26)
-  RELOC_NUMBER (R_PPC64_PLT32,		    27)
-  RELOC_NUMBER (R_PPC64_PLTREL32,	    28)
-  RELOC_NUMBER (R_PPC64_PLT16_LO,	    29)
-  RELOC_NUMBER (R_PPC64_PLT16_HI,	    30)
-  RELOC_NUMBER (R_PPC64_PLT16_HA,	    31)
-  /* 32 unused.  32-bit reloc is R_PPC_SDAREL16.  */
-  RELOC_NUMBER (R_PPC64_SECTOFF,	    33)
-  RELOC_NUMBER (R_PPC64_SECTOFF_LO,	    34)
-  RELOC_NUMBER (R_PPC64_SECTOFF_HI,	    35)
-  RELOC_NUMBER (R_PPC64_SECTOFF_HA,	    36)
-  RELOC_NUMBER (R_PPC64_REL30,		    37)
-  RELOC_NUMBER (R_PPC64_ADDR64,		    38)
-  RELOC_NUMBER (R_PPC64_ADDR16_HIGHER,	    39)
-  RELOC_NUMBER (R_PPC64_ADDR16_HIGHERA,	    40)
-  RELOC_NUMBER (R_PPC64_ADDR16_HIGHEST,	    41)
-  RELOC_NUMBER (R_PPC64_ADDR16_HIGHESTA,    42)
-  RELOC_NUMBER (R_PPC64_UADDR64,	    43)
-  RELOC_NUMBER (R_PPC64_REL64,		    44)
-  RELOC_NUMBER (R_PPC64_PLT64,		    45)
-  RELOC_NUMBER (R_PPC64_PLTREL64,	    46)
-  RELOC_NUMBER (R_PPC64_TOC16,		    47)
-  RELOC_NUMBER (R_PPC64_TOC16_LO,	    48)
-  RELOC_NUMBER (R_PPC64_TOC16_HI,	    49)
-  RELOC_NUMBER (R_PPC64_TOC16_HA,	    50)
-  RELOC_NUMBER (R_PPC64_TOC,		    51)
-  RELOC_NUMBER (R_PPC64_PLTGOT16,	    52)
-  RELOC_NUMBER (R_PPC64_PLTGOT16_LO,	    53)
-  RELOC_NUMBER (R_PPC64_PLTGOT16_HI,	    54)
-  RELOC_NUMBER (R_PPC64_PLTGOT16_HA,	    55)
-
-  /* The following relocs were added in the 64-bit PowerPC ELF ABI
-     revision 1.2. */
-  RELOC_NUMBER (R_PPC64_ADDR16_DS,	    56)
-  RELOC_NUMBER (R_PPC64_ADDR16_LO_DS,	    57)
-  RELOC_NUMBER (R_PPC64_GOT16_DS,	    58)
-  RELOC_NUMBER (R_PPC64_GOT16_LO_DS,	    59)
-  RELOC_NUMBER (R_PPC64_PLT16_LO_DS,	    60)
-  RELOC_NUMBER (R_PPC64_SECTOFF_DS,	    61)
-  RELOC_NUMBER (R_PPC64_SECTOFF_LO_DS,	    62)
-  RELOC_NUMBER (R_PPC64_TOC16_DS,	    63)
-  RELOC_NUMBER (R_PPC64_TOC16_LO_DS,	    64)
-  RELOC_NUMBER (R_PPC64_PLTGOT16_DS,	    65)
-  RELOC_NUMBER (R_PPC64_PLTGOT16_LO_DS,	    66)
-
-  /* Relocs added to support TLS.  PowerPC64 ELF ABI revision 1.5.  */
-  RELOC_NUMBER (R_PPC64_TLS,		    67)
-  RELOC_NUMBER (R_PPC64_DTPMOD64,	    68)
-  RELOC_NUMBER (R_PPC64_TPREL16,	    69)
-  RELOC_NUMBER (R_PPC64_TPREL16_LO,	    70)
-  RELOC_NUMBER (R_PPC64_TPREL16_HI,	    71)
-  RELOC_NUMBER (R_PPC64_TPREL16_HA,	    72)
-  RELOC_NUMBER (R_PPC64_TPREL64,	    73)
-  RELOC_NUMBER (R_PPC64_DTPREL16,	    74)
-  RELOC_NUMBER (R_PPC64_DTPREL16_LO,	    75)
-  RELOC_NUMBER (R_PPC64_DTPREL16_HI,	    76)
-  RELOC_NUMBER (R_PPC64_DTPREL16_HA,	    77)
-  RELOC_NUMBER (R_PPC64_DTPREL64,	    78)
-  RELOC_NUMBER (R_PPC64_GOT_TLSGD16,	    79)
-  RELOC_NUMBER (R_PPC64_GOT_TLSGD16_LO,	    80)
-  RELOC_NUMBER (R_PPC64_GOT_TLSGD16_HI,	    81)
-  RELOC_NUMBER (R_PPC64_GOT_TLSGD16_HA,	    82)
-  RELOC_NUMBER (R_PPC64_GOT_TLSLD16,	    83)
-  RELOC_NUMBER (R_PPC64_GOT_TLSLD16_LO,	    84)
-  RELOC_NUMBER (R_PPC64_GOT_TLSLD16_HI,	    85)
-  RELOC_NUMBER (R_PPC64_GOT_TLSLD16_HA,	    86)
-  RELOC_NUMBER (R_PPC64_GOT_TPREL16_DS,	    87)
-  RELOC_NUMBER (R_PPC64_GOT_TPREL16_LO_DS,  88)
-  RELOC_NUMBER (R_PPC64_GOT_TPREL16_HI,	    89)
-  RELOC_NUMBER (R_PPC64_GOT_TPREL16_HA,	    90)
-  RELOC_NUMBER (R_PPC64_GOT_DTPREL16_DS,    91)
-  RELOC_NUMBER (R_PPC64_GOT_DTPREL16_LO_DS, 92)
-  RELOC_NUMBER (R_PPC64_GOT_DTPREL16_HI,    93)
-  RELOC_NUMBER (R_PPC64_GOT_DTPREL16_HA,    94)
-  RELOC_NUMBER (R_PPC64_TPREL16_DS,	    95)
-  RELOC_NUMBER (R_PPC64_TPREL16_LO_DS,	    96)
-  RELOC_NUMBER (R_PPC64_TPREL16_HIGHER,	    97)
-  RELOC_NUMBER (R_PPC64_TPREL16_HIGHERA,    98)
-  RELOC_NUMBER (R_PPC64_TPREL16_HIGHEST,    99)
-  RELOC_NUMBER (R_PPC64_TPREL16_HIGHESTA,  100)
-  RELOC_NUMBER (R_PPC64_DTPREL16_DS,	   101)
-  RELOC_NUMBER (R_PPC64_DTPREL16_LO_DS,	   102)
-  RELOC_NUMBER (R_PPC64_DTPREL16_HIGHER,   103)
-  RELOC_NUMBER (R_PPC64_DTPREL16_HIGHERA,  104)
-  RELOC_NUMBER (R_PPC64_DTPREL16_HIGHEST,  105)
-  RELOC_NUMBER (R_PPC64_DTPREL16_HIGHESTA, 106)
-
-  /* These are GNU extensions to enable C++ vtable garbage collection.  */
-  RELOC_NUMBER (R_PPC64_GNU_VTINHERIT,	   253)
-  RELOC_NUMBER (R_PPC64_GNU_VTENTRY,	   254)
-
-END_RELOC_NUMBERS (R_PPC64_max)
-
-#define IS_PPC64_TLS_RELOC(R) \
-  ((R) >= R_PPC64_TLS && (R) <= R_PPC64_DTPREL16_HIGHESTA)
-
-/* Specify the start of the .glink section.  */
-#define DT_PPC64_GLINK		DT_LOPROC
-
-/* Specify the start and size of the .opd section.  */
-#define DT_PPC64_OPD		(DT_LOPROC + 1)
-#define DT_PPC64_OPDSZ		(DT_LOPROC + 2)
-
-#endif /* _ELF_PPC64_H */
diff --git a/include/elf/reloc-macros.h b/include/elf/reloc-macros.h
deleted file mode 100644
index 51e86b5..0000000
--- a/include/elf/reloc-macros.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/* Generic relocation support for BFD.
-   Copyright 1998, 1999, 2000, 2003 Free Software Foundation, Inc.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* These macros are used by the various *.h target specific header
-   files to either generate an enum containing all the known relocations
-   for that target, or if RELOC_MACROS_GEN_FUNC is defined, a recognition
-   function is generated instead.  (This is used by binutils/readelf.c)
-
-   Given a header file like this:
-
-   	START_RELOC_NUMBERS (foo)
-   	    RELOC_NUMBER (R_foo_NONE,    0)
-   	    RELOC_NUMBER (R_foo_32,      1)
-   	    EMPTY_RELOC  (R_foo_good)
-   	    FAKE_RELOC   (R_foo_illegal, 9)
-   	END_RELOC_NUMBERS (R_foo_count)
-
-   Then the following will be produced by default (ie if
-   RELOC_MACROS_GEN_FUNC is *not* defined).
-
-   	enum foo
-	{
-   	  R_foo_NONE = 0,
-   	  R_foo_32 = 1,
-	  R_foo_good,
-   	  R_foo_illegal = 9,
-   	  R_foo_count
-   	};
-
-   If RELOC_MACROS_GEN_FUNC *is* defined, then instead the
-   following function will be generated:
-
-   	static const char *foo (unsigned long rtype);
-   	static const char *
-   	foo (unsigned long rtype)
-   	{
-   	   switch (rtype)
-   	   {
-   	   case 0: return "R_foo_NONE";
-   	   case 1: return "R_foo_32";
-   	   default: return NULL;
-   	   }
-   	}
-   */
-
-#ifndef _RELOC_MACROS_H
-#define _RELOC_MACROS_H
-
-#ifdef RELOC_MACROS_GEN_FUNC
-
-/* This function takes the relocation number and returns the
-   string version name of the name of that relocation.  If
-   the relocation is not recognised, NULL is returned.  */
-
-#define START_RELOC_NUMBERS(name)   				\
-static const char *name (unsigned long rtype);			\
-static const char *						\
-name (unsigned long rtype)					\
-{								\
-  switch (rtype)						\
-    {
-
-#define RELOC_NUMBER(name, number) \
-    case number: return #name;
-
-#define FAKE_RELOC(name, number)
-#define EMPTY_RELOC(name)
-
-#define END_RELOC_NUMBERS(name)	\
-    default: return NULL;	\
-    }				\
-}
-
-
-#else /* Default to generating enum.  */
-
-#define START_RELOC_NUMBERS(name)   enum name {
-#define RELOC_NUMBER(name, number)  name = number,
-#define FAKE_RELOC(name, number)    name = number,
-#define EMPTY_RELOC(name)           name,
-#define END_RELOC_NUMBERS(name)     name };
-
-#endif
-
-#endif /* RELOC_MACROS_H */
diff --git a/include/elf/s390.h b/include/elf/s390.h
deleted file mode 100644
index c62b110..0000000
--- a/include/elf/s390.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* 390 ELF support for BFD.
-   Copyright 2000, 2001, 2003 Free Software Foundation, Inc.
-   Contributed by Carl B. Pedersen and Martin Schwidefsky.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA
-   02110-1301, USA.  */
-
-#ifndef _ELF_390_H
-#define _ELF_390_H
-
-/* Processor specific flags for the ELF header e_flags field.  */
-
-/* Symbol types.  */
-
-#define STACK_REG		15		/* Global Stack reg */
-#define BACKL_REG		14		/* Global Backlink reg */
-#define BASE_REG		13		/* Global Base reg */
-#define GOT_REG 		12		/* Holds addr of GOT */
-
-#include "elf/reloc-macros.h"
-
-/* Relocation types.  */
-
-START_RELOC_NUMBERS (elf_s390_reloc_type)
-    RELOC_NUMBER (R_390_NONE, 0)	/* No reloc.  */
-    RELOC_NUMBER (R_390_8, 1)		/* Direct 8 bit.  */
-    RELOC_NUMBER (R_390_12, 2)		/* Direct 12 bit.  */
-    RELOC_NUMBER (R_390_16, 3)		/* Direct 16 bit.  */
-    RELOC_NUMBER (R_390_32, 4)		/* Direct 32 bit.  */
-    RELOC_NUMBER (R_390_PC32, 5)	/* PC relative 32 bit.  */
-    RELOC_NUMBER (R_390_GOT12, 6)	/* 12 bit GOT offset.  */
-    RELOC_NUMBER (R_390_GOT32, 7)	/* 32 bit GOT offset.  */
-    RELOC_NUMBER (R_390_PLT32, 8)	/* 32 bit PC relative PLT address.  */
-    RELOC_NUMBER (R_390_COPY, 9)	/* Copy symbol at runtime.  */
-    RELOC_NUMBER (R_390_GLOB_DAT, 10)	/* Create GOT entry.  */
-    RELOC_NUMBER (R_390_JMP_SLOT, 11)	/* Create PLT entry.  */
-    RELOC_NUMBER (R_390_RELATIVE, 12)	/* Adjust by program base.  */
-    RELOC_NUMBER (R_390_GOTOFF32, 13)	/* 32 bit offset to GOT.  */
-    RELOC_NUMBER (R_390_GOTPC, 14)	/* 32 bit PC relative offset to GOT.  */
-    RELOC_NUMBER (R_390_GOT16, 15)	/* 16 bit GOT offset.  */
-    RELOC_NUMBER (R_390_PC16, 16)	/* PC relative 16 bit.  */
-    RELOC_NUMBER (R_390_PC16DBL, 17)	/* PC relative 16 bit shifted by 1.  */
-    RELOC_NUMBER (R_390_PLT16DBL, 18)	/* 16 bit PC rel. PLT shifted by 1.  */
-    RELOC_NUMBER (R_390_PC32DBL, 19)	/* PC relative 32 bit shifted by 1.  */
-    RELOC_NUMBER (R_390_PLT32DBL, 20)	/* 32 bit PC rel. PLT shifted by 1.  */
-    RELOC_NUMBER (R_390_GOTPCDBL, 21)	/* 32 bit PC rel. GOT shifted by 1.  */
-    RELOC_NUMBER (R_390_64, 22)		/* Direct 64 bit.  */
-    RELOC_NUMBER (R_390_PC64, 23)	/* PC relative 64 bit.  */
-    RELOC_NUMBER (R_390_GOT64, 24)	/* 64 bit GOT offset.  */
-    RELOC_NUMBER (R_390_PLT64, 25)	/* 64 bit PC relative PLT address.  */
-    RELOC_NUMBER (R_390_GOTENT, 26)	/* 32 bit PC rel. to GOT entry >> 1. */
-    RELOC_NUMBER (R_390_GOTOFF16, 27)   /* 16 bit offset to GOT. */
-    RELOC_NUMBER (R_390_GOTOFF64, 28)   /* 64 bit offset to GOT. */
-    RELOC_NUMBER (R_390_GOTPLT12, 29)   /* 12 bit offset to jump slot.  */
-    RELOC_NUMBER (R_390_GOTPLT16, 30)   /* 16 bit offset to jump slot.  */
-    RELOC_NUMBER (R_390_GOTPLT32, 31)   /* 32 bit offset to jump slot.  */
-    RELOC_NUMBER (R_390_GOTPLT64, 32)   /* 64 bit offset to jump slot.  */
-    RELOC_NUMBER (R_390_GOTPLTENT, 33)  /* 32 bit rel. offset to jump slot.  */
-    RELOC_NUMBER (R_390_PLTOFF16, 34)   /* 16 bit offset from GOT to PLT. */
-    RELOC_NUMBER (R_390_PLTOFF32, 35)   /* 32 bit offset from GOT to PLT. */
-    RELOC_NUMBER (R_390_PLTOFF64, 36)   /* 16 bit offset from GOT to PLT. */
-    RELOC_NUMBER (R_390_TLS_LOAD, 37)	/* Tag for load insn in TLS code. */
-    RELOC_NUMBER (R_390_TLS_GDCALL, 38)	/* Tag for function call in general
-					   dynamic TLS code.  */
-    RELOC_NUMBER (R_390_TLS_LDCALL, 39)	/* Tag for function call in local
-					   dynamic TLS code.  */
-    RELOC_NUMBER (R_390_TLS_GD32, 40)	/* Direct 32 bit for general dynamic
-					   thread local data.  */
-    RELOC_NUMBER (R_390_TLS_GD64, 41)	/* Direct 64 bit for general dynamic
-					   thread local data.  */
-    RELOC_NUMBER (R_390_TLS_GOTIE12, 42)/* 12 bit GOT offset for static TLS
-					   block offset.  */
-    RELOC_NUMBER (R_390_TLS_GOTIE32, 43)/* 32 bit GOT offset for static TLS
-					   block offset.  */
-    RELOC_NUMBER (R_390_TLS_GOTIE64, 44)/* 64 bit GOT offset for static TLS
-					   block offset.  */
-    RELOC_NUMBER (R_390_TLS_LDM32, 45)	/* Direct 32 bit for local dynamic
-					   thread local data in LD code.  */
-    RELOC_NUMBER (R_390_TLS_LDM64, 46)	/* Direct 64 bit for local dynamic
-					   thread local data in LD code.  */
-    RELOC_NUMBER (R_390_TLS_IE32, 47)	/* 32 bit address of GOT entry for
-					   negated static TLS block offset.  */
-    RELOC_NUMBER (R_390_TLS_IE64, 48)	/* 64 bit address of GOT entry for
-					   negated static TLS block offset.  */
-    RELOC_NUMBER (R_390_TLS_IEENT, 49)	/* 32 bit rel. offset to GOT entry for
-					   negated static TLS block offset.  */
-    RELOC_NUMBER (R_390_TLS_LE32, 50)	/* 32 bit negated offset relative to
-					   static TLS block.  */
-    RELOC_NUMBER (R_390_TLS_LE64, 51)	/* 64 bit negated offset relative to
-					   static TLS block.  */
-    RELOC_NUMBER (R_390_TLS_LDO32, 52)	/* 32 bit offset relative to TLS
-					   block.  */
-    RELOC_NUMBER (R_390_TLS_LDO64, 53)	/* 64 bit offset relative to TLS
-					   block.  */
-    RELOC_NUMBER (R_390_TLS_DTPMOD, 54)	/* ID of module containing symbol.  */
-    RELOC_NUMBER (R_390_TLS_DTPOFF, 55)	/* Offset in TLS block.  */
-    RELOC_NUMBER (R_390_TLS_TPOFF, 56)	/* Negate offset in static TLS
-					   block.  */
-    RELOC_NUMBER (R_390_20, 57)		/* Direct 20 bit.  */
-    RELOC_NUMBER (R_390_GOT20, 58)	/* 20 bit GOT offset.  */
-    RELOC_NUMBER (R_390_GOTPLT20, 59)	/* 20 bit offset to jump slot.  */
-    RELOC_NUMBER (R_390_TLS_GOTIE20, 60)/* 20 bit GOT offset for statis TLS
-					   block offset.  */
-    /* These are GNU extensions to enable C++ vtable garbage collection.  */
-    RELOC_NUMBER (R_390_GNU_VTINHERIT, 250)
-    RELOC_NUMBER (R_390_GNU_VTENTRY, 251)
-END_RELOC_NUMBERS (R_390_max)
-
-#endif /* _ELF_390_H */
-
-
diff --git a/include/elf/sh.h b/include/elf/sh.h
deleted file mode 100644
index deb7a9d..0000000
--- a/include/elf/sh.h
+++ /dev/null
@@ -1,233 +0,0 @@
-/* SH ELF support for BFD.
-   Copyright 1998, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_SH_H
-#define _ELF_SH_H
-
-/* Processor specific flags for the ELF header e_flags field.  */
-
-#define EF_SH_MACH_MASK	0x1f
-#define EF_SH_UNKNOWN	   0 /* For backwards compatibility.  */
-#define EF_SH1		   1
-#define EF_SH2		   2
-#define EF_SH3		   3
-#define EF_SH_DSP	   4
-#define EF_SH3_DSP	   5
-#define EF_SH4AL_DSP	   6
-#define EF_SH3E		   8
-#define EF_SH4		   9
-#define EF_SH2E            11
-#define EF_SH4A		   12
-#define EF_SH2A            13
-
-#define EF_SH4_NOFPU	   16
-#define EF_SH4A_NOFPU	   17
-#define EF_SH4_NOMMU_NOFPU 18
-#define EF_SH2A_NOFPU      19
-#define EF_SH3_NOMMU       20
-
-#define EF_SH2A_SH4_NOFPU  21
-#define EF_SH2A_SH3_NOFPU  22
-#define EF_SH2A_SH4        23
-#define EF_SH2A_SH3E       24
-
-/* This one can only mix in objects from other EF_SH5 objects.  */
-#define EF_SH5		  10
-
-/* Define the mapping from ELF to bfd mach numbers.
-   bfd_mach_* are defined in bfd_in2.h (generated from
-   archures.c).  */
-#define EF_SH_BFD_TABLE \
-/* EF_SH_UNKNOWN	*/ bfd_mach_sh3		, \
-/* EF_SH1		*/ bfd_mach_sh		, \
-/* EF_SH2		*/ bfd_mach_sh2		, \
-/* EF_SH3		*/ bfd_mach_sh3		, \
-/* EF_SH_DSP		*/ bfd_mach_sh_dsp	, \
-/* EF_SH3_DSP		*/ bfd_mach_sh3_dsp	, \
-/* EF_SHAL_DSP		*/ bfd_mach_sh4al_dsp	, \
-/* 7			*/ 0, \
-/* EF_SH3E		*/ bfd_mach_sh3e	, \
-/* EF_SH4		*/ bfd_mach_sh4		, \
-/* EF_SH5		*/ 0, \
-/* EF_SH2E		*/ bfd_mach_sh2e	, \
-/* EF_SH4A		*/ bfd_mach_sh4a	, \
-/* EF_SH2A		*/ bfd_mach_sh2a        , \
-/* 14, 15		*/ 0, 0, \
-/* EF_SH4_NOFPU		*/ bfd_mach_sh4_nofpu	, \
-/* EF_SH4A_NOFPU	*/ bfd_mach_sh4a_nofpu	, \
-/* EF_SH4_NOMMU_NOFPU	*/ bfd_mach_sh4_nommu_nofpu, \
-/* EF_SH2A_NOFPU	*/ bfd_mach_sh2a_nofpu  , \
-/* EF_SH3_NOMMU		*/ bfd_mach_sh3_nommu   , \
-/* EF_SH2A_SH4_NOFPU    */ bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu, \
-/* EF_SH2A_SH3_NOFPU    */ bfd_mach_sh2a_nofpu_or_sh3_nommu, \
-/* EF_SH2A_SH4          */ bfd_mach_sh2a_or_sh4 , \
-/* EF_SH2A_SH3E         */ bfd_mach_sh2a_or_sh3e
-
-/* Convert arch_sh* into EF_SH*.  */
-int sh_find_elf_flags (unsigned int arch_set);
-
-/* Convert bfd_mach_* into EF_SH*.  */
-int sh_elf_get_flags_from_mach (unsigned long mach);
-
-/* Flags for the st_other symbol field.
-   Keep away from the STV_ visibility flags (bit 0..1).  */
-
-/* A reference to this symbol should by default add 1.  */
-#define STO_SH5_ISA32 (1 << 2)
-
-/* Section contains only SHmedia code (no SHcompact code).  */
-#define SHF_SH5_ISA32		0x40000000
-
-/* Section contains both SHmedia and SHcompact code, and possibly also
-   constants.  */
-#define SHF_SH5_ISA32_MIXED	0x20000000
-
-/* If applied to a .cranges section, marks that the section is sorted by
-   increasing cr_addr values.  */
-#define SHT_SH5_CR_SORTED 0x80000001
-
-/* Symbol should be handled as DataLabel (attached to global SHN_UNDEF
-   symbols).  */
-#define STT_DATALABEL STT_LOPROC
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-/* Relocations 10-32 and 128-255 are GNU extensions.
-   25..32 and 10 are used for relaxation.  */
-START_RELOC_NUMBERS (elf_sh_reloc_type)
-  RELOC_NUMBER (R_SH_NONE, 0)
-  RELOC_NUMBER (R_SH_DIR32, 1)
-  RELOC_NUMBER (R_SH_REL32, 2)
-  RELOC_NUMBER (R_SH_DIR8WPN, 3)
-  RELOC_NUMBER (R_SH_IND12W, 4)
-  RELOC_NUMBER (R_SH_DIR8WPL, 5)
-  RELOC_NUMBER (R_SH_DIR8WPZ, 6)
-  RELOC_NUMBER (R_SH_DIR8BP, 7)
-  RELOC_NUMBER (R_SH_DIR8W, 8)
-  RELOC_NUMBER (R_SH_DIR8L, 9)
-
-  RELOC_NUMBER (R_SH_LOOP_START, 10)
-  RELOC_NUMBER (R_SH_LOOP_END, 11)
-
-  FAKE_RELOC (R_SH_FIRST_INVALID_RELOC, 12)
-  FAKE_RELOC (R_SH_LAST_INVALID_RELOC, 21)
-
-  RELOC_NUMBER (R_SH_GNU_VTINHERIT, 22)
-  RELOC_NUMBER (R_SH_GNU_VTENTRY, 23)
-  RELOC_NUMBER (R_SH_SWITCH8, 24)
-  RELOC_NUMBER (R_SH_SWITCH16, 25)
-  RELOC_NUMBER (R_SH_SWITCH32, 26)
-  RELOC_NUMBER (R_SH_USES, 27)
-  RELOC_NUMBER (R_SH_COUNT, 28)
-  RELOC_NUMBER (R_SH_ALIGN, 29)
-  RELOC_NUMBER (R_SH_CODE, 30)
-  RELOC_NUMBER (R_SH_DATA, 31)
-  RELOC_NUMBER (R_SH_LABEL, 32)
-
-  RELOC_NUMBER (R_SH_DIR16, 33)
-  RELOC_NUMBER (R_SH_DIR8, 34)
-  RELOC_NUMBER (R_SH_DIR8UL, 35)
-  RELOC_NUMBER (R_SH_DIR8UW, 36)
-  RELOC_NUMBER (R_SH_DIR8U, 37)
-  RELOC_NUMBER (R_SH_DIR8SW, 38)
-  RELOC_NUMBER (R_SH_DIR8S, 39)
-  RELOC_NUMBER (R_SH_DIR4UL, 40)
-  RELOC_NUMBER (R_SH_DIR4UW, 41)
-  RELOC_NUMBER (R_SH_DIR4U, 42)
-  RELOC_NUMBER (R_SH_PSHA, 43)
-  RELOC_NUMBER (R_SH_PSHL, 44)
-  RELOC_NUMBER (R_SH_DIR5U, 45)
-  RELOC_NUMBER (R_SH_DIR6U, 46)
-  RELOC_NUMBER (R_SH_DIR6S, 47)
-  RELOC_NUMBER (R_SH_DIR10S, 48)
-  RELOC_NUMBER (R_SH_DIR10SW, 49)
-  RELOC_NUMBER (R_SH_DIR10SL, 50)
-  RELOC_NUMBER (R_SH_DIR10SQ, 51)
-  FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_2, 52)
-  FAKE_RELOC (R_SH_LAST_INVALID_RELOC_2, 52)
-  RELOC_NUMBER (R_SH_DIR16S, 53)
-  FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_3, 54)
-  FAKE_RELOC (R_SH_LAST_INVALID_RELOC_3, 143)
-  RELOC_NUMBER (R_SH_TLS_GD_32, 144)
-  RELOC_NUMBER (R_SH_TLS_LD_32, 145)
-  RELOC_NUMBER (R_SH_TLS_LDO_32, 146)
-  RELOC_NUMBER (R_SH_TLS_IE_32, 147)
-  RELOC_NUMBER (R_SH_TLS_LE_32, 148)
-  RELOC_NUMBER (R_SH_TLS_DTPMOD32, 149)
-  RELOC_NUMBER (R_SH_TLS_DTPOFF32, 150)
-  RELOC_NUMBER (R_SH_TLS_TPOFF32, 151)
-  FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_4, 152)
-  FAKE_RELOC (R_SH_LAST_INVALID_RELOC_4, 159)
-  RELOC_NUMBER (R_SH_GOT32, 160)
-  RELOC_NUMBER (R_SH_PLT32, 161)
-  RELOC_NUMBER (R_SH_COPY, 162)
-  RELOC_NUMBER (R_SH_GLOB_DAT, 163)
-  RELOC_NUMBER (R_SH_JMP_SLOT, 164)
-  RELOC_NUMBER (R_SH_RELATIVE, 165)
-  RELOC_NUMBER (R_SH_GOTOFF, 166)
-  RELOC_NUMBER (R_SH_GOTPC, 167)
-  RELOC_NUMBER (R_SH_GOTPLT32, 168)
-  RELOC_NUMBER (R_SH_GOT_LOW16, 169)
-  RELOC_NUMBER (R_SH_GOT_MEDLOW16, 170)
-  RELOC_NUMBER (R_SH_GOT_MEDHI16, 171)
-  RELOC_NUMBER (R_SH_GOT_HI16, 172)
-  RELOC_NUMBER (R_SH_GOTPLT_LOW16, 173)
-  RELOC_NUMBER (R_SH_GOTPLT_MEDLOW16, 174)
-  RELOC_NUMBER (R_SH_GOTPLT_MEDHI16, 175)
-  RELOC_NUMBER (R_SH_GOTPLT_HI16, 176)
-  RELOC_NUMBER (R_SH_PLT_LOW16, 177)
-  RELOC_NUMBER (R_SH_PLT_MEDLOW16, 178)
-  RELOC_NUMBER (R_SH_PLT_MEDHI16, 179)
-  RELOC_NUMBER (R_SH_PLT_HI16, 180)
-  RELOC_NUMBER (R_SH_GOTOFF_LOW16, 181)
-  RELOC_NUMBER (R_SH_GOTOFF_MEDLOW16, 182)
-  RELOC_NUMBER (R_SH_GOTOFF_MEDHI16, 183)
-  RELOC_NUMBER (R_SH_GOTOFF_HI16, 184)
-  RELOC_NUMBER (R_SH_GOTPC_LOW16, 185)
-  RELOC_NUMBER (R_SH_GOTPC_MEDLOW16, 186)
-  RELOC_NUMBER (R_SH_GOTPC_MEDHI16, 187)
-  RELOC_NUMBER (R_SH_GOTPC_HI16, 188)
-  RELOC_NUMBER (R_SH_GOT10BY4, 189)
-  RELOC_NUMBER (R_SH_GOTPLT10BY4, 190)
-  RELOC_NUMBER (R_SH_GOT10BY8, 191)
-  RELOC_NUMBER (R_SH_GOTPLT10BY8, 192)
-  RELOC_NUMBER (R_SH_COPY64, 193)
-  RELOC_NUMBER (R_SH_GLOB_DAT64, 194)
-  RELOC_NUMBER (R_SH_JMP_SLOT64, 195)
-  RELOC_NUMBER (R_SH_RELATIVE64, 196)
-  FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_5, 197)
-  FAKE_RELOC (R_SH_LAST_INVALID_RELOC_5, 241)
-  RELOC_NUMBER (R_SH_SHMEDIA_CODE, 242)
-  RELOC_NUMBER (R_SH_PT_16, 243)
-  RELOC_NUMBER (R_SH_IMMS16, 244)
-  RELOC_NUMBER (R_SH_IMMU16, 245)
-  RELOC_NUMBER (R_SH_IMM_LOW16, 246)
-  RELOC_NUMBER (R_SH_IMM_LOW16_PCREL, 247)
-  RELOC_NUMBER (R_SH_IMM_MEDLOW16, 248)
-  RELOC_NUMBER (R_SH_IMM_MEDLOW16_PCREL, 249)
-  RELOC_NUMBER (R_SH_IMM_MEDHI16, 250)
-  RELOC_NUMBER (R_SH_IMM_MEDHI16_PCREL, 251)
-  RELOC_NUMBER (R_SH_IMM_HI16, 252)
-  RELOC_NUMBER (R_SH_IMM_HI16_PCREL, 253)
-  RELOC_NUMBER (R_SH_64, 254)
-  RELOC_NUMBER (R_SH_64_PCREL, 255)
-END_RELOC_NUMBERS (R_SH_max)
-
-#endif
diff --git a/include/elf/sparc.h b/include/elf/sparc.h
deleted file mode 100644
index dc20820..0000000
--- a/include/elf/sparc.h
+++ /dev/null
@@ -1,176 +0,0 @@
-/* SPARC ELF support for BFD.
-   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2003
-   Free Software Foundation, Inc.
-   By Doug Evans, Cygnus Support, <dje@cygnus.com>.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_SPARC_H
-#define _ELF_SPARC_H
-
-/* Processor specific flags for the ELF header e_flags field.  */
-
-/* These are defined by Sun.  */
-
-#define EF_SPARC_32PLUS_MASK	0xffff00	/* bits indicating V8+ type */
-#define EF_SPARC_32PLUS		0x000100	/* generic V8+ features */
-#define EF_SPARC_SUN_US1	0x000200	/* Sun UltraSPARC1 extensions */
-#define EF_SPARC_HAL_R1		0x000400	/* HAL R1 extensions */
-#define EF_SPARC_SUN_US3	0x000800	/* Sun UltraSPARCIII extensions */
-
-#define EF_SPARC_LEDATA         0x800000	/* little endian data */
-
-/* This name is used in the V9 ABI.  */
-#define EF_SPARC_EXT_MASK	0xffff00	/* reserved for vendor extensions */
-
-/* V9 memory models */
-#define EF_SPARCV9_MM		0x3		/* memory model mask */
-#define EF_SPARCV9_TSO		0x0		/* total store ordering */
-#define EF_SPARCV9_PSO		0x1		/* partial store ordering */
-#define EF_SPARCV9_RMO		0x2		/* relaxed store ordering */
-
-/* Section indices.  */
-
-#define SHN_BEFORE		0xff00		/* used with SHF_ORDERED */
-#define SHN_AFTER		0xff01		/* used with SHF_ORDERED */
-
-/* Section flags.  */
-
-#define SHF_EXCLUDE		0x80000000	/* exclude from linking */
-#define SHF_ORDERED		0x40000000	/* treat sh_link,sh_info specially */
-
-/* Symbol types.  */
-
-#define STT_REGISTER		13		/* global reg reserved to app. */
-
-#include "elf/reloc-macros.h"
-
-/* Relocation types.  */
-START_RELOC_NUMBERS (elf_sparc_reloc_type)
-  RELOC_NUMBER (R_SPARC_NONE, 0)
-  RELOC_NUMBER (R_SPARC_8, 1)
-  RELOC_NUMBER (R_SPARC_16, 2)
-  RELOC_NUMBER (R_SPARC_32, 3)
-  RELOC_NUMBER (R_SPARC_DISP8, 4)
-  RELOC_NUMBER (R_SPARC_DISP16, 5)
-  RELOC_NUMBER (R_SPARC_DISP32, 6)
-  RELOC_NUMBER (R_SPARC_WDISP30, 7)
-  RELOC_NUMBER (R_SPARC_WDISP22, 8)
-  RELOC_NUMBER (R_SPARC_HI22, 9)
-  RELOC_NUMBER (R_SPARC_22, 10)
-  RELOC_NUMBER (R_SPARC_13, 11)
-  RELOC_NUMBER (R_SPARC_LO10, 12)
-  RELOC_NUMBER (R_SPARC_GOT10, 13)
-  RELOC_NUMBER (R_SPARC_GOT13, 14)
-  RELOC_NUMBER (R_SPARC_GOT22, 15)
-  RELOC_NUMBER (R_SPARC_PC10, 16)
-  RELOC_NUMBER (R_SPARC_PC22, 17)
-  RELOC_NUMBER (R_SPARC_WPLT30, 18)
-  RELOC_NUMBER (R_SPARC_COPY, 19)
-  RELOC_NUMBER (R_SPARC_GLOB_DAT, 20)
-  RELOC_NUMBER (R_SPARC_JMP_SLOT, 21)
-  RELOC_NUMBER (R_SPARC_RELATIVE, 22)
-  RELOC_NUMBER (R_SPARC_UA32, 23)
-
-  /* ??? These 6 relocs are new but not currently used.  For binary
-     compatibility in the sparc64-elf toolchain, we leave them out.
-     A non-binary upward compatible change is expected for sparc64-elf.  */
-#ifndef SPARC64_OLD_RELOCS
-  /* ??? New relocs on the UltraSPARC.  Not sure what they're for yet.  */
-  RELOC_NUMBER (R_SPARC_PLT32, 24)
-  RELOC_NUMBER (R_SPARC_HIPLT22, 25)
-  RELOC_NUMBER (R_SPARC_LOPLT10, 26)
-  RELOC_NUMBER (R_SPARC_PCPLT32, 27)
-  RELOC_NUMBER (R_SPARC_PCPLT22, 28)
-  RELOC_NUMBER (R_SPARC_PCPLT10, 29)
-#endif
-
-  /* v9 relocs */
-  RELOC_NUMBER (R_SPARC_10, 30)
-  RELOC_NUMBER (R_SPARC_11, 31)
-  RELOC_NUMBER (R_SPARC_64, 32)
-  RELOC_NUMBER (R_SPARC_OLO10, 33)
-  RELOC_NUMBER (R_SPARC_HH22, 34)
-  RELOC_NUMBER (R_SPARC_HM10, 35)
-  RELOC_NUMBER (R_SPARC_LM22, 36)
-  RELOC_NUMBER (R_SPARC_PC_HH22, 37)
-  RELOC_NUMBER (R_SPARC_PC_HM10, 38)
-  RELOC_NUMBER (R_SPARC_PC_LM22, 39)
-  RELOC_NUMBER (R_SPARC_WDISP16, 40)
-  RELOC_NUMBER (R_SPARC_WDISP19, 41)
-  RELOC_NUMBER (R_SPARC_UNUSED_42, 42)
-  RELOC_NUMBER (R_SPARC_7, 43)
-  RELOC_NUMBER (R_SPARC_5, 44)
-  RELOC_NUMBER (R_SPARC_6, 45)
-  RELOC_NUMBER (R_SPARC_DISP64, 46)
-  RELOC_NUMBER (R_SPARC_PLT64, 47)
-  RELOC_NUMBER (R_SPARC_HIX22, 48)
-  RELOC_NUMBER (R_SPARC_LOX10, 49)
-  RELOC_NUMBER (R_SPARC_H44, 50)
-  RELOC_NUMBER (R_SPARC_M44, 51)
-  RELOC_NUMBER (R_SPARC_L44, 52)
-  RELOC_NUMBER (R_SPARC_REGISTER, 53)
-  RELOC_NUMBER (R_SPARC_UA64, 54)
-  RELOC_NUMBER (R_SPARC_UA16, 55)
-
-  RELOC_NUMBER (R_SPARC_TLS_GD_HI22, 56)
-  RELOC_NUMBER (R_SPARC_TLS_GD_LO10, 57)
-  RELOC_NUMBER (R_SPARC_TLS_GD_ADD, 58)
-  RELOC_NUMBER (R_SPARC_TLS_GD_CALL, 59)
-  RELOC_NUMBER (R_SPARC_TLS_LDM_HI22, 60)
-  RELOC_NUMBER (R_SPARC_TLS_LDM_LO10, 61)
-  RELOC_NUMBER (R_SPARC_TLS_LDM_ADD, 62)
-  RELOC_NUMBER (R_SPARC_TLS_LDM_CALL, 63)
-  RELOC_NUMBER (R_SPARC_TLS_LDO_HIX22, 64)
-  RELOC_NUMBER (R_SPARC_TLS_LDO_LOX10, 65)
-  RELOC_NUMBER (R_SPARC_TLS_LDO_ADD, 66)
-  RELOC_NUMBER (R_SPARC_TLS_IE_HI22, 67)
-  RELOC_NUMBER (R_SPARC_TLS_IE_LO10, 68)
-  RELOC_NUMBER (R_SPARC_TLS_IE_LD, 69)
-  RELOC_NUMBER (R_SPARC_TLS_IE_LDX, 70)
-  RELOC_NUMBER (R_SPARC_TLS_IE_ADD, 71)
-  RELOC_NUMBER (R_SPARC_TLS_LE_HIX22, 72)
-  RELOC_NUMBER (R_SPARC_TLS_LE_LOX10, 73)
-  RELOC_NUMBER (R_SPARC_TLS_DTPMOD32, 74)
-  RELOC_NUMBER (R_SPARC_TLS_DTPMOD64, 75)
-  RELOC_NUMBER (R_SPARC_TLS_DTPOFF32, 76)
-  RELOC_NUMBER (R_SPARC_TLS_DTPOFF64, 77)
-  RELOC_NUMBER (R_SPARC_TLS_TPOFF32, 78)
-  RELOC_NUMBER (R_SPARC_TLS_TPOFF64, 79)
-  
-  EMPTY_RELOC  (R_SPARC_max_std)
-
-  RELOC_NUMBER (R_SPARC_GNU_VTINHERIT, 250)
-  RELOC_NUMBER (R_SPARC_GNU_VTENTRY, 251)
-  RELOC_NUMBER (R_SPARC_REV32, 252)
-
-END_RELOC_NUMBERS (R_SPARC_max)
-
-/* Relocation macros.  */
-
-#define ELF64_R_TYPE_DATA(info) \
-  (((bfd_signed_vma)(ELF64_R_TYPE(info) >> 8) ^ 0x800000) - 0x800000)
-#define ELF64_R_TYPE_ID(info) \
-  ((info) & 0xff)
-#define ELF64_R_TYPE_INFO(data, type) \
-  (((bfd_vma) ((data) & 0xffffff) << 8) | (bfd_vma) (type))
-
-/* Values for Elf64_Dyn.d_tag.  */
-
-#define DT_SPARC_REGISTER	0x70000001
-
-#endif /* _ELF_SPARC_H */
diff --git a/include/elf/v850.h b/include/elf/v850.h
deleted file mode 100644
index 95dab49..0000000
--- a/include/elf/v850.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/* V850 ELF support for BFD.
-   Copyright 1997, 1998, 2000, 2002, 2003, 2004
-   Free Software Foundation, Inc.
-   Created by Michael Meissner, Cygnus Support <meissner@cygnus.com>
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* This file holds definitions specific to the MIPS ELF ABI.  Note
-   that most of this is not actually implemented by BFD.  */
-
-#ifndef _ELF_V850_H
-#define _ELF_V850_H
-
-/* Processor specific flags for the ELF header e_flags field.  */
-
-/* Four bit V850 architecture field.  */
-#define EF_V850_ARCH		0xf0000000
-
-/* v850 code.  */
-#define E_V850_ARCH		0x00000000
-
-/* v850e code.  */
-#define E_V850E_ARCH		0x10000000
-
-/* v850e1 code.  */
-#define E_V850E1_ARCH		0x20000000
-
-
-/* Flags for the st_other field.  */
-#define V850_OTHER_SDA		0x01	/* Symbol had SDA relocations.  */
-#define V850_OTHER_ZDA		0x02	/* Symbol had ZDA relocations.  */
-#define V850_OTHER_TDA		0x04	/* Symbol had TDA relocations.  */
-#define V850_OTHER_TDA_BYTE	0x08	/* Symbol had TDA byte relocations.  */
-#define V850_OTHER_ERROR	0x80	/* Symbol had an error reported.  */
-
-/* V850 relocations.  */
-#include "elf/reloc-macros.h"
-
-START_RELOC_NUMBERS (v850_reloc_type)
-     RELOC_NUMBER (R_V850_NONE, 0)
-     RELOC_NUMBER (R_V850_9_PCREL, 1)
-     RELOC_NUMBER (R_V850_22_PCREL, 2)
-     RELOC_NUMBER (R_V850_HI16_S, 3)
-     RELOC_NUMBER (R_V850_HI16, 4)
-     RELOC_NUMBER (R_V850_LO16, 5)
-     RELOC_NUMBER (R_V850_ABS32, 6)
-     RELOC_NUMBER (R_V850_16, 7)
-     RELOC_NUMBER (R_V850_8, 8)
-     RELOC_NUMBER( R_V850_SDA_16_16_OFFSET, 9)		/* For ld.b, st.b, set1, clr1, not1, tst1, movea, movhi */
-     RELOC_NUMBER( R_V850_SDA_15_16_OFFSET, 10)		/* For ld.w, ld.h, ld.hu, st.w, st.h */
-     RELOC_NUMBER( R_V850_ZDA_16_16_OFFSET, 11)		/* For ld.b, st.b, set1, clr1, not1, tst1, movea, movhi */
-     RELOC_NUMBER( R_V850_ZDA_15_16_OFFSET, 12)		/* For ld.w, ld.h, ld.hu, st.w, st.h */
-     RELOC_NUMBER( R_V850_TDA_6_8_OFFSET, 13)		/* For sst.w, sld.w */
-     RELOC_NUMBER( R_V850_TDA_7_8_OFFSET, 14)		/* For sst.h, sld.h */
-     RELOC_NUMBER( R_V850_TDA_7_7_OFFSET, 15)		/* For sst.b, sld.b */
-     RELOC_NUMBER( R_V850_TDA_16_16_OFFSET, 16)		/* For set1, clr1, not1, tst1, movea, movhi */
-     RELOC_NUMBER( R_V850_TDA_4_5_OFFSET, 17)		/* For sld.hu */
-     RELOC_NUMBER( R_V850_TDA_4_4_OFFSET, 18)		/* For sld.bu */
-     RELOC_NUMBER( R_V850_SDA_16_16_SPLIT_OFFSET, 19)	/* For ld.bu */
-     RELOC_NUMBER( R_V850_ZDA_16_16_SPLIT_OFFSET, 20)	/* For ld.bu */
-     RELOC_NUMBER( R_V850_CALLT_6_7_OFFSET, 21)		/* For callt */
-     RELOC_NUMBER( R_V850_CALLT_16_16_OFFSET, 22)	/* For callt */
-     RELOC_NUMBER (R_V850_GNU_VTINHERIT, 23)
-     RELOC_NUMBER (R_V850_GNU_VTENTRY, 24)
-     RELOC_NUMBER (R_V850_LONGCALL, 25)
-     RELOC_NUMBER (R_V850_LONGJUMP, 26)
-     RELOC_NUMBER (R_V850_ALIGN, 27)
-     RELOC_NUMBER (R_V850_REL32, 28)
-     RELOC_NUMBER (R_V850_LO16_SPLIT_OFFSET, 29)	/* For ld.bu */
-END_RELOC_NUMBERS (R_V850_max)
-
-
-/* Processor specific section indices.  These sections do not actually
-   exist.  Symbols with a st_shndx field corresponding to one of these
-   values have a special meaning.  */
-
-/* Small data area common symbol.  */
-#define SHN_V850_SCOMMON	0xff00
-
-/* Tiny data area common symbol.  */
-#define SHN_V850_TCOMMON	0xff01
-
-/* Zero data area common symbol.  */
-#define SHN_V850_ZCOMMON	0xff02
-
-
-/* Processor specific section types.  */
-
-/* Section contains the .scommon data.  */
-#define SHT_V850_SCOMMON	0x70000000
-
-/* Section contains the .scommon data.  */
-#define SHT_V850_TCOMMON	0x70000001
-
-/* Section contains the .scommon data.  */
-#define SHT_V850_ZCOMMON	0x70000002
-
-/* Processor specific section flags.  */
-
-/* This section must be in the small data area (pointed to by GP).  */
-#define SHF_V850_GPREL		0x10000000
-
-/* This section must be in the tiny data area (pointed to by EP).  */
-#define SHF_V850_EPREL		0x20000000
-
-/* This section must be in the zero data area (pointed to by R0).  */
-#define SHF_V850_R0REL		0x40000000
-
-#endif /* _ELF_V850_H */
diff --git a/include/elf/vax.h b/include/elf/vax.h
deleted file mode 100644
index 8cc5a11..0000000
--- a/include/elf/vax.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* VAX ELF support for BFD.
-   Copyright (C) 2002 Free Software Foundation, Inc.
-   Contributed by Matt Thomas <matt@3am-software.com>.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_VAX_H
-#define _ELF_VAX_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocation types.  */
-START_RELOC_NUMBERS (elf_vax_reloc_type)
-  RELOC_NUMBER (R_VAX_NONE, 0)		/* No reloc */
-  RELOC_NUMBER (R_VAX_32, 1)		/* Direct 32 bit  */
-  RELOC_NUMBER (R_VAX_16, 2)		/* Direct 16 bit  */
-  RELOC_NUMBER (R_VAX_8, 3)		/* Direct 8 bit  */
-  RELOC_NUMBER (R_VAX_PC32, 4)		/* PC relative 32 bit */
-  RELOC_NUMBER (R_VAX_PC16, 5)		/* PC relative 16 bit */
-  RELOC_NUMBER (R_VAX_PC8, 6)		/* PC relative 8 bit */
-  RELOC_NUMBER (R_VAX_GOT32, 7)		/* 32 bit PC relative GOT entry */
-  RELOC_NUMBER (R_VAX_PLT32, 13)	/* 32 bit PC relative PLT address */
-  RELOC_NUMBER (R_VAX_COPY, 19)		/* Copy symbol at runtime */
-  RELOC_NUMBER (R_VAX_GLOB_DAT, 20)	/* Create GOT entry */
-  RELOC_NUMBER (R_VAX_JMP_SLOT, 21)	/* Create PLT entry */
-  RELOC_NUMBER (R_VAX_RELATIVE, 22)	/* Adjust by program base */
-  /* These are GNU extensions to enable C++ vtable garbage collection.  */
-  RELOC_NUMBER (R_VAX_GNU_VTINHERIT, 23)
-  RELOC_NUMBER (R_VAX_GNU_VTENTRY, 24)
-END_RELOC_NUMBERS (R_VAX_max)   
-
-/* Processor specific flags for the ELF header e_flags field.  */
-#define EF_VAX_NONPIC		0x0001	/* Object contains non-PIC code */
-#define EF_VAX_DFLOAT		0x0100	/* Object contains D-Float insn.  */
-#define EF_VAX_GFLOAT		0x0200	/* Object contains G-Float insn.  */
-
-#endif
diff --git a/include/elf/x86-64.h b/include/elf/x86-64.h
deleted file mode 100644
index b09a558..0000000
--- a/include/elf/x86-64.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* x86_64 ELF support for BFD.
-   Copyright (C) 2000, 2001, 2002, 2004, 2005, 2006
-   Free Software Foundation, Inc.
-   Contributed by Jan Hubicka <jh@suse.cz>
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_X86_64_H
-#define _ELF_X86_64_H
-
-#include "elf/reloc-macros.h"
-
-START_RELOC_NUMBERS (elf_x86_64_reloc_type)
-     RELOC_NUMBER (R_X86_64_NONE,     0)      /* No reloc */
-     RELOC_NUMBER (R_X86_64_64,       1)      /* Direct 64 bit  */
-     RELOC_NUMBER (R_X86_64_PC32,     2)      /* PC relative 32 bit signed */
-     RELOC_NUMBER (R_X86_64_GOT32,    3)      /* 32 bit GOT entry */
-     RELOC_NUMBER (R_X86_64_PLT32,    4)      /* 32 bit PLT address */
-     RELOC_NUMBER (R_X86_64_COPY,     5)      /* Copy symbol at runtime */
-     RELOC_NUMBER (R_X86_64_GLOB_DAT, 6)      /* Create GOT entry */
-     RELOC_NUMBER (R_X86_64_JUMP_SLOT,7)      /* Create PLT entry */
-     RELOC_NUMBER (R_X86_64_RELATIVE, 8)      /* Adjust by program base */
-     RELOC_NUMBER (R_X86_64_GOTPCREL, 9)      /* 32 bit signed pc relative
-                                                 offset to GOT entry */
-     RELOC_NUMBER (R_X86_64_32,       10)     /* Direct 32 bit zero extended */
-     RELOC_NUMBER (R_X86_64_32S,      11)     /* Direct 32 bit sign extended */
-     RELOC_NUMBER (R_X86_64_16,       12)     /* Direct 16 bit zero extended */
-     RELOC_NUMBER (R_X86_64_PC16,     13)     /* 16 bit sign extended pc relative*/
-     RELOC_NUMBER (R_X86_64_8,        14)     /* Direct 8 bit sign extended */
-     RELOC_NUMBER (R_X86_64_PC8,      15)     /* 8 bit sign extended pc relative*/
-     RELOC_NUMBER (R_X86_64_DTPMOD64, 16)     /* ID of module containing symbol */
-     RELOC_NUMBER (R_X86_64_DTPOFF64, 17)     /* Offset in TLS block */
-     RELOC_NUMBER (R_X86_64_TPOFF64,  18)     /* Offset in initial TLS block */
-     RELOC_NUMBER (R_X86_64_TLSGD,    19)     /* PC relative offset to GD GOT block */
-     RELOC_NUMBER (R_X86_64_TLSLD,    20)     /* PC relative offset to LD GOT block */
-     RELOC_NUMBER (R_X86_64_DTPOFF32, 21)     /* Offset in TLS block */
-     RELOC_NUMBER (R_X86_64_GOTTPOFF, 22)     /* PC relative offset to IE GOT entry */
-     RELOC_NUMBER (R_X86_64_TPOFF32,  23)     /* Offset in initial TLS block */
-     RELOC_NUMBER (R_X86_64_PC64,     24)     /* PC relative 64 bit */
-     RELOC_NUMBER (R_X86_64_GOTOFF64, 25)     /* 64 bit offset to GOT */
-     RELOC_NUMBER (R_X86_64_GOTPC32,  26)     /* 32 bit signed pc relative
-                                                 offset to GOT */
-     RELOC_NUMBER (R_X86_64_GOT64,    27)     /* 64 bit GOT entry offset */
-     RELOC_NUMBER (R_X86_64_GOTPCREL64, 28)   /* 64 bit signed pc relative
-     						 offset to GOT entry */
-     RELOC_NUMBER (R_X86_64_GOTPC64,  29)     /* 64 bit signed pc relative
-     						 offset to GOT */
-     RELOC_NUMBER (R_X86_64_GOTPLT64, 30)     /* like GOT64, but indicates
-     						 that PLT entry is needed */
-     RELOC_NUMBER (R_X86_64_PLTOFF64, 31)     /* 64 bit GOT relative offset
-     						 to PLT entry */
-     /* 32 .. 33 */
-     RELOC_NUMBER (R_X86_64_GOTPC32_TLSDESC, 34)
-					      /* 32 bit signed pc relative
-						 offset to TLS descriptor
-						 in the GOT.  */
-     RELOC_NUMBER (R_X86_64_TLSDESC_CALL, 35) /* Relaxable call through TLS
-						 descriptor.  */
-     RELOC_NUMBER (R_X86_64_TLSDESC, 36)      /* 2x64-bit TLS descriptor.  */
-     RELOC_NUMBER (R_X86_64_GNU_VTINHERIT, 250)       /* GNU C++ hack  */
-     RELOC_NUMBER (R_X86_64_GNU_VTENTRY, 251)         /* GNU C++ hack  */
-END_RELOC_NUMBERS (R_X86_64_max)
-
-/* Processor specific section types.  */
-
-#define SHT_X86_64_UNWIND	0x70000001	/* unwind information */
-
-/* Like SHN_COMMON but the symbol will be allocated in the .lbss
-   section.  */
-#define SHN_X86_64_LCOMMON 	0xff02
-
-#define SHF_X86_64_LARGE	0x10000000
-#endif
diff --git a/include/elf/xc16x.h b/include/elf/xc16x.h
deleted file mode 100644
index bc64899..0000000
--- a/include/elf/xc16x.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Infineon XC16X ELF support for BFD.
-   Copyright 2006 Free Software Foundation, Inc.
-   Contributed by KPIT Cummins Infosystems 
-
-   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.,
-   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-
-#ifndef _ELF_XC16X_H
-#define _ELF_XC16X_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-START_RELOC_NUMBERS (elf_xc16x_reloc_type)
-  RELOC_NUMBER (R_XC16X_NONE, 0)
-  RELOC_NUMBER (R_XC16X_ABS_8, 1)
-  RELOC_NUMBER (R_XC16X_ABS_16, 2)
-  RELOC_NUMBER (R_XC16X_ABS_32, 3)
-  RELOC_NUMBER (R_XC16X_8_PCREL, 4)
-  RELOC_NUMBER (R_XC16X_PAG, 5)
-  RELOC_NUMBER (R_XC16X_POF, 6)
-  RELOC_NUMBER (R_XC16X_SEG, 7)
-  RELOC_NUMBER (R_XC16X_SOF, 8)
-
-END_RELOC_NUMBERS (R_XC16X_max)
-
-#endif /* _ELF_XC16X_H */
diff --git a/include/elf/xstormy16.h b/include/elf/xstormy16.h
deleted file mode 100644
index 2442b27..0000000
--- a/include/elf/xstormy16.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* XSTORMY16 ELF support for BFD.
-   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-
-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.,
-51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _ELF_XSTORMY16_H
-#define _ELF_XSTORMY16_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-START_RELOC_NUMBERS (elf_xstormy16_reloc_type)
-  RELOC_NUMBER (R_XSTORMY16_NONE, 0)
-
-  RELOC_NUMBER (R_XSTORMY16_32, 1)
-  RELOC_NUMBER (R_XSTORMY16_16, 2)
-  RELOC_NUMBER (R_XSTORMY16_8, 3)
-  RELOC_NUMBER (R_XSTORMY16_PC32, 4)
-  RELOC_NUMBER (R_XSTORMY16_PC16, 5)
-  RELOC_NUMBER (R_XSTORMY16_PC8, 6)
-
-  RELOC_NUMBER (R_XSTORMY16_REL_12, 7)
-  RELOC_NUMBER (R_XSTORMY16_24, 8)
-  RELOC_NUMBER (R_XSTORMY16_FPTR16, 9)
-
-  RELOC_NUMBER (R_XSTORMY16_LO16, 10)
-  RELOC_NUMBER (R_XSTORMY16_HI16, 11)
-  RELOC_NUMBER (R_XSTORMY16_12, 12)
-
-  RELOC_NUMBER (R_XSTORMY16_GNU_VTINHERIT, 128)
-  RELOC_NUMBER (R_XSTORMY16_GNU_VTENTRY, 129)
-END_RELOC_NUMBERS (R_XSTORMY16_max)
-
-/* Define the data & instruction memory discriminator.  In a linked
-   executable, an symbol should be deemed to point to an instruction
-   if ((address & XSTORMY16_INSN_MASK) == XSTORMY16_INSN_VALUE), and similarly
-   for the data space.  See also `ld/emulparams/elf32xstormy16.sh'.  */
-#define XSTORMY16_DATA_MASK   0xffc00000
-#define XSTORMY16_DATA_VALUE  0x00000000
-#define XSTORMY16_INSN_MASK   0xffc00000
-#define XSTORMY16_INSN_VALUE  0x00400000
-
-#endif /* _ELF_XSTORMY16_H */
diff --git a/include/elf/xtensa.h b/include/elf/xtensa.h
deleted file mode 100644
index 0de9741..0000000
--- a/include/elf/xtensa.h
+++ /dev/null
@@ -1,198 +0,0 @@
-/* Xtensa ELF support for BFD.
-   Copyright 2003, 2004 Free Software Foundation, Inc.
-   Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301,
-   USA.  */
-
-/* This file holds definitions specific to the Xtensa ELF ABI.  */
-
-#ifndef _ELF_XTENSA_H
-#define _ELF_XTENSA_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations.  */
-START_RELOC_NUMBERS (elf_xtensa_reloc_type)
-     RELOC_NUMBER (R_XTENSA_NONE, 0)
-     RELOC_NUMBER (R_XTENSA_32, 1)
-     RELOC_NUMBER (R_XTENSA_RTLD, 2)
-     RELOC_NUMBER (R_XTENSA_GLOB_DAT, 3)
-     RELOC_NUMBER (R_XTENSA_JMP_SLOT, 4)
-     RELOC_NUMBER (R_XTENSA_RELATIVE, 5)
-     RELOC_NUMBER (R_XTENSA_PLT, 6)
-     RELOC_NUMBER (R_XTENSA_OP0, 8)
-     RELOC_NUMBER (R_XTENSA_OP1, 9)
-     RELOC_NUMBER (R_XTENSA_OP2, 10) 
-     RELOC_NUMBER (R_XTENSA_ASM_EXPAND, 11)
-     RELOC_NUMBER (R_XTENSA_ASM_SIMPLIFY, 12)
-     RELOC_NUMBER (R_XTENSA_GNU_VTINHERIT, 15)
-     RELOC_NUMBER (R_XTENSA_GNU_VTENTRY, 16)
-     RELOC_NUMBER (R_XTENSA_DIFF8, 17)
-     RELOC_NUMBER (R_XTENSA_DIFF16, 18)
-     RELOC_NUMBER (R_XTENSA_DIFF32, 19)
-     RELOC_NUMBER (R_XTENSA_SLOT0_OP, 20)
-     RELOC_NUMBER (R_XTENSA_SLOT1_OP, 21)
-     RELOC_NUMBER (R_XTENSA_SLOT2_OP, 22)
-     RELOC_NUMBER (R_XTENSA_SLOT3_OP, 23)
-     RELOC_NUMBER (R_XTENSA_SLOT4_OP, 24)
-     RELOC_NUMBER (R_XTENSA_SLOT5_OP, 25)
-     RELOC_NUMBER (R_XTENSA_SLOT6_OP, 26)
-     RELOC_NUMBER (R_XTENSA_SLOT7_OP, 27)
-     RELOC_NUMBER (R_XTENSA_SLOT8_OP, 28)
-     RELOC_NUMBER (R_XTENSA_SLOT9_OP, 29)
-     RELOC_NUMBER (R_XTENSA_SLOT10_OP, 30)
-     RELOC_NUMBER (R_XTENSA_SLOT11_OP, 31)
-     RELOC_NUMBER (R_XTENSA_SLOT12_OP, 32)
-     RELOC_NUMBER (R_XTENSA_SLOT13_OP, 33)
-     RELOC_NUMBER (R_XTENSA_SLOT14_OP, 34)
-     RELOC_NUMBER (R_XTENSA_SLOT0_ALT, 35)
-     RELOC_NUMBER (R_XTENSA_SLOT1_ALT, 36)
-     RELOC_NUMBER (R_XTENSA_SLOT2_ALT, 37)
-     RELOC_NUMBER (R_XTENSA_SLOT3_ALT, 38)
-     RELOC_NUMBER (R_XTENSA_SLOT4_ALT, 39)
-     RELOC_NUMBER (R_XTENSA_SLOT5_ALT, 40)
-     RELOC_NUMBER (R_XTENSA_SLOT6_ALT, 41)
-     RELOC_NUMBER (R_XTENSA_SLOT7_ALT, 42)
-     RELOC_NUMBER (R_XTENSA_SLOT8_ALT, 43)
-     RELOC_NUMBER (R_XTENSA_SLOT9_ALT, 44)
-     RELOC_NUMBER (R_XTENSA_SLOT10_ALT, 45)
-     RELOC_NUMBER (R_XTENSA_SLOT11_ALT, 46)
-     RELOC_NUMBER (R_XTENSA_SLOT12_ALT, 47)
-     RELOC_NUMBER (R_XTENSA_SLOT13_ALT, 48)
-     RELOC_NUMBER (R_XTENSA_SLOT14_ALT, 49)
-END_RELOC_NUMBERS (R_XTENSA_max)
-
-/* Processor-specific flags for the ELF header e_flags field.  */
-
-/* Four-bit Xtensa machine type field.  */
-#define EF_XTENSA_MACH			0x0000000f
-
-/* Various CPU types.  */
-#define E_XTENSA_MACH			0x00000000
-
-/* Leave bits 0xf0 alone in case we ever have more than 16 cpu types.
-   Highly unlikely, but what the heck.  */
-
-#define EF_XTENSA_XT_INSN		0x00000100
-#define EF_XTENSA_XT_LIT		0x00000200
-
-
-/* Processor-specific dynamic array tags.  */
-
-/* Offset of the table that records the GOT location(s).  */
-#define DT_XTENSA_GOT_LOC_OFF		0x70000000
-
-/* Number of entries in the GOT location table.  */
-#define DT_XTENSA_GOT_LOC_SZ		0x70000001
-
-
-/* Definitions for instruction and literal property tables.  The
-   tables for ".gnu.linkonce.*" sections are placed in the following
-   sections:
-
-   instruction tables:	.gnu.linkonce.x.*
-   literal tables:	.gnu.linkonce.p.*
-*/
-
-#define XTENSA_INSN_SEC_NAME ".xt.insn"
-#define XTENSA_LIT_SEC_NAME  ".xt.lit"
-#define XTENSA_PROP_SEC_NAME ".xt.prop"
-
-typedef struct property_table_entry_t
-{
-  bfd_vma address;
-  bfd_vma size;
-  flagword flags;
-} property_table_entry;
-
-/* Flags in the property tables to specify whether blocks of memory are
-   literals, instructions, data, or unreachable.  For instructions,
-   blocks that begin loop targets and branch targets are designated.
-   Blocks that do not allow density instructions, instruction reordering
-   or transformation are also specified.  Finally, for branch targets,
-   branch target alignment priority is included.  Alignment of the next
-   block is specified in the current block and the size of the current
-   block does not include any fill required to align to the next
-   block.  */
-   
-#define XTENSA_PROP_LITERAL		0x00000001
-#define XTENSA_PROP_INSN		0x00000002
-#define XTENSA_PROP_DATA		0x00000004
-#define XTENSA_PROP_UNREACHABLE		0x00000008
-/* Instruction-only properties at beginning of code. */
-#define XTENSA_PROP_INSN_LOOP_TARGET	0x00000010
-#define XTENSA_PROP_INSN_BRANCH_TARGET	0x00000020
-/* Instruction-only properties about code. */
-#define XTENSA_PROP_INSN_NO_DENSITY	0x00000040
-#define XTENSA_PROP_INSN_NO_REORDER	0x00000080
-#define XTENSA_PROP_INSN_NO_TRANSFORM	0x00000100
-
-/*  Branch target alignment information.  This transmits information
-    to the linker optimization about the priority of aligning a
-    particular block for branch target alignment: None, low priority,
-    high priority, or required.  These only need to be checked in
-    instruction blocks marked as XTENSA_PROP_INSN_BRANCH_TARGET.
-    Common usage is:
-
-    switch (GET_XTENSA_PROP_BT_ALIGN(flags))
-    case XTENSA_PROP_BT_ALIGN_NONE:
-    case XTENSA_PROP_BT_ALIGN_LOW:
-    case XTENSA_PROP_BT_ALIGN_HIGH:
-    case XTENSA_PROP_BT_ALIGN_REQUIRE:
-*/
-#define XTENSA_PROP_BT_ALIGN_MASK       0x00000600
-
-/* No branch target alignment.  */
-#define XTENSA_PROP_BT_ALIGN_NONE       0x0
-/* Low priority branch target alignment.  */
-#define XTENSA_PROP_BT_ALIGN_LOW        0x1
-/* High priority branch target alignment. */
-#define XTENSA_PROP_BT_ALIGN_HIGH       0x2
-/* Required branch target alignment.  */
-#define XTENSA_PROP_BT_ALIGN_REQUIRE    0x3
-
-#define GET_XTENSA_PROP_BT_ALIGN(flag) \
-  (((unsigned)((flag) & (XTENSA_PROP_BT_ALIGN_MASK))) >> 9)
-#define SET_XTENSA_PROP_BT_ALIGN(flag, align) \
-  (((flag) & (~XTENSA_PROP_BT_ALIGN_MASK)) | \
-    (((align) << 9) & XTENSA_PROP_BT_ALIGN_MASK))
-
-/* Alignment is specified in the block BEFORE the one that needs
-   alignment.  Up to 5 bits.  Use GET_XTENSA_PROP_ALIGNMENT(flags) to
-   get the required alignment specified as a power of 2.  Use
-   SET_XTENSA_PROP_ALIGNMENT(flags, pow2) to set the required
-   alignment.  Be careful of side effects since the SET will evaluate
-   flags twice.  Also, note that the SIZE of a block in the property
-   table does not include the alignment size, so the alignment fill
-   must be calculated to determine if two blocks are contiguous.
-   TEXT_ALIGN is not currently implemented but is a placeholder for a
-   possible future implementation.  */
-
-#define XTENSA_PROP_ALIGN		0x00000800
-
-#define XTENSA_PROP_ALIGNMENT_MASK      0x0001f000
-
-#define GET_XTENSA_PROP_ALIGNMENT(flag) \
-  (((unsigned)((flag) & (XTENSA_PROP_ALIGNMENT_MASK))) >> 12)
-#define SET_XTENSA_PROP_ALIGNMENT(flag, align) \
-  (((flag) & (~XTENSA_PROP_ALIGNMENT_MASK)) | \
-    (((align) << 12) & XTENSA_PROP_ALIGNMENT_MASK))
-
-#define XTENSA_PROP_INSN_ABSLIT        0x00020000
-
-#endif /* _ELF_XTENSA_H */
diff --git a/include/fibheap.h b/include/fibheap.h
deleted file mode 100644
index 348c4ae..0000000
--- a/include/fibheap.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/* A Fibonacci heap datatype.
-   Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
-   Contributed by Daniel Berlin (dan@cgsoftware.com).
-
-This file is part of GCC.
-   
-GCC 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.
-
-GCC 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 GCC; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-/* Fibonacci heaps are somewhat complex, but, there's an article in
-   DDJ that explains them pretty well:
-
-   http://www.ddj.com/articles/1997/9701/9701o/9701o.htm?topic=algoritms
-
-   Introduction to algorithms by Corman and Rivest also goes over them.
-
-   The original paper that introduced them is "Fibonacci heaps and their
-   uses in improved network optimization algorithms" by Tarjan and
-   Fredman (JACM 34(3), July 1987).
-
-   Amortized and real worst case time for operations:
-
-   ExtractMin: O(lg n) amortized. O(n) worst case.
-   DecreaseKey: O(1) amortized.  O(lg n) worst case. 
-   Insert: O(2) amortized. O(1) actual.  
-   Union: O(1) amortized. O(1) actual.  */
-
-#ifndef _FIBHEAP_H_
-#define _FIBHEAP_H_
-
-#include "ansidecl.h"
-
-typedef long fibheapkey_t;
-
-typedef struct fibheap
-{
-  size_t nodes;
-  struct fibnode *min;
-  struct fibnode *root;
-} *fibheap_t;
-
-typedef struct fibnode
-{
-  struct fibnode *parent;
-  struct fibnode *child;
-  struct fibnode *left;
-  struct fibnode *right;
-  fibheapkey_t key;
-  void *data;
-#if defined (__GNUC__) && (!defined (SIZEOF_INT) || SIZEOF_INT < 4)
-  __extension__ unsigned long int degree : 31;
-  __extension__ unsigned long int mark : 1;
-#else
-  unsigned int degree : 31;
-  unsigned int mark : 1;
-#endif
-} *fibnode_t;
-
-extern fibheap_t fibheap_new (void);
-extern fibnode_t fibheap_insert (fibheap_t, fibheapkey_t, void *);
-extern int fibheap_empty (fibheap_t);
-extern fibheapkey_t fibheap_min_key (fibheap_t);
-extern fibheapkey_t fibheap_replace_key (fibheap_t, fibnode_t,
-                                         fibheapkey_t);
-extern void *fibheap_replace_key_data (fibheap_t, fibnode_t,
-                                       fibheapkey_t, void *);
-extern void *fibheap_extract_min (fibheap_t);
-extern void *fibheap_min (fibheap_t);
-extern void *fibheap_replace_data (fibheap_t, fibnode_t, void *);
-extern void *fibheap_delete_node (fibheap_t, fibnode_t);
-extern void fibheap_delete (fibheap_t);
-extern fibheap_t fibheap_union (fibheap_t, fibheap_t);
-
-#endif /* _FIBHEAP_H_ */
diff --git a/include/filenames.h b/include/filenames.h
deleted file mode 100644
index 6b72fd2..0000000
--- a/include/filenames.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Macros for taking apart, interpreting and processing file names.
-
-   These are here because some non-Posix (a.k.a. DOSish) systems have
-   drive letter brain-damage at the beginning of an absolute file name,
-   use forward- and back-slash in path names interchangeably, and
-   some of them have case-insensitive file names.
-
-   Copyright 2000, 2001 Free Software Foundation, Inc.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef FILENAMES_H
-#define FILENAMES_H
-
-#if defined(__MSDOS__) || defined(_WIN32) || defined(__OS2__) || defined (__CYGWIN__)
-
-#ifndef HAVE_DOS_BASED_FILE_SYSTEM
-#define HAVE_DOS_BASED_FILE_SYSTEM 1
-#endif
-
-#define IS_DIR_SEPARATOR(c)	((c) == '/' || (c) == '\\')
-/* Note that IS_ABSOLUTE_PATH accepts d:foo as well, although it is
-   only semi-absolute.  This is because the users of IS_ABSOLUTE_PATH
-   want to know whether to prepend the current working directory to
-   a file name, which should not be done with a name like d:foo.  */
-#define IS_ABSOLUTE_PATH(f)	(IS_DIR_SEPARATOR((f)[0]) || (((f)[0]) && ((f)[1] == ':')))
-#define FILENAME_CMP(s1, s2)	strcasecmp(s1, s2)
-
-#else  /* not DOSish */
-
-#define IS_DIR_SEPARATOR(c)	((c) == '/')
-#define IS_ABSOLUTE_PATH(f)	(IS_DIR_SEPARATOR((f)[0]))
-#define FILENAME_CMP(s1, s2)	strcmp(s1, s2)
-
-#endif /* not DOSish */
-
-#endif /* FILENAMES_H */
diff --git a/include/floatformat.h b/include/floatformat.h
deleted file mode 100644
index f1bd7f6..0000000
--- a/include/floatformat.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/* IEEE floating point support declarations, for GDB, the GNU Debugger.
-   Copyright 1991, 1994, 1995, 1997, 2000, 2003, 2005
-   Free Software Foundation, Inc.
-
-This file is part of GDB.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#if !defined (FLOATFORMAT_H)
-#define FLOATFORMAT_H 1
-
-#include "ansidecl.h"
-
-/* A floatformat consists of a sign bit, an exponent and a mantissa.  Once the
-   bytes are concatenated according to the byteorder flag, then each of those
-   fields is contiguous.  We number the bits with 0 being the most significant
-   (i.e. BITS_BIG_ENDIAN type numbering), and specify which bits each field
-   contains with the *_start and *_len fields.  */
-
-/* What is the order of the bytes?  */
-
-enum floatformat_byteorders {
-  /* Standard little endian byte order.
-     EX: 1.2345678e10 => 00 00 80 c5 e0 fe 06 42 */
-  floatformat_little,
-
-  /* Standard big endian byte order.
-     EX: 1.2345678e10 => 42 06 fe e0 c5 80 00 00 */
-  floatformat_big,
-
-  /* Little endian byte order but big endian word order.
-     EX: 1.2345678e10 => e0 fe 06 42 00 00 80 c5 */
-  floatformat_littlebyte_bigword,
-
-  /* VAX byte order.  Little endian byte order with 16-bit words.  The
-     following example is an illustration of the byte order only; VAX
-     doesn't have a fully IEEE compliant floating-point format.
-     EX: 1.2345678e10 => 80 c5 00 00 06 42 e0 fe */
-  floatformat_vax
-};
-
-enum floatformat_intbit { floatformat_intbit_yes, floatformat_intbit_no };
-
-struct floatformat
-{
-  enum floatformat_byteorders byteorder;
-  unsigned int totalsize;	/* Total size of number in bits */
-
-  /* Sign bit is always one bit long.  1 means negative, 0 means positive.  */
-  unsigned int sign_start;
-
-  unsigned int exp_start;
-  unsigned int exp_len;
-  /* Bias added to a "true" exponent to form the biased exponent.  It
-     is intentionally signed as, otherwize, -exp_bias can turn into a
-     very large number (e.g., given the exp_bias of 0x3fff and a 64
-     bit long, the equation (long)(1 - exp_bias) evaluates to
-     4294950914) instead of -16382).  */
-  int exp_bias;
-  /* Exponent value which indicates NaN.  This is the actual value stored in
-     the float, not adjusted by the exp_bias.  This usually consists of all
-     one bits.  */
-  unsigned int exp_nan;
-
-  unsigned int man_start;
-  unsigned int man_len;
-
-  /* Is the integer bit explicit or implicit?  */
-  enum floatformat_intbit intbit;
-
-  /* Internal name for debugging. */
-  const char *name;
-
-  /* Validator method.  */
-  int (*is_valid) (const struct floatformat *fmt, const void *from);
-};
-
-/* floatformats for IEEE single and double, big and little endian.  */
-
-extern const struct floatformat floatformat_ieee_single_big;
-extern const struct floatformat floatformat_ieee_single_little;
-extern const struct floatformat floatformat_ieee_double_big;
-extern const struct floatformat floatformat_ieee_double_little;
-
-/* floatformat for ARM IEEE double, little endian bytes and big endian words */
-
-extern const struct floatformat floatformat_ieee_double_littlebyte_bigword;
-
-/* floatformats for VAX.  */
-
-extern const struct floatformat floatformat_vax_f;
-extern const struct floatformat floatformat_vax_d;
-extern const struct floatformat floatformat_vax_g;
-
-/* floatformats for various extendeds.  */
-
-extern const struct floatformat floatformat_i387_ext;
-extern const struct floatformat floatformat_m68881_ext;
-extern const struct floatformat floatformat_i960_ext;
-extern const struct floatformat floatformat_m88110_ext;
-extern const struct floatformat floatformat_m88110_harris_ext;
-extern const struct floatformat floatformat_arm_ext_big;
-extern const struct floatformat floatformat_arm_ext_littlebyte_bigword;
-/* IA-64 Floating Point register spilt into memory.  */
-extern const struct floatformat floatformat_ia64_spill_big;
-extern const struct floatformat floatformat_ia64_spill_little;
-extern const struct floatformat floatformat_ia64_quad_big;
-extern const struct floatformat floatformat_ia64_quad_little;
-
-/* Convert from FMT to a double.
-   FROM is the address of the extended float.
-   Store the double in *TO.  */
-
-extern void
-floatformat_to_double (const struct floatformat *, const void *, double *);
-
-/* The converse: convert the double *FROM to FMT
-   and store where TO points.  */
-
-extern void
-floatformat_from_double (const struct floatformat *, const double *, void *);
-
-/* Return non-zero iff the data at FROM is a valid number in format FMT.  */
-
-extern int
-floatformat_is_valid (const struct floatformat *fmt, const void *from);
-
-#endif	/* defined (FLOATFORMAT_H) */
diff --git a/include/fnmatch.h b/include/fnmatch.h
deleted file mode 100644
index 5b9953c..0000000
--- a/include/fnmatch.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright 1991, 1992, 1993, 1996 Free Software Foundation, Inc.
-
-NOTE: The canonical source of this file is maintained with the GNU C Library.
-Bugs can be reported to bug-glibc@prep.ai.mit.edu.
-
-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, 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, 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#ifndef	_FNMATCH_H
-
-#define	_FNMATCH_H	1
-
-#ifdef	__cplusplus
-extern "C" {
-#endif
-
-#if defined (__cplusplus) || (defined (__STDC__) && __STDC__)
-#undef	__P
-#define	__P(args)	args
-#else /* Not C++ or ANSI C.  */
-#undef	__P
-#define	__P(args)	()
-/* We can get away without defining `const' here only because in this file
-   it is used only inside the prototype for `fnmatch', which is elided in
-   non-ANSI C where `const' is problematical.  */
-#endif /* C++ or ANSI C.  */
-
-
-/* We #undef these before defining them because some losing systems
-   (HP-UX A.08.07 for example) define these in <unistd.h>.  */
-#undef	FNM_PATHNAME
-#undef	FNM_NOESCAPE
-#undef	FNM_PERIOD
-
-/* Bits set in the FLAGS argument to `fnmatch'.  */
-#define	FNM_PATHNAME	(1 << 0) /* No wildcard can ever match `/'.  */
-#define	FNM_NOESCAPE	(1 << 1) /* Backslashes don't quote special chars.  */
-#define	FNM_PERIOD	(1 << 2) /* Leading `.' is matched only explicitly.  */
-
-#if !defined (_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 2 || defined (_GNU_SOURCE)
-#define	FNM_FILE_NAME	FNM_PATHNAME /* Preferred GNU name.  */
-#define	FNM_LEADING_DIR	(1 << 3) /* Ignore `/...' after a match.  */
-#define	FNM_CASEFOLD	(1 << 4) /* Compare without regard to case.  */
-#endif
-
-/* Value returned by `fnmatch' if STRING does not match PATTERN.  */
-#define	FNM_NOMATCH	1
-
-/* Match STRING against the filename pattern PATTERN,
-   returning zero if it matches, FNM_NOMATCH if not.  */
-extern int fnmatch __P ((const char *__pattern, const char *__string,
-			 int __flags));
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif /* fnmatch.h */
diff --git a/include/fopen-bin.h b/include/fopen-bin.h
deleted file mode 100644
index b868f63..0000000
--- a/include/fopen-bin.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Macros for the 'type' part of an fopen, freopen or fdopen. 
-
-	<Read|Write>[Update]<Binary file|text file>
-
-   This version is for "binary" systems, where text and binary files are
-   different.  An example is Mess-Dose.  Many Unix systems could also
-   cope with a "b" in the string, indicating binary files, but some reject this
-   (and thereby don't conform to ANSI C, but what else is new?).
-
-   This file is designed for inclusion by host-dependent .h files.  No
-   user application should include it directly, since that would make
-   the application unable to be configured for both "same" and "binary"
-   variant systems.  */
-
-#define FOPEN_RB	"rb"
-#define FOPEN_WB 	"wb"
-#define FOPEN_AB 	"ab"
-#define FOPEN_RUB 	"r+b"
-#define FOPEN_WUB 	"w+b"
-#define FOPEN_AUB 	"a+b"
-
-#define FOPEN_RT	"r"
-#define FOPEN_WT 	"w"
-#define FOPEN_AT 	"a"
-#define FOPEN_RUT 	"r+"
-#define FOPEN_WUT 	"w+"
-#define FOPEN_AUT 	"a+"
diff --git a/include/fopen-same.h b/include/fopen-same.h
deleted file mode 100644
index 0f37529..0000000
--- a/include/fopen-same.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Macros for the 'type' part of an fopen, freopen or fdopen. 
-
-	<Read|Write>[Update]<Binary file|text file>
-
-   This version is for "same" systems, where text and binary files are
-   the same.  An example is Unix.  Many Unix systems could also add a
-   "b" to the string, indicating binary files, but some reject this
-   (and thereby don't conform to ANSI C, but what else is new?).
-
-   This file is designed for inclusion by host-dependent .h files.  No
-   user application should include it directly, since that would make
-   the application unable to be configured for both "same" and "binary"
-   variant systems.  */
-
-#define FOPEN_RB	"r"
-#define FOPEN_WB 	"w"
-#define FOPEN_AB 	"a"
-#define FOPEN_RUB 	"r+"
-#define FOPEN_WUB 	"w+"
-#define FOPEN_AUB 	"a+"
-
-#define FOPEN_RT	"r"
-#define FOPEN_WT 	"w"
-#define FOPEN_AT 	"a"
-#define FOPEN_RUT 	"r+"
-#define FOPEN_WUT 	"w+"
-#define FOPEN_AUT 	"a+"
diff --git a/include/fopen-vms.h b/include/fopen-vms.h
deleted file mode 100644
index da76b7f..0000000
--- a/include/fopen-vms.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Macros for the 'type' part of an fopen, freopen or fdopen. 
-
-	<Read|Write>[Update]<Binary file|text file>
-
-   This version is for VMS systems, where text and binary files are
-   different.
-   This file is designed for inclusion by host-dependent .h files.  No
-   user application should include it directly, since that would make
-   the application unable to be configured for both "same" and "binary"
-   variant systems.  */
-
-#define FOPEN_RB	"rb","rfm=var"
-#define FOPEN_WB 	"wb","rfm=var"
-#define FOPEN_AB 	"ab","rfm=var"
-#define FOPEN_RUB 	"r+b","rfm=var"
-#define FOPEN_WUB 	"w+b","rfm=var"
-#define FOPEN_AUB 	"a+b","rfm=var"
-
-#define FOPEN_RT	"r"
-#define FOPEN_WT 	"w"
-#define FOPEN_AT 	"a"
-#define FOPEN_RUT 	"r+"
-#define FOPEN_WUT 	"w+"
-#define FOPEN_AUT 	"a+"
diff --git a/include/gdb/ChangeLog b/include/gdb/ChangeLog
deleted file mode 100644
index 2693f64..0000000
--- a/include/gdb/ChangeLog
+++ /dev/null
@@ -1,155 +0,0 @@
-2005-07-08  Ben Elliston  <bje@au.ibm.com>
-
-	* callback.h: Remove ANSI_PROTOTYPES conditional code.
-
-2005-01-28  Hans-Peter Nilsson  <hp@axis.com>
-
-	* callback.h (struct host_callback_struct): New members pipe,
-	pipe_empty, pipe_nonempty, ispipe, pipe_buffer and
-	target_sizeof_int.
-	(CB_SYS_pipe): New macro.
-
-	* callback.h: Include "bfd.h".
-	(struct host_callback_struct): New member target_endian.
-	(cb_store_target_endian): Declare.
-
-2004-12-15  Hans-Peter Nilsson  <hp@axis.com>
-
-	* callback.h (CB_SYS_truncate, CB_SYS_ftruncate): New macros.
-
-2004-12-13  Hans-Peter Nilsson  <hp@axis.com>
-
-	* callback.h (struct host_callback_struct): New member lstat.
-	(CB_SYS_lstat): New macro.
-	(CB_SYS_rename): New macro.
-
-2004-09-08  Michael Snyder  <msnyder@redhat.com>
-
-	Commited by Corinna Vinschen <vinschen@redhat.com>
-	* sim-sh.h: Add new sh2a banked registers.
-
-2004-08-04  Andrew Cagney  <cagney@gnu.org>
-
-	* sim-ppc.h: Add extern "C" wrapper.
-	(enum sim_ppc_regnum): Add full list of SPRs.
-
-2004-08-04  Jim Blandy  <jimb@redhat.com>
-
-	* sim-ppc.h: New file.
-
-2004-06-25  J"orn Rennecke <joern.rennecke@superh.com>
-
-	* callback.h (host_callback_struct): Replace members fdopen and
-	alwaysopen with fd_buddy.
-	[sim/common: * callback.c: Changed all users.  ]
-
-2003-10-31  Kevin Buettner  <kevin@redhat.com>
-
-	* sim-frv.h: New file.
-
-2003-10-15  J"orn Rennecke <joern.rennecke@superh.com>
-
-	* callback.h (struct host_callback_struct): New members ftruncate
-	and truncate.
-
-2003-06-10  Corinna Vinschen  <vinschen@redhat.com>
-
-	* gdb/fileio.h: New file.
-
-2003-05-07  Andrew Cagney  <cagney@redhat.com>
-
-	* sim-d10v.h (sim_d10v_translate_addr): Add regcache parameter.
-	(sim_d10v_translate_imap_addr): Add regcache parameter.
-	(sim_d10v_translate_dmap_addr): Ditto.
-
-2003-03-27  Nick Clifton  <nickc@redhat.com>
-
-	* sim-arm.h (sim_arm_regs): Add iWMMXt registers.
-
-2003-03-20  Nick Clifton  <nickc@redhat.com>
-
-	* sim-arm.h (sim_arm_regs): Add Maverick co-processor
-	registers.
-
-2003-02-27  Andrew Cagney  <cagney@redhat.com>
-
-	* remote-sim.h (sim_open, sim_load, sim_create_inferior): Rename
-	_bfd to bfd.
-
-2003-02-20  Andrew Cagney  <ac131313@redhat.com>
-
-	* remote-sim.h (SIM_RC): Delete unused SIM_RC_UNKNOWN_BREAKPOINT,
-	SIM_RC_INSUFFICIENT_RESOURCES and SIM_RC_DUPLICATE_BREAKPOINT.
-	(sim_set_breakpoint, sim_clear_breakpoint): Delete declarations.
-	(sim_clear_all_breakpoints, sim_enable_breakpoint): Ditto.
-	(sim_enable_all_breakpoints, sim_disable_breakpoint): Ditto.
-	(sim_disable_all_breakpoints): Ditto.
-
-2002-12-26  Kazu Hirata  <kazu@cs.umass.edu>
-
-	* sim-h8300.h: Remove ^M.
-
-2002-07-29  Andrey Volkov  <avolkov@transas.com>
-
-	* sim-h8300.h: Rename all enums from H8300_ to SIM_H8300_
-	 prefix.
-
-2002-07-23  Andrey Volkov  <avolkov@transas.com>
-
-	* sim-h8300.h: New file.
-
-2002-07-17  Andrew Cagney  <cagney@redhat.com>
-
-	* remote-sim.h: Update copyright.
-	(sim_set_callbacks, sim_size, sim_trace)
-	(sim_set_trace, sim_set_profile_size, sim_kill): Delete.  Moved to
-	"sim/common/run-sim.h".
-
-Wed Jul 17 19:36:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
-
-	* sim-sh.h: Add enum constants for sh[1-4], sh3e, sh3?-dsp,
-	renumbering the sh-dsp registers to use distinct numbers.
-
-2002-06-15  Andrew Cagney  <ac131313@redhat.com>
-
-	* sim-arm.h (enum sim_arm_regs): Rename sim_arm_regnum.
-
-2002-06-12  Andrew Cagney  <ac131313@redhat.com>
-
-	* sim-arm.h: New file.
-
-2002-06-08  Andrew Cagney  <cagney@redhat.com>
-
-	* callback.h: Copy to here from directory above.
-	* remote-sim.h: Copy to here from directory above.
-
-2002-06-01  Andrew Cagney  <ac131313@redhat.com>
-
-	* sim-d10v.h (sim_d10v_regs): Expand to include all registers.
-	Update copyright.
-
-2002-05-23  Andrew Cagney  <ac131313@redhat.com>
-
-	* sim-d10v.h: New file.  Moved from include/sim-d10v.h.
-
-2002-05-10  Elena Zannoni  <ezannoni@redhat.com>
-
-        * sim-sh.h: New file, for sh gdb<->sim interface.
-
-2002-05-09  Daniel Jacobowitz  <drow@mvista.com>
-
-	* signals.h: Update comments.
-	(enum target_signal): Remove conditional compilation around
-	Mach-specific signals.  Move them to after TARGET_SIGNAL_DEFAULT.
-
-2002-03-10  Daniel Jacobowitz  <drow@mvista.com>
-
-	* signals.h: New file, from gdb/defs.h.
-
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/include/gdb/callback.h b/include/gdb/callback.h
deleted file mode 100644
index b7ed3cd..0000000
--- a/include/gdb/callback.h
+++ /dev/null
@@ -1,322 +0,0 @@
-/* Remote target system call callback support.
-   Copyright 1997 Free Software Foundation, Inc.
-   Contributed by Cygnus Solutions.
-
-This file is part of GDB.
-
-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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-/* This interface isn't intended to be specific to any particular kind
-   of remote (hardware, simulator, whatever).  As such, support for it
-   (e.g. sim/common/callback.c) should *not* live in the simulator source
-   tree, nor should it live in the gdb source tree.  */
-
-/* There are various ways to handle system calls:
-
-   1) Have a simulator intercept the appropriate trap instruction and
-   directly perform the system call on behalf of the target program.
-   This is the typical way of handling system calls for embedded targets.
-   [Handling system calls for embedded targets isn't that much of an
-   oxymoron as running compiler testsuites make use of the capability.]
-
-   This method of system call handling is done when STATE_ENVIRONMENT
-   is ENVIRONMENT_USER.
-
-   2) Have a simulator emulate the hardware as much as possible.
-   If the program running on the real hardware communicates with some sort
-   of target manager, one would want to be able to run this program on the
-   simulator as well.
-
-   This method of system call handling is done when STATE_ENVIRONMENT
-   is ENVIRONMENT_OPERATING.
-*/
-
-#ifndef CALLBACK_H
-#define CALLBACK_H
-
-/* ??? The reason why we check for va_start here should be documented.  */
-
-#ifndef va_start
-#include <ansidecl.h>
-#include <stdarg.h>
-#endif
-/* Needed for enum bfd_endian.  */
-#include "bfd.h"
-
-/* Mapping of host/target values.  */
-/* ??? For debugging purposes, one might want to add a string of the
-   name of the symbol.  */
-
-typedef struct {
-  int host_val;
-  int target_val;
-} CB_TARGET_DEFS_MAP;
-
-#define MAX_CALLBACK_FDS 10
-
-/* Forward decl for stat/fstat.  */
-struct stat;
-
-typedef struct host_callback_struct host_callback;
-
-struct host_callback_struct 
-{
-  int (*close) PARAMS ((host_callback *,int));
-  int (*get_errno) PARAMS ((host_callback *));
-  int (*isatty) PARAMS ((host_callback *, int));
-  int (*lseek) PARAMS ((host_callback *, int, long , int));
-  int (*open) PARAMS ((host_callback *, const char*, int mode));
-  int (*read) PARAMS ((host_callback *,int,  char *, int));
-  int (*read_stdin) PARAMS (( host_callback *, char *, int));
-  int (*rename) PARAMS ((host_callback *, const char *, const char *));
-  int (*system) PARAMS ((host_callback *, const char *));
-  long (*time) PARAMS ((host_callback *, long *));
-  int (*unlink) PARAMS ((host_callback *, const char *));
-  int (*write) PARAMS ((host_callback *,int, const char *, int));
-  int (*write_stdout) PARAMS ((host_callback *, const char *, int));
-  void (*flush_stdout) PARAMS ((host_callback *));
-  int (*write_stderr) PARAMS ((host_callback *, const char *, int));
-  void (*flush_stderr) PARAMS ((host_callback *));
-  int (*stat) PARAMS ((host_callback *, const char *, struct stat *));
-  int (*fstat) PARAMS ((host_callback *, int, struct stat *));
-  int (*lstat) PARAMS ((host_callback *, const char *, struct stat *));
-  int (*ftruncate) PARAMS ((host_callback *, int, long));
-  int (*truncate) PARAMS ((host_callback *, const char *, long));
-  int (*pipe) PARAMS ((host_callback *, int *));
-
-  /* Called by the framework when a read call has emptied a pipe buffer.  */
-  void (*pipe_empty) PARAMS ((host_callback *, int read_fd, int write_fd));
-
-  /* Called by the framework when a write call makes a pipe buffer
-     non-empty.  */
-  void (*pipe_nonempty) PARAMS ((host_callback *, int read_fd, int write_fd));
-
-  /* When present, call to the client to give it the oportunity to
-     poll any io devices for a request to quit (indicated by a nonzero
-     return value). */
-  int (*poll_quit) PARAMS ((host_callback *));
-
-  /* Used when the target has gone away, so we can close open
-     handles and free memory etc etc.  */
-  int (*shutdown) PARAMS ((host_callback *));
-  int (*init)     PARAMS ((host_callback *));
-
-  /* depreciated, use vprintf_filtered - Talk to the user on a console.  */
-  void (*printf_filtered) PARAMS ((host_callback *, const char *, ...));
-
-  /* Talk to the user on a console.  */
-  void (*vprintf_filtered) PARAMS ((host_callback *, const char *, va_list));
-
-  /* Same as vprintf_filtered but to stderr.  */
-  void (*evprintf_filtered) PARAMS ((host_callback *, const char *, va_list));
-
-  /* Print an error message and "exit".
-     In the case of gdb "exiting" means doing a longjmp back to the main
-     command loop.  */
-  void (*error) PARAMS ((host_callback *, const char *, ...));
-
-  int last_errno;		/* host format */
-
-  int fdmap[MAX_CALLBACK_FDS];
-  /* fd_buddy is used to contruct circular lists of target fds that point to
-     the same host fd.  A uniquely mapped fd points to itself; for a closed
-     one, fd_buddy has the value -1.  The host file descriptors for stdin /
-     stdout / stderr are never closed by the simulators, so they are put
-     in a special fd_buddy circular list which also has MAX_CALLBACK_FDS
-     as a member.  */
-  /* ??? We don't have a callback entry for dup, although it is trival to
-     implement now.  */
-  short fd_buddy[MAX_CALLBACK_FDS+1];
-
-  /* 0 = none, >0 = reader (index of writer),
-     <0 = writer (negative index of reader).
-     If abs (ispipe[N]) == N, then N is an end of a pipe whose other
-     end is closed.  */
-  short ispipe[MAX_CALLBACK_FDS];
-
-  /* A writer stores the buffer at its index.  Consecutive writes
-     realloc the buffer and add to the size.  The reader indicates the
-     read part in its .size, until it has consumed it all, at which
-     point it deallocates the buffer and zeroes out both sizes.  */
-  struct pipe_write_buffer
-  {
-    int size;
-    char *buffer;
-  } pipe_buffer[MAX_CALLBACK_FDS];
-
-  /* System call numbers.  */
-  CB_TARGET_DEFS_MAP *syscall_map;
-  /* Errno values.  */
-  CB_TARGET_DEFS_MAP *errno_map;
-  /* Flags to the open system call.  */
-  CB_TARGET_DEFS_MAP *open_map;
-  /* Signal numbers.  */
-  CB_TARGET_DEFS_MAP *signal_map;
-  /* Layout of `stat' struct.
-     The format is a series of "name,length" pairs separated by colons.
-     Empty space is indicated with a `name' of "space".
-     All padding must be explicitly mentioned.
-     Lengths are in bytes.  If this needs to be extended to bits,
-     use "name.bits".
-     Example: "st_dev,4:st_ino,4:st_mode,4:..."  */
-  const char *stat_map;
-
-  enum bfd_endian target_endian;
-
-  /* Size of an "int" on the target (for syscalls whose ABI uses "int").
-     This must include padding, and only padding-at-higher-address is
-     supported.  For example, a 64-bit target with 32-bit int:s which
-     are padded to 64 bits when in an array, should supposedly set this
-     to 8.  The default is 4 which matches ILP32 targets and 64-bit
-     targets with 32-bit ints and no padding.  */
-  int target_sizeof_int;
-
-  /* Marker for those wanting to do sanity checks.
-     This should remain the last member of this struct to help catch
-     miscompilation errors. */
-#define HOST_CALLBACK_MAGIC 4705 /* teds constant */
-  int magic;
-};
-
-extern host_callback default_callback;
-
-/* Canonical versions of system call numbers.
-   It's not intended to willy-nilly throw every system call ever heard
-   of in here.  Only include those that have an important use.
-   ??? One can certainly start a discussion over the ones that are currently
-   here, but that will always be true.  */
-
-/* These are used by the ANSI C support of libc.  */
-#define	CB_SYS_exit	1
-#define	CB_SYS_open	2
-#define	CB_SYS_close	3
-#define	CB_SYS_read	4
-#define	CB_SYS_write	5
-#define	CB_SYS_lseek	6
-#define	CB_SYS_unlink	7
-#define	CB_SYS_getpid	8
-#define	CB_SYS_kill	9
-#define CB_SYS_fstat    10
-/*#define CB_SYS_sbrk	11 - not currently a system call, but reserved.  */
-
-/* ARGV support.  */
-#define CB_SYS_argvlen	12
-#define CB_SYS_argv	13
-
-/* These are extras added for one reason or another.  */
-#define CB_SYS_chdir	14
-#define CB_SYS_stat	15
-#define CB_SYS_chmod 	16
-#define CB_SYS_utime 	17
-#define CB_SYS_time 	18
-
-/* More standard syscalls.  */
-#define CB_SYS_lstat    19
-#define CB_SYS_rename	20
-#define CB_SYS_truncate	21
-#define CB_SYS_ftruncate 22
-#define CB_SYS_pipe 	23
-
-/* Struct use to pass and return information necessary to perform a
-   system call.  */
-/* FIXME: Need to consider target word size.  */
-
-typedef struct cb_syscall {
-  /* The target's value of what system call to perform.  */
-  int func;
-  /* The arguments to the syscall.  */
-  long arg1, arg2, arg3, arg4;
-
-  /* The result.  */
-  long result;
-  /* Some system calls have two results.  */
-  long result2;
-  /* The target's errno value, or 0 if success.
-     This is converted to the target's value with host_to_target_errno.  */
-  int errcode;
-
-  /* Working space to be used by memory read/write callbacks.  */
-  PTR p1;
-  PTR p2;
-  long x1,x2;
-
-  /* Callbacks for reading/writing memory (e.g. for read/write syscalls).
-     ??? long or unsigned long might be better to use for the `count'
-     argument here.  We mimic sim_{read,write} for now.  Be careful to
-     test any changes with -Wall -Werror, mixed signed comparisons
-     will get you.  */
-  int (*read_mem) PARAMS ((host_callback * /*cb*/, struct cb_syscall * /*sc*/,
-			   unsigned long /*taddr*/, char * /*buf*/,
-			   int /*bytes*/));
-  int (*write_mem) PARAMS ((host_callback * /*cb*/, struct cb_syscall * /*sc*/,
-			    unsigned long /*taddr*/, const char * /*buf*/,
-			    int /*bytes*/));
-
-  /* For sanity checking, should be last entry.  */
-  int magic;
-} CB_SYSCALL;
-
-/* Magic number sanity checker.  */
-#define CB_SYSCALL_MAGIC 0x12344321
-
-/* Macro to initialize CB_SYSCALL.  Called first, before filling in
-   any fields.  */
-#define CB_SYSCALL_INIT(sc) \
-do { \
-  memset ((sc), 0, sizeof (*(sc))); \
-  (sc)->magic = CB_SYSCALL_MAGIC; \
-} while (0)
-
-/* Return codes for various interface routines.  */
-
-typedef enum {
-  CB_RC_OK = 0,
-  /* generic error */
-  CB_RC_ERR,
-  /* either file not found or no read access */
-  CB_RC_ACCESS,
-  CB_RC_NO_MEM
-} CB_RC;
-
-/* Read in target values for system call numbers, errno values, signals.  */
-CB_RC cb_read_target_syscall_maps PARAMS ((host_callback *, const char *));
-
-/* Translate target to host syscall function numbers.  */
-int cb_target_to_host_syscall PARAMS ((host_callback *, int));
-
-/* Translate host to target errno value.  */
-int cb_host_to_target_errno PARAMS ((host_callback *, int));
-
-/* Translate target to host open flags.  */
-int cb_target_to_host_open PARAMS ((host_callback *, int));
-
-/* Translate target signal number to host.  */
-int cb_target_to_host_signal PARAMS ((host_callback *, int));
-
-/* Translate host signal number to target.  */
-int cb_host_to_target_signal PARAMS ((host_callback *, int));
-
-/* Translate host stat struct to target.
-   If stat struct ptr is NULL, just compute target stat struct size.
-   Result is size of target stat struct or 0 if error.  */
-int cb_host_to_target_stat PARAMS ((host_callback *, const struct stat *, PTR));
-
-/* Translate a value to target endian.  */
-void cb_store_target_endian PARAMS ((host_callback *, char *, int, long));
-
-/* Perform a system call.  */
-CB_RC cb_syscall PARAMS ((host_callback *, CB_SYSCALL *));
-
-#endif
diff --git a/include/gdb/fileio.h b/include/gdb/fileio.h
deleted file mode 100644
index d844781..0000000
--- a/include/gdb/fileio.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/* Hosted File I/O interface definitions, for GDB, the GNU Debugger.
-
-   Copyright 2003 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 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., 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.  */
-
-#ifndef GDB_FILEIO_H_
-#define GDB_FILEIO_H_
-
-/* The following flags are defined to be independent of the host
-   as well as the target side implementation of these constants.
-   All constants are defined with a leading FILEIO_ in the name
-   to allow the usage of these constants together with the
-   corresponding implementation dependent constants in one module. */
-
-/* open(2) flags */
-#define FILEIO_O_RDONLY           0x0
-#define FILEIO_O_WRONLY           0x1
-#define FILEIO_O_RDWR             0x2
-#define FILEIO_O_APPEND           0x8
-#define FILEIO_O_CREAT          0x200
-#define FILEIO_O_TRUNC          0x400
-#define FILEIO_O_EXCL           0x800
-#define FILEIO_O_SUPPORTED	(FILEIO_O_RDONLY | FILEIO_O_WRONLY| \
-				 FILEIO_O_RDWR   | FILEIO_O_APPEND| \
-				 FILEIO_O_CREAT  | FILEIO_O_TRUNC| \
-				 FILEIO_O_EXCL)
-
-/* mode_t bits */
-#define FILEIO_S_IFREG        0100000
-#define FILEIO_S_IFDIR         040000
-#define FILEIO_S_IFCHR         020000
-#define FILEIO_S_IRUSR           0400
-#define FILEIO_S_IWUSR           0200
-#define FILEIO_S_IXUSR           0100
-#define FILEIO_S_IRWXU           0700
-#define FILEIO_S_IRGRP            040
-#define FILEIO_S_IWGRP            020
-#define FILEIO_S_IXGRP            010
-#define FILEIO_S_IRWXG            070
-#define FILEIO_S_IROTH             04
-#define FILEIO_S_IWOTH             02
-#define FILEIO_S_IXOTH             01
-#define FILEIO_S_IRWXO             07
-#define FILEIO_S_SUPPORTED         (FILEIO_S_IFREG|FILEIO_S_IFDIR|  \
-				    FILEIO_S_IRWXU|FILEIO_S_IRWXG|  \
-                                    FILEIO_S_IRWXO)
-
-/* lseek(2) flags */
-#define FILEIO_SEEK_SET             0
-#define FILEIO_SEEK_CUR             1
-#define FILEIO_SEEK_END             2
-
-/* errno values */
-#define FILEIO_EPERM                1
-#define FILEIO_ENOENT               2
-#define FILEIO_EINTR                4
-#define FILEIO_EIO                  5
-#define FILEIO_EBADF                9
-#define FILEIO_EACCES              13
-#define FILEIO_EFAULT              14
-#define FILEIO_EBUSY               16
-#define FILEIO_EEXIST              17
-#define FILEIO_ENODEV              19
-#define FILEIO_ENOTDIR             20
-#define FILEIO_EISDIR              21
-#define FILEIO_EINVAL              22
-#define FILEIO_ENFILE              23
-#define FILEIO_EMFILE              24
-#define FILEIO_EFBIG               27
-#define FILEIO_ENOSPC              28
-#define FILEIO_ESPIPE              29
-#define FILEIO_EROFS               30
-#define FILEIO_ENOSYS		   88
-#define FILEIO_ENAMETOOLONG        91
-#define FILEIO_EUNKNOWN          9999
-
-/* limits */
-#define FILEIO_INT_MIN    -2147483648L
-#define FILEIO_INT_MAX     2147483647L
-#define FILEIO_UINT_MAX    4294967295UL
-#define FILEIO_LONG_MIN   -9223372036854775808LL
-#define FILEIO_LONG_MAX    9223372036854775807LL
-#define FILEIO_ULONG_MAX   18446744073709551615ULL
-
-/* Integral types as used in protocol. */
-#if 0
-typedef __int32_t fio_int_t;
-typedef __uint32_t fio_uint_t, fio_mode_t, fio_time_t;
-typedef __int64_t fio_long_t;
-typedef __uint64_t fio_ulong_t;
-#endif
-
-#define FIO_INT_LEN   4
-#define FIO_UINT_LEN  4
-#define FIO_MODE_LEN  4
-#define FIO_TIME_LEN  4
-#define FIO_LONG_LEN  8
-#define FIO_ULONG_LEN 8
-
-typedef char fio_int_t[FIO_INT_LEN];   
-typedef char fio_uint_t[FIO_UINT_LEN];
-typedef char fio_mode_t[FIO_MODE_LEN];
-typedef char fio_time_t[FIO_TIME_LEN];
-typedef char fio_long_t[FIO_LONG_LEN];
-typedef char fio_ulong_t[FIO_ULONG_LEN];
-
-/* Struct stat as used in protocol.  For complete independence
-   of host/target systems, it's defined as an array with offsets
-   to the members. */
-
-struct fio_stat {
-  fio_uint_t  fst_dev;
-  fio_uint_t  fst_ino;
-  fio_mode_t  fst_mode;
-  fio_uint_t  fst_nlink;
-  fio_uint_t  fst_uid;
-  fio_uint_t  fst_gid;
-  fio_uint_t  fst_rdev;
-  fio_ulong_t fst_size;
-  fio_ulong_t fst_blksize;
-  fio_ulong_t fst_blocks;
-  fio_time_t  fst_atime;
-  fio_time_t  fst_mtime;
-  fio_time_t  fst_ctime;
-};
-
-struct fio_timeval {
-  fio_time_t  ftv_sec;
-  fio_long_t  ftv_usec;
-};
-
-#endif /* GDB_FILEIO_H_ */
diff --git a/include/gdb/remote-sim.h b/include/gdb/remote-sim.h
deleted file mode 100644
index a49ba1a..0000000
--- a/include/gdb/remote-sim.h
+++ /dev/null
@@ -1,282 +0,0 @@
-/* This file defines the interface between the simulator and gdb.
-
-   Copyright 1993, 1994, 1996, 1997, 1998, 2000, 2002 Free Software
-   Foundation, Inc.
-
-This file is part of GDB.
-
-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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-#if !defined (REMOTE_SIM_H)
-#define REMOTE_SIM_H 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* This file is used when building stand-alone simulators, so isolate this
-   file from gdb.  */
-
-/* Pick up CORE_ADDR_TYPE if defined (from gdb), otherwise use same value as
-   gdb does (unsigned int - from defs.h).  */
-
-#ifndef CORE_ADDR_TYPE
-typedef unsigned int SIM_ADDR;
-#else
-typedef CORE_ADDR_TYPE SIM_ADDR;
-#endif
-
-
-/* Semi-opaque type used as result of sim_open and passed back to all
-   other routines.  "desc" is short for "descriptor".
-   It is up to each simulator to define `sim_state'.  */
-
-typedef struct sim_state *SIM_DESC;
-
-
-/* Values for `kind' arg to sim_open.  */
-
-typedef enum {
-  SIM_OPEN_STANDALONE, /* simulator used standalone (run.c) */
-  SIM_OPEN_DEBUG       /* simulator used by debugger (gdb) */
-} SIM_OPEN_KIND;
-
-
-/* Return codes from various functions.  */
-
-typedef enum {
-  SIM_RC_FAIL = 0,
-  SIM_RC_OK = 1
-} SIM_RC;
-
-
-/* The bfd struct, as an opaque type.  */
-
-struct bfd;
-
-
-/* Main simulator entry points.  */
-
-
-/* Create a fully initialized simulator instance.
-
-   (This function is called when the simulator is selected from the
-   gdb command line.)
-
-   KIND specifies how the simulator shall be used.  Currently there
-   are only two kinds: stand-alone and debug.
-
-   CALLBACK specifies a standard host callback (defined in callback.h).
-
-   ABFD, when non NULL, designates a target program.  The program is
-   not loaded.
-
-   ARGV is a standard ARGV pointer such as that passed from the
-   command line.  The syntax of the argument list is is assumed to be
-   ``SIM-PROG { SIM-OPTION } [ TARGET-PROGRAM { TARGET-OPTION } ]''.
-   The trailing TARGET-PROGRAM and args are only valid for a
-   stand-alone simulator.
-
-   On success, the result is a non NULL descriptor that shall be
-   passed to the other sim_foo functions.  While the simulator
-   configuration can be parameterized by (in decreasing precedence)
-   ARGV's SIM-OPTION, ARGV's TARGET-PROGRAM and the ABFD argument, the
-   successful creation of the simulator shall not dependent on the
-   presence of any of these arguments/options.
-
-   Hardware simulator: The created simulator shall be sufficiently
-   initialized to handle, with out restrictions any client requests
-   (including memory reads/writes, register fetch/stores and a
-   resume).
-
-   Process simulator: that process is not created until a call to
-   sim_create_inferior.  FIXME: What should the state of the simulator
-   be? */
-
-SIM_DESC sim_open PARAMS ((SIM_OPEN_KIND kind, struct host_callback_struct *callback, struct bfd *abfd, char **argv));
-
-
-/* Destory a simulator instance.
-
-   QUITTING is non-zero if we cannot hang on errors.
-
-   This may involve freeing target memory and closing any open files
-   and mmap'd areas.  You cannot assume sim_kill has already been
-   called. */
-
-void sim_close PARAMS ((SIM_DESC sd, int quitting));
-
-
-/* Load program PROG into the simulators memory.
-
-   If ABFD is non-NULL, the bfd for the file has already been opened.
-   The result is a return code indicating success.
-
-   Hardware simulator: Normally, each program section is written into
-   memory according to that sections LMA using physical (direct)
-   addressing.  The exception being systems, such as PPC/CHRP, which
-   support more complicated program loaders.  A call to this function
-   should not effect the state of the processor registers.  Multiple
-   calls to this function are permitted and have an accumulative
-   effect.
-
-   Process simulator: Calls to this function may be ignored.
-
-   FIXME: Most hardware simulators load the image at the VMA using
-   virtual addressing.
-
-   FIXME: For some hardware targets, before a loaded program can be
-   executed, it requires the manipulation of VM registers and tables.
-   Such manipulation should probably (?) occure in
-   sim_create_inferior. */
-
-SIM_RC sim_load PARAMS ((SIM_DESC sd, char *prog, struct bfd *abfd, int from_tty));
-
-
-/* Prepare to run the simulated program.
-
-   ABFD, if not NULL, provides initial processor state information.
-   ARGV and ENV, if non NULL, are NULL terminated lists of pointers.
-
-   Hardware simulator: This function shall initialize the processor
-   registers to a known value.  The program counter and possibly stack
-   pointer shall be set using information obtained from ABFD (or
-   hardware reset defaults).  ARGV and ENV, dependant on the target
-   ABI, may be written to memory.
-
-   Process simulator: After a call to this function, a new process
-   instance shall exist. The TEXT, DATA, BSS and stack regions shall
-   all be initialized, ARGV and ENV shall be written to process
-   address space (according to the applicable ABI) and the program
-   counter and stack pointer set accordingly. */
-
-SIM_RC sim_create_inferior PARAMS ((SIM_DESC sd, struct bfd *abfd, char **argv, char **env));
-
-
-/* Fetch LENGTH bytes of the simulated program's memory.  Start fetch
-   at virtual address MEM and store in BUF.  Result is number of bytes
-   read, or zero if error.  */
-
-int sim_read PARAMS ((SIM_DESC sd, SIM_ADDR mem, unsigned char *buf, int length));
-
-
-/* Store LENGTH bytes from BUF into the simulated program's
-   memory. Store bytes starting at virtual address MEM. Result is
-   number of bytes write, or zero if error.  */
-
-int sim_write PARAMS ((SIM_DESC sd, SIM_ADDR mem, unsigned char *buf, int length));
-
-
-/* Fetch register REGNO storing its raw (target endian) value in the
-   LENGTH byte buffer BUF.  Return the actual size of the register or
-   zero if REGNO is not applicable.
-
-   Legacy implementations ignore LENGTH and always return -1.
-
-   If LENGTH does not match the size of REGNO no data is transfered
-   (the actual register size is still returned). */
-
-int sim_fetch_register PARAMS ((SIM_DESC sd, int regno, unsigned char *buf, int length));
-
-
-/* Store register REGNO from the raw (target endian) value in BUF.
-   Return the actual size of the register or zero if REGNO is not
-   applicable.
-
-   Legacy implementations ignore LENGTH and always return -1.
-
-   If LENGTH does not match the size of REGNO no data is transfered
-   (the actual register size is still returned). */
-
-int sim_store_register PARAMS ((SIM_DESC sd, int regno, unsigned char *buf, int length));
-
-
-/* Print whatever statistics the simulator has collected.
-
-   VERBOSE is currently unused and must always be zero.  */
-
-void sim_info PARAMS ((SIM_DESC sd, int verbose));
-
-
-/* Run (or resume) the simulated program.
-
-   STEP, when non-zero indicates that only a single simulator cycle
-   should be emulated.
-
-   SIGGNAL, if non-zero is a (HOST) SIGRC value indicating the type of
-   event (hardware interrupt, signal) to be delivered to the simulated
-   program.
-
-   Hardware simulator: If the SIGRC value returned by
-   sim_stop_reason() is passed back to the simulator via SIGGNAL then
-   the hardware simulator shall correctly deliver the hardware event
-   indicated by that signal.  If a value of zero is passed in then the
-   simulation will continue as if there were no outstanding signal.
-   The effect of any other SIGGNAL value is is implementation
-   dependant.
-
-   Process simulator: If SIGRC is non-zero then the corresponding
-   signal is delivered to the simulated program and execution is then
-   continued.  A zero SIGRC value indicates that the program should
-   continue as normal. */
-
-void sim_resume PARAMS ((SIM_DESC sd, int step, int siggnal));
-
-
-/* Asynchronous request to stop the simulation.
-   A nonzero return indicates that the simulator is able to handle
-   the request */
-
-int sim_stop PARAMS ((SIM_DESC sd));
-
-
-/* Fetch the REASON why the program stopped.
-
-   SIM_EXITED: The program has terminated. SIGRC indicates the target
-   dependant exit status.
-
-   SIM_STOPPED: The program has stopped.  SIGRC uses the host's signal
-   numbering as a way of identifying the reaon: program interrupted by
-   user via a sim_stop request (SIGINT); a breakpoint instruction
-   (SIGTRAP); a completed single step (SIGTRAP); an internal error
-   condition (SIGABRT); an illegal instruction (SIGILL); Access to an
-   undefined memory region (SIGSEGV); Mis-aligned memory access
-   (SIGBUS).  For some signals information in addition to the signal
-   number may be retained by the simulator (e.g. offending address),
-   that information is not directly accessable via this interface.
-
-   SIM_SIGNALLED: The program has been terminated by a signal. The
-   simulator has encountered target code that causes the the program
-   to exit with signal SIGRC.
-
-   SIM_RUNNING, SIM_POLLING: The return of one of these values
-   indicates a problem internal to the simulator. */
-
-enum sim_stop { sim_running, sim_polling, sim_exited, sim_stopped, sim_signalled };
-
-void sim_stop_reason PARAMS ((SIM_DESC sd, enum sim_stop *reason, int *sigrc));
-
-
-/* Passthru for other commands that the simulator might support.
-   Simulators should be prepared to deal with any combination of NULL
-   or empty CMD. */
-
-void sim_do_command PARAMS ((SIM_DESC sd, char *cmd));
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !defined (REMOTE_SIM_H) */
diff --git a/include/gdb/signals.h b/include/gdb/signals.h
deleted file mode 100644
index b6f5d48..0000000
--- a/include/gdb/signals.h
+++ /dev/null
@@ -1,237 +0,0 @@
-/* Target signal numbers for GDB and the GDB remote protocol.
-   Copyright 1986, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
-   1997, 1998, 1999, 2000, 2001, 2002
-   Free Software Foundation, Inc.
-
-   This file is part of GDB.
-
-   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., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#ifndef GDB_SIGNALS_H
-#define GDB_SIGNALS_H
-
-/* The numbering of these signals is chosen to match traditional unix
-   signals (insofar as various unices use the same numbers, anyway).
-   It is also the numbering of the GDB remote protocol.  Other remote
-   protocols, if they use a different numbering, should make sure to
-   translate appropriately.
-
-   Since these numbers have actually made it out into other software
-   (stubs, etc.), you mustn't disturb the assigned numbering.  If you
-   need to add new signals here, add them to the end of the explicitly
-   numbered signals, at the comment marker.  Add them unconditionally,
-   not within any #if or #ifdef.
-
-   This is based strongly on Unix/POSIX signals for several reasons:
-   (1) This set of signals represents a widely-accepted attempt to
-   represent events of this sort in a portable fashion, (2) we want a
-   signal to make it from wait to child_wait to the user intact, (3) many
-   remote protocols use a similar encoding.  However, it is
-   recognized that this set of signals has limitations (such as not
-   distinguishing between various kinds of SIGSEGV, or not
-   distinguishing hitting a breakpoint from finishing a single step).
-   So in the future we may get around this either by adding additional
-   signals for breakpoint, single-step, etc., or by adding signal
-   codes; the latter seems more in the spirit of what BSD, System V,
-   etc. are doing to address these issues.  */
-
-/* For an explanation of what each signal means, see
-   target_signal_to_string.  */
-
-enum target_signal
-  {
-    /* Used some places (e.g. stop_signal) to record the concept that
-       there is no signal.  */
-    TARGET_SIGNAL_0 = 0,
-    TARGET_SIGNAL_FIRST = 0,
-    TARGET_SIGNAL_HUP = 1,
-    TARGET_SIGNAL_INT = 2,
-    TARGET_SIGNAL_QUIT = 3,
-    TARGET_SIGNAL_ILL = 4,
-    TARGET_SIGNAL_TRAP = 5,
-    TARGET_SIGNAL_ABRT = 6,
-    TARGET_SIGNAL_EMT = 7,
-    TARGET_SIGNAL_FPE = 8,
-    TARGET_SIGNAL_KILL = 9,
-    TARGET_SIGNAL_BUS = 10,
-    TARGET_SIGNAL_SEGV = 11,
-    TARGET_SIGNAL_SYS = 12,
-    TARGET_SIGNAL_PIPE = 13,
-    TARGET_SIGNAL_ALRM = 14,
-    TARGET_SIGNAL_TERM = 15,
-    TARGET_SIGNAL_URG = 16,
-    TARGET_SIGNAL_STOP = 17,
-    TARGET_SIGNAL_TSTP = 18,
-    TARGET_SIGNAL_CONT = 19,
-    TARGET_SIGNAL_CHLD = 20,
-    TARGET_SIGNAL_TTIN = 21,
-    TARGET_SIGNAL_TTOU = 22,
-    TARGET_SIGNAL_IO = 23,
-    TARGET_SIGNAL_XCPU = 24,
-    TARGET_SIGNAL_XFSZ = 25,
-    TARGET_SIGNAL_VTALRM = 26,
-    TARGET_SIGNAL_PROF = 27,
-    TARGET_SIGNAL_WINCH = 28,
-    TARGET_SIGNAL_LOST = 29,
-    TARGET_SIGNAL_USR1 = 30,
-    TARGET_SIGNAL_USR2 = 31,
-    TARGET_SIGNAL_PWR = 32,
-    /* Similar to SIGIO.  Perhaps they should have the same number.  */
-    TARGET_SIGNAL_POLL = 33,
-    TARGET_SIGNAL_WIND = 34,
-    TARGET_SIGNAL_PHONE = 35,
-    TARGET_SIGNAL_WAITING = 36,
-    TARGET_SIGNAL_LWP = 37,
-    TARGET_SIGNAL_DANGER = 38,
-    TARGET_SIGNAL_GRANT = 39,
-    TARGET_SIGNAL_RETRACT = 40,
-    TARGET_SIGNAL_MSG = 41,
-    TARGET_SIGNAL_SOUND = 42,
-    TARGET_SIGNAL_SAK = 43,
-    TARGET_SIGNAL_PRIO = 44,
-    TARGET_SIGNAL_REALTIME_33 = 45,
-    TARGET_SIGNAL_REALTIME_34 = 46,
-    TARGET_SIGNAL_REALTIME_35 = 47,
-    TARGET_SIGNAL_REALTIME_36 = 48,
-    TARGET_SIGNAL_REALTIME_37 = 49,
-    TARGET_SIGNAL_REALTIME_38 = 50,
-    TARGET_SIGNAL_REALTIME_39 = 51,
-    TARGET_SIGNAL_REALTIME_40 = 52,
-    TARGET_SIGNAL_REALTIME_41 = 53,
-    TARGET_SIGNAL_REALTIME_42 = 54,
-    TARGET_SIGNAL_REALTIME_43 = 55,
-    TARGET_SIGNAL_REALTIME_44 = 56,
-    TARGET_SIGNAL_REALTIME_45 = 57,
-    TARGET_SIGNAL_REALTIME_46 = 58,
-    TARGET_SIGNAL_REALTIME_47 = 59,
-    TARGET_SIGNAL_REALTIME_48 = 60,
-    TARGET_SIGNAL_REALTIME_49 = 61,
-    TARGET_SIGNAL_REALTIME_50 = 62,
-    TARGET_SIGNAL_REALTIME_51 = 63,
-    TARGET_SIGNAL_REALTIME_52 = 64,
-    TARGET_SIGNAL_REALTIME_53 = 65,
-    TARGET_SIGNAL_REALTIME_54 = 66,
-    TARGET_SIGNAL_REALTIME_55 = 67,
-    TARGET_SIGNAL_REALTIME_56 = 68,
-    TARGET_SIGNAL_REALTIME_57 = 69,
-    TARGET_SIGNAL_REALTIME_58 = 70,
-    TARGET_SIGNAL_REALTIME_59 = 71,
-    TARGET_SIGNAL_REALTIME_60 = 72,
-    TARGET_SIGNAL_REALTIME_61 = 73,
-    TARGET_SIGNAL_REALTIME_62 = 74,
-    TARGET_SIGNAL_REALTIME_63 = 75,
-
-    /* Used internally by Solaris threads.  See signal(5) on Solaris.  */
-    TARGET_SIGNAL_CANCEL = 76,
-
-    /* Yes, this pains me, too.  But LynxOS didn't have SIG32, and now
-       GNU/Linux does, and we can't disturb the numbering, since it's
-       part of the remote protocol.  Note that in some GDB's
-       TARGET_SIGNAL_REALTIME_32 is number 76.  */
-    TARGET_SIGNAL_REALTIME_32,
-    /* Yet another pain, IRIX 6 has SIG64. */
-    TARGET_SIGNAL_REALTIME_64,
-    /* Yet another pain, GNU/Linux MIPS might go up to 128. */
-    TARGET_SIGNAL_REALTIME_65,
-    TARGET_SIGNAL_REALTIME_66,
-    TARGET_SIGNAL_REALTIME_67,
-    TARGET_SIGNAL_REALTIME_68,
-    TARGET_SIGNAL_REALTIME_69,
-    TARGET_SIGNAL_REALTIME_70,
-    TARGET_SIGNAL_REALTIME_71,
-    TARGET_SIGNAL_REALTIME_72,
-    TARGET_SIGNAL_REALTIME_73,
-    TARGET_SIGNAL_REALTIME_74,
-    TARGET_SIGNAL_REALTIME_75,
-    TARGET_SIGNAL_REALTIME_76,
-    TARGET_SIGNAL_REALTIME_77,
-    TARGET_SIGNAL_REALTIME_78,
-    TARGET_SIGNAL_REALTIME_79,
-    TARGET_SIGNAL_REALTIME_80,
-    TARGET_SIGNAL_REALTIME_81,
-    TARGET_SIGNAL_REALTIME_82,
-    TARGET_SIGNAL_REALTIME_83,
-    TARGET_SIGNAL_REALTIME_84,
-    TARGET_SIGNAL_REALTIME_85,
-    TARGET_SIGNAL_REALTIME_86,
-    TARGET_SIGNAL_REALTIME_87,
-    TARGET_SIGNAL_REALTIME_88,
-    TARGET_SIGNAL_REALTIME_89,
-    TARGET_SIGNAL_REALTIME_90,
-    TARGET_SIGNAL_REALTIME_91,
-    TARGET_SIGNAL_REALTIME_92,
-    TARGET_SIGNAL_REALTIME_93,
-    TARGET_SIGNAL_REALTIME_94,
-    TARGET_SIGNAL_REALTIME_95,
-    TARGET_SIGNAL_REALTIME_96,
-    TARGET_SIGNAL_REALTIME_97,
-    TARGET_SIGNAL_REALTIME_98,
-    TARGET_SIGNAL_REALTIME_99,
-    TARGET_SIGNAL_REALTIME_100,
-    TARGET_SIGNAL_REALTIME_101,
-    TARGET_SIGNAL_REALTIME_102,
-    TARGET_SIGNAL_REALTIME_103,
-    TARGET_SIGNAL_REALTIME_104,
-    TARGET_SIGNAL_REALTIME_105,
-    TARGET_SIGNAL_REALTIME_106,
-    TARGET_SIGNAL_REALTIME_107,
-    TARGET_SIGNAL_REALTIME_108,
-    TARGET_SIGNAL_REALTIME_109,
-    TARGET_SIGNAL_REALTIME_110,
-    TARGET_SIGNAL_REALTIME_111,
-    TARGET_SIGNAL_REALTIME_112,
-    TARGET_SIGNAL_REALTIME_113,
-    TARGET_SIGNAL_REALTIME_114,
-    TARGET_SIGNAL_REALTIME_115,
-    TARGET_SIGNAL_REALTIME_116,
-    TARGET_SIGNAL_REALTIME_117,
-    TARGET_SIGNAL_REALTIME_118,
-    TARGET_SIGNAL_REALTIME_119,
-    TARGET_SIGNAL_REALTIME_120,
-    TARGET_SIGNAL_REALTIME_121,
-    TARGET_SIGNAL_REALTIME_122,
-    TARGET_SIGNAL_REALTIME_123,
-    TARGET_SIGNAL_REALTIME_124,
-    TARGET_SIGNAL_REALTIME_125,
-    TARGET_SIGNAL_REALTIME_126,
-    TARGET_SIGNAL_REALTIME_127,
-
-    TARGET_SIGNAL_INFO,
-
-    /* Some signal we don't know about.  */
-    TARGET_SIGNAL_UNKNOWN,
-
-    /* Use whatever signal we use when one is not specifically specified
-       (for passing to proceed and so on).  */
-    TARGET_SIGNAL_DEFAULT,
-
-    /* Mach exceptions.  In versions of GDB before 5.2, these were just before
-       TARGET_SIGNAL_INFO if you were compiling on a Mach host (and missing
-       otherwise).  */
-    TARGET_EXC_BAD_ACCESS,
-    TARGET_EXC_BAD_INSTRUCTION,
-    TARGET_EXC_ARITHMETIC,
-    TARGET_EXC_EMULATION,
-    TARGET_EXC_SOFTWARE,
-    TARGET_EXC_BREAKPOINT,
-
-    /* If you are adding a new signal, add it just above this comment.  */
-
-    /* Last and unused enum value, for sizing arrays, etc.  */
-    TARGET_SIGNAL_LAST
-  };
-
-#endif /* #ifndef GDB_SIGNALS_H */
diff --git a/include/gdb/sim-arm.h b/include/gdb/sim-arm.h
deleted file mode 100644
index 5598f73..0000000
--- a/include/gdb/sim-arm.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/* This file defines the interface between the Arm simulator and GDB.
-
-   Copyright 2002, 2003 Free Software Foundation, Inc.
-
-   Contributed by Red Hat.
-
-   This file is part of GDB.
-
-   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., 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.  */
-
-#if !defined (SIM_ARM_H)
-#define SIM_ARM_H
-
-#ifdef __cplusplus
-extern "C" { // }
-#endif
-
-enum sim_arm_regs
-{
-  SIM_ARM_R0_REGNUM,
-  SIM_ARM_R1_REGNUM,
-  SIM_ARM_R2_REGNUM,
-  SIM_ARM_R3_REGNUM,
-  SIM_ARM_R4_REGNUM,
-  SIM_ARM_R5_REGNUM,
-  SIM_ARM_R6_REGNUM,
-  SIM_ARM_R7_REGNUM,
-  SIM_ARM_R8_REGNUM,
-  SIM_ARM_R9_REGNUM,
-  SIM_ARM_R10_REGNUM,
-  SIM_ARM_R11_REGNUM,
-  SIM_ARM_R12_REGNUM,
-  SIM_ARM_R13_REGNUM,
-  SIM_ARM_R14_REGNUM,
-  SIM_ARM_R15_REGNUM, /* PC */
-  SIM_ARM_FP0_REGNUM,
-  SIM_ARM_FP1_REGNUM,
-  SIM_ARM_FP2_REGNUM,
-  SIM_ARM_FP3_REGNUM,
-  SIM_ARM_FP4_REGNUM,
-  SIM_ARM_FP5_REGNUM,
-  SIM_ARM_FP6_REGNUM,
-  SIM_ARM_FP7_REGNUM,
-  SIM_ARM_FPS_REGNUM,
-  SIM_ARM_PS_REGNUM,
-  SIM_ARM_MAVERIC_COP0R0_REGNUM,
-  SIM_ARM_MAVERIC_COP0R1_REGNUM,
-  SIM_ARM_MAVERIC_COP0R2_REGNUM,
-  SIM_ARM_MAVERIC_COP0R3_REGNUM,
-  SIM_ARM_MAVERIC_COP0R4_REGNUM,
-  SIM_ARM_MAVERIC_COP0R5_REGNUM,
-  SIM_ARM_MAVERIC_COP0R6_REGNUM,
-  SIM_ARM_MAVERIC_COP0R7_REGNUM,
-  SIM_ARM_MAVERIC_COP0R8_REGNUM,
-  SIM_ARM_MAVERIC_COP0R9_REGNUM,
-  SIM_ARM_MAVERIC_COP0R10_REGNUM,
-  SIM_ARM_MAVERIC_COP0R11_REGNUM,
-  SIM_ARM_MAVERIC_COP0R12_REGNUM,
-  SIM_ARM_MAVERIC_COP0R13_REGNUM,
-  SIM_ARM_MAVERIC_COP0R14_REGNUM,
-  SIM_ARM_MAVERIC_COP0R15_REGNUM,
-  SIM_ARM_MAVERIC_DSPSC_REGNUM,
-  SIM_ARM_IWMMXT_COP0R0_REGNUM,
-  SIM_ARM_IWMMXT_COP0R1_REGNUM,
-  SIM_ARM_IWMMXT_COP0R2_REGNUM,
-  SIM_ARM_IWMMXT_COP0R3_REGNUM,
-  SIM_ARM_IWMMXT_COP0R4_REGNUM,
-  SIM_ARM_IWMMXT_COP0R5_REGNUM,
-  SIM_ARM_IWMMXT_COP0R6_REGNUM,
-  SIM_ARM_IWMMXT_COP0R7_REGNUM,
-  SIM_ARM_IWMMXT_COP0R8_REGNUM,
-  SIM_ARM_IWMMXT_COP0R9_REGNUM,
-  SIM_ARM_IWMMXT_COP0R10_REGNUM,
-  SIM_ARM_IWMMXT_COP0R11_REGNUM,
-  SIM_ARM_IWMMXT_COP0R12_REGNUM,
-  SIM_ARM_IWMMXT_COP0R13_REGNUM,
-  SIM_ARM_IWMMXT_COP0R14_REGNUM,
-  SIM_ARM_IWMMXT_COP0R15_REGNUM,
-  SIM_ARM_IWMMXT_COP1R0_REGNUM,
-  SIM_ARM_IWMMXT_COP1R1_REGNUM,
-  SIM_ARM_IWMMXT_COP1R2_REGNUM,
-  SIM_ARM_IWMMXT_COP1R3_REGNUM,
-  SIM_ARM_IWMMXT_COP1R4_REGNUM,
-  SIM_ARM_IWMMXT_COP1R5_REGNUM,
-  SIM_ARM_IWMMXT_COP1R6_REGNUM,
-  SIM_ARM_IWMMXT_COP1R7_REGNUM,
-  SIM_ARM_IWMMXT_COP1R8_REGNUM,
-  SIM_ARM_IWMMXT_COP1R9_REGNUM,
-  SIM_ARM_IWMMXT_COP1R10_REGNUM,
-  SIM_ARM_IWMMXT_COP1R11_REGNUM,
-  SIM_ARM_IWMMXT_COP1R12_REGNUM,
-  SIM_ARM_IWMMXT_COP1R13_REGNUM,
-  SIM_ARM_IWMMXT_COP1R14_REGNUM,
-  SIM_ARM_IWMMXT_COP1R15_REGNUM
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/gdb/sim-d10v.h b/include/gdb/sim-d10v.h
deleted file mode 100644
index 8294b14..0000000
--- a/include/gdb/sim-d10v.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* This file defines the interface between the d10v simulator and gdb.
-
-   Copyright 1999, 2002 Free Software Foundation, Inc.
-
-This file is part of GDB.
-
-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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-#if !defined (SIM_D10V_H)
-#define SIM_D10V_H
-
-#ifdef __cplusplus
-extern "C" { // }
-#endif
-
-/* GDB interprets addresses as:
-
-   0x00xxxxxx: Physical unified memory segment     (Unified memory)
-   0x01xxxxxx: Physical instruction memory segment (On-chip insn memory)
-   0x02xxxxxx: Physical data memory segment        (On-chip data memory)
-   0x10xxxxxx: Logical data address segment        (DMAP translated memory)
-   0x11xxxxxx: Logical instruction address segment (IMAP translated memory)
-
-   The remote d10v board interprets addresses as:
-
-   0x00xxxxxx: Physical unified memory segment     (Unified memory)
-   0x01xxxxxx: Physical instruction memory segment (On-chip insn memory)
-   0x02xxxxxx: Physical data memory segment        (On-chip data memory)
-
-   The following translate a virtual DMAP/IMAP offset into a physical
-   memory segment assigning the translated address to PHYS.  Since a
-   memory access may cross a page boundrary the number of bytes for
-   which the translation is applicable (or 0 for an invalid virtual
-   offset) is returned. */
-
-enum
-  {
-    SIM_D10V_MEMORY_UNIFIED = 0x00000000,
-    SIM_D10V_MEMORY_INSN = 0x01000000,
-    SIM_D10V_MEMORY_DATA = 0x02000000,
-    SIM_D10V_MEMORY_DMAP = 0x10000000,
-    SIM_D10V_MEMORY_IMAP = 0x11000000
-  };
-
-extern unsigned long sim_d10v_translate_dmap_addr
-  (unsigned long offset,
-   int nr_bytes,
-   unsigned long *phys,
-   void *regcache,
-   unsigned long (*dmap_register) (void *regcache, int reg_nr));
-
-extern unsigned long sim_d10v_translate_imap_addr
-  (unsigned long offset,
-   int nr_bytes,
-   unsigned long *phys,
-   void *regcache,
-   unsigned long (*imap_register) (void *regcache, int reg_nr));
-
-extern unsigned long sim_d10v_translate_addr
-  (unsigned long vaddr,
-   int nr_bytes,
-   unsigned long *phys,
-   void *regcache,
-   unsigned long (*dmap_register) (void *regcache, int reg_nr),
-   unsigned long (*imap_register) (void *regcache, int reg_nr));
-
-
-/* The simulator makes use of the following register information. */
-
-enum sim_d10v_regs
-{
-  SIM_D10V_R0_REGNUM,
-  SIM_D10V_R1_REGNUM,
-  SIM_D10V_R2_REGNUM,
-  SIM_D10V_R3_REGNUM,
-  SIM_D10V_R4_REGNUM,
-  SIM_D10V_R5_REGNUM,
-  SIM_D10V_R6_REGNUM,
-  SIM_D10V_R7_REGNUM,
-  SIM_D10V_R8_REGNUM,
-  SIM_D10V_R9_REGNUM,
-  SIM_D10V_R10_REGNUM,
-  SIM_D10V_R11_REGNUM,
-  SIM_D10V_R12_REGNUM,
-  SIM_D10V_R13_REGNUM,
-  SIM_D10V_R14_REGNUM,
-  SIM_D10V_R15_REGNUM,
-  SIM_D10V_CR0_REGNUM,
-  SIM_D10V_CR1_REGNUM,
-  SIM_D10V_CR2_REGNUM,
-  SIM_D10V_CR3_REGNUM,
-  SIM_D10V_CR4_REGNUM,
-  SIM_D10V_CR5_REGNUM,
-  SIM_D10V_CR6_REGNUM,
-  SIM_D10V_CR7_REGNUM,
-  SIM_D10V_CR8_REGNUM,
-  SIM_D10V_CR9_REGNUM,
-  SIM_D10V_CR10_REGNUM,
-  SIM_D10V_CR11_REGNUM,
-  SIM_D10V_CR12_REGNUM,
-  SIM_D10V_CR13_REGNUM,
-  SIM_D10V_CR14_REGNUM,
-  SIM_D10V_CR15_REGNUM,
-  SIM_D10V_A0_REGNUM,
-  SIM_D10V_A1_REGNUM,
-  SIM_D10V_SPI_REGNUM,
-  SIM_D10V_SPU_REGNUM,
-  SIM_D10V_IMAP0_REGNUM,
-  SIM_D10V_IMAP1_REGNUM,
-  SIM_D10V_DMAP0_REGNUM,
-  SIM_D10V_DMAP1_REGNUM,
-  SIM_D10V_DMAP2_REGNUM,
-  SIM_D10V_DMAP3_REGNUM,
-  SIM_D10V_TS2_DMAP_REGNUM
-};
-  
-enum
-{
-  SIM_D10V_NR_R_REGS = 16,
-  SIM_D10V_NR_A_REGS = 2,
-  SIM_D10V_NR_IMAP_REGS = 2,
-  SIM_D10V_NR_DMAP_REGS = 4,
-  SIM_D10V_NR_CR_REGS = 16
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/gdb/sim-frv.h b/include/gdb/sim-frv.h
deleted file mode 100644
index 0a1e021..0000000
--- a/include/gdb/sim-frv.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* This file defines the interface between the FR-V simulator and GDB.
-
-   Copyright 2003 Free Software Foundation, Inc.
-
-   Contributed by Red Hat.
-
-   This file is part of GDB.
-
-   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., 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.  */
-
-#if !defined (SIM_FRV_H)
-#define SIM_FRV_H
-
-#ifdef __cplusplus
-extern "C" { // }
-#endif
-
-enum sim_frv_regs
-{
-  SIM_FRV_GR0_REGNUM  = 0,
-  SIM_FRV_GR63_REGNUM = 63,
-  SIM_FRV_FR0_REGNUM  = 64,
-  SIM_FRV_FR63_REGNUM = 127,
-  SIM_FRV_PC_REGNUM   = 128,
-
-  /* An FR-V architecture may have up to 4096 special purpose registers
-     (SPRs).  In order to determine a specific constant used to access
-     a particular SPR, one of the H_SPR_ prefixed offsets defined in
-     opcodes/frv-desc.h should be added to SIM_FRV_SPR0_REGNUM.  So,
-     for example, the number that GDB uses to fetch the link register
-     from the simulator is (SIM_FRV_SPR0_REGNUM + H_SPR_LR).  */
-  SIM_FRV_SPR0_REGNUM = 129,
-  SIM_FRV_SPR4095_REGNUM = SIM_FRV_SPR0_REGNUM + 4095
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/gdb/sim-h8300.h b/include/gdb/sim-h8300.h
deleted file mode 100644
index 246370a..0000000
--- a/include/gdb/sim-h8300.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* This file defines the interface between the h8300 simulator and gdb.
-   Copyright (C) 2002 Free Software Foundation, Inc.
-
-This file is part of GDB.
-
-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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-#if !defined (SIM_H8300_H)
-#define SIM_H8300_H
-
-#ifdef __cplusplus
-extern "C" { //}
-#endif
-
-/* The simulator makes use of the following register information. */
-
-  enum sim_h8300_regs
-  {
-    /* Registers common to all the H8 variants. */
-    /* Start here: */
-    SIM_H8300_R0_REGNUM,
-    SIM_H8300_R1_REGNUM,
-    SIM_H8300_R2_REGNUM,
-    SIM_H8300_R3_REGNUM,
-    SIM_H8300_R4_REGNUM,
-    SIM_H8300_R5_REGNUM,
-    SIM_H8300_R6_REGNUM,
-    SIM_H8300_R7_REGNUM,
-
-    SIM_H8300_CCR_REGNUM,  /* Contains processor status */
-    SIM_H8300_PC_REGNUM,   /* Contains program counter */
-    /* End here */
-
-    SIM_H8300_EXR_REGNUM,  /* Contains extended processor status
-                              H8S and higher */
-    SIM_H8300_MACL_REGNUM, /* Lower part of MAC register (26xx only)*/
-    SIM_H8300_MACH_REGNUM, /* High part of MAC register (26xx only) */
-
-    SIM_H8300_CYCLE_REGNUM,
-    SIM_H8300_INST_REGNUM,
-    SIM_H8300_TICK_REGNUM
-  };
-
-  enum
-  {
-    SIM_H8300_ARG_FIRST_REGNUM = SIM_H8300_R0_REGNUM, /* first reg in which an arg
-                                                         may be passed */
-    SIM_H8300_ARG_LAST_REGNUM = SIM_H8300_R3_REGNUM,  /* last  reg in which an arg
-                                                         may be passed */
-    SIM_H8300_FP_REGNUM = SIM_H8300_R6_REGNUM, /* Contain address of executing
-                                                  stack frame */
-    SIM_H8300_SP_REGNUM = SIM_H8300_R7_REGNUM  /* Contains address of top of stack */
-  };
-
-  enum
-  {
-    SIM_H8300_NUM_COMMON_REGS = 10,
-    SIM_H8300_S_NUM_REGS = 13,
-    SIM_H8300_NUM_REGS = 16
-  };
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif				/* SIM_H8300_H */
diff --git a/include/gdb/sim-m32c.h b/include/gdb/sim-m32c.h
deleted file mode 100644
index 6097add..0000000
--- a/include/gdb/sim-m32c.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* This file defines the interface between the m32c simulator and gdb.
-   Copyright (C) 2005 Free Software Foundation, Inc.
-
-This file is part of GDB.
-
-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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-#ifndef SIM_M32C_H
-#define SIM_M32C_H
-
-enum m32c_sim_reg {
-  m32c_sim_reg_r0_bank0,
-  m32c_sim_reg_r1_bank0,
-  m32c_sim_reg_r2_bank0,
-  m32c_sim_reg_r3_bank0,
-  m32c_sim_reg_a0_bank0,
-  m32c_sim_reg_a1_bank0,
-  m32c_sim_reg_fb_bank0,
-  m32c_sim_reg_sb_bank0,
-  m32c_sim_reg_r0_bank1,
-  m32c_sim_reg_r1_bank1,
-  m32c_sim_reg_r2_bank1,
-  m32c_sim_reg_r3_bank1,
-  m32c_sim_reg_a0_bank1,
-  m32c_sim_reg_a1_bank1,
-  m32c_sim_reg_fb_bank1,
-  m32c_sim_reg_sb_bank1,
-  m32c_sim_reg_usp,
-  m32c_sim_reg_isp,
-  m32c_sim_reg_pc,
-  m32c_sim_reg_intb,
-  m32c_sim_reg_flg,
-  m32c_sim_reg_svf,
-  m32c_sim_reg_svp,
-  m32c_sim_reg_vct,
-  m32c_sim_reg_dmd0,
-  m32c_sim_reg_dmd1,
-  m32c_sim_reg_dct0,
-  m32c_sim_reg_dct1,
-  m32c_sim_reg_drc0,
-  m32c_sim_reg_drc1,
-  m32c_sim_reg_dma0,
-  m32c_sim_reg_dma1,
-  m32c_sim_reg_dsa0,
-  m32c_sim_reg_dsa1,
-  m32c_sim_reg_dra0,
-  m32c_sim_reg_dra1,
-  m32c_sim_reg_num_regs
-};
-
-#endif /* SIM_M32C_H */
diff --git a/include/gdb/sim-ppc.h b/include/gdb/sim-ppc.h
deleted file mode 100644
index e31a671..0000000
--- a/include/gdb/sim-ppc.h
+++ /dev/null
@@ -1,771 +0,0 @@
-/* sim-ppc.h --- interface between PowerPC simulator and GDB.
-
-   Copyright 2004 Free Software Foundation, Inc.
-
-   Contributed by Red Hat.
-
-   This file is part of GDB.
-
-   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., 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.  */
-
-#if !defined (SIM_PPC_H)
-#define SIM_PPC_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* The register access functions, sim_fetch_register and
-   sim_store_register, use the following numbering for PowerPC
-   registers.  */
-
-enum sim_ppc_regnum
-  {
-    /* General-purpose registers, r0 -- r31.  */
-    sim_ppc_r0_regnum,
-    sim_ppc_r1_regnum,
-    sim_ppc_r2_regnum,
-    sim_ppc_r3_regnum,
-    sim_ppc_r4_regnum,
-    sim_ppc_r5_regnum,
-    sim_ppc_r6_regnum,
-    sim_ppc_r7_regnum,
-    sim_ppc_r8_regnum,
-    sim_ppc_r9_regnum,
-    sim_ppc_r10_regnum,
-    sim_ppc_r11_regnum,
-    sim_ppc_r12_regnum,
-    sim_ppc_r13_regnum,
-    sim_ppc_r14_regnum,
-    sim_ppc_r15_regnum,
-    sim_ppc_r16_regnum,
-    sim_ppc_r17_regnum,
-    sim_ppc_r18_regnum,
-    sim_ppc_r19_regnum,
-    sim_ppc_r20_regnum,
-    sim_ppc_r21_regnum,
-    sim_ppc_r22_regnum,
-    sim_ppc_r23_regnum,
-    sim_ppc_r24_regnum,
-    sim_ppc_r25_regnum,
-    sim_ppc_r26_regnum,
-    sim_ppc_r27_regnum,
-    sim_ppc_r28_regnum,
-    sim_ppc_r29_regnum,
-    sim_ppc_r30_regnum,
-    sim_ppc_r31_regnum,
-
-    /* Floating-point registers, f0 -- f31.  */
-    sim_ppc_f0_regnum,
-    sim_ppc_f1_regnum,
-    sim_ppc_f2_regnum,
-    sim_ppc_f3_regnum,
-    sim_ppc_f4_regnum,
-    sim_ppc_f5_regnum,
-    sim_ppc_f6_regnum,
-    sim_ppc_f7_regnum,
-    sim_ppc_f8_regnum,
-    sim_ppc_f9_regnum,
-    sim_ppc_f10_regnum,
-    sim_ppc_f11_regnum,
-    sim_ppc_f12_regnum,
-    sim_ppc_f13_regnum,
-    sim_ppc_f14_regnum,
-    sim_ppc_f15_regnum,
-    sim_ppc_f16_regnum,
-    sim_ppc_f17_regnum,
-    sim_ppc_f18_regnum,
-    sim_ppc_f19_regnum,
-    sim_ppc_f20_regnum,
-    sim_ppc_f21_regnum,
-    sim_ppc_f22_regnum,
-    sim_ppc_f23_regnum,
-    sim_ppc_f24_regnum,
-    sim_ppc_f25_regnum,
-    sim_ppc_f26_regnum,
-    sim_ppc_f27_regnum,
-    sim_ppc_f28_regnum,
-    sim_ppc_f29_regnum,
-    sim_ppc_f30_regnum,
-    sim_ppc_f31_regnum,
-
-    /* Altivec vector registers, vr0 -- vr31.  */
-    sim_ppc_vr0_regnum,
-    sim_ppc_vr1_regnum,
-    sim_ppc_vr2_regnum,
-    sim_ppc_vr3_regnum,
-    sim_ppc_vr4_regnum,
-    sim_ppc_vr5_regnum,
-    sim_ppc_vr6_regnum,
-    sim_ppc_vr7_regnum,
-    sim_ppc_vr8_regnum,
-    sim_ppc_vr9_regnum,
-    sim_ppc_vr10_regnum,
-    sim_ppc_vr11_regnum,
-    sim_ppc_vr12_regnum,
-    sim_ppc_vr13_regnum,
-    sim_ppc_vr14_regnum,
-    sim_ppc_vr15_regnum,
-    sim_ppc_vr16_regnum,
-    sim_ppc_vr17_regnum,
-    sim_ppc_vr18_regnum,
-    sim_ppc_vr19_regnum,
-    sim_ppc_vr20_regnum,
-    sim_ppc_vr21_regnum,
-    sim_ppc_vr22_regnum,
-    sim_ppc_vr23_regnum,
-    sim_ppc_vr24_regnum,
-    sim_ppc_vr25_regnum,
-    sim_ppc_vr26_regnum,
-    sim_ppc_vr27_regnum,
-    sim_ppc_vr28_regnum,
-    sim_ppc_vr29_regnum,
-    sim_ppc_vr30_regnum,
-    sim_ppc_vr31_regnum,
-
-    /* SPE APU GPR upper halves.  These are the upper 32 bits of the
-       gprs; there is one upper-half register for each gpr, so it is
-       appropriate to use sim_ppc_num_gprs for iterating through
-       these.  */
-    sim_ppc_rh0_regnum,
-    sim_ppc_rh1_regnum,
-    sim_ppc_rh2_regnum,
-    sim_ppc_rh3_regnum,
-    sim_ppc_rh4_regnum,
-    sim_ppc_rh5_regnum,
-    sim_ppc_rh6_regnum,
-    sim_ppc_rh7_regnum,
-    sim_ppc_rh8_regnum,
-    sim_ppc_rh9_regnum,
-    sim_ppc_rh10_regnum,
-    sim_ppc_rh11_regnum,
-    sim_ppc_rh12_regnum,
-    sim_ppc_rh13_regnum,
-    sim_ppc_rh14_regnum,
-    sim_ppc_rh15_regnum,
-    sim_ppc_rh16_regnum,
-    sim_ppc_rh17_regnum,
-    sim_ppc_rh18_regnum,
-    sim_ppc_rh19_regnum,
-    sim_ppc_rh20_regnum,
-    sim_ppc_rh21_regnum,
-    sim_ppc_rh22_regnum,
-    sim_ppc_rh23_regnum,
-    sim_ppc_rh24_regnum,
-    sim_ppc_rh25_regnum,
-    sim_ppc_rh26_regnum,
-    sim_ppc_rh27_regnum,
-    sim_ppc_rh28_regnum,
-    sim_ppc_rh29_regnum,
-    sim_ppc_rh30_regnum,
-    sim_ppc_rh31_regnum,
-
-    /* SPE APU GPR full registers.  Each of these registers is the
-       64-bit concatenation of a 32-bit GPR (providing the lower bits)
-       and a 32-bit upper-half register (providing the higher bits).
-       As for the upper-half registers, it is appropriate to use
-       sim_ppc_num_gprs with these.  */
-    sim_ppc_ev0_regnum,
-    sim_ppc_ev1_regnum,
-    sim_ppc_ev2_regnum,
-    sim_ppc_ev3_regnum,
-    sim_ppc_ev4_regnum,
-    sim_ppc_ev5_regnum,
-    sim_ppc_ev6_regnum,
-    sim_ppc_ev7_regnum,
-    sim_ppc_ev8_regnum,
-    sim_ppc_ev9_regnum,
-    sim_ppc_ev10_regnum,
-    sim_ppc_ev11_regnum,
-    sim_ppc_ev12_regnum,
-    sim_ppc_ev13_regnum,
-    sim_ppc_ev14_regnum,
-    sim_ppc_ev15_regnum,
-    sim_ppc_ev16_regnum,
-    sim_ppc_ev17_regnum,
-    sim_ppc_ev18_regnum,
-    sim_ppc_ev19_regnum,
-    sim_ppc_ev20_regnum,
-    sim_ppc_ev21_regnum,
-    sim_ppc_ev22_regnum,
-    sim_ppc_ev23_regnum,
-    sim_ppc_ev24_regnum,
-    sim_ppc_ev25_regnum,
-    sim_ppc_ev26_regnum,
-    sim_ppc_ev27_regnum,
-    sim_ppc_ev28_regnum,
-    sim_ppc_ev29_regnum,
-    sim_ppc_ev30_regnum,
-    sim_ppc_ev31_regnum,
-
-    /* Segment registers, sr0 -- sr15.  */
-    sim_ppc_sr0_regnum,
-    sim_ppc_sr1_regnum,
-    sim_ppc_sr2_regnum,
-    sim_ppc_sr3_regnum,
-    sim_ppc_sr4_regnum,
-    sim_ppc_sr5_regnum,
-    sim_ppc_sr6_regnum,
-    sim_ppc_sr7_regnum,
-    sim_ppc_sr8_regnum,
-    sim_ppc_sr9_regnum,
-    sim_ppc_sr10_regnum,
-    sim_ppc_sr11_regnum,
-    sim_ppc_sr12_regnum,
-    sim_ppc_sr13_regnum,
-    sim_ppc_sr14_regnum,
-    sim_ppc_sr15_regnum,
-
-    /* Miscellaneous --- but non-SPR --- registers.  */
-    sim_ppc_pc_regnum,
-    sim_ppc_ps_regnum,
-    sim_ppc_cr_regnum,
-    sim_ppc_fpscr_regnum,
-    sim_ppc_acc_regnum,
-    sim_ppc_vscr_regnum,
-
-    /* Special-purpose registers.  */
-    sim_ppc_spr0_regnum, sim_ppc_spr1_regnum,
-    sim_ppc_spr2_regnum, sim_ppc_spr3_regnum,
-    sim_ppc_spr4_regnum, sim_ppc_spr5_regnum,
-    sim_ppc_spr6_regnum, sim_ppc_spr7_regnum,
-    sim_ppc_spr8_regnum, sim_ppc_spr9_regnum,
-    sim_ppc_spr10_regnum, sim_ppc_spr11_regnum,
-    sim_ppc_spr12_regnum, sim_ppc_spr13_regnum,
-    sim_ppc_spr14_regnum, sim_ppc_spr15_regnum,
-    sim_ppc_spr16_regnum, sim_ppc_spr17_regnum,
-    sim_ppc_spr18_regnum, sim_ppc_spr19_regnum,
-    sim_ppc_spr20_regnum, sim_ppc_spr21_regnum,
-    sim_ppc_spr22_regnum, sim_ppc_spr23_regnum,
-    sim_ppc_spr24_regnum, sim_ppc_spr25_regnum,
-    sim_ppc_spr26_regnum, sim_ppc_spr27_regnum,
-    sim_ppc_spr28_regnum, sim_ppc_spr29_regnum,
-    sim_ppc_spr30_regnum, sim_ppc_spr31_regnum,
-    sim_ppc_spr32_regnum, sim_ppc_spr33_regnum,
-    sim_ppc_spr34_regnum, sim_ppc_spr35_regnum,
-    sim_ppc_spr36_regnum, sim_ppc_spr37_regnum,
-    sim_ppc_spr38_regnum, sim_ppc_spr39_regnum,
-    sim_ppc_spr40_regnum, sim_ppc_spr41_regnum,
-    sim_ppc_spr42_regnum, sim_ppc_spr43_regnum,
-    sim_ppc_spr44_regnum, sim_ppc_spr45_regnum,
-    sim_ppc_spr46_regnum, sim_ppc_spr47_regnum,
-    sim_ppc_spr48_regnum, sim_ppc_spr49_regnum,
-    sim_ppc_spr50_regnum, sim_ppc_spr51_regnum,
-    sim_ppc_spr52_regnum, sim_ppc_spr53_regnum,
-    sim_ppc_spr54_regnum, sim_ppc_spr55_regnum,
-    sim_ppc_spr56_regnum, sim_ppc_spr57_regnum,
-    sim_ppc_spr58_regnum, sim_ppc_spr59_regnum,
-    sim_ppc_spr60_regnum, sim_ppc_spr61_regnum,
-    sim_ppc_spr62_regnum, sim_ppc_spr63_regnum,
-    sim_ppc_spr64_regnum, sim_ppc_spr65_regnum,
-    sim_ppc_spr66_regnum, sim_ppc_spr67_regnum,
-    sim_ppc_spr68_regnum, sim_ppc_spr69_regnum,
-    sim_ppc_spr70_regnum, sim_ppc_spr71_regnum,
-    sim_ppc_spr72_regnum, sim_ppc_spr73_regnum,
-    sim_ppc_spr74_regnum, sim_ppc_spr75_regnum,
-    sim_ppc_spr76_regnum, sim_ppc_spr77_regnum,
-    sim_ppc_spr78_regnum, sim_ppc_spr79_regnum,
-    sim_ppc_spr80_regnum, sim_ppc_spr81_regnum,
-    sim_ppc_spr82_regnum, sim_ppc_spr83_regnum,
-    sim_ppc_spr84_regnum, sim_ppc_spr85_regnum,
-    sim_ppc_spr86_regnum, sim_ppc_spr87_regnum,
-    sim_ppc_spr88_regnum, sim_ppc_spr89_regnum,
-    sim_ppc_spr90_regnum, sim_ppc_spr91_regnum,
-    sim_ppc_spr92_regnum, sim_ppc_spr93_regnum,
-    sim_ppc_spr94_regnum, sim_ppc_spr95_regnum,
-    sim_ppc_spr96_regnum, sim_ppc_spr97_regnum,
-    sim_ppc_spr98_regnum, sim_ppc_spr99_regnum,
-    sim_ppc_spr100_regnum, sim_ppc_spr101_regnum,
-    sim_ppc_spr102_regnum, sim_ppc_spr103_regnum,
-    sim_ppc_spr104_regnum, sim_ppc_spr105_regnum,
-    sim_ppc_spr106_regnum, sim_ppc_spr107_regnum,
-    sim_ppc_spr108_regnum, sim_ppc_spr109_regnum,
-    sim_ppc_spr110_regnum, sim_ppc_spr111_regnum,
-    sim_ppc_spr112_regnum, sim_ppc_spr113_regnum,
-    sim_ppc_spr114_regnum, sim_ppc_spr115_regnum,
-    sim_ppc_spr116_regnum, sim_ppc_spr117_regnum,
-    sim_ppc_spr118_regnum, sim_ppc_spr119_regnum,
-    sim_ppc_spr120_regnum, sim_ppc_spr121_regnum,
-    sim_ppc_spr122_regnum, sim_ppc_spr123_regnum,
-    sim_ppc_spr124_regnum, sim_ppc_spr125_regnum,
-    sim_ppc_spr126_regnum, sim_ppc_spr127_regnum,
-    sim_ppc_spr128_regnum, sim_ppc_spr129_regnum,
-    sim_ppc_spr130_regnum, sim_ppc_spr131_regnum,
-    sim_ppc_spr132_regnum, sim_ppc_spr133_regnum,
-    sim_ppc_spr134_regnum, sim_ppc_spr135_regnum,
-    sim_ppc_spr136_regnum, sim_ppc_spr137_regnum,
-    sim_ppc_spr138_regnum, sim_ppc_spr139_regnum,
-    sim_ppc_spr140_regnum, sim_ppc_spr141_regnum,
-    sim_ppc_spr142_regnum, sim_ppc_spr143_regnum,
-    sim_ppc_spr144_regnum, sim_ppc_spr145_regnum,
-    sim_ppc_spr146_regnum, sim_ppc_spr147_regnum,
-    sim_ppc_spr148_regnum, sim_ppc_spr149_regnum,
-    sim_ppc_spr150_regnum, sim_ppc_spr151_regnum,
-    sim_ppc_spr152_regnum, sim_ppc_spr153_regnum,
-    sim_ppc_spr154_regnum, sim_ppc_spr155_regnum,
-    sim_ppc_spr156_regnum, sim_ppc_spr157_regnum,
-    sim_ppc_spr158_regnum, sim_ppc_spr159_regnum,
-    sim_ppc_spr160_regnum, sim_ppc_spr161_regnum,
-    sim_ppc_spr162_regnum, sim_ppc_spr163_regnum,
-    sim_ppc_spr164_regnum, sim_ppc_spr165_regnum,
-    sim_ppc_spr166_regnum, sim_ppc_spr167_regnum,
-    sim_ppc_spr168_regnum, sim_ppc_spr169_regnum,
-    sim_ppc_spr170_regnum, sim_ppc_spr171_regnum,
-    sim_ppc_spr172_regnum, sim_ppc_spr173_regnum,
-    sim_ppc_spr174_regnum, sim_ppc_spr175_regnum,
-    sim_ppc_spr176_regnum, sim_ppc_spr177_regnum,
-    sim_ppc_spr178_regnum, sim_ppc_spr179_regnum,
-    sim_ppc_spr180_regnum, sim_ppc_spr181_regnum,
-    sim_ppc_spr182_regnum, sim_ppc_spr183_regnum,
-    sim_ppc_spr184_regnum, sim_ppc_spr185_regnum,
-    sim_ppc_spr186_regnum, sim_ppc_spr187_regnum,
-    sim_ppc_spr188_regnum, sim_ppc_spr189_regnum,
-    sim_ppc_spr190_regnum, sim_ppc_spr191_regnum,
-    sim_ppc_spr192_regnum, sim_ppc_spr193_regnum,
-    sim_ppc_spr194_regnum, sim_ppc_spr195_regnum,
-    sim_ppc_spr196_regnum, sim_ppc_spr197_regnum,
-    sim_ppc_spr198_regnum, sim_ppc_spr199_regnum,
-    sim_ppc_spr200_regnum, sim_ppc_spr201_regnum,
-    sim_ppc_spr202_regnum, sim_ppc_spr203_regnum,
-    sim_ppc_spr204_regnum, sim_ppc_spr205_regnum,
-    sim_ppc_spr206_regnum, sim_ppc_spr207_regnum,
-    sim_ppc_spr208_regnum, sim_ppc_spr209_regnum,
-    sim_ppc_spr210_regnum, sim_ppc_spr211_regnum,
-    sim_ppc_spr212_regnum, sim_ppc_spr213_regnum,
-    sim_ppc_spr214_regnum, sim_ppc_spr215_regnum,
-    sim_ppc_spr216_regnum, sim_ppc_spr217_regnum,
-    sim_ppc_spr218_regnum, sim_ppc_spr219_regnum,
-    sim_ppc_spr220_regnum, sim_ppc_spr221_regnum,
-    sim_ppc_spr222_regnum, sim_ppc_spr223_regnum,
-    sim_ppc_spr224_regnum, sim_ppc_spr225_regnum,
-    sim_ppc_spr226_regnum, sim_ppc_spr227_regnum,
-    sim_ppc_spr228_regnum, sim_ppc_spr229_regnum,
-    sim_ppc_spr230_regnum, sim_ppc_spr231_regnum,
-    sim_ppc_spr232_regnum, sim_ppc_spr233_regnum,
-    sim_ppc_spr234_regnum, sim_ppc_spr235_regnum,
-    sim_ppc_spr236_regnum, sim_ppc_spr237_regnum,
-    sim_ppc_spr238_regnum, sim_ppc_spr239_regnum,
-    sim_ppc_spr240_regnum, sim_ppc_spr241_regnum,
-    sim_ppc_spr242_regnum, sim_ppc_spr243_regnum,
-    sim_ppc_spr244_regnum, sim_ppc_spr245_regnum,
-    sim_ppc_spr246_regnum, sim_ppc_spr247_regnum,
-    sim_ppc_spr248_regnum, sim_ppc_spr249_regnum,
-    sim_ppc_spr250_regnum, sim_ppc_spr251_regnum,
-    sim_ppc_spr252_regnum, sim_ppc_spr253_regnum,
-    sim_ppc_spr254_regnum, sim_ppc_spr255_regnum,
-    sim_ppc_spr256_regnum, sim_ppc_spr257_regnum,
-    sim_ppc_spr258_regnum, sim_ppc_spr259_regnum,
-    sim_ppc_spr260_regnum, sim_ppc_spr261_regnum,
-    sim_ppc_spr262_regnum, sim_ppc_spr263_regnum,
-    sim_ppc_spr264_regnum, sim_ppc_spr265_regnum,
-    sim_ppc_spr266_regnum, sim_ppc_spr267_regnum,
-    sim_ppc_spr268_regnum, sim_ppc_spr269_regnum,
-    sim_ppc_spr270_regnum, sim_ppc_spr271_regnum,
-    sim_ppc_spr272_regnum, sim_ppc_spr273_regnum,
-    sim_ppc_spr274_regnum, sim_ppc_spr275_regnum,
-    sim_ppc_spr276_regnum, sim_ppc_spr277_regnum,
-    sim_ppc_spr278_regnum, sim_ppc_spr279_regnum,
-    sim_ppc_spr280_regnum, sim_ppc_spr281_regnum,
-    sim_ppc_spr282_regnum, sim_ppc_spr283_regnum,
-    sim_ppc_spr284_regnum, sim_ppc_spr285_regnum,
-    sim_ppc_spr286_regnum, sim_ppc_spr287_regnum,
-    sim_ppc_spr288_regnum, sim_ppc_spr289_regnum,
-    sim_ppc_spr290_regnum, sim_ppc_spr291_regnum,
-    sim_ppc_spr292_regnum, sim_ppc_spr293_regnum,
-    sim_ppc_spr294_regnum, sim_ppc_spr295_regnum,
-    sim_ppc_spr296_regnum, sim_ppc_spr297_regnum,
-    sim_ppc_spr298_regnum, sim_ppc_spr299_regnum,
-    sim_ppc_spr300_regnum, sim_ppc_spr301_regnum,
-    sim_ppc_spr302_regnum, sim_ppc_spr303_regnum,
-    sim_ppc_spr304_regnum, sim_ppc_spr305_regnum,
-    sim_ppc_spr306_regnum, sim_ppc_spr307_regnum,
-    sim_ppc_spr308_regnum, sim_ppc_spr309_regnum,
-    sim_ppc_spr310_regnum, sim_ppc_spr311_regnum,
-    sim_ppc_spr312_regnum, sim_ppc_spr313_regnum,
-    sim_ppc_spr314_regnum, sim_ppc_spr315_regnum,
-    sim_ppc_spr316_regnum, sim_ppc_spr317_regnum,
-    sim_ppc_spr318_regnum, sim_ppc_spr319_regnum,
-    sim_ppc_spr320_regnum, sim_ppc_spr321_regnum,
-    sim_ppc_spr322_regnum, sim_ppc_spr323_regnum,
-    sim_ppc_spr324_regnum, sim_ppc_spr325_regnum,
-    sim_ppc_spr326_regnum, sim_ppc_spr327_regnum,
-    sim_ppc_spr328_regnum, sim_ppc_spr329_regnum,
-    sim_ppc_spr330_regnum, sim_ppc_spr331_regnum,
-    sim_ppc_spr332_regnum, sim_ppc_spr333_regnum,
-    sim_ppc_spr334_regnum, sim_ppc_spr335_regnum,
-    sim_ppc_spr336_regnum, sim_ppc_spr337_regnum,
-    sim_ppc_spr338_regnum, sim_ppc_spr339_regnum,
-    sim_ppc_spr340_regnum, sim_ppc_spr341_regnum,
-    sim_ppc_spr342_regnum, sim_ppc_spr343_regnum,
-    sim_ppc_spr344_regnum, sim_ppc_spr345_regnum,
-    sim_ppc_spr346_regnum, sim_ppc_spr347_regnum,
-    sim_ppc_spr348_regnum, sim_ppc_spr349_regnum,
-    sim_ppc_spr350_regnum, sim_ppc_spr351_regnum,
-    sim_ppc_spr352_regnum, sim_ppc_spr353_regnum,
-    sim_ppc_spr354_regnum, sim_ppc_spr355_regnum,
-    sim_ppc_spr356_regnum, sim_ppc_spr357_regnum,
-    sim_ppc_spr358_regnum, sim_ppc_spr359_regnum,
-    sim_ppc_spr360_regnum, sim_ppc_spr361_regnum,
-    sim_ppc_spr362_regnum, sim_ppc_spr363_regnum,
-    sim_ppc_spr364_regnum, sim_ppc_spr365_regnum,
-    sim_ppc_spr366_regnum, sim_ppc_spr367_regnum,
-    sim_ppc_spr368_regnum, sim_ppc_spr369_regnum,
-    sim_ppc_spr370_regnum, sim_ppc_spr371_regnum,
-    sim_ppc_spr372_regnum, sim_ppc_spr373_regnum,
-    sim_ppc_spr374_regnum, sim_ppc_spr375_regnum,
-    sim_ppc_spr376_regnum, sim_ppc_spr377_regnum,
-    sim_ppc_spr378_regnum, sim_ppc_spr379_regnum,
-    sim_ppc_spr380_regnum, sim_ppc_spr381_regnum,
-    sim_ppc_spr382_regnum, sim_ppc_spr383_regnum,
-    sim_ppc_spr384_regnum, sim_ppc_spr385_regnum,
-    sim_ppc_spr386_regnum, sim_ppc_spr387_regnum,
-    sim_ppc_spr388_regnum, sim_ppc_spr389_regnum,
-    sim_ppc_spr390_regnum, sim_ppc_spr391_regnum,
-    sim_ppc_spr392_regnum, sim_ppc_spr393_regnum,
-    sim_ppc_spr394_regnum, sim_ppc_spr395_regnum,
-    sim_ppc_spr396_regnum, sim_ppc_spr397_regnum,
-    sim_ppc_spr398_regnum, sim_ppc_spr399_regnum,
-    sim_ppc_spr400_regnum, sim_ppc_spr401_regnum,
-    sim_ppc_spr402_regnum, sim_ppc_spr403_regnum,
-    sim_ppc_spr404_regnum, sim_ppc_spr405_regnum,
-    sim_ppc_spr406_regnum, sim_ppc_spr407_regnum,
-    sim_ppc_spr408_regnum, sim_ppc_spr409_regnum,
-    sim_ppc_spr410_regnum, sim_ppc_spr411_regnum,
-    sim_ppc_spr412_regnum, sim_ppc_spr413_regnum,
-    sim_ppc_spr414_regnum, sim_ppc_spr415_regnum,
-    sim_ppc_spr416_regnum, sim_ppc_spr417_regnum,
-    sim_ppc_spr418_regnum, sim_ppc_spr419_regnum,
-    sim_ppc_spr420_regnum, sim_ppc_spr421_regnum,
-    sim_ppc_spr422_regnum, sim_ppc_spr423_regnum,
-    sim_ppc_spr424_regnum, sim_ppc_spr425_regnum,
-    sim_ppc_spr426_regnum, sim_ppc_spr427_regnum,
-    sim_ppc_spr428_regnum, sim_ppc_spr429_regnum,
-    sim_ppc_spr430_regnum, sim_ppc_spr431_regnum,
-    sim_ppc_spr432_regnum, sim_ppc_spr433_regnum,
-    sim_ppc_spr434_regnum, sim_ppc_spr435_regnum,
-    sim_ppc_spr436_regnum, sim_ppc_spr437_regnum,
-    sim_ppc_spr438_regnum, sim_ppc_spr439_regnum,
-    sim_ppc_spr440_regnum, sim_ppc_spr441_regnum,
-    sim_ppc_spr442_regnum, sim_ppc_spr443_regnum,
-    sim_ppc_spr444_regnum, sim_ppc_spr445_regnum,
-    sim_ppc_spr446_regnum, sim_ppc_spr447_regnum,
-    sim_ppc_spr448_regnum, sim_ppc_spr449_regnum,
-    sim_ppc_spr450_regnum, sim_ppc_spr451_regnum,
-    sim_ppc_spr452_regnum, sim_ppc_spr453_regnum,
-    sim_ppc_spr454_regnum, sim_ppc_spr455_regnum,
-    sim_ppc_spr456_regnum, sim_ppc_spr457_regnum,
-    sim_ppc_spr458_regnum, sim_ppc_spr459_regnum,
-    sim_ppc_spr460_regnum, sim_ppc_spr461_regnum,
-    sim_ppc_spr462_regnum, sim_ppc_spr463_regnum,
-    sim_ppc_spr464_regnum, sim_ppc_spr465_regnum,
-    sim_ppc_spr466_regnum, sim_ppc_spr467_regnum,
-    sim_ppc_spr468_regnum, sim_ppc_spr469_regnum,
-    sim_ppc_spr470_regnum, sim_ppc_spr471_regnum,
-    sim_ppc_spr472_regnum, sim_ppc_spr473_regnum,
-    sim_ppc_spr474_regnum, sim_ppc_spr475_regnum,
-    sim_ppc_spr476_regnum, sim_ppc_spr477_regnum,
-    sim_ppc_spr478_regnum, sim_ppc_spr479_regnum,
-    sim_ppc_spr480_regnum, sim_ppc_spr481_regnum,
-    sim_ppc_spr482_regnum, sim_ppc_spr483_regnum,
-    sim_ppc_spr484_regnum, sim_ppc_spr485_regnum,
-    sim_ppc_spr486_regnum, sim_ppc_spr487_regnum,
-    sim_ppc_spr488_regnum, sim_ppc_spr489_regnum,
-    sim_ppc_spr490_regnum, sim_ppc_spr491_regnum,
-    sim_ppc_spr492_regnum, sim_ppc_spr493_regnum,
-    sim_ppc_spr494_regnum, sim_ppc_spr495_regnum,
-    sim_ppc_spr496_regnum, sim_ppc_spr497_regnum,
-    sim_ppc_spr498_regnum, sim_ppc_spr499_regnum,
-    sim_ppc_spr500_regnum, sim_ppc_spr501_regnum,
-    sim_ppc_spr502_regnum, sim_ppc_spr503_regnum,
-    sim_ppc_spr504_regnum, sim_ppc_spr505_regnum,
-    sim_ppc_spr506_regnum, sim_ppc_spr507_regnum,
-    sim_ppc_spr508_regnum, sim_ppc_spr509_regnum,
-    sim_ppc_spr510_regnum, sim_ppc_spr511_regnum,
-    sim_ppc_spr512_regnum, sim_ppc_spr513_regnum,
-    sim_ppc_spr514_regnum, sim_ppc_spr515_regnum,
-    sim_ppc_spr516_regnum, sim_ppc_spr517_regnum,
-    sim_ppc_spr518_regnum, sim_ppc_spr519_regnum,
-    sim_ppc_spr520_regnum, sim_ppc_spr521_regnum,
-    sim_ppc_spr522_regnum, sim_ppc_spr523_regnum,
-    sim_ppc_spr524_regnum, sim_ppc_spr525_regnum,
-    sim_ppc_spr526_regnum, sim_ppc_spr527_regnum,
-    sim_ppc_spr528_regnum, sim_ppc_spr529_regnum,
-    sim_ppc_spr530_regnum, sim_ppc_spr531_regnum,
-    sim_ppc_spr532_regnum, sim_ppc_spr533_regnum,
-    sim_ppc_spr534_regnum, sim_ppc_spr535_regnum,
-    sim_ppc_spr536_regnum, sim_ppc_spr537_regnum,
-    sim_ppc_spr538_regnum, sim_ppc_spr539_regnum,
-    sim_ppc_spr540_regnum, sim_ppc_spr541_regnum,
-    sim_ppc_spr542_regnum, sim_ppc_spr543_regnum,
-    sim_ppc_spr544_regnum, sim_ppc_spr545_regnum,
-    sim_ppc_spr546_regnum, sim_ppc_spr547_regnum,
-    sim_ppc_spr548_regnum, sim_ppc_spr549_regnum,
-    sim_ppc_spr550_regnum, sim_ppc_spr551_regnum,
-    sim_ppc_spr552_regnum, sim_ppc_spr553_regnum,
-    sim_ppc_spr554_regnum, sim_ppc_spr555_regnum,
-    sim_ppc_spr556_regnum, sim_ppc_spr557_regnum,
-    sim_ppc_spr558_regnum, sim_ppc_spr559_regnum,
-    sim_ppc_spr560_regnum, sim_ppc_spr561_regnum,
-    sim_ppc_spr562_regnum, sim_ppc_spr563_regnum,
-    sim_ppc_spr564_regnum, sim_ppc_spr565_regnum,
-    sim_ppc_spr566_regnum, sim_ppc_spr567_regnum,
-    sim_ppc_spr568_regnum, sim_ppc_spr569_regnum,
-    sim_ppc_spr570_regnum, sim_ppc_spr571_regnum,
-    sim_ppc_spr572_regnum, sim_ppc_spr573_regnum,
-    sim_ppc_spr574_regnum, sim_ppc_spr575_regnum,
-    sim_ppc_spr576_regnum, sim_ppc_spr577_regnum,
-    sim_ppc_spr578_regnum, sim_ppc_spr579_regnum,
-    sim_ppc_spr580_regnum, sim_ppc_spr581_regnum,
-    sim_ppc_spr582_regnum, sim_ppc_spr583_regnum,
-    sim_ppc_spr584_regnum, sim_ppc_spr585_regnum,
-    sim_ppc_spr586_regnum, sim_ppc_spr587_regnum,
-    sim_ppc_spr588_regnum, sim_ppc_spr589_regnum,
-    sim_ppc_spr590_regnum, sim_ppc_spr591_regnum,
-    sim_ppc_spr592_regnum, sim_ppc_spr593_regnum,
-    sim_ppc_spr594_regnum, sim_ppc_spr595_regnum,
-    sim_ppc_spr596_regnum, sim_ppc_spr597_regnum,
-    sim_ppc_spr598_regnum, sim_ppc_spr599_regnum,
-    sim_ppc_spr600_regnum, sim_ppc_spr601_regnum,
-    sim_ppc_spr602_regnum, sim_ppc_spr603_regnum,
-    sim_ppc_spr604_regnum, sim_ppc_spr605_regnum,
-    sim_ppc_spr606_regnum, sim_ppc_spr607_regnum,
-    sim_ppc_spr608_regnum, sim_ppc_spr609_regnum,
-    sim_ppc_spr610_regnum, sim_ppc_spr611_regnum,
-    sim_ppc_spr612_regnum, sim_ppc_spr613_regnum,
-    sim_ppc_spr614_regnum, sim_ppc_spr615_regnum,
-    sim_ppc_spr616_regnum, sim_ppc_spr617_regnum,
-    sim_ppc_spr618_regnum, sim_ppc_spr619_regnum,
-    sim_ppc_spr620_regnum, sim_ppc_spr621_regnum,
-    sim_ppc_spr622_regnum, sim_ppc_spr623_regnum,
-    sim_ppc_spr624_regnum, sim_ppc_spr625_regnum,
-    sim_ppc_spr626_regnum, sim_ppc_spr627_regnum,
-    sim_ppc_spr628_regnum, sim_ppc_spr629_regnum,
-    sim_ppc_spr630_regnum, sim_ppc_spr631_regnum,
-    sim_ppc_spr632_regnum, sim_ppc_spr633_regnum,
-    sim_ppc_spr634_regnum, sim_ppc_spr635_regnum,
-    sim_ppc_spr636_regnum, sim_ppc_spr637_regnum,
-    sim_ppc_spr638_regnum, sim_ppc_spr639_regnum,
-    sim_ppc_spr640_regnum, sim_ppc_spr641_regnum,
-    sim_ppc_spr642_regnum, sim_ppc_spr643_regnum,
-    sim_ppc_spr644_regnum, sim_ppc_spr645_regnum,
-    sim_ppc_spr646_regnum, sim_ppc_spr647_regnum,
-    sim_ppc_spr648_regnum, sim_ppc_spr649_regnum,
-    sim_ppc_spr650_regnum, sim_ppc_spr651_regnum,
-    sim_ppc_spr652_regnum, sim_ppc_spr653_regnum,
-    sim_ppc_spr654_regnum, sim_ppc_spr655_regnum,
-    sim_ppc_spr656_regnum, sim_ppc_spr657_regnum,
-    sim_ppc_spr658_regnum, sim_ppc_spr659_regnum,
-    sim_ppc_spr660_regnum, sim_ppc_spr661_regnum,
-    sim_ppc_spr662_regnum, sim_ppc_spr663_regnum,
-    sim_ppc_spr664_regnum, sim_ppc_spr665_regnum,
-    sim_ppc_spr666_regnum, sim_ppc_spr667_regnum,
-    sim_ppc_spr668_regnum, sim_ppc_spr669_regnum,
-    sim_ppc_spr670_regnum, sim_ppc_spr671_regnum,
-    sim_ppc_spr672_regnum, sim_ppc_spr673_regnum,
-    sim_ppc_spr674_regnum, sim_ppc_spr675_regnum,
-    sim_ppc_spr676_regnum, sim_ppc_spr677_regnum,
-    sim_ppc_spr678_regnum, sim_ppc_spr679_regnum,
-    sim_ppc_spr680_regnum, sim_ppc_spr681_regnum,
-    sim_ppc_spr682_regnum, sim_ppc_spr683_regnum,
-    sim_ppc_spr684_regnum, sim_ppc_spr685_regnum,
-    sim_ppc_spr686_regnum, sim_ppc_spr687_regnum,
-    sim_ppc_spr688_regnum, sim_ppc_spr689_regnum,
-    sim_ppc_spr690_regnum, sim_ppc_spr691_regnum,
-    sim_ppc_spr692_regnum, sim_ppc_spr693_regnum,
-    sim_ppc_spr694_regnum, sim_ppc_spr695_regnum,
-    sim_ppc_spr696_regnum, sim_ppc_spr697_regnum,
-    sim_ppc_spr698_regnum, sim_ppc_spr699_regnum,
-    sim_ppc_spr700_regnum, sim_ppc_spr701_regnum,
-    sim_ppc_spr702_regnum, sim_ppc_spr703_regnum,
-    sim_ppc_spr704_regnum, sim_ppc_spr705_regnum,
-    sim_ppc_spr706_regnum, sim_ppc_spr707_regnum,
-    sim_ppc_spr708_regnum, sim_ppc_spr709_regnum,
-    sim_ppc_spr710_regnum, sim_ppc_spr711_regnum,
-    sim_ppc_spr712_regnum, sim_ppc_spr713_regnum,
-    sim_ppc_spr714_regnum, sim_ppc_spr715_regnum,
-    sim_ppc_spr716_regnum, sim_ppc_spr717_regnum,
-    sim_ppc_spr718_regnum, sim_ppc_spr719_regnum,
-    sim_ppc_spr720_regnum, sim_ppc_spr721_regnum,
-    sim_ppc_spr722_regnum, sim_ppc_spr723_regnum,
-    sim_ppc_spr724_regnum, sim_ppc_spr725_regnum,
-    sim_ppc_spr726_regnum, sim_ppc_spr727_regnum,
-    sim_ppc_spr728_regnum, sim_ppc_spr729_regnum,
-    sim_ppc_spr730_regnum, sim_ppc_spr731_regnum,
-    sim_ppc_spr732_regnum, sim_ppc_spr733_regnum,
-    sim_ppc_spr734_regnum, sim_ppc_spr735_regnum,
-    sim_ppc_spr736_regnum, sim_ppc_spr737_regnum,
-    sim_ppc_spr738_regnum, sim_ppc_spr739_regnum,
-    sim_ppc_spr740_regnum, sim_ppc_spr741_regnum,
-    sim_ppc_spr742_regnum, sim_ppc_spr743_regnum,
-    sim_ppc_spr744_regnum, sim_ppc_spr745_regnum,
-    sim_ppc_spr746_regnum, sim_ppc_spr747_regnum,
-    sim_ppc_spr748_regnum, sim_ppc_spr749_regnum,
-    sim_ppc_spr750_regnum, sim_ppc_spr751_regnum,
-    sim_ppc_spr752_regnum, sim_ppc_spr753_regnum,
-    sim_ppc_spr754_regnum, sim_ppc_spr755_regnum,
-    sim_ppc_spr756_regnum, sim_ppc_spr757_regnum,
-    sim_ppc_spr758_regnum, sim_ppc_spr759_regnum,
-    sim_ppc_spr760_regnum, sim_ppc_spr761_regnum,
-    sim_ppc_spr762_regnum, sim_ppc_spr763_regnum,
-    sim_ppc_spr764_regnum, sim_ppc_spr765_regnum,
-    sim_ppc_spr766_regnum, sim_ppc_spr767_regnum,
-    sim_ppc_spr768_regnum, sim_ppc_spr769_regnum,
-    sim_ppc_spr770_regnum, sim_ppc_spr771_regnum,
-    sim_ppc_spr772_regnum, sim_ppc_spr773_regnum,
-    sim_ppc_spr774_regnum, sim_ppc_spr775_regnum,
-    sim_ppc_spr776_regnum, sim_ppc_spr777_regnum,
-    sim_ppc_spr778_regnum, sim_ppc_spr779_regnum,
-    sim_ppc_spr780_regnum, sim_ppc_spr781_regnum,
-    sim_ppc_spr782_regnum, sim_ppc_spr783_regnum,
-    sim_ppc_spr784_regnum, sim_ppc_spr785_regnum,
-    sim_ppc_spr786_regnum, sim_ppc_spr787_regnum,
-    sim_ppc_spr788_regnum, sim_ppc_spr789_regnum,
-    sim_ppc_spr790_regnum, sim_ppc_spr791_regnum,
-    sim_ppc_spr792_regnum, sim_ppc_spr793_regnum,
-    sim_ppc_spr794_regnum, sim_ppc_spr795_regnum,
-    sim_ppc_spr796_regnum, sim_ppc_spr797_regnum,
-    sim_ppc_spr798_regnum, sim_ppc_spr799_regnum,
-    sim_ppc_spr800_regnum, sim_ppc_spr801_regnum,
-    sim_ppc_spr802_regnum, sim_ppc_spr803_regnum,
-    sim_ppc_spr804_regnum, sim_ppc_spr805_regnum,
-    sim_ppc_spr806_regnum, sim_ppc_spr807_regnum,
-    sim_ppc_spr808_regnum, sim_ppc_spr809_regnum,
-    sim_ppc_spr810_regnum, sim_ppc_spr811_regnum,
-    sim_ppc_spr812_regnum, sim_ppc_spr813_regnum,
-    sim_ppc_spr814_regnum, sim_ppc_spr815_regnum,
-    sim_ppc_spr816_regnum, sim_ppc_spr817_regnum,
-    sim_ppc_spr818_regnum, sim_ppc_spr819_regnum,
-    sim_ppc_spr820_regnum, sim_ppc_spr821_regnum,
-    sim_ppc_spr822_regnum, sim_ppc_spr823_regnum,
-    sim_ppc_spr824_regnum, sim_ppc_spr825_regnum,
-    sim_ppc_spr826_regnum, sim_ppc_spr827_regnum,
-    sim_ppc_spr828_regnum, sim_ppc_spr829_regnum,
-    sim_ppc_spr830_regnum, sim_ppc_spr831_regnum,
-    sim_ppc_spr832_regnum, sim_ppc_spr833_regnum,
-    sim_ppc_spr834_regnum, sim_ppc_spr835_regnum,
-    sim_ppc_spr836_regnum, sim_ppc_spr837_regnum,
-    sim_ppc_spr838_regnum, sim_ppc_spr839_regnum,
-    sim_ppc_spr840_regnum, sim_ppc_spr841_regnum,
-    sim_ppc_spr842_regnum, sim_ppc_spr843_regnum,
-    sim_ppc_spr844_regnum, sim_ppc_spr845_regnum,
-    sim_ppc_spr846_regnum, sim_ppc_spr847_regnum,
-    sim_ppc_spr848_regnum, sim_ppc_spr849_regnum,
-    sim_ppc_spr850_regnum, sim_ppc_spr851_regnum,
-    sim_ppc_spr852_regnum, sim_ppc_spr853_regnum,
-    sim_ppc_spr854_regnum, sim_ppc_spr855_regnum,
-    sim_ppc_spr856_regnum, sim_ppc_spr857_regnum,
-    sim_ppc_spr858_regnum, sim_ppc_spr859_regnum,
-    sim_ppc_spr860_regnum, sim_ppc_spr861_regnum,
-    sim_ppc_spr862_regnum, sim_ppc_spr863_regnum,
-    sim_ppc_spr864_regnum, sim_ppc_spr865_regnum,
-    sim_ppc_spr866_regnum, sim_ppc_spr867_regnum,
-    sim_ppc_spr868_regnum, sim_ppc_spr869_regnum,
-    sim_ppc_spr870_regnum, sim_ppc_spr871_regnum,
-    sim_ppc_spr872_regnum, sim_ppc_spr873_regnum,
-    sim_ppc_spr874_regnum, sim_ppc_spr875_regnum,
-    sim_ppc_spr876_regnum, sim_ppc_spr877_regnum,
-    sim_ppc_spr878_regnum, sim_ppc_spr879_regnum,
-    sim_ppc_spr880_regnum, sim_ppc_spr881_regnum,
-    sim_ppc_spr882_regnum, sim_ppc_spr883_regnum,
-    sim_ppc_spr884_regnum, sim_ppc_spr885_regnum,
-    sim_ppc_spr886_regnum, sim_ppc_spr887_regnum,
-    sim_ppc_spr888_regnum, sim_ppc_spr889_regnum,
-    sim_ppc_spr890_regnum, sim_ppc_spr891_regnum,
-    sim_ppc_spr892_regnum, sim_ppc_spr893_regnum,
-    sim_ppc_spr894_regnum, sim_ppc_spr895_regnum,
-    sim_ppc_spr896_regnum, sim_ppc_spr897_regnum,
-    sim_ppc_spr898_regnum, sim_ppc_spr899_regnum,
-    sim_ppc_spr900_regnum, sim_ppc_spr901_regnum,
-    sim_ppc_spr902_regnum, sim_ppc_spr903_regnum,
-    sim_ppc_spr904_regnum, sim_ppc_spr905_regnum,
-    sim_ppc_spr906_regnum, sim_ppc_spr907_regnum,
-    sim_ppc_spr908_regnum, sim_ppc_spr909_regnum,
-    sim_ppc_spr910_regnum, sim_ppc_spr911_regnum,
-    sim_ppc_spr912_regnum, sim_ppc_spr913_regnum,
-    sim_ppc_spr914_regnum, sim_ppc_spr915_regnum,
-    sim_ppc_spr916_regnum, sim_ppc_spr917_regnum,
-    sim_ppc_spr918_regnum, sim_ppc_spr919_regnum,
-    sim_ppc_spr920_regnum, sim_ppc_spr921_regnum,
-    sim_ppc_spr922_regnum, sim_ppc_spr923_regnum,
-    sim_ppc_spr924_regnum, sim_ppc_spr925_regnum,
-    sim_ppc_spr926_regnum, sim_ppc_spr927_regnum,
-    sim_ppc_spr928_regnum, sim_ppc_spr929_regnum,
-    sim_ppc_spr930_regnum, sim_ppc_spr931_regnum,
-    sim_ppc_spr932_regnum, sim_ppc_spr933_regnum,
-    sim_ppc_spr934_regnum, sim_ppc_spr935_regnum,
-    sim_ppc_spr936_regnum, sim_ppc_spr937_regnum,
-    sim_ppc_spr938_regnum, sim_ppc_spr939_regnum,
-    sim_ppc_spr940_regnum, sim_ppc_spr941_regnum,
-    sim_ppc_spr942_regnum, sim_ppc_spr943_regnum,
-    sim_ppc_spr944_regnum, sim_ppc_spr945_regnum,
-    sim_ppc_spr946_regnum, sim_ppc_spr947_regnum,
-    sim_ppc_spr948_regnum, sim_ppc_spr949_regnum,
-    sim_ppc_spr950_regnum, sim_ppc_spr951_regnum,
-    sim_ppc_spr952_regnum, sim_ppc_spr953_regnum,
-    sim_ppc_spr954_regnum, sim_ppc_spr955_regnum,
-    sim_ppc_spr956_regnum, sim_ppc_spr957_regnum,
-    sim_ppc_spr958_regnum, sim_ppc_spr959_regnum,
-    sim_ppc_spr960_regnum, sim_ppc_spr961_regnum,
-    sim_ppc_spr962_regnum, sim_ppc_spr963_regnum,
-    sim_ppc_spr964_regnum, sim_ppc_spr965_regnum,
-    sim_ppc_spr966_regnum, sim_ppc_spr967_regnum,
-    sim_ppc_spr968_regnum, sim_ppc_spr969_regnum,
-    sim_ppc_spr970_regnum, sim_ppc_spr971_regnum,
-    sim_ppc_spr972_regnum, sim_ppc_spr973_regnum,
-    sim_ppc_spr974_regnum, sim_ppc_spr975_regnum,
-    sim_ppc_spr976_regnum, sim_ppc_spr977_regnum,
-    sim_ppc_spr978_regnum, sim_ppc_spr979_regnum,
-    sim_ppc_spr980_regnum, sim_ppc_spr981_regnum,
-    sim_ppc_spr982_regnum, sim_ppc_spr983_regnum,
-    sim_ppc_spr984_regnum, sim_ppc_spr985_regnum,
-    sim_ppc_spr986_regnum, sim_ppc_spr987_regnum,
-    sim_ppc_spr988_regnum, sim_ppc_spr989_regnum,
-    sim_ppc_spr990_regnum, sim_ppc_spr991_regnum,
-    sim_ppc_spr992_regnum, sim_ppc_spr993_regnum,
-    sim_ppc_spr994_regnum, sim_ppc_spr995_regnum,
-    sim_ppc_spr996_regnum, sim_ppc_spr997_regnum,
-    sim_ppc_spr998_regnum, sim_ppc_spr999_regnum,
-    sim_ppc_spr1000_regnum, sim_ppc_spr1001_regnum,
-    sim_ppc_spr1002_regnum, sim_ppc_spr1003_regnum,
-    sim_ppc_spr1004_regnum, sim_ppc_spr1005_regnum,
-    sim_ppc_spr1006_regnum, sim_ppc_spr1007_regnum,
-    sim_ppc_spr1008_regnum, sim_ppc_spr1009_regnum,
-    sim_ppc_spr1010_regnum, sim_ppc_spr1011_regnum,
-    sim_ppc_spr1012_regnum, sim_ppc_spr1013_regnum,
-    sim_ppc_spr1014_regnum, sim_ppc_spr1015_regnum,
-    sim_ppc_spr1016_regnum, sim_ppc_spr1017_regnum,
-    sim_ppc_spr1018_regnum, sim_ppc_spr1019_regnum,
-    sim_ppc_spr1020_regnum, sim_ppc_spr1021_regnum,
-    sim_ppc_spr1022_regnum, sim_ppc_spr1023_regnum
-  };
-
-
-/* Sizes of various register sets.  */
-enum
-  {
-    sim_ppc_num_gprs = 32,
-    sim_ppc_num_fprs = 32,
-    sim_ppc_num_vrs = 32,
-    sim_ppc_num_srs = 16,
-    sim_ppc_num_sprs = 1024,
-  };
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* SIM_PPC_H */
diff --git a/include/gdb/sim-sh.h b/include/gdb/sim-sh.h
deleted file mode 100644
index a40eff6..0000000
--- a/include/gdb/sim-sh.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/* This file defines the interface between the sh simulator and gdb.
-   Copyright (C) 2000, 2002, 2004 Free Software Foundation, Inc.
-
-This file is part of GDB.
-
-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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-#if !defined (SIM_SH_H)
-#define SIM_SH_H
-
-#ifdef __cplusplus
-extern "C" { // }
-#endif
-
-/* The simulator makes use of the following register information. */
-
-enum
-{
-  SIM_SH_R0_REGNUM = 0,
-  SIM_SH_R1_REGNUM,
-  SIM_SH_R2_REGNUM,
-  SIM_SH_R3_REGNUM,
-  SIM_SH_R4_REGNUM,
-  SIM_SH_R5_REGNUM,
-  SIM_SH_R6_REGNUM,
-  SIM_SH_R7_REGNUM,
-  SIM_SH_R8_REGNUM,
-  SIM_SH_R9_REGNUM,
-  SIM_SH_R10_REGNUM,
-  SIM_SH_R11_REGNUM,
-  SIM_SH_R12_REGNUM,
-  SIM_SH_R13_REGNUM,
-  SIM_SH_R14_REGNUM,
-  SIM_SH_R15_REGNUM,
-  SIM_SH_PC_REGNUM,
-  SIM_SH_PR_REGNUM,
-  SIM_SH_GBR_REGNUM,
-  SIM_SH_VBR_REGNUM,
-  SIM_SH_MACH_REGNUM,
-  SIM_SH_MACL_REGNUM,
-  SIM_SH_SR_REGNUM,
-  SIM_SH_FPUL_REGNUM,
-  SIM_SH_FPSCR_REGNUM,
-  SIM_SH_FR0_REGNUM, /* FRn registers: sh3e / sh4 */
-  SIM_SH_FR1_REGNUM,
-  SIM_SH_FR2_REGNUM,
-  SIM_SH_FR3_REGNUM,
-  SIM_SH_FR4_REGNUM,
-  SIM_SH_FR5_REGNUM,
-  SIM_SH_FR6_REGNUM,
-  SIM_SH_FR7_REGNUM,
-  SIM_SH_FR8_REGNUM,
-  SIM_SH_FR9_REGNUM,
-  SIM_SH_FR10_REGNUM,
-  SIM_SH_FR11_REGNUM,
-  SIM_SH_FR12_REGNUM,
-  SIM_SH_FR13_REGNUM,
-  SIM_SH_FR14_REGNUM,
-  SIM_SH_FR15_REGNUM,
-  SIM_SH_SSR_REGNUM, /* sh3{,e,-dsp}, sh4 */
-  SIM_SH_SPC_REGNUM, /* sh3{,e,-dsp}, sh4 */
-  SIM_SH_R0_BANK0_REGNUM, /* SIM_SH_Rn_BANKm_REGNUM: sh3[e] / sh4 */
-  SIM_SH_R1_BANK0_REGNUM,
-  SIM_SH_R2_BANK0_REGNUM,
-  SIM_SH_R3_BANK0_REGNUM,
-  SIM_SH_R4_BANK0_REGNUM,
-  SIM_SH_R5_BANK0_REGNUM,
-  SIM_SH_R6_BANK0_REGNUM,
-  SIM_SH_R7_BANK0_REGNUM,
-  SIM_SH_R0_BANK1_REGNUM,
-  SIM_SH_R1_BANK1_REGNUM,
-  SIM_SH_R2_BANK1_REGNUM,
-  SIM_SH_R3_BANK1_REGNUM,
-  SIM_SH_R4_BANK1_REGNUM,
-  SIM_SH_R5_BANK1_REGNUM,
-  SIM_SH_R6_BANK1_REGNUM,
-  SIM_SH_R7_BANK1_REGNUM,
-  SIM_SH_XF0_REGNUM,
-  SIM_SH_XF1_REGNUM,
-  SIM_SH_XF2_REGNUM,
-  SIM_SH_XF3_REGNUM,
-  SIM_SH_XF4_REGNUM,
-  SIM_SH_XF5_REGNUM,
-  SIM_SH_XF6_REGNUM,
-  SIM_SH_XF7_REGNUM,
-  SIM_SH_XF8_REGNUM,
-  SIM_SH_XF9_REGNUM,
-  SIM_SH_XF10_REGNUM,
-  SIM_SH_XF11_REGNUM,
-  SIM_SH_XF12_REGNUM,
-  SIM_SH_XF13_REGNUM,
-  SIM_SH_XF14_REGNUM,
-  SIM_SH_XF15_REGNUM,
-  SIM_SH_SGR_REGNUM,
-  SIM_SH_DBR_REGNUM,
-  SIM_SH4_NUM_REGS, /* 77 */
-
-  /* sh[3]-dsp */
-  SIM_SH_DSR_REGNUM,
-  SIM_SH_A0G_REGNUM,
-  SIM_SH_A0_REGNUM,
-  SIM_SH_A1G_REGNUM,
-  SIM_SH_A1_REGNUM,
-  SIM_SH_M0_REGNUM,
-  SIM_SH_M1_REGNUM,
-  SIM_SH_X0_REGNUM,
-  SIM_SH_X1_REGNUM,
-  SIM_SH_Y0_REGNUM,
-  SIM_SH_Y1_REGNUM,
-  SIM_SH_MOD_REGNUM,
-  SIM_SH_RS_REGNUM,
-  SIM_SH_RE_REGNUM,
-  SIM_SH_R0_BANK_REGNUM,
-  SIM_SH_R1_BANK_REGNUM,
-  SIM_SH_R2_BANK_REGNUM,
-  SIM_SH_R3_BANK_REGNUM,
-  SIM_SH_R4_BANK_REGNUM,
-  SIM_SH_R5_BANK_REGNUM,
-  SIM_SH_R6_BANK_REGNUM,
-  SIM_SH_R7_BANK_REGNUM,
-  /* 109..127: room for expansion.  */
-  SIM_SH_TBR_REGNUM,
-  SIM_SH_IBNR_REGNUM,
-  SIM_SH_IBCR_REGNUM,
-  SIM_SH_BANK_REGNUM,
-  SIM_SH_BANK_MACL_REGNUM,
-  SIM_SH_BANK_GBR_REGNUM,
-  SIM_SH_BANK_PR_REGNUM,
-  SIM_SH_BANK_IVN_REGNUM,
-  SIM_SH_BANK_MACH_REGNUM
-};
-
-enum
-{
-  SIM_SH64_R0_REGNUM = 0,
-  SIM_SH64_SP_REGNUM = 15,
-  SIM_SH64_PC_REGNUM = 64,
-  SIM_SH64_SR_REGNUM = 65,
-  SIM_SH64_SSR_REGNUM = 66,
-  SIM_SH64_SPC_REGNUM = 67,
-  SIM_SH64_TR0_REGNUM = 68,
-  SIM_SH64_FPCSR_REGNUM = 76,
-  SIM_SH64_FR0_REGNUM = 77
-};
-
-enum
-{
-  SIM_SH64_NR_REGS = 141,  /* total number of architectural registers */
-  SIM_SH64_NR_R_REGS = 64, /* number of general registers */
-  SIM_SH64_NR_TR_REGS = 8, /* number of target registers */
-  SIM_SH64_NR_FP_REGS = 64 /* number of floating point registers */
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/gdbm.h b/include/gdbm.h
deleted file mode 100644
index d2a6006..0000000
--- a/include/gdbm.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* GNU DBM - DataBase Manager include file
-   Copyright 1989, 1991  Free Software Foundation, Inc.
-   Written by Philip A. Nelson.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* You may contact the author by:
-       e-mail:  phil@wwu.edu
-      us-mail:  Philip A. Nelson
-                Computer Science Department
-                Western Washington University
-                Bellingham, WA 98226
-        phone:  (206) 676-3035
-       
-*************************************************************************/
-
-/* Parameters to gdbm_open for READERS, WRITERS, and WRITERS who
-   can create the database. */
-#define  GDBM_READER  0
-#define  GDBM_WRITER  1
-#define  GDBM_WRCREAT 2
-#define  GDBM_NEWDB   3
-
-/* Parameters to gdbm_store for simple insertion or replacement. */
-#define  GDBM_INSERT  0
-#define  GDBM_REPLACE 1
-
-
-/* The data and key structure.  This structure is defined for compatibility. */
-typedef struct {
-	char *dptr;
-	int   dsize;
-      } datum;
-
-
-/* The file information header. This is good enough for most applications. */
-typedef struct {int dummy[10];} *GDBM_FILE;
-
-
-/* These are the routines! */
-
-extern GDBM_FILE gdbm_open ();
-
-extern void	 gdbm_close ();
-
-extern datum	 gdbm_fetch ();
-
-extern int	 gdbm_store ();
-
-extern int	 gdbm_delete ();
-
-extern datum	 gdbm_firstkey ();
-
-extern datum	 gdbm_nextkey ();
-
-extern int	 gdbm_reorganize ();
-
-
-/* gdbm sends back the following error codes in the variable gdbm_errno. */
-typedef enum {	NO_ERROR,
-		MALLOC_ERROR,
-		BLOCK_SIZE_ERROR,
-		FILE_OPEN_ERROR,
-		FILE_WRITE_ERROR,
-		FILE_SEEK_ERROR,
-		FILE_READ_ERROR,
-		BAD_MAGIC_NUMBER,
-		EMPTY_DATABASE,
-		CANT_BE_READER,
-	        CANT_BE_WRITER,
-		READER_CANT_RECOVER,
-		READER_CANT_DELETE,
-		READER_CANT_STORE,
-		READER_CANT_REORGANIZE,
-		UNKNOWN_UPDATE,
-		ITEM_NOT_FOUND,
-		REORGANIZE_FAILED,
-		CANNOT_REPLACE}
-	gdbm_error;
diff --git a/include/getopt.h b/include/getopt.h
deleted file mode 100644
index 5421cab..0000000
--- a/include/getopt.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/* Declarations for getopt.
-   Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998, 2000,
-   2002 Free Software Foundation, Inc.
-
-   NOTE: The canonical source of this file is maintained with the GNU C Library.
-   Bugs can be reported to bug-glibc@gnu.org.
-
-   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, 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301,
-   USA.  */
-
-#ifndef _GETOPT_H
-#define _GETOPT_H 1
-
-#ifdef	__cplusplus
-extern "C" {
-#endif
-
-/* For communication from `getopt' to the caller.
-   When `getopt' finds an option that takes an argument,
-   the argument value is returned here.
-   Also, when `ordering' is RETURN_IN_ORDER,
-   each non-option ARGV-element is returned here.  */
-
-extern char *optarg;
-
-/* Index in ARGV of the next element to be scanned.
-   This is used for communication to and from the caller
-   and for communication between successive calls to `getopt'.
-
-   On entry to `getopt', zero means this is the first call; initialize.
-
-   When `getopt' returns -1, this is the index of the first of the
-   non-option elements that the caller should itself scan.
-
-   Otherwise, `optind' communicates from one call to the next
-   how much of ARGV has been scanned so far.  */
-
-extern int optind;
-
-/* Callers store zero here to inhibit the error message `getopt' prints
-   for unrecognized options.  */
-
-extern int opterr;
-
-/* Set to an option character which was unrecognized.  */
-
-extern int optopt;
-
-/* Describe the long-named options requested by the application.
-   The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
-   of `struct option' terminated by an element containing a name which is
-   zero.
-
-   The field `has_arg' is:
-   no_argument		(or 0) if the option does not take an argument,
-   required_argument	(or 1) if the option requires an argument,
-   optional_argument 	(or 2) if the option takes an optional argument.
-
-   If the field `flag' is not NULL, it points to a variable that is set
-   to the value given in the field `val' when the option is found, but
-   left unchanged if the option is not found.
-
-   To have a long-named option do something other than set an `int' to
-   a compiled-in constant, such as set a value from `optarg', set the
-   option's `flag' field to zero and its `val' field to a nonzero
-   value (the equivalent single-letter option character, if there is
-   one).  For long options that have a zero `flag' field, `getopt'
-   returns the contents of the `val' field.  */
-
-struct option
-{
-#if defined (__STDC__) && __STDC__
-  const char *name;
-#else
-  char *name;
-#endif
-  /* has_arg can't be an enum because some compilers complain about
-     type mismatches in all the code that assumes it is an int.  */
-  int has_arg;
-  int *flag;
-  int val;
-};
-
-/* Names for the values of the `has_arg' field of `struct option'.  */
-
-#define	no_argument		0
-#define required_argument	1
-#define optional_argument	2
-
-#if defined (__STDC__) && __STDC__
-/* HAVE_DECL_* is a three-state macro: undefined, 0 or 1.  If it is
-   undefined, we haven't run the autoconf check so provide the
-   declaration without arguments.  If it is 0, we checked and failed
-   to find the declaration so provide a fully prototyped one.  If it
-   is 1, we found it so don't provide any declaration at all.  */
-#if !HAVE_DECL_GETOPT
-#if defined (__GNU_LIBRARY__) || defined (HAVE_DECL_GETOPT)
-/* Many other libraries have conflicting prototypes for getopt, with
-   differences in the consts, in unistd.h.  To avoid compilation
-   errors, only prototype getopt for the GNU C library.  */
-extern int getopt (int argc, char *const *argv, const char *shortopts);
-#else
-#ifndef __cplusplus
-extern int getopt ();
-#endif /* __cplusplus */
-#endif
-#endif /* !HAVE_DECL_GETOPT */
-
-extern int getopt_long (int argc, char *const *argv, const char *shortopts,
-		        const struct option *longopts, int *longind);
-extern int getopt_long_only (int argc, char *const *argv,
-			     const char *shortopts,
-		             const struct option *longopts, int *longind);
-
-/* Internal only.  Users should not call this directly.  */
-extern int _getopt_internal (int argc, char *const *argv,
-			     const char *shortopts,
-		             const struct option *longopts, int *longind,
-			     int long_only);
-#else /* not __STDC__ */
-extern int getopt ();
-extern int getopt_long ();
-extern int getopt_long_only ();
-
-extern int _getopt_internal ();
-#endif /* __STDC__ */
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif /* getopt.h */
diff --git a/include/hashtab.h b/include/hashtab.h
deleted file mode 100644
index 77eee14..0000000
--- a/include/hashtab.h
+++ /dev/null
@@ -1,206 +0,0 @@
-/* An expandable hash tables datatype.  
-   Copyright (C) 1999, 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
-   Contributed by Vladimir Makarov (vmakarov@cygnus.com).
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* This package implements basic hash table functionality.  It is possible
-   to search for an entry, create an entry and destroy an entry.
-
-   Elements in the table are generic pointers.
-
-   The size of the table is not fixed; if the occupancy of the table
-   grows too high the hash table will be expanded.
-
-   The abstract data implementation is based on generalized Algorithm D
-   from Knuth's book "The art of computer programming".  Hash table is
-   expanded by creation of new hash table and transferring elements from
-   the old table to the new table.  */
-
-#ifndef __HASHTAB_H__
-#define __HASHTAB_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#include "ansidecl.h"
-
-#ifndef GTY
-#define GTY(X)
-#endif
-
-/* The type for a hash code.  */
-typedef unsigned int hashval_t;
-
-/* Callback function pointer types.  */
-
-/* Calculate hash of a table entry.  */
-typedef hashval_t (*htab_hash) (const void *);
-
-/* Compare a table entry with a possible entry.  The entry already in
-   the table always comes first, so the second element can be of a
-   different type (but in this case htab_find and htab_find_slot
-   cannot be used; instead the variants that accept a hash value
-   must be used).  */
-typedef int (*htab_eq) (const void *, const void *);
-
-/* Cleanup function called whenever a live element is removed from
-   the hash table.  */
-typedef void (*htab_del) (void *);
-  
-/* Function called by htab_traverse for each live element.  The first
-   arg is the slot of the element (which can be passed to htab_clear_slot
-   if desired), the second arg is the auxiliary pointer handed to
-   htab_traverse.  Return 1 to continue scan, 0 to stop.  */
-typedef int (*htab_trav) (void **, void *);
-
-/* Memory-allocation function, with the same functionality as calloc().
-   Iff it returns NULL, the hash table implementation will pass an error
-   code back to the user, so if your code doesn't handle errors,
-   best if you use xcalloc instead.  */
-typedef void *(*htab_alloc) (size_t, size_t);
-
-/* We also need a free() routine.  */
-typedef void (*htab_free) (void *);
-
-/* Memory allocation and deallocation; variants which take an extra
-   argument.  */
-typedef void *(*htab_alloc_with_arg) (void *, size_t, size_t);
-typedef void (*htab_free_with_arg) (void *, void *);
-
-/* This macro defines reserved value for empty table entry.  */
-
-#define HTAB_EMPTY_ENTRY    ((PTR) 0)
-
-/* This macro defines reserved value for table entry which contained
-   a deleted element. */
-
-#define HTAB_DELETED_ENTRY  ((PTR) 1)
-
-/* Hash tables are of the following type.  The structure
-   (implementation) of this type is not needed for using the hash
-   tables.  All work with hash table should be executed only through
-   functions mentioned below.  The size of this structure is subject to
-   change.  */
-
-struct htab GTY(())
-{
-  /* Pointer to hash function.  */
-  htab_hash hash_f;
-
-  /* Pointer to comparison function.  */
-  htab_eq eq_f;
-
-  /* Pointer to cleanup function.  */
-  htab_del del_f;
-
-  /* Table itself.  */
-  void ** GTY ((use_param, length ("%h.size"))) entries;
-
-  /* Current size (in entries) of the hash table.  */
-  size_t size;
-
-  /* Current number of elements including also deleted elements.  */
-  size_t n_elements;
-
-  /* Current number of deleted elements in the table.  */
-  size_t n_deleted;
-
-  /* The following member is used for debugging. Its value is number
-     of all calls of `htab_find_slot' for the hash table. */
-  unsigned int searches;
-
-  /* The following member is used for debugging.  Its value is number
-     of collisions fixed for time of work with the hash table. */
-  unsigned int collisions;
-
-  /* Pointers to allocate/free functions.  */
-  htab_alloc alloc_f;
-  htab_free free_f;
-
-  /* Alternate allocate/free functions, which take an extra argument.  */
-  void * GTY((skip)) alloc_arg;
-  htab_alloc_with_arg alloc_with_arg_f;
-  htab_free_with_arg free_with_arg_f;
-
-  /* Current size (in entries) of the hash table, as an index into the
-     table of primes.  */
-  unsigned int size_prime_index;
-};
-
-typedef struct htab *htab_t;
-
-/* An enum saying whether we insert into the hash table or not.  */
-enum insert_option {NO_INSERT, INSERT};
-
-/* The prototypes of the package functions. */
-
-extern htab_t	htab_create_alloc  (size_t, htab_hash,
-                                    htab_eq, htab_del,
-                                    htab_alloc, htab_free);
-
-extern htab_t	htab_create_alloc_ex (size_t, htab_hash,
-                                      htab_eq, htab_del,
-                                      void *, htab_alloc_with_arg,
-                                      htab_free_with_arg);
-
-/* Backward-compatibility functions.  */
-extern htab_t htab_create (size_t, htab_hash, htab_eq, htab_del);
-extern htab_t htab_try_create (size_t, htab_hash, htab_eq, htab_del);
-
-extern void	htab_set_functions_ex (htab_t, htab_hash,
-                                       htab_eq, htab_del,
-                                       void *, htab_alloc_with_arg,
-                                       htab_free_with_arg);
-
-extern void	htab_delete (htab_t);
-extern void	htab_empty (htab_t);
-
-extern void *	htab_find (htab_t, const void *);
-extern void **	htab_find_slot (htab_t, const void *, enum insert_option);
-extern void *	htab_find_with_hash (htab_t, const void *, hashval_t);
-extern void **	htab_find_slot_with_hash (htab_t, const void *,
-					  hashval_t, enum insert_option);
-extern void	htab_clear_slot	(htab_t, void **);
-extern void	htab_remove_elt	(htab_t, void *);
-extern void	htab_remove_elt_with_hash (htab_t, void *, hashval_t);
-
-extern void	htab_traverse (htab_t, htab_trav, void *);
-extern void	htab_traverse_noresize (htab_t, htab_trav, void *);
-
-extern size_t	htab_size (htab_t);
-extern size_t	htab_elements (htab_t);
-extern double	htab_collisions	(htab_t);
-
-/* A hash function for pointers.  */
-extern htab_hash htab_hash_pointer;
-
-/* An equality function for pointers.  */
-extern htab_eq htab_eq_pointer;
-
-/* A hash function for null-terminated strings.  */
-extern hashval_t htab_hash_string (const void *);
-
-/* An iterative hash function for arbitrary data.  */
-extern hashval_t iterative_hash (const void *, size_t, hashval_t);
-/* Shorthand for hashing something with an intrinsic size.  */
-#define iterative_hash_object(OB,INIT) iterative_hash (&OB, sizeof (OB), INIT)
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __HASHTAB_H */
diff --git a/include/hp-symtab.h b/include/hp-symtab.h
deleted file mode 100644
index 361473f..0000000
--- a/include/hp-symtab.h
+++ /dev/null
@@ -1,1866 +0,0 @@
-/* Definitions and structures for reading debug symbols from the
-   native HP C compiler.
-
-   Written by the Center for Software Science at the University of Utah
-   and by Cygnus Support.
-
-   Copyright 1994, 1995, 1998, 1999, 2003 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef HP_SYMTAB_INCLUDED
-#define HP_SYMTAB_INCLUDED
-
-/* General information:
-
-   This header file defines and describes only the data structures
-   necessary to read debug symbols produced by the HP C compiler,
-   HP ANSI C++ compiler, and HP FORTRAN 90 compiler using the
-   SOM object file format.  
-   (For a full description of the debug format, ftp hpux-symtab.h from
-   jaguar.cs.utah.edu:/dist).
-   
-   Additional notes (Rich Title)
-   This file is a reverse-engineered version of a file called
-   "symtab.h" which exists internal to HP's Computer Languages Organization
-   in /CLO/Components/DDE/obj/som/symtab.h. Because HP's version of
-   the file is copyrighted and not distributed, it is necessary for
-   GDB to use the reverse-engineered version that follows.
-   Work was done by Cygnus to reverse-engineer the C subset of symtab.h.
-   The WDB project has extended this to also contain the C++ 
-   symbol definitions, the F90 symbol definitions, 
-   and the DOC (debugging-optimized-code) symbol definitions.
-   In some cases (the C++ symbol definitions)
-   I have added internal documentation here that
-   goes beyond what is supplied in HP's symtab.h. If we someday
-   unify these files again, the extra comments should be merged back
-   into HP's symtab.h.
-  
-   -------------------------------------------------------------------
-
-   Debug symbols are contained entirely within an unloadable space called
-   $DEBUG$.  $DEBUG$ contains several subspaces which group related
-   debug symbols.
-
-   $GNTT$ contains information for global variables, types and contants.
-
-   $LNTT$ contains information for procedures (including nesting), scoping
-   information, local variables, types, and constants.
-
-   $SLT$ contains source line information so that code addresses may be
-   mapped to source lines.
-
-   $VT$ contains various strings and constants for named objects (variables,
-   typedefs, functions, etc).  Strings are stored as null-terminated character
-   lists.  Constants always begin on word boundaries.  The first byte of
-   the VT must be zero (a null string).
-
-   $XT$ is not currently used by GDB.
-
-   Many structures within the subspaces point to other structures within
-   the same subspace, or to structures within a different subspace.  These
-   pointers are represented as a structure index from the beginning of
-   the appropriate subspace.  */
-
-/* Used to describe where a constant is stored.  */
-enum location_type
-{
-  LOCATION_IMMEDIATE,
-  LOCATION_PTR,
-  LOCATION_VT,
-};
-
-/* Languages supported by this debug format.  Within the data structures
-   this type is limited to 4 bits for a maximum of 16 languages.  */
-enum hp_language
-{
-  HP_LANGUAGE_UNKNOWN,
-  HP_LANGUAGE_C,
-  HP_LANGUAGE_FORTRAN,
-  HP_LANGUAGE_F77 = HP_LANGUAGE_FORTRAN,
-  HP_LANGUAGE_PASCAL,
-  HP_LANGUAGE_MODCAL,
-  HP_LANGUAGE_COBOL,
-  HP_LANGUAGE_BASIC,
-  HP_LANGUAGE_ADA,
-  HP_LANGUAGE_CPLUSPLUS,
-  HP_LANGUAGE_DMPASCAL
-};
-
-
-/* Basic data types available in this debug format.  Within the data
-   structures this type is limited to 5 bits for a maximum of 32 basic
-   data types.  */
-enum hp_type
-{
-  HP_TYPE_UNDEFINED, /* 0 */
-  HP_TYPE_BOOLEAN, /* 1 */
-  HP_TYPE_CHAR, /* 2 */
-  HP_TYPE_INT, /* 3 */
-  HP_TYPE_UNSIGNED_INT, /* 4 */
-  HP_TYPE_REAL, /* 5 */
-  HP_TYPE_COMPLEX, /* 6 */
-  HP_TYPE_STRING200, /* 7 */
-  HP_TYPE_LONGSTRING200, /* 8 */
-  HP_TYPE_TEXT, /* 9 */
-  HP_TYPE_FLABEL, /* 10 */
-  HP_TYPE_FTN_STRING_SPEC, /* 11 */
-  HP_TYPE_MOD_STRING_SPEC, /* 12 */
-  HP_TYPE_PACKED_DECIMAL, /* 13 */
-  HP_TYPE_REAL_3000, /* 14 */
-  HP_TYPE_MOD_STRING_3000, /* 15 */
-  HP_TYPE_ANYPOINTER, /* 16 */
-  HP_TYPE_GLOBAL_ANYPOINTER, /* 17 */
-  HP_TYPE_LOCAL_ANYPOINTER, /* 18 */
-  HP_TYPE_COMPLEXS3000, /* 19 */
-  HP_TYPE_FTN_STRING_S300_COMPAT, /* 20 */ 
-  HP_TYPE_FTN_STRING_VAX_COMPAT, /* 21 */
-  HP_TYPE_BOOLEAN_S300_COMPAT, /* 22 */
-  HP_TYPE_BOOLEAN_VAX_COMPAT, /* 23 */
-  HP_TYPE_WIDE_CHAR, /* 24 */
-  HP_TYPE_LONG, /* 25 */
-  HP_TYPE_UNSIGNED_LONG, /* 26 */
-  HP_TYPE_DOUBLE, /* 27 */
-  HP_TYPE_TEMPLATE_ARG, /* 28 */
-  HP_TYPE_VOID /* 29 */
-};
-
-/* An immediate name and type table entry.
-
-   extension and immediate will always be one.
-   global will always be zero.
-   hp_type is the basic type this entry describes.
-   bitlength is the length in bits for the basic type.  */
-struct dnttp_immediate
-{
-  unsigned int extension:	1;
-  unsigned int immediate:	1;
-  unsigned int global:		1;
-  unsigned int type: 		5;
-  unsigned int bitlength:	24;
-};
-
-/* A nonimmediate name and type table entry.
-
-   extension will always be one.
-   immediate will always be zero.
-   if global is zero, this entry points into the LNTT
-   if global is one, this entry points into the GNTT
-   index is the index within the GNTT or LNTT for this entry.  */
-struct dnttp_nonimmediate
-{
-  unsigned int extension:	1;
-  unsigned int immediate:	1;
-  unsigned int global:		1;
-  unsigned int index:		29;
-};
-
-/* A pointer to an entry in the GNTT and LNTT tables.  It has two
-   forms depending on the type being described.
-
-   The immediate form is used for simple entries and is one
-   word.
-
-   The nonimmediate form is used for complex entries and contains
-   an index into the LNTT or GNTT which describes the entire type.
-
-   If a dnttpointer is -1, then it is a NIL entry.  */
-
-#define DNTTNIL (-1)
-typedef union dnttpointer
-{
-  struct dnttp_immediate    dntti;
-  struct dnttp_nonimmediate dnttp;
-  int word;
-} dnttpointer;
-
-/* An index into the source line table.  As with dnttpointers, a sltpointer
-   of -1 indicates a NIL entry.  */
-#define SLTNIL (-1)
-typedef int sltpointer;
-
-/* Index into DOC (= "Debugging Optimized Code") line table.  */
-#define LTNIL (-1)
-typedef int ltpointer;
-
-/* Index into context table.  */
-#define CTXTNIL (-1)
-typedef int ctxtpointer;
-
-/* Unsigned byte offset into the VT.  */
-typedef unsigned int vtpointer;
-
-/* A DNTT entry (used within the GNTT and LNTT).
-
-   DNTT entries are variable sized objects, but are always a multiple
-   of 3 words (we call each group of 3 words a "block").
-
-   The first bit in each block is an extension bit.  This bit is zero
-   for the first block of a DNTT entry.  If the entry requires more
-   than one block, then this bit is set to one in all blocks after
-   the first one.  */
-
-/* Each DNTT entry describes a particular debug symbol (beginning of
-   a source file, a function, variables, structures, etc.
-
-   The type of the DNTT entry is stored in the "kind" field within the
-   DNTT entry itself.  */
-
-enum dntt_entry_type
-{
-  DNTT_TYPE_NIL = -1,
-  DNTT_TYPE_SRCFILE,
-  DNTT_TYPE_MODULE,
-  DNTT_TYPE_FUNCTION,
-  DNTT_TYPE_ENTRY,
-  DNTT_TYPE_BEGIN,
-  DNTT_TYPE_END,
-  DNTT_TYPE_IMPORT,
-  DNTT_TYPE_LABEL,
-  DNTT_TYPE_FPARAM,
-  DNTT_TYPE_SVAR,
-  DNTT_TYPE_DVAR,
-  DNTT_TYPE_HOLE1,
-  DNTT_TYPE_CONST,
-  DNTT_TYPE_TYPEDEF,
-  DNTT_TYPE_TAGDEF,
-  DNTT_TYPE_POINTER,
-  DNTT_TYPE_ENUM,
-  DNTT_TYPE_MEMENUM,
-  DNTT_TYPE_SET,
-  DNTT_TYPE_SUBRANGE,
-  DNTT_TYPE_ARRAY,
-  DNTT_TYPE_STRUCT,
-  DNTT_TYPE_UNION,
-  DNTT_TYPE_FIELD,
-  DNTT_TYPE_VARIANT,
-  DNTT_TYPE_FILE,
-  DNTT_TYPE_FUNCTYPE,
-  DNTT_TYPE_WITH,
-  DNTT_TYPE_COMMON,
-  DNTT_TYPE_COBSTRUCT,
-  DNTT_TYPE_XREF,
-  DNTT_TYPE_SA,
-  DNTT_TYPE_MACRO,
-  DNTT_TYPE_BLOCKDATA,
-  DNTT_TYPE_CLASS_SCOPE,
-  DNTT_TYPE_REFERENCE,
-  DNTT_TYPE_PTRMEM,
-  DNTT_TYPE_PTRMEMFUNC,
-  DNTT_TYPE_CLASS,
-  DNTT_TYPE_GENFIELD,
-  DNTT_TYPE_VFUNC,
-  DNTT_TYPE_MEMACCESS,
-  DNTT_TYPE_INHERITANCE,
-  DNTT_TYPE_FRIEND_CLASS,
-  DNTT_TYPE_FRIEND_FUNC,
-  DNTT_TYPE_MODIFIER,
-  DNTT_TYPE_OBJECT_ID,
-  DNTT_TYPE_MEMFUNC,
-  DNTT_TYPE_TEMPLATE,
-  DNTT_TYPE_TEMPLATE_ARG,
-  DNTT_TYPE_FUNC_TEMPLATE,
-  DNTT_TYPE_LINK,
-  DNTT_TYPE_DYN_ARRAY_DESC,
-  DNTT_TYPE_DESC_SUBRANGE,
-  DNTT_TYPE_BEGIN_EXT,
-  DNTT_TYPE_INLN,
-  DNTT_TYPE_INLN_LIST,
-  DNTT_TYPE_ALIAS,
-  DNTT_TYPE_DOC_FUNCTION,
-  DNTT_TYPE_DOC_MEMFUNC,
-  DNTT_TYPE_MAX
-};
-
-/* DNTT_TYPE_SRCFILE:
-
-   One DNTT_TYPE_SRCFILE symbol is output for the start of each source
-   file and at the begin and end of an included file.  A DNTT_TYPE_SRCFILE
-   entry is also output before each DNTT_TYPE_FUNC symbol so that debuggers
-   can determine what file a function was defined in.
-
-   LANGUAGE describes the source file's language.
-
-   NAME points to an VT entry providing the source file's name.
-
-   Note the name used for DNTT_TYPE_SRCFILE entries are exactly as seen
-   by the compiler (ie they may be relative or absolute).  C include files
-   via <> inclusion must use absolute paths.
-
-   ADDRESS points to an SLT entry from which line number and code locations
-   may be determined.  */
-
-struct dntt_type_srcfile
-{
-  unsigned int extension:	1;
-  unsigned int kind:		10;    /* DNTT_TYPE_SRCFILE */
-  unsigned int language:	4;
-  unsigned int unused:		17;
-  vtpointer name;
-  sltpointer address;
-};
-
-/* DNTT_TYPE_MODULE:
-
-   A DNTT_TYPE_MODULE symbol is emitted for the start of a pascal
-   module or C source file. A module indicates a compilation unit
-   for name-scoping purposes; in that regard there should be 
-   a 1-1 correspondence between GDB "symtab"'s and MODULE symbol records.
-
-   Each DNTT_TYPE_MODULE must have an associated DNTT_TYPE_END symbol.
-
-   NAME points to a VT entry providing the module's name.  Note C
-   source files are considered nameless modules.
-
-   ALIAS point to a VT entry providing a secondary name.
-
-   ADDRESS points to an SLT entry from which line number and code locations
-   may be determined.  */
-
-struct dntt_type_module
-{
-  unsigned int extension:	1;
-  unsigned int kind:		10; 	/* DNTT_TYPE_MODULE */
-  unsigned int unused:		21;
-  vtpointer name;
-  vtpointer alias;
-  dnttpointer unused2;
-  sltpointer address;
-};
-
-/* DNTT_TYPE_FUNCTION,
-   DNTT_TYPE_ENTRY,
-   DNTT_TYPE_BLOCKDATA,
-   DNTT_TYPE_MEMFUNC:
-
-   A DNTT_TYPE_FUNCTION symbol is emitted for each function definition;
-   a DNTT_TYPE_ENTRY symbols is used for secondary entry points.  Both
-   symbols used the dntt_type_function structure.
-   A DNTT_TYPE_BLOCKDATA symbol is emitted ...?
-   A DNTT_TYPE_MEMFUNC symbol is emitted for inlined member functions (C++). 
-
-   Each of DNTT_TYPE_FUNCTION must have a matching DNTT_TYPE_END.
-
-   GLOBAL is nonzero if the function has global scope.
-
-   LANGUAGE describes the function's source language.
-
-   OPT_LEVEL describes the optimization level the function was compiled
-   with.
-
-   VARARGS is nonzero if the function uses varargs.
-
-   NAME points to a VT entry providing the function's name.
-
-   ALIAS points to a VT entry providing a secondary name for the function.
-
-   FIRSTPARAM points to a LNTT entry which describes the parameter list.
-
-   ADDRESS points to an SLT entry from which line number and code locations
-   may be determined.
-
-   ENTRYADDR is the memory address corresponding the function's entry point
-
-   RETVAL points to a LNTT entry describing the function's return value.
-
-   LOWADDR is the lowest memory address associated with this function.
-
-   HIADDR is the highest memory address associated with this function.  */
-
-struct dntt_type_function
-{
-  unsigned int extension:	1;
-  unsigned int kind:		10;	/* DNTT_TYPE_FUNCTION,
-				           DNTT_TYPE_ENTRY,
-					   DNTT_TYPE_BLOCKDATA
-					   or DNTT_TYPE_MEMFUNC */
-  unsigned int global:		1;
-  unsigned int language:	4;
-  unsigned int nest_level:	5;
-  unsigned int opt_level:	2;
-  unsigned int varargs:		1;
-  unsigned int lang_info:	4;
-  unsigned int inlined:		1;
-  unsigned int localalloc:	1;
-  unsigned int expansion:	1;
-  unsigned int unused:		1;
-  vtpointer name;
-  vtpointer alias;
-  dnttpointer firstparam;
-  sltpointer address;
-  CORE_ADDR entryaddr;
-  dnttpointer retval;
-  CORE_ADDR lowaddr;
-  CORE_ADDR hiaddr;
-};
-
-/* DNTT_TYPE_BEGIN:
-
-   A DNTT_TYPE_BEGIN symbol is emitted to begin a new nested scope.
-   Every DNTT_TYPE_BEGIN symbol must have a matching DNTT_TYPE_END symbol.
-
-   CLASSFLAG is nonzero if this is the beginning of a c++ class definition.
-
-   ADDRESS points to an SLT entry from which line number and code locations
-   may be determined.  */
-
-struct dntt_type_begin
-{
-  unsigned int extension:	1;
-  unsigned int kind:		10;
-  unsigned int classflag:	1;
-  unsigned int unused:		20;
-  sltpointer address;
-};
-
-/* DNTT_TYPE_END:
-
-   A DNTT_TYPE_END symbol is emitted when closing a scope started by
-   a DNTT_TYPE_MODULE, DNTT_TYPE_FUNCTION, DNTT_TYPE_WITH,
-   DNTT_TYPE_COMMON, DNTT_TYPE_BEGIN, and DNTT_TYPE_CLASS_SCOPE symbols.
-
-   ENDKIND describes what type of scope the DNTT_TYPE_END is closing
-   (one of the above 6 kinds).
-
-   CLASSFLAG is nonzero if this is the end of a c++ class definition.
-
-   ADDRESS points to an SLT entry from which line number and code locations
-   may be determined.
-
-   BEGINSCOPE points to the LNTT entry which opened the scope.  */
-
-struct dntt_type_end
-{
-  unsigned int extension:	1;
-  unsigned int kind:		10;
-  unsigned int endkind:		10;
-  unsigned int classflag:	1;
-  unsigned int unused:		10;
-  sltpointer address;
-  dnttpointer beginscope;
-};
-
-/* DNTT_TYPE_IMPORT is unused by GDB.  */
-/* DNTT_TYPE_LABEL is unused by GDB.  */
-
-/* DNTT_TYPE_FPARAM:
-
-   A DNTT_TYPE_FPARAM symbol is emitted for a function argument.  When
-   chained together the symbols represent an argument list for a function.
-
-   REGPARAM is nonzero if this parameter was passed in a register.
-
-   INDIRECT is nonzero if this parameter is a pointer to the parameter
-   (pass by reference or pass by value for large items).
-
-   LONGADDR is nonzero if the parameter is a 64bit pointer.
-
-   NAME is a pointer into the VT for the parameter's name.
-
-   LOCATION describes where the parameter is stored.  Depending on the
-   parameter type LOCATION could be a register number, or an offset
-   from the stack pointer.
-
-   TYPE points to a NTT entry describing the type of this parameter.
-
-   NEXTPARAM points to the LNTT entry describing the next parameter.  */
-
-struct dntt_type_fparam
-{
-  unsigned int extension:	1;
-  unsigned int kind:		10;
-  unsigned int regparam:	1;
-  unsigned int indirect:	1;
-  unsigned int longaddr:	1;
-  unsigned int copyparam:	1;
-  unsigned int dflt:		1;
-  unsigned int doc_ranges:	1;
-  unsigned int misc_kind:       1;
-  unsigned int unused:		14;
-  vtpointer name;
-  CORE_ADDR location;
-  dnttpointer type;
-  dnttpointer nextparam;
-  int misc;
-};
-
-/* DNTT_TYPE_SVAR:
-
-   A DNTT_TYPE_SVAR is emitted to describe a variable in static storage.
-
-   GLOBAL is nonzero if the variable has global scope.
-
-   INDIRECT is nonzero if the variable is a pointer to an object.
-
-   LONGADDR is nonzero if the variable is in long pointer space.
-
-   STATICMEM is nonzero if the variable is a member of a class.
-
-   A_UNION is nonzero if the variable is an anonymous union member.
-
-   NAME is a pointer into the VT for the variable's name.
-
-   LOCATION provides the memory address for the variable.
-
-   TYPE is a pointer into either the GNTT or LNTT which describes
-   the type of this variable.  */
-
-struct dntt_type_svar
-{
-  unsigned int extension:	1;
-  unsigned int kind:		10;
-  unsigned int global:		1;
-  unsigned int indirect:	1;
-  unsigned int longaddr:	1;
-  unsigned int staticmem:	1;
-  unsigned int a_union:		1;
-  unsigned int unused1:         1;
-  unsigned int thread_specific: 1;
-  unsigned int unused2:         14;
-  vtpointer name;
-  CORE_ADDR location;
-  dnttpointer type;
-  unsigned int offset;
-  unsigned int displacement;
-};
-
-/* DNTT_TYPE_DVAR:
-
-   A DNTT_TYPE_DVAR is emitted to describe automatic variables and variables
-   held in registers.
-
-   GLOBAL is nonzero if the variable has global scope.
-
-   INDIRECT is nonzero if the variable is a pointer to an object.
-
-   REGVAR is nonzero if the variable is in a register.
-
-   A_UNION is nonzero if the variable is an anonymous union member.
-
-   NAME is a pointer into the VT for the variable's name.
-
-   LOCATION provides the memory address or register number for the variable.
-
-   TYPE is a pointer into either the GNTT or LNTT which describes
-   the type of this variable.  */
-
-struct dntt_type_dvar
-{
-  unsigned int extension:	1;
-  unsigned int kind:		10;
-  unsigned int global:		1;
-  unsigned int indirect:	1;
-  unsigned int regvar:		1;
-  unsigned int a_union:		1;
-  unsigned int unused:		17;
-  vtpointer name;
-  int location;
-  dnttpointer type;
-  unsigned int offset;
-};
-
-/* DNTT_TYPE_CONST:
-
-   A DNTT_TYPE_CONST symbol is emitted for program constants.
-
-   GLOBAL is nonzero if the constant has global scope.
-
-   INDIRECT is nonzero if the constant is a pointer to an object.
-
-   LOCATION_TYPE describes where to find the constant's value
-   (in the VT, memory, or embedded in an instruction).
-
-   CLASSMEM is nonzero if the constant is a member of a class.
-
-   NAME is a pointer into the VT for the constant's name.
-
-   LOCATION provides the memory address, register number or pointer
-   into the VT for the constant's value.
-
-   TYPE is a pointer into either the GNTT or LNTT which describes
-   the type of this variable.  */
-
-struct dntt_type_const
-{
-  unsigned int extension:	1;
-  unsigned int kind:		10;
-  unsigned int global:		1;
-  unsigned int indirect:	1;
-  unsigned int location_type:	3;
-  unsigned int classmem:	1;
-  unsigned int unused:		15;
-  vtpointer name;
-  CORE_ADDR location;
-  dnttpointer type;
-  unsigned int offset;
-  unsigned int displacement;
-};
-
-/* DNTT_TYPE_TYPEDEF and DNTT_TYPE_TAGDEF:
-
-   The same structure is used to describe typedefs and tagdefs.
-
-   DNTT_TYPE_TYPEDEFS are associated with C "typedefs".
-
-   DNTT_TYPE_TAGDEFs are associated with C "struct", "union", and "enum"
-   tags, which may have the same name as a typedef in the same scope.
-   Also they are associated with C++ "class" tags, which implicitly have 
-   the same name as the class type.
-
-   GLOBAL is nonzero if the typedef/tagdef has global scope.
-
-   TYPEINFO is used to determine if full type information is available
-   for a tag.  (usually 1, but can be zero for opaque types in C).
-
-   NAME is a pointer into the VT for the constant's name.
-
-   TYPE points to the underlying type for the typedef/tagdef in the
-   GNTT or LNTT.  */
-
-struct dntt_type_type
-{
-  unsigned int extension:	1;
-  unsigned int kind:		10;    /* DNTT_TYPE_TYPEDEF or 
-                                          DNTT_TYPE_TAGDEF.  */
-  unsigned int global:		1;
-  unsigned int typeinfo:	1;
-  unsigned int unused:		19;
-  vtpointer name;
-  dnttpointer type;                    /* Underlying type, which for TAGDEF's may be
-                                          DNTT_TYPE_STRUCT, DNTT_TYPE_UNION,
-                                          DNTT_TYPE_ENUM, or DNTT_TYPE_CLASS. 
-                                          For TYPEDEF's other underlying types
-                                          are also possible.  */
-};
-
-/* DNTT_TYPE_POINTER:
-
-   Used to describe a pointer to an underlying type.
-
-   POINTSTO is a pointer into the GNTT or LNTT for the type which this
-   pointer points to.
-
-   BITLENGTH is the length of the pointer (not the underlying type). */
-
-struct dntt_type_pointer
-{
-  unsigned int extension:	1;
-  unsigned int kind:		10;
-  unsigned int unused:		21;
-  dnttpointer pointsto;
-  unsigned int bitlength;
-};
-
-
-/* DNTT_TYPE_ENUM:
-
-   Used to describe enumerated types.
-
-   FIRSTMEM is a pointer to a DNTT_TYPE_MEMENUM in the GNTT/LNTT which
-   describes the first member (and contains a pointer to the chain of
-   members).
-
-   BITLENGTH is the number of bits used to hold the values of the enum's
-   members.  */
-
-struct dntt_type_enum
-{
-  unsigned int extension:	1;
-  unsigned int kind:	10;
-  unsigned int unused:		21;
-  dnttpointer firstmem;
-  unsigned int bitlength;
-};
-
-/* DNTT_TYPE_MEMENUM
-
-   Used to describe members of an enumerated type.
-
-   CLASSMEM is nonzero if this member is part of a class.
-
-   NAME points into the VT for the name of this member.
-
-   VALUE is the value of this enumeration member.
-
-   NEXTMEM points to the next DNTT_TYPE_MEMENUM in the chain.  */
-
-struct dntt_type_memenum
-{
-  unsigned int extension:	1;
-  unsigned int kind:	10;
-  unsigned int classmem:	1;
-  unsigned int unused:		20;
-  vtpointer name;
-  unsigned int value;
-  dnttpointer nextmem;
-};
-
-/* DNTT_TYPE_SET
-
-   Used to describe PASCAL "set" type.
-
-   DECLARATION describes the bitpacking of the set.
-
-   SUBTYPE points to a DNTT entry describing the type of the members.
-
-   BITLENGTH is the size of the set.  */ 
-
-struct dntt_type_set
-{
-  unsigned int extension:	1;
-  unsigned int kind:	10;
-  unsigned int declaration:	2;
-  unsigned int unused:		19;
-  dnttpointer subtype;
-  unsigned int bitlength;
-};
-
-/* DNTT_TYPE_SUBRANGE
-
-   Used to describe subrange type.
-
-   DYN_LOW describes the lower bound of the subrange:
-
-     00 for a constant lower bound (found in LOWBOUND).
-
-     01 for a dynamic lower bound with the lower bound found in the
-     memory address pointed to by LOWBOUND.
-
-     10 for a dynamic lower bound described by an variable found in the
-     DNTT/LNTT (LOWBOUND would be a pointer into the DNTT/LNTT).
-
-   DYN_HIGH is similar to DYN_LOW, except it describes the upper bound.
-
-   SUBTYPE points to the type of the subrange.
-
-   BITLENGTH is the length in bits needed to describe the subrange's
-   values.  */
-
-struct dntt_type_subrange
-{
-  unsigned int extension:	1;
-  unsigned int kind:	10;
-  unsigned int dyn_low:		2;
-  unsigned int dyn_high:	2;
-  unsigned int unused:		17;
-  int lowbound;
-  int highbound;
-  dnttpointer subtype;
-  unsigned int bitlength;
-};
-
-/* DNTT_TYPE_ARRAY
-
-   Used to describe an array type.
-
-   DECLARATION describes the bit packing used in the array.
-
-   ARRAYISBYTES is nonzero if the field in arraylength describes the
-   length in bytes rather than in bits.  A value of zero is used to
-   describe an array with size 2**32.
-
-   ELEMISBYTES is nonzero if the length if each element in the array
-   is describes in bytes rather than bits.  A value of zero is used
-   to an element with size 2**32.
-
-   ELEMORDER is nonzero if the elements are indexed in increasing order.
-
-   JUSTIFIED if the elements are left justified to index zero.
-
-   ARRAYLENGTH is the length of the array.
-
-   INDEXTYPE is a DNTT pointer to the type used to index the array.
-
-   ELEMTYPE is a DNTT pointer to the type for the array elements.
-
-   ELEMLENGTH is the length of each element in the array (including
-   any padding).
-
-   Multi-dimensional arrays are represented by ELEMTYPE pointing to
-   another DNTT_TYPE_ARRAY.  */
-
-struct dntt_type_array
-{
-  unsigned int extension:	1;
-  unsigned int kind:	10;
-  unsigned int declaration:	2;
-  unsigned int dyn_low:		2;
-  unsigned int dyn_high:	2;
-  unsigned int arrayisbytes:	1;
-  unsigned int elemisbytes:	1;
-  unsigned int elemorder:	1;
-  unsigned int justified:	1;
-  unsigned int unused:		11;
-  unsigned int arraylength;
-  dnttpointer indextype;
-  dnttpointer elemtype;
-  unsigned int elemlength;
-};
-
-/* DNTT_TYPE_STRUCT
-
-   DNTT_TYPE_STRUCT is used to describe a C structure.
-
-   DECLARATION describes the bitpacking used.
-
-   FIRSTFIELD is a DNTT pointer to the first field of the structure
-   (each field contains a pointer to the next field, walk the list
-   to access all fields of the structure).
-
-   VARTAGFIELD and VARLIST are used for Pascal variant records.
-
-   BITLENGTH is the size of the structure in bits.  */
-
-struct dntt_type_struct
-{
-  unsigned int extension:	1;
-  unsigned int kind:	10;
-  unsigned int declaration:	2;
-  unsigned int unused:		19;
-  dnttpointer firstfield;
-  dnttpointer vartagfield;
-  dnttpointer varlist;
-  unsigned int bitlength;
-};
-
-/* DNTT_TYPE_UNION
-
-   DNTT_TYPE_UNION is used to describe a C union.
-
-   FIRSTFIELD is a DNTT pointer to the beginning of the field chain.
-
-   BITLENGTH is the size of the union in bits.  */
-
-struct dntt_type_union
-{
-  unsigned int extension:	1;
-  unsigned int kind:	10;
-  unsigned int unused:		21;
-  dnttpointer firstfield;
-  unsigned int bitlength;
-};
-
-/* DNTT_TYPE_FIELD
-
-   DNTT_TYPE_FIELD describes one field in a structure or union
-   or C++ class.
-
-   VISIBILITY is used to describe the visibility of the field
-   (for c++.  public = 0, protected = 1, private = 2).
-
-   A_UNION is nonzero if this field is a member of an anonymous union.
-
-   STATICMEM is nonzero if this field is a static member of a template.
-
-   NAME is a pointer into the VT for the name of the field.
-
-   BITOFFSET gives the offset of this field in bits from the beginning
-   of the structure or union this field is a member of.
-
-   TYPE is a DNTT pointer to the type describing this field.
-
-   BITLENGTH is the size of the entry in bits.
-
-   NEXTFIELD is a DNTT pointer to the next field in the chain.  */
-
-struct dntt_type_field
-{
-  unsigned int extension:	1;
-  unsigned int kind:	10;
-  unsigned int visibility:	2;
-  unsigned int a_union:		1;
-  unsigned int staticmem:	1;
-  unsigned int unused:		17;
-  vtpointer name;
-  unsigned int bitoffset;
-  dnttpointer type;
-  unsigned int bitlength;
-  dnttpointer nextfield;
-};
-
-/* DNTT_TYPE_VARIANT is unused by GDB.  */
-/* DNTT_TYPE_FILE is unused by GDB.  */
-
-/* DNTT_TYPE_FUNCTYPE
-
-   I think this is used to describe a function type (e.g., would
-   be emitted as part of a function-pointer description).
-
-   VARARGS is nonzero if this function uses varargs.
-
-   FIRSTPARAM is a DNTT pointer to the first entry in the parameter
-   chain.
-
-   RETVAL is a DNTT pointer to the type of the return value.  */
-
-struct dntt_type_functype
-{
-  unsigned int extension:	1;
-  unsigned int kind:		10;
-  unsigned int varargs:		1;
-  unsigned int info:		4;
-  unsigned int unused:		16;
-  unsigned int bitlength;
-  dnttpointer firstparam;
-  dnttpointer retval;
-};
-
-/* DNTT_TYPE_WITH is emitted by C++ to indicate "with" scoping semantics.
-   (Probably also emitted by PASCAL to support "with"...).
-   
-   C++ example: Say "memfunc" is a method of class "c", and say
-   "m" is a data member of class "c". Then from within "memfunc",
-   it is legal to reference "m" directly (e.g. you don't have to
-   say "this->m". The symbol table indicates
-   this by emitting a DNTT_TYPE_WITH symbol within the function "memfunc",
-   pointing to the type symbol for class "c".
- 
-   In GDB, this symbol record is unnecessary, 
-   because GDB's symbol lookup algorithm
-   infers the "with" semantics when it sees a "this" argument to the member
-   function. So GDB can safely ignore the DNTT_TYPE_WITH record.
-
-   A DNTT_TYPE_WITH has a matching DNTT_TYPE_END symbol.  */
-
-struct dntt_type_with
-{
-  unsigned int extension:	1;    /* always zero */
-  unsigned int kind:		10;   /* always DNTT_TYPE_WITH */
-  unsigned int addrtype:  	2;    /* 0 => STATTYPE                */
-                                      /* 1 => DYNTYPE                 */
-                                      /* 2 => REGTYPE                 */
-  unsigned int indirect: 	1;    /* 1 => pointer to object       */
-  unsigned int longaddr:  	1;    /* 1 => in long pointer space   */
-  unsigned int nestlevel: 	6;    /* # of nesting levels back     */
-  unsigned int doc_ranges: 	1;    /* 1 => location is range list  */
-  unsigned int unused:   	10;
-  long location;       		      /* where stored (allocated)     */
-  sltpointer address;
-  dnttpointer type;                   /* type of with expression      */
-  vtpointer name;                     /* name of with expression      */
-  unsigned long  offset;              /* byte offset from location    */
-};                                   
-
-/* DNTT_TYPE_COMMON is unsupported by GDB.  */
-/* A DNTT_TYPE_COMMON symbol must have a matching DNTT_TYPE_END symbol */
-
-/* DNTT_TYPE_COBSTRUCT is unsupported by GDB.  */
-/* DNTT_TYPE_XREF is unsupported by GDB.  */
-/* DNTT_TYPE_SA is unsupported by GDB.  */
-/* DNTT_TYPE_MACRO is unsupported by GDB */
-
-/* DNTT_TYPE_BLOCKDATA has the same structure as DNTT_TYPE_FUNCTION */
-
-/* The following are the C++ specific SOM records */
-
-/*  The purpose of the DNTT_TYPE_CLASS_SCOPE is to bracket C++ methods
-    and indicate the method name belongs in the "class scope" rather
-    than in the module they are being defined in. For example:
-
-    class c {
-    ...
-    void memfunc(); // member function
-    };
-
-    void c::memfunc()   // definition of class c's "memfunc"
-    {
-    ...
-    }
-
-    main()
-    {
-    ...
-    }
-
-    In the above, the name "memfunc" is not directly visible from "main".
-    I.e., you have to say "break c::memfunc".
-    If it were a normal function (not a method), it would be visible
-    via the simple "break memfunc". Since "memfunc" otherwise looks
-    like a normal FUNCTION in the symbol table, the bracketing
-    CLASS_SCOPE is what is used to indicate it is really a method.
-    
-
-   A DNTT_TYPE_CLASS_SCOPE symbol must have a matching DNTT_TYPE_END symbol.  */
-
-struct dntt_type_class_scope
-{
-  unsigned int extension:   1;	   /* Always zero.  */
-  unsigned int kind:       10;     /* Always DNTT_TYPE_CLASS_SCOPE.  */
-  unsigned int unused:     21; 
-  sltpointer address         ;     /* Pointer to SLT entry.  */
-  dnttpointer type           ;     /* Pointer to class type DNTT.  */
-};
-
-/* C++ reference parameter.
-   The structure of this record is the same as DNTT_TYPE_POINTER - 
-   refer to struct dntt_type_pointer.  */
-
-/* The next two describe C++ pointer-to-data-member type, and 
-   pointer-to-member-function type, respectively.
-   DNTT_TYPE_PTRMEM and DNTT_TYPE_PTRMEMFUNC have the same structure.  */
-
-struct dntt_type_ptrmem
-{
-  unsigned int extension:   1;	   /* Always zero.  */
-  unsigned int kind:       10;     /* Always DNTT_TYPE_PTRMEM.  */
-  unsigned int unused:	   21;
-  dnttpointer pointsto	     ;     /* Pointer to class DNTT.  */
-  dnttpointer memtype 	     ;     /* Type of member.  */
-};
-
-struct dntt_type_ptrmemfunc
-{
-  unsigned int extension:   1;	   /* Always zero.  */
-  unsigned int kind:       10;     /* Always DNTT_TYPE_PTRMEMFUNC.  */
-  unsigned int unused:	   21;
-  dnttpointer pointsto	     ;     /* Pointer to class DNTT.  */
-  dnttpointer memtype 	     ;     /* Type of member.  */
-};
-
-/* The DNTT_TYPE_CLASS symbol is emitted to describe a class type.
-   "memberlist" points to a chained list of FIELD or GENFIELD records
-   indicating the class members. "parentlist" points to a chained list
-   of INHERITANCE records indicating classes from which we inherit
-   fields.  */
-
-struct dntt_type_class 
-{
-  unsigned int extension:   1;     /* Always zero.  */
-  unsigned int kind:       10;     /* Always DNTT_TYPE_CLASS.  */
-  unsigned int abstract:    1;     /* Is this an abstract class?  */
-  unsigned int class_decl:  2;     /* 0=class,1=union,2=struct.  */
-  unsigned int expansion:   1;     /* 1=template expansion.  */
-  unsigned int unused:     17;     
-  dnttpointer memberlist     ;     /* Ptr to chain of [GEN]FIELDs.  */
-  unsigned long vtbl_loc     ;     /* Offset in obj of ptr to vtbl.  */
-  dnttpointer parentlist     ;     /* Ptr to K_INHERITANCE list.  */
-  unsigned long bitlength    ;     /* Total at this level.  */
-  dnttpointer identlist      ;     /* Ptr to chain of class ident's.  */
-  dnttpointer friendlist     ;     /* Ptr to K_FRIEND list.  */
-  dnttpointer templateptr    ;     /* Ptr to template.  */
-  dnttpointer nextexp        ;     /* Ptr to next expansion.  */
-};
-
-/* Class members are indicated via either the FIELD record (for
-   data members, same as for C struct fields), or by the GENFIELD record
-   (for member functions).  */
-
-struct dntt_type_genfield
-{
-  unsigned int extension:   1;	   /* Always zero.  */
-  unsigned int kind:       10;     /* Always DNTT_TYPE_GENFIELD.  */
-  unsigned int visibility:  2;     /* Pub = 0, prot = 1, priv = 2.  */
-  unsigned int a_union:     1;     /* 1 => anonymous union member.  */
-  unsigned int unused:	   18;
-  dnttpointer field	     ;     /* Pointer to field or qualifier.  */
-  dnttpointer nextfield      ;     /* Pointer to next field.  */
-};
-
-/* C++ virtual functions.  */
-
-struct dntt_type_vfunc
-{
-  unsigned int extension:   1;	   /* always zero */
-  unsigned int kind:       10;     /* always DNTT_TYPE_VFUNC */
-  unsigned int pure:        1;     /* pure virtual function ?       */
-  unsigned int unused:	   20;
-  dnttpointer funcptr        ;     /* points to FUNCTION symbol     */
-  unsigned long vtbl_offset  ;     /* offset into vtbl for virtual  */
-};
-
-/* Not precisely sure what this is intended for - DDE ignores it.  */
-
-struct dntt_type_memaccess
-{
-  unsigned int extension:   1;	   /* always zero */
-  unsigned int kind:       10;     /* always DNTT_TYPE_MEMACCESS */
-  unsigned int unused:	   21;
-  dnttpointer classptr	     ;     /* pointer to base class         */
-  dnttpointer field          ;     /* pointer field                 */
-};
-
-/* The DNTT_TYPE_INHERITANCE record describes derived classes.
-   In particular, the "parentlist" field of the CLASS record points
-   to a list of INHERITANCE records for classes from which we 
-   inherit members.  */
-
-struct dntt_type_inheritance
-{
-  unsigned int extension:   1;	   /* always zero */
-  unsigned int kind:       10;     /* always DNTT_TYPE_INHERITANCE */
-  unsigned int Virtual:     1;     /* virtual base class ?          */
-  unsigned int visibility:  2;     /* pub = 0, prot = 1, priv = 2   */
-  unsigned int unused:	   18;
-  dnttpointer classname      ;     /* first parent class, if any    */
-  unsigned long offset       ;     /* offset to start of base class */
-  dnttpointer next           ;     /* pointer to next K_INHERITANCE */
-  unsigned long future[2]    ;     /* padding to 3-word block end   */
-};
-
-/* C++ "friend" classes ... */
-
-struct dntt_type_friend_class
-{
-  unsigned int extension:   1;	   /* always zero */
-  unsigned int kind:       10;     /* always DNTT_TYPE_FRIEND_CLASS */
-  unsigned int unused:	   21;
-  dnttpointer classptr       ;     /* pointer to class DNTT         */
-  dnttpointer next           ;     /* next DNTT_FRIEND              */
-};
-
-struct dntt_type_friend_func
-{
-  unsigned int extension:   1;	   /* always zero */
-  unsigned int kind:       10;     /* always DNTT_TYPE_FRIEND_FUNC */
-  unsigned int unused:	   21;
-  dnttpointer funcptr        ;     /* pointer to function           */
-  dnttpointer classptr       ;     /* pointer to class DNTT         */
-  dnttpointer next           ;     /* next DNTT_FRIEND              */
-  unsigned long future[2]    ;     /* padding to 3-word block end   */
-};
-
-/* DDE appears to ignore the DNTT_TYPE_MODIFIER record.
-   It could perhaps be used to give better "ptype" output in GDB;
-   otherwise it is probably safe for GDB to ignore it also.  */
-
-struct dntt_type_modifier
-{
-  unsigned int extension:   1;	   /* always zero */
-  unsigned int kind:       10;     /* always DNTT_TYPE_MODIFIER */
-  unsigned int m_const:     1;     /* const                         */
-  unsigned int m_static:    1;     /* static                        */
-  unsigned int m_void:      1;     /* void                          */
-  unsigned int m_volatile:  1;     /* volatile                      */
-  unsigned int m_duplicate: 1;     /* duplicate                     */
-  unsigned int unused:	   16;
-  dnttpointer type           ;     /* subtype                       */
-  unsigned long future       ;     /* padding to 3-word block end   */
-};
-
-/* I'm not sure what this was intended for - DDE ignores it.  */
-
-struct dntt_type_object_id
-{
-  unsigned int extension:   1;	   /* always zero */
-  unsigned int kind:       10;     /* always DNTT_TYPE_OBJECT_ID */
-  unsigned int indirect:    1;     /* Is object_ident addr of addr? */
-  unsigned int unused:	   20;
-  unsigned long object_ident ;     /* object identifier             */
-  unsigned long offset       ;     /* offset to start of base class */
-  dnttpointer next           ;     /* pointer to next K_OBJECT_ID   */
-  unsigned long segoffset    ;     /* for linker fixup              */
-  unsigned long future       ;     /* padding to 3-word block end   */
-};
-
-/* No separate dntt_type_memfunc; same as dntt_type_func */
-
-/* Symbol records to support templates. These only get used
-   in DDE's "describe" output (like GDB's "ptype").  */
-
-/* The TEMPLATE record is the header for a template-class.
-   Like the CLASS record, a TEMPLATE record has a memberlist that
-   points to a list of template members. It also has an arglist
-   pointing to a list of TEMPLATE_ARG records.  */
-
-struct dntt_type_template
-{
-  unsigned int extension:   1;	   /* always zero */
-  unsigned int kind:       10;     /* always DNTT_TYPE_TEMPLATE */
-  unsigned int abstract:    1;     /* is this an abstract class?    */
-  unsigned int class_decl:  2;     /* 0=class,1=union,2=struct      */
-  unsigned int unused:	   18;
-  dnttpointer memberlist     ;     /* ptr to chain of K_[GEN]FIELDs */
-  long unused2               ;     /* offset in obj of ptr to vtbl  */
-  dnttpointer parentlist     ;     /* ptr to K_INHERITANCE list     */
-  unsigned long bitlength    ;     /* total at this level           */
-  dnttpointer identlist      ;     /* ptr to chain of class ident's */
-  dnttpointer friendlist     ;     /* ptr to K_FRIEND list          */
-  dnttpointer arglist        ;     /* ptr to argument list          */
-  dnttpointer expansions     ;     /* ptr to expansion list         */
-};
-
-/* Template-class arguments are a list of TEMPL_ARG records
-   chained together. The "name" field is the name of the formal.
-   E.g.:
-   
-     template <class T> class q { ... };
-   
-   Then "T" is the name of the formal argument.  */
-
-struct dntt_type_templ_arg
-{
-  unsigned int extension:   1;	   /* always zero */
-  unsigned int kind:       10;     /* always DNTT_TYPE_TEMPL_ARG */
-  unsigned int usagetype:   1;     /* 0 type-name 1 expression     */
-  unsigned int unused:	   20;
-  vtpointer name             ;     /* name of argument             */
-  dnttpointer type           ;     /* for non type arguments       */
-  dnttpointer nextarg        ;     /* Next argument if any         */
-  long future[2]             ;     /* padding to 3-word block end  */
-};
-
-/* FUNC_TEMPLATE records are sort of like FUNCTION, but are emitted
-   for template member functions. E.g.,
-   
-     template <class T> class q
-     {
-        ...
-        void f();
-        ... 
-     };
-   
-   Within the list of FIELDs/GENFIELDs defining the member list
-   of the template "q", "f" would appear as a FUNC_TEMPLATE.
-   We'll also see instances of FUNCTION "f" records for each 
-   instantiation of the template.  */
-
-struct dntt_type_func_template
-{
-  unsigned int extension:   1;	   /* always zero */
-  unsigned int kind:       10;     /* always DNTT_TYPE_FUNC_TEMPLATE */
-  unsigned int public:      1;     /* 1 => globally visible        */
-  unsigned int language:    4;     /* type of language             */
-  unsigned int level:       5;     /* nesting level (top level = 0)*/
-  unsigned int optimize:    2;     /* level of optimization        */
-  unsigned int varargs:     1;     /* ellipses.  Pascal/800 later  */ 
-  unsigned int info:        4;     /* lang-specific stuff; F_xxxx  */
-  unsigned int inlined:     1;
-  unsigned int localloc:    1;     /* 0 at top, 1 at end of block  */
-  unsigned int unused:      2;
-  vtpointer name             ;     /* name of function             */
-  vtpointer alias            ;     /* alternate name, if any       */
-  dnttpointer firstparam     ;     /* first FPARAM, if any         */
-  dnttpointer retval         ;     /* return type, if any          */
-  dnttpointer arglist        ;     /* ptr to argument list         */
-};
-
-/* LINK is apparently intended to link together function template
-   definitions with their instantiations. However, it is not clear
-   why this would be needed, except to provide the information on
-   a "ptype" command. And as far as I can tell, aCC does not 
-   generate this record.  */
-
-struct dntt_type_link
-{
-  unsigned int extension:   1;	   /* always zero */
-  unsigned int kind:       10;     /* always DNTT_TYPE_LINK */
-  unsigned int linkKind:    4;     /* always LINK_UNKNOWN          */
-  unsigned int unused:	   17;
-  long future1               ;     /* expansion                    */
-  dnttpointer ptr1           ;     /* link from template           */
-  dnttpointer ptr2           ;     /* to expansion                 */
-  long future[2]             ;     /* padding to 3-word block end  */
-};
-
-/* end of C++ specific SOM's.  */
-
-/* DNTT_TYPE_DYN_ARRAY_DESC is unused by GDB */
-/* DNTT_TYPE_DESC_SUBRANGE is unused by GDB */
-/* DNTT_TYPE_BEGIN_EXT is unused by GDB */
-/* DNTT_TYPE_INLN is unused by GDB */
-/* DNTT_TYPE_INLN_LIST is unused by GDB */
-/* DNTT_TYPE_ALIAS is unused by GDB */
-
-struct dntt_type_doc_function
-{
-  unsigned int extension: 1;   /* always zero                  */
-  unsigned int kind:     10;   /* K_DOC_FUNCTION or            */
-                               /* K_DOC_MEMFUNC                */
-  unsigned int global:    1;   /* 1 => globally visible        */
-  unsigned int language:  4;   /* type of language             */
-  unsigned int level:     5;   /* nesting level (top level = 0)*/
-  unsigned int optimize:  2;   /* level of optimization        */
-  unsigned int varargs:   1;   /* ellipses.  Pascal/800 later  */
-  unsigned int info:      4;   /* lang-specific stuff; F_xxxx  */
-  unsigned int inlined:   1;
-  unsigned int localloc:  1;   /* 0 at top, 1 at end of block  */
-  unsigned int expansion: 1;   /* 1 = function expansion       */
-  unsigned int doc_clone: 1;
-  vtpointer name;              /* name of function             */
-  vtpointer alias;             /* alternate name, if any       */
-  dnttpointer firstparam;      /* first FPARAM, if any         */
-  sltpointer address;          /* code and text locations      */
-  CORE_ADDR entryaddr;         /* address of entry point       */
-  dnttpointer retval;          /* return type, if any          */
-  CORE_ADDR lowaddr;           /* lowest address of function   */
-  CORE_ADDR hiaddr;            /* highest address of function  */
-  dnttpointer inline_list;     /* pointer to first inline    */
-  ltpointer lt_offset;         /* start of frag/cp line table  */
-  ctxtpointer ctxt_offset;     /* start of context table for this routine */
-};
-
-/* DNTT_TYPE_DOC_MEMFUNC is unused by GDB */
-
-/* DNTT_TYPE_GENERIC and DNTT_TYPE_BLOCK are convience structures
-   so we can examine a DNTT entry in a generic fashion.  */
-struct dntt_type_generic
-{
-  unsigned int word[9];
-};
-
-struct dntt_type_block
-{
-  unsigned int extension:	1;
-  unsigned int kind:            10;
-  unsigned int unused:		21;
-  unsigned int word[2];
-};
-
-/* One entry in a DNTT (either the LNTT or GNTT).  
-   This is a union of the above 60 or so structure definitions.  */
-
-union dnttentry
-{
-  struct dntt_type_srcfile dsfile;
-  struct dntt_type_module dmodule;
-  struct dntt_type_function dfunc;
-  struct dntt_type_function dentry;
-  struct dntt_type_begin dbegin;
-  struct dntt_type_end dend;
-  struct dntt_type_fparam dfparam;
-  struct dntt_type_svar dsvar;
-  struct dntt_type_dvar ddvar;
-  struct dntt_type_const dconst;
-  struct dntt_type_type dtype;
-  struct dntt_type_type dtag;
-  struct dntt_type_pointer dptr;
-  struct dntt_type_enum denum;
-  struct dntt_type_memenum dmember;
-  struct dntt_type_set dset;
-  struct dntt_type_subrange dsubr;
-  struct dntt_type_array darray;
-  struct dntt_type_struct dstruct;
-  struct dntt_type_union dunion;
-  struct dntt_type_field dfield;
-  struct dntt_type_functype dfunctype;
-  struct dntt_type_with dwith;
-  struct dntt_type_function dblockdata;
-  struct dntt_type_class_scope dclass_scope;
-  struct dntt_type_pointer dreference;
-  struct dntt_type_ptrmem dptrmem;
-  struct dntt_type_ptrmemfunc dptrmemfunc;
-  struct dntt_type_class dclass;
-  struct dntt_type_genfield dgenfield;
-  struct dntt_type_vfunc dvfunc;
-  struct dntt_type_memaccess dmemaccess;
-  struct dntt_type_inheritance dinheritance;
-  struct dntt_type_friend_class dfriend_class;
-  struct dntt_type_friend_func dfriend_func;
-  struct dntt_type_modifier dmodifier;
-  struct dntt_type_object_id dobject_id;
-  struct dntt_type_template dtemplate;
-  struct dntt_type_templ_arg dtempl_arg;
-  struct dntt_type_func_template dfunc_template;
-  struct dntt_type_link dlink;
-  struct dntt_type_doc_function ddocfunc;
-  struct dntt_type_generic dgeneric;
-  struct dntt_type_block dblock;
-};
-
-/* Source line entry types.  */
-enum slttype
-{
-  SLT_NORMAL,
-  SLT_SRCFILE,
-  SLT_MODULE,
-  SLT_FUNCTION,
-  SLT_ENTRY,
-  SLT_BEGIN,
-  SLT_END,
-  SLT_WITH,
-  SLT_EXIT,
-  SLT_ASSIST,
-  SLT_MARKER,
-  SLT_CLASS_SCOPE,
-  SLT_INLN,
-  SLT_NORMAL_OFFSET,
-};
-
-/* A normal source line entry.  Simply provides a mapping of a source
-   line number to a code address.
-
-   SLTDESC will always be SLT_NORMAL or SLT_EXIT.  */
-
-struct slt_normal
-{
-  unsigned int sltdesc:	4;
-  unsigned int line:	28;
-  CORE_ADDR address;
-};
-
-struct slt_normal_off
-{
-  unsigned int sltdesc:	4;
-  unsigned int offset:	6;
-  unsigned int line:	22;
-  CORE_ADDR address;
-};
-
-/* A special source line entry.  Provides a mapping of a declaration
-   to a line number.  These entries point back into the DNTT which
-   references them.  */
-
-struct slt_special
-{
-  unsigned int sltdesc:	4;
-  unsigned int line:	28;
-  dnttpointer backptr;
-};
-
-/* Used to describe nesting.
-
-   For nested languages, an slt_assist entry must follow each SLT_FUNC
-   entry in the SLT.  The address field will point forward to the
-   first slt_normal entry within the function's scope.  */
-
-struct slt_assist
-{
-  unsigned int sltdesc:	4;
-  unsigned int unused:	28;
-  sltpointer address;
-};
-
-struct slt_generic
-{
-  unsigned int word[2];
-};
-
-union sltentry
-{
-  struct slt_normal snorm;
-  struct slt_normal_off snormoff;
-  struct slt_special sspec;
-  struct slt_assist sasst;
-  struct slt_generic sgeneric;
-};
-
-/* $LINES$ declarations
-   This is the line table used for optimized code, which is only present 
-   in the new $PROGRAM_INFO$ debug space.  */
-
-#define DST_LN_ESCAPE_FLAG1   15
-#define DST_LN_ESCAPE_FLAG2   14
-#define DST_LN_CTX_SPEC1      13  
-#define DST_LN_CTX_SPEC2      12
-
-/* Escape function codes:  */
-
-typedef enum
-{
-  dst_ln_pad,          /* pad byte */
-  dst_ln_escape_1,     /* reserved */
-  dst_ln_dpc1_dln1,    /* 1 byte line delta, 1 byte pc delta */
-  dst_ln_dpc2_dln2,    /* 2 bytes line delta, 2 bytes pc delta */
-  dst_ln_pc4_ln4,      /* 4 bytes ABSOLUTE line number, 4 bytes ABSOLUTE pc */
-  dst_ln_dpc0_dln1,    /* 1 byte line delta, pc delta = 0 */
-  dst_ln_ln_off_1,     /* statement escape, stmt # = 1 (2nd stmt on line) */
-  dst_ln_ln_off,       /* statement escape, stmt # = next byte */
-  dst_ln_entry,        /* entry escape, next byte is entry number */
-  dst_ln_exit,         /* exit escape */
-  dst_ln_stmt_end,     /* gap escape, 4 bytes pc delta */
-  dst_ln_stmt_cp,      /* current stmt is a critical point */
-  dst_ln_escape_12,    /* reserved */
-  dst_ln_escape_13,    /* this is an exception site record */
-  dst_ln_nxt_byte,     /* next byte contains the real escape code */
-  dst_ln_end,          /* end escape, final entry follows */
-  dst_ln_escape1_END_OF_ENUM
-}
-dst_ln_escape1_t;
-
-typedef enum
-{
-  dst_ln_ctx_1,        	/* next byte describes context switch with 5-bit */
-  			/* index into the image table and 3-bit run length. */
-			/* If run length is 0, end with another cxt specifier or ctx_end */
-  dst_ln_ctx_2,        	/* next 2 bytes switch context: 13 bit index, 3 bit run length */
-  dst_ln_ctx_4,        	/* next 4 bytes switch context: 29 bit index, 3 bit run length */
-  dst_ln_ctx_end,      	/* end current context */
-  dst_ln_col_run_1,    	/* next byte is column position of start of next statement, */
-                        /* following byte is length of statement */
-  dst_ln_col_run_2,    	/* next 2 bytes is column position of start of next statement, */
-                        /* following 2 bytes is length of statement */
-  dst_ln_init_base1,   	/* next 4 bytes are absolute PC, followed by 1 byte of line number */
-  dst_ln_init_base2,   	/* next 4 bytes are absolute PC, followed by 2 bytes of line number */
-  dst_ln_init_base3,   	/* next 4 bytes are absolute PC, followed by 3 bytes of line number */
-  dst_ln_escape2_END_OF_ENUM
-}
-dst_ln_escape2_t;           
-
-typedef union
-{
-  struct
-  {
-    unsigned int     pc_delta : 4;      /* 4 bit pc delta */
-    int              ln_delta : 4;      /* 4 bit line number delta */
-  }
-  delta;
-
-  struct
-  {
-    unsigned int     esc_flag : 4;      /* alias for pc_delta  */
-    unsigned int     esc_code : 4;      /* escape function code (dst_ln_escape1_t, or ...2_t */
-  }
-  esc;
-
-  struct
-  {
-    unsigned int     esc_flag   : 4;      /* dst_ln_ctx_spec1, or dst_ln_ctx_spec2 */
-    unsigned int     run_length : 2;      
-    unsigned int     ctx_index  : 2;      /* ...spec2 contains index;  ...spec1, index - 4 */
-  }
-  ctx_spec;
-
-  char               sdata;               /* signed data byte */
-  unsigned char      udata;               /* unsigned data byte */
-}
-dst_ln_entry_t,
-  * dst_ln_entry_ptr_t;
-
-/* Warning: although the above union occupies only 1 byte the compiler treats
-   it as having size 2 (the minimum size of a struct).  Therefore a sequence of
-   dst_ln_entry_t's cannot be described as an array, and walking through such a
-   sequence requires convoluted code such as
-        ln_ptr = (dst_ln_entry_ptr_t) (char*) ln_ptr + 1
-   We regret the inconvenience.  */
-
-/* Structure for interpreting the byte following a dst_ln_ctx1 entry.  */
-typedef struct
-{
-    unsigned int          ctx1_index : 5;      /* 5 bit index into context table */
-    unsigned int          ctx1_run_length : 3; /* 3 bit run length */
-} dst_ln_ctx1_t,
-  *dst_ln_ctx1_ptr_t;
-
-/* Structure for interpreting the bytes following a dst_ln_ctx2 entry.  */
-typedef struct
-{
-    unsigned int          ctx2_index : 13;     /* 13 bit index into context table */
-    unsigned int          ctx2_run_length : 3; /* 3 bit run length */
-} dst_ln_ctx2_t,
-  *dst_ln_ctx2_ptr_t;
-
-/* Structure for interpreting the bytes following a dst_ln_ctx4 entry.  */
-typedef struct
-{
-    unsigned int          ctx4_index : 29;     /* 29 bit index into context table */
-    unsigned int          ctx4_run_length : 3; /* 3 bit run length */
-} dst_ln_ctx4_t,
-  *dst_ln_ctx4_ptr_t;
-
-
-/*  PXDB definitions.
-  
-   PXDB is a post-processor which takes the executable file
-   and massages the debug information so that the debugger may
-   start up and run more efficiently.  Some of the tasks
-   performed by PXDB are:
-  
-   o   Remove duplicate global type and variable information
-       from the GNTT,
-  
-   o   Append the GNTT onto the end of the LNTT and place both
-       back in the LNTT section,
-  
-   o   Build quick look-up tables (description follows) for
-       files, procedures, modules, and paragraphs (for Cobol),
-       placing these in the GNTT section,
-  
-   o   Reconstruct the header appearing in the header section
-       to access this information.
-  
-   The "quick look-up" tables are in the $GNTT$ sub-space, in
-   the following order:
-  
-       Procedures    -sorted by address
-       Source files  -sorted by address (of the
-                      generated code from routines)
-       Modules       -sorted by address
-       Classes       -<unsorted?>
-       Address Alias -sorted by index <?>
-       Object IDs    -sorted by object identifier
-  
-   Most quick entries have (0-based) indices into the LNTT tables to
-   the full entries for the item it describes.
-  
-   The post-PXDB header is in the $HEADER$ sub-space.  Alas, it
-   occurs in different forms, depending on the optimization level
-   in the compilation step and whether PXDB was run or not. The
-   worst part is the forms aren't self-describing, so we'll have
-   to grovel in the bits to figure out what kind we're looking at
-   (see hp_get_header in hp-psymtab-read.c).  */
-
-/* PXDB versions.  */
-
-#define PXDB_VERSION_CPLUSPLUS	1
-#define PXDB_VERSION_7_4	2
-#define PXDB_VERSION_CPP_30	3
-#define PXDB_VERSION_DDE_3_2A	4
-#define PXDB_VERSION_DDE_3_2	5
-#define PXDB_VERSION_DDE_4_0	6
-
-#define PXDB_VERSION_2_1	1
-
-/* Header version for the case that there is no DOC info
-   but the executable has been processed by pxdb (the easy
-   case, from "cc -g").  */
-
-typedef struct PXDB_struct
-{
-  int              pd_entries;   /* # of entries in function look-up table */
-  int              fd_entries;   /* # of entries in file look-up table */
-  int              md_entries;   /* # of entries in module look-up table */
-  unsigned int     pxdbed : 1;   /* 1 => file has been preprocessed      */
-  unsigned int     bighdr : 1;   /* 1 => this header contains 'time' word */
-  unsigned int     sa_header : 1;/* 1 => created by SA version of pxdb */
-			           /*   used for version check in xdb */
-  unsigned int     inlined: 1;   /* one or more functions have been inlined */
-  unsigned int     spare:12;
-  short            version;      /* pxdb header version */
-  int              globals;      /* index into the DNTT where GNTT begins */
-  unsigned int     time;         /* modify time of file before being pxdbed */
-  int              pg_entries;   /* # of entries in label look-up table */
-  int              functions;    /* actual number of functions */
-  int              files;        /* actual number of files */
-  int              cd_entries;   /* # of entries in class look-up table */
-  int              aa_entries;   /* # of entries in addr alias look-up table */
-  int              oi_entries;   /* # of entries in object id look-up table */
-} PXDB_header, *PXDB_header_ptr;
-
-/* Header version for the case that there is no DOC info and the
-   executable has NOT been processed by pxdb.  */
-
-typedef struct XDB_header_struct
-{
-  long gntt_length; 
-  long lntt_length; 
-  long slt_length; 
-  long vt_length; 
-  long xt_length; 
-} XDB_header;
-
-/* Header version for the case that there is DOC info and the
-   executable has been processed by pxdb. */
-
-typedef struct DOC_info_PXDB_header_struct
-{
-  unsigned int xdb_header: 1; 	      /* bit set if this is post-3.1 xdb */ 
-  unsigned int doc_header: 1;         /* bit set if this is doc-style header */
-  unsigned int version: 8;            /* version of pxdb see defines
-				         PXDB_VERSION_* in this file.  */
-  unsigned int reserved_for_flags: 16;/* for future use; -- must be 
-                                         set to zero.  */
-  unsigned int has_aux_pd_table: 1;   /* $GNTT$ has aux PD table */
-  unsigned int has_expr_table: 1;     /* space has $EXPR$ */       
-  unsigned int has_range_table: 1;    /* space has $RANGE$ */       
-  unsigned int has_context_table: 1;  /* space has $SRC_CTXT$ */    
-  unsigned int has_lines_table: 1;    /* space contains a $LINES$
-                                         subspace for line tables.  */
-  unsigned int has_lt_offset_map: 1;  /* space contains an lt_offset
-                                         subspace for line table mapping.  */
-  /* The following fields are the same as those in the PXDB_header in $DEBUG$ */
-  int           pd_entries;   /* # of entries in function look-up table */
-  int           fd_entries;   /* # of entries in file look-up table */
-  int           md_entries;   /* # of entries in module look-up table */
-  unsigned int  pxdbed : 1;   /* 1 => file has been preprocessed      */
-  unsigned int  bighdr : 1;   /* 1 => this header contains 'time' word */
-  unsigned int  sa_header : 1;/* 1 => created by SA version of pxdb */
-                              /*   used for version check in xdb */
-  unsigned int  inlined: 1;   /* one or more functions have been inlined */
-  unsigned int  spare : 28;
-  int      	globals;      /* index into the DNTT where GNTT begins */
-  unsigned int  time;         /* modify time of file before being pxdbed */
-  int           pg_entries;   /* # of entries in label look-up table */
-  int           functions;    /* actual number of functions */
-  int           files;        /* actual number of files */
-  int           cd_entries;   /* # of entries in class look-up table */
-  int           aa_entries;   /* # of entries in addr alias look-up table */
-  int           oi_entries;   /* # of entries in object id look-up table */
-} DOC_info_PXDB_header;
-
-/* Header version for the case that there is DOC info and the
-   executable has NOT been processed by pxdb.  */
-
-typedef struct DOC_info_header_struct
-{
-  unsigned int xdb_header: 1; 	/* bit set if this is post-3.1 xdb */ 
-  unsigned int doc_header: 1;     /* bit set if this is doc-style header*/
-  unsigned int version: 8;      /* version of debug/header 
-                                   format. For 10.0 the value 
-                                   will be 1. For "Davis" the value is 2.  */
-  unsigned int reserved_for_flags: 18; /* for future use; -- must be set to zero.  */
-  unsigned int has_range_table: 1;     /* space contains a $RANGE$ subspace for variable ranges.  */
-  unsigned int has_context_table: 1;   /* space contains a $CTXT$ subspace for context/inline table.  */
-  unsigned int has_lines_table: 1;     /* space contains a $LINES$ subspace for line tables. */
-  unsigned int has_lt_offset_map: 1;   /* space contains an lt_offset subspace for line table mapping.  */
-
-  long   gntt_length;  /* same as old header */
-  long   lntt_length;  /* same as old header */
-  long   slt_length;   /* same as old header */
-  long   vt_length;    /* same as old header */
-  long   xt_length;    /* same as old header */
-  long   ctxt_length;  /* present only if version >= 2 */
-  long   range_length; /* present only if version >= 2 */
-  long   expr_length;  /* present only if version >= 2 */
-
-} DOC_info_header;
-
-typedef union GenericDebugHeader_union
-{
-   PXDB_header          no_doc;
-   DOC_info_PXDB_header doc;
-   XDB_header           no_pxdb_no_doc;
-   DOC_info_header      no_pxdb_doc;
-} GenericDebugHeader;
-
-
-/*  Procedure Descriptor:
-    An element of the procedure quick look-up table.  */
-
-typedef struct quick_procedure
-{
-  long           isym;		/* 0-based index of first symbol
-                                   for procedure in $LNTT$, 
-                                   i.e. the procedure itself.  */
-  CORE_ADDR	 adrStart;	/* memory adr of start of proc	*/
-  CORE_ADDR	 adrEnd;	/* memory adr of end of proc	*/
-  char         	*sbAlias;	/* alias name of procedure	*/
-  char          *sbProc;	/* real name of procedure	*/
-  CORE_ADDR	 adrBp;		/* address of entry breakpoint  */
-  CORE_ADDR	 adrExitBp;	/* address of exit breakpoint   */
-  int            icd;           /* member of this class (index) */	
-  unsigned int	 ipd;		/* index of template for this   */
-                                /* function (index)           */
-  unsigned int	 unused:    5;
-  unsigned int	 no_lt_offset: 1;/* no entry in lt_offset table */
-  unsigned int	 fTemplate: 1;	/* function template		*/
-  unsigned int	 fExpansion: 1;	/* function expansion		*/
-  unsigned int	 linked	  : 1;	/* linked with other expansions	*/
-  unsigned int	 duplicate: 1;  /* clone of another procedure   */
-  unsigned int	 overloaded:1;  /* overloaded function          */
-  unsigned int	 member:    1;  /* class member function        */
-  unsigned int	 constructor:1; /* constructor function         */
-  unsigned int	 destructor:1;  /* destructor function          */
-  unsigned int   Static:    1;  /* static function              */
-  unsigned int   Virtual:   1;  /* virtual function             */
-  unsigned int   constant:  1;  /* constant function            */
-  unsigned int   pure:      1;  /* pure (virtual) function      */
-  unsigned int   language:  4;  /* procedure's language         */
-  unsigned int   inlined:   1;  /* function has been inlined    */
-  unsigned int   Operator:  1;  /* operator function            */
-  unsigned int	 stub:      1;  /* bodyless function            */
-  unsigned int	 optimize:  2;	/* optimization level   	*/
-  unsigned int	 level:     5;	/* nesting level (top=0)	*/
-} quick_procedure_entry, *quick_procedure_entry_ptr;
-
-/*  Source File Descriptor:
-    An element of the source file quick look-up table.  */
-
-typedef struct quick_source
-{
-  long	         isym;		/* 0-based index in $LNTT$ of
-                                   first symbol for this file.     */
-  CORE_ADDR      adrStart;	/* mem adr of start of file's code */
-  CORE_ADDR      adrEnd;	/* mem adr of end of file's code   */
-  char	        *sbFile;	/* name of source file		   */
-  unsigned int   fHasDecl: 1;	/* do we have a .d file?	   */
-  unsigned int   fWarned:  1;	/* have warned about age problems? */
-  unsigned int   fSrcfile: 1;   /* 0 => include 1=> source         */
-  unsigned short ilnMac;	/* lines in file (0 if don't know) */
-  int	         ipd;		/* 0-based index of first procedure
-                                   in this file, in the quick
-                                   look-up table of procedures.    */
-  unsigned int  *rgLn;		/* line pointer array, if any	   */
-} quick_file_entry, *quick_file_entry_ptr;
-
-/*  Module Descriptor:
-    An element of the module quick reference table.  */
-
-typedef struct quick_module
-{
-  long           isym;		   /* 0-based index of first
-                                      symbol for module.        */
-  CORE_ADDR	 adrStart;	   /* adr of start of mod.	*/
-  CORE_ADDR	 adrEnd;	   /* adr of end of mod.	*/
-  char	        *sbAlias;	   /* alias name of module   	*/
-  char	        *sbMod;		   /* real name of module	*/
-  unsigned int   imports:       1; /* module have any imports?  */
-  unsigned int   vars_in_front: 1; /* module globals in front?  */
-  unsigned int   vars_in_gaps:  1; /* module globals in gaps?   */
-  unsigned int   language:      4; /* type of language          */
-  unsigned int   unused      : 25;
-  unsigned int   unused2;	   /* space for future stuff	*/
-} quick_module_entry, *quick_module_entry_ptr;
-
-/*  Auxiliary Procedure Descriptor:
-    An element of the auxiliary procedure quick look-up table.  */
-
-typedef struct quick_aux_procedure
-{
-  long	 isym_inln;	/* start on inline list for proc */
-  long   spare;
-} quick_aux_procedure_entry, *quick_aux_procedure_entry_ptr;
-
-/*  Paragraph Descriptor:
-    An element of the paragraph quick look-up table.  */
-
-typedef struct quick_paragraph
-{
-  long             isym;       /* first symbol for label (index)  */
-  CORE_ADDR        adrStart;   /* memory adr of start of label    */
-  CORE_ADDR        adrEnd;     /* memory adr of end of label      */
-  char            *sbLab;      /* name of label                   */
-  unsigned int     inst;       /* Used in xdb to store inst @ bp  */
-  unsigned int     sect:    1; /* true = section, false = parag.  */
-  unsigned int     unused: 31; /* future use                      */
-} quick_paragraph_entry, *quick_paragraph_entry_ptr;
-
-/* Class Descriptor:
-   An element of the class quick look-up table.  */
-
-typedef struct quick_class
-{
-  char	         *sbClass;	/* name of class	        */
-  long            isym;         /* class symbol (tag)           */
-  unsigned int	  type : 2;	/* 0=class, 1=union, 2=struct   */
-  unsigned int	  fTemplate : 1;/* class template               */
-  unsigned int	  expansion : 1;/* template expansion           */
-  unsigned int	  unused    :28;
-  sltpointer      lowscope;	/* beginning of defined scope   */
-  sltpointer      hiscope;	/* end of defined scope         */
-} quick_class_entry, *quick_class_entry_ptr;
-
-/* Address Alias Entry
-   An element of the address alias quick look-up table.  */
-
-typedef struct quick_alias
-{
-  CORE_ADDR     low;
-  CORE_ADDR     high;
-  int           index;
-  unsigned int	unused : 31;
-  unsigned int	alternate : 1;	/* alternate unnamed aliases?   */
-} quick_alias_entry, *quick_alias_entry_ptr;
-
-/* Object Identification Entry
-   An element of the object identification quick look-up table.  */
-
-typedef struct quick_obj_ID
-{
-  CORE_ADDR    obj_ident;	/* class identifier         */
-  long         isym;		/* class symbol             */
-  long         offset;		/* offset to object start   */
-} quick_obj_ID_entry, *quick_obj_ID_entry_ptr;
-
-#endif /* HP_SYMTAB_INCLUDED */
diff --git a/include/ieee.h b/include/ieee.h
deleted file mode 100644
index 72fcad4..0000000
--- a/include/ieee.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/* IEEE Standard 695-1980 "Universal Format for Object Modules" header file
-
-   Copyright 2001 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 2, 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., 51 Franklin Street - Fifth Floor,
-   Boston, MA 02110-1301, USA.
-   
-   Contributed by Cygnus Support.  */
-
-#define N_W_VARIABLES 8
-#define Module_Beginning 0xe0
-
-typedef struct ieee_module
-  {
-    char *processor;
-    char *module_name;
-  }
-ieee_module_begin_type;
-
-#define Address_Descriptor 0xec
-typedef struct ieee_address
-  {
-    bfd_vma number_of_bits_mau;
-    bfd_vma number_of_maus_in_address;
-
-    unsigned char byte_order;
-#define IEEE_LITTLE 0xcc
-#define IEEE_BIG 0xcd
-  }
-ieee_address_descriptor_type;
-
-typedef union ieee_w_variable
-  {
-    file_ptr offset[N_W_VARIABLES];
-
-    struct
-      {
-	file_ptr extension_record;
-	file_ptr environmental_record;
-	file_ptr section_part;
-	file_ptr external_part;
-	file_ptr debug_information_part;
-	file_ptr data_part;
-	file_ptr trailer_part;
-	file_ptr me_record;
-      }
-    r;
-  }
-ieee_w_variable_type;
-
-typedef enum ieee_record
-  { 
-    ieee_number_start_enum = 0x00,
-    ieee_number_end_enum=0x7f,
-    ieee_number_repeat_start_enum = 0x80,
-    ieee_number_repeat_end_enum = 0x88,
-    ieee_number_repeat_4_enum = 0x84,
-    ieee_number_repeat_3_enum = 0x83,
-    ieee_number_repeat_2_enum = 0x82,
-    ieee_number_repeat_1_enum = 0x81,
-    ieee_module_beginning_enum = 0xe0,
-    ieee_module_end_enum = 0xe1,
-    ieee_extension_length_1_enum = 0xde,
-    ieee_extension_length_2_enum = 0xdf,
-    ieee_section_type_enum = 0xe6,
-    ieee_section_alignment_enum = 0xe7,
-    ieee_external_symbol_enum = 0xe8,
-    ieee_comma = 0x90,
-    ieee_external_reference_enum = 0xe9,
-    ieee_set_current_section_enum = 0xe5,
-    ieee_address_descriptor_enum = 0xec,
-    ieee_load_constant_bytes_enum = 0xed,
-    ieee_load_with_relocation_enum = 0xe4,
-
-    ieee_variable_A_enum = 0xc1,
-    ieee_variable_B_enum = 0xc2,
-    ieee_variable_C_enum = 0xc3,
-    ieee_variable_D_enum = 0xc4,
-    ieee_variable_E_enum = 0xc5,
-    ieee_variable_F_enum = 0xc6,
-    ieee_variable_G_enum = 0xc7,
-    ieee_variable_H_enum = 0xc8,
-    ieee_variable_I_enum = 0xc9,
-    ieee_variable_J_enum = 0xca,
-    ieee_variable_K_enum = 0xcb,
-    ieee_variable_L_enum = 0xcc,
-    ieee_variable_M_enum = 0xcd,
-    ieee_variable_N_enum = 0xce,
-    ieee_variable_O_enum = 0xcf,
-    ieee_variable_P_enum = 0xd0,
-    ieee_variable_Q_enum = 0xd1,
-    ieee_variable_R_enum = 0xd2,
-    ieee_variable_S_enum = 0xd3,
-    ieee_variable_T_enum = 0xd4,
-    ieee_variable_U_enum = 0xd5,
-    ieee_variable_V_enum = 0xd6,
-    ieee_variable_W_enum = 0xd7,
-    ieee_variable_X_enum = 0xd8,
-    ieee_variable_Y_enum = 0xd9,
-    ieee_variable_Z_enum = 0xda,
-    ieee_function_plus_enum = 0xa5,
-    ieee_function_minus_enum = 0xa6,
-    ieee_function_signed_open_b_enum = 0xba,
-    ieee_function_signed_close_b_enum = 0xbb,
-
-    ieee_function_unsigned_open_b_enum = 0xbc,
-    ieee_function_unsigned_close_b_enum = 0xbd,
-
-    ieee_function_either_open_b_enum = 0xbe,
-    ieee_function_either_close_b_enum = 0xbf,
-    ieee_record_seperator_enum = 0xdb,
-
-    ieee_e2_first_byte_enum = 0xe2,
-    ieee_section_size_enum = 0xe2d3,
-    ieee_physical_region_size_enum = 0xe2c1,
-    ieee_region_base_address_enum = 0xe2c2,
-    ieee_mau_size_enum = 0xe2c6,
-    ieee_m_value_enum = 0xe2cd,
-    ieee_section_base_address_enum = 0xe2cc,
-    ieee_asn_record_enum = 0xe2ce,
-    ieee_section_offset_enum = 0xe2d2,
-    ieee_value_starting_address_enum = 0xe2c7,
-    ieee_assign_value_to_variable_enum = 0xe2d7,
-    ieee_set_current_pc_enum = 0xe2d0,
-    ieee_value_record_enum = 0xe2c9,
-    ieee_nn_record = 0xf0,
-    ieee_at_record_enum = 0xf1,
-    ieee_ty_record_enum = 0xf2,
-    ieee_attribute_record_enum = 0xf1c9,
-    ieee_atn_record_enum = 0xf1ce,
-    ieee_external_reference_info_record_enum = 0xf1d8,
-    ieee_weak_external_reference_enum= 0xf4,
-    ieee_repeat_data_enum = 0xf7,
-    ieee_bb_record_enum = 0xf8,
-    ieee_be_record_enum = 0xf9
-  }
-ieee_record_enum_type;
-
-typedef struct ieee_section
-  {
-    unsigned int section_index;
-    unsigned int section_type;
-    char *       section_name;
-    unsigned int parent_section_index;
-    unsigned int sibling_section_index;
-    unsigned int context_index;
-  }
-ieee_section_type;
-
-#define IEEE_REFERENCE_BASE 11
-#define IEEE_PUBLIC_BASE 32
-#define IEEE_SECTION_NUMBER_BASE 1
-
diff --git a/include/libiberty.h b/include/libiberty.h
deleted file mode 100644
index 1328d3e..0000000
--- a/include/libiberty.h
+++ /dev/null
@@ -1,648 +0,0 @@
-/* Function declarations for libiberty.
-
-   Copyright 2001, 2002, 2005 Free Software Foundation, Inc.
-   
-   Note - certain prototypes declared in this header file are for
-   functions whoes implementation copyright does not belong to the
-   FSF.  Those prototypes are present in this file for reference
-   purposes only and their presence in this file should not construed
-   as an indication of ownership by the FSF of the implementation of
-   those functions in any way or form whatsoever.
-
-   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, 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., 51 Franklin Street - Fifth Floor,
-   Boston, MA 02110-1301, USA.
-   
-   Written by Cygnus Support, 1994.
-
-   The libiberty library provides a number of functions which are
-   missing on some operating systems.  We do not declare those here,
-   to avoid conflicts with the system header files on operating
-   systems that do support those functions.  In this file we only
-   declare those functions which are specific to libiberty.  */
-
-#ifndef LIBIBERTY_H
-#define LIBIBERTY_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "ansidecl.h"
-
-/* Get a definition for size_t.  */
-#include <stddef.h>
-/* Get a definition for va_list.  */
-#include <stdarg.h>
-
-#include <stdio.h>
-
-/* If the OS supports it, ensure that the supplied stream is setup to
-   avoid any multi-threaded locking.  Otherwise leave the FILE pointer
-   unchanged.  If the stream is NULL do nothing.  */
-
-extern void unlock_stream (FILE *);
-
-/* If the OS supports it, ensure that the standard I/O streams, stdin,
-   stdout and stderr are setup to avoid any multi-threaded locking.
-   Otherwise do nothing.  */
-
-extern void unlock_std_streams (void);
-
-/* Open and return a FILE pointer.  If the OS supports it, ensure that
-   the stream is setup to avoid any multi-threaded locking.  Otherwise
-   return the FILE pointer unchanged.  */
-
-extern FILE *fopen_unlocked (const char *, const char *);
-extern FILE *fdopen_unlocked (int, const char *);
-extern FILE *freopen_unlocked (const char *, const char *, FILE *);
-
-/* Build an argument vector from a string.  Allocates memory using
-   malloc.  Use freeargv to free the vector.  */
-
-extern char **buildargv (const char *) ATTRIBUTE_MALLOC;
-
-/* Free a vector returned by buildargv.  */
-
-extern void freeargv (char **);
-
-/* Duplicate an argument vector. Allocates memory using malloc.  Use
-   freeargv to free the vector.  */
-
-extern char **dupargv (char **) ATTRIBUTE_MALLOC;
-
-/* Expand "@file" arguments in argv.  */
-
-extern void expandargv PARAMS ((int *, char ***));
-
-/* Return the last component of a path name.  Note that we can't use a
-   prototype here because the parameter is declared inconsistently
-   across different systems, sometimes as "char *" and sometimes as
-   "const char *" */
-
-/* HAVE_DECL_* is a three-state macro: undefined, 0 or 1.  If it is
-   undefined, we haven't run the autoconf check so provide the
-   declaration without arguments.  If it is 0, we checked and failed
-   to find the declaration so provide a fully prototyped one.  If it
-   is 1, we found it so don't provide any declaration at all.  */
-#if !HAVE_DECL_BASENAME
-#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined(__NetBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (__MINGW32__) || defined (HAVE_DECL_BASENAME)
-extern char *basename (const char *);
-#else
-/* Do not allow basename to be used if there is no prototype seen.  We
-   either need to use the above prototype or have one from
-   autoconf which would result in HAVE_DECL_BASENAME being set.  */
-#define basename basename_cannot_be_used_without_a_prototype
-#endif
-#endif
-
-/* A well-defined basename () that is always compiled in.  */
-
-extern const char *lbasename (const char *);
-
-/* A well-defined realpath () that is always compiled in.  */
-
-extern char *lrealpath (const char *);
-
-/* Concatenate an arbitrary number of strings.  You must pass NULL as
-   the last argument of this function, to terminate the list of
-   strings.  Allocates memory using xmalloc.  */
-
-extern char *concat (const char *, ...) ATTRIBUTE_MALLOC ATTRIBUTE_SENTINEL;
-
-/* Concatenate an arbitrary number of strings.  You must pass NULL as
-   the last argument of this function, to terminate the list of
-   strings.  Allocates memory using xmalloc.  The first argument is
-   not one of the strings to be concatenated, but if not NULL is a
-   pointer to be freed after the new string is created, similar to the
-   way xrealloc works.  */
-
-extern char *reconcat (char *, const char *, ...) ATTRIBUTE_MALLOC ATTRIBUTE_SENTINEL;
-
-/* Determine the length of concatenating an arbitrary number of
-   strings.  You must pass NULL as the last argument of this function,
-   to terminate the list of strings.  */
-
-extern unsigned long concat_length (const char *, ...) ATTRIBUTE_SENTINEL;
-
-/* Concatenate an arbitrary number of strings into a SUPPLIED area of
-   memory.  You must pass NULL as the last argument of this function,
-   to terminate the list of strings.  The supplied memory is assumed
-   to be large enough.  */
-
-extern char *concat_copy (char *, const char *, ...) ATTRIBUTE_SENTINEL;
-
-/* Concatenate an arbitrary number of strings into a GLOBAL area of
-   memory.  You must pass NULL as the last argument of this function,
-   to terminate the list of strings.  The supplied memory is assumed
-   to be large enough.  */
-
-extern char *concat_copy2 (const char *, ...) ATTRIBUTE_SENTINEL;
-
-/* This is the global area used by concat_copy2.  */
-
-extern char *libiberty_concat_ptr;
-
-/* Concatenate an arbitrary number of strings.  You must pass NULL as
-   the last argument of this function, to terminate the list of
-   strings.  Allocates memory using alloca.  The arguments are
-   evaluated twice!  */
-#define ACONCAT(ACONCAT_PARAMS) \
-  (libiberty_concat_ptr = (char *) alloca (concat_length ACONCAT_PARAMS + 1), \
-   concat_copy2 ACONCAT_PARAMS)
-
-/* Check whether two file descriptors refer to the same file.  */
-
-extern int fdmatch (int fd1, int fd2);
-
-/* Return the position of the first bit set in the argument.  */
-/* Prototypes vary from system to system, so we only provide a
-   prototype on systems where we know that we need it.  */
-#if defined (HAVE_DECL_FFS) && !HAVE_DECL_FFS
-extern int ffs(int);
-#endif
-
-/* Get the working directory.  The result is cached, so don't call
-   chdir() between calls to getpwd().  */
-
-extern char * getpwd (void);
-
-/* Get the current time.  */
-/* Prototypes vary from system to system, so we only provide a
-   prototype on systems where we know that we need it.  */
-#ifdef __MINGW32__
-/* Forward declaration to avoid #include <sys/time.h>.   */
-struct timeval;
-extern int gettimeofday (struct timeval *, void *); 
-#endif
-
-/* Get the amount of time the process has run, in microseconds.  */
-
-extern long get_run_time (void);
-
-/* Generate a relocated path to some installation directory.  Allocates
-   return value using malloc.  */
-
-extern char *make_relative_prefix (const char *, const char *,
-                                   const char *) ATTRIBUTE_MALLOC;
-
-/* Choose a temporary directory to use for scratch files.  */
-
-extern char *choose_temp_base (void) ATTRIBUTE_MALLOC;
-
-/* Return a temporary file name or NULL if unable to create one.  */
-
-extern char *make_temp_file (const char *) ATTRIBUTE_MALLOC;
-
-/* Remove a link to a file unless it is special. */
-
-extern int unlink_if_ordinary (const char *);
-
-/* Allocate memory filled with spaces.  Allocates using malloc.  */
-
-extern const char *spaces (int count);
-
-/* Return the maximum error number for which strerror will return a
-   string.  */
-
-extern int errno_max (void);
-
-/* Return the name of an errno value (e.g., strerrno (EINVAL) returns
-   "EINVAL").  */
-
-extern const char *strerrno (int);
-
-/* Given the name of an errno value, return the value.  */
-
-extern int strtoerrno (const char *);
-
-/* ANSI's strerror(), but more robust.  */
-
-extern char *xstrerror (int);
-
-/* Return the maximum signal number for which strsignal will return a
-   string.  */
-
-extern int signo_max (void);
-
-/* Return a signal message string for a signal number
-   (e.g., strsignal (SIGHUP) returns something like "Hangup").  */
-/* This is commented out as it can conflict with one in system headers.
-   We still document its existence though.  */
-
-/*extern const char *strsignal (int);*/
-
-/* Return the name of a signal number (e.g., strsigno (SIGHUP) returns
-   "SIGHUP").  */
-
-extern const char *strsigno (int);
-
-/* Given the name of a signal, return its number.  */
-
-extern int strtosigno (const char *);
-
-/* Register a function to be run by xexit.  Returns 0 on success.  */
-
-extern int xatexit (void (*fn) (void));
-
-/* Exit, calling all the functions registered with xatexit.  */
-
-extern void xexit (int status) ATTRIBUTE_NORETURN;
-
-/* Set the program name used by xmalloc.  */
-
-extern void xmalloc_set_program_name (const char *);
-
-/* Report an allocation failure.  */
-extern void xmalloc_failed (size_t) ATTRIBUTE_NORETURN;
-
-/* Allocate memory without fail.  If malloc fails, this will print a
-   message to stderr (using the name set by xmalloc_set_program_name,
-   if any) and then call xexit.  */
-
-extern void *xmalloc (size_t) ATTRIBUTE_MALLOC;
-
-/* Reallocate memory without fail.  This works like xmalloc.  Note,
-   realloc type functions are not suitable for attribute malloc since
-   they may return the same address across multiple calls. */
-
-extern void *xrealloc (void *, size_t);
-
-/* Allocate memory without fail and set it to zero.  This works like
-   xmalloc.  */
-
-extern void *xcalloc (size_t, size_t) ATTRIBUTE_MALLOC;
-
-/* Copy a string into a memory buffer without fail.  */
-
-extern char *xstrdup (const char *) ATTRIBUTE_MALLOC;
-
-/* Copy at most N characters from string into a buffer without fail.  */
-
-extern char *xstrndup (const char *, size_t) ATTRIBUTE_MALLOC;
-
-/* Copy an existing memory buffer to a new memory buffer without fail.  */
-
-extern void *xmemdup (const void *, size_t, size_t) ATTRIBUTE_MALLOC;
-
-/* Physical memory routines.  Return values are in BYTES.  */
-extern double physmem_total (void);
-extern double physmem_available (void);
-
-
-/* These macros provide a K&R/C89/C++-friendly way of allocating structures
-   with nice encapsulation.  The XDELETE*() macros are technically
-   superfluous, but provided here for symmetry.  Using them consistently
-   makes it easier to update client code to use different allocators such
-   as new/delete and new[]/delete[].  */
-
-/* Scalar allocators.  */
-
-#define XNEW(T)			((T *) xmalloc (sizeof (T)))
-#define XCNEW(T)		((T *) xcalloc (1, sizeof (T)))
-#define XDELETE(P)		free ((void*) (P))
-
-/* Array allocators.  */
-
-#define XNEWVEC(T, N)		((T *) xmalloc (sizeof (T) * (N)))
-#define XCNEWVEC(T, N)		((T *) xcalloc ((N), sizeof (T)))
-#define XRESIZEVEC(T, P, N)	((T *) xrealloc ((void *) (P), sizeof (T) * (N)))
-#define XDELETEVEC(P)		free ((void*) (P))
-
-/* Allocators for variable-sized structures and raw buffers.  */
-
-#define XNEWVAR(T, S)		((T *) xmalloc ((S)))
-#define XCNEWVAR(T, S)		((T *) xcalloc (1, (S)))
-#define XRESIZEVAR(T, P, S)	((T *) xrealloc ((P), (S)))
-
-/* Type-safe obstack allocator.  */
-
-#define XOBNEW(O, T)		((T *) obstack_alloc ((O), sizeof (T)))
-#define XOBFINISH(O, T)         ((T) obstack_finish ((O)))
-
-/* hex character manipulation routines */
-
-#define _hex_array_size 256
-#define _hex_bad	99
-extern const unsigned char _hex_value[_hex_array_size];
-extern void hex_init (void);
-#define hex_p(c)	(hex_value (c) != _hex_bad)
-/* If you change this, note well: Some code relies on side effects in
-   the argument being performed exactly once.  */
-#define hex_value(c)	((unsigned int) _hex_value[(unsigned char) (c)])
-
-/* Flags for pex_init.  These are bits to be or'ed together.  */
-
-/* Record subprocess times, if possible.  */
-#define PEX_RECORD_TIMES	0x1
-
-/* Use pipes for communication between processes, if possible.  */
-#define PEX_USE_PIPES		0x2
-
-/* Save files used for communication between processes.  */
-#define PEX_SAVE_TEMPS		0x4
-
-/* Prepare to execute one or more programs, with standard output of
-   each program fed to standard input of the next.
-   FLAGS	As above.
-   PNAME	The name of the program to report in error messages.
-   TEMPBASE	A base name to use for temporary files; may be NULL to
-   		use a random name.
-   Returns NULL on error.  */
-
-extern struct pex_obj *pex_init (int flags, const char *pname,
-				 const char *tempbase);
-
-/* Flags for pex_run.  These are bits to be or'ed together.  */
-
-/* Last program in pipeline.  Standard output of program goes to
-   OUTNAME, or, if OUTNAME is NULL, to standard output of caller.  Do
-   not set this if you want to call pex_read_output.  After this is
-   set, pex_run may no longer be called with the same struct
-   pex_obj.  */
-#define PEX_LAST		0x1
-
-/* Search for program in executable search path.  */
-#define PEX_SEARCH		0x2
-
-/* OUTNAME is a suffix.  */
-#define PEX_SUFFIX		0x4
-
-/* Send program's standard error to standard output.  */
-#define PEX_STDERR_TO_STDOUT	0x8
-
-/* Input file should be opened in binary mode.  This flag is ignored
-   on Unix.  */
-#define PEX_BINARY_INPUT	0x10
-
-/* Output file should be opened in binary mode.  This flag is ignored
-   on Unix.  For proper behaviour PEX_BINARY_INPUT and
-   PEX_BINARY_OUTPUT have to match appropriately--i.e., a call using
-   PEX_BINARY_OUTPUT should be followed by a call using
-   PEX_BINARY_INPUT.  */
-#define PEX_BINARY_OUTPUT	0x20
-
-/* Execute one program.  Returns NULL on success.  On error returns an
-   error string (typically just the name of a system call); the error
-   string is statically allocated.
-
-   OBJ		Returned by pex_init.
-
-   FLAGS	As above.
-
-   EXECUTABLE	The program to execute.
-
-   ARGV		NULL terminated array of arguments to pass to the program.
-
-   OUTNAME	Sets the output file name as follows:
-
-		PEX_SUFFIX set (OUTNAME may not be NULL):
-		  TEMPBASE parameter to pex_init not NULL:
-		    Output file name is the concatenation of TEMPBASE
-		    and OUTNAME.
-		  TEMPBASE is NULL:
-		    Output file name is a random file name ending in
-		    OUTNAME.
-		PEX_SUFFIX not set:
-		  OUTNAME not NULL:
-		    Output file name is OUTNAME.
-		  OUTNAME NULL, TEMPBASE not NULL:
-		    Output file name is randomly chosen using
-		    TEMPBASE.
-		  OUTNAME NULL, TEMPBASE NULL:
-		    Output file name is randomly chosen.
-
-		If PEX_LAST is not set, the output file name is the
-   		name to use for a temporary file holding stdout, if
-   		any (there will not be a file if PEX_USE_PIPES is set
-   		and the system supports pipes).  If a file is used, it
-   		will be removed when no longer needed unless
-   		PEX_SAVE_TEMPS is set.
-
-		If PEX_LAST is set, and OUTNAME is not NULL, standard
-   		output is written to the output file name.  The file
-   		will not be removed.  If PEX_LAST and PEX_SUFFIX are
-   		both set, TEMPBASE may not be NULL.
-
-   ERRNAME	If not NULL, this is the name of a file to which
-		standard error is written.  If NULL, standard error of
-		the program is standard error of the caller.
-
-   ERR		On an error return, *ERR is set to an errno value, or
-   		to 0 if there is no relevant errno.
-*/
-
-extern const char *pex_run (struct pex_obj *obj, int flags,
-			    const char *executable, char * const *argv,
-			    const char *outname, const char *errname,
-			    int *err);
-
-/* As for pex_run (), but takes an extra parameter to enable the
-   environment for the child process to be specified.
-
-   ENV		The environment for the child process, specified as
-		an array of character pointers.  Each element of the
-		array should point to a string of the form VAR=VALUE,
-                with the exception of the last element which must be
-                a null pointer.
-*/
-
-extern const char *pex_run_in_environment (struct pex_obj *obj, int flags,
-			                   const char *executable,
-                                           char * const *argv,
-                                           char * const *env,
-              	          		   const char *outname,
-					   const char *errname, int *err);
-
-/* Return a `FILE' pointer FP for the standard input of the first
-   program in the pipeline; FP is opened for writing.  You must have
-   passed `PEX_USE_PIPES' to the `pex_init' call that returned OBJ.
-   You must close FP yourself with `fclose' to indicate that the
-   pipeline's input is complete.
-
-   The file descriptor underlying FP is marked not to be inherited by
-   child processes.
-
-   This call is not supported on systems which do not support pipes;
-   it returns with an error.  (We could implement it by writing a
-   temporary file, but then you would need to write all your data and
-   close FP before your first call to `pex_run' -- and that wouldn't
-   work on systems that do support pipes: the pipe would fill up, and
-   you would block.  So there isn't any easy way to conceal the
-   differences between the two types of systems.)
-
-   If you call both `pex_write_input' and `pex_read_output', be
-   careful to avoid deadlock.  If the output pipe fills up, so that
-   each program in the pipeline is waiting for the next to read more
-   data, and you fill the input pipe by writing more data to FP, then
-   there is no way to make progress: the only process that could read
-   data from the output pipe is you, but you are blocked on the input
-   pipe.  */
-
-extern FILE *pex_write_input (struct pex_obj *obj, int binary);
-
-/* Return a stream for a temporary file to pass to the first program
-   in the pipeline as input.  The file name is chosen as for pex_run.
-   pex_run closes the file automatically; don't close it yourself.  */
-
-extern FILE *pex_input_file (struct pex_obj *obj, int flags,
-                             const char *in_name);
-
-/* Return a stream for a pipe connected to the standard input of the
-   first program in the pipeline.  You must have passed
-   `PEX_USE_PIPES' to `pex_init'.  Close the returned stream
-   yourself.  */
-
-extern FILE *pex_input_pipe (struct pex_obj *obj, int binary);
-
-/* Read the standard output of the last program to be executed.
-   pex_run can not be called after this.  BINARY should be non-zero if
-   the file should be opened in binary mode; this is ignored on Unix.
-   Returns NULL on error.  Don't call fclose on the returned FILE; it
-   will be closed by pex_free.  */
-
-extern FILE *pex_read_output (struct pex_obj *, int binary);
-
-/* Return exit status of all programs in VECTOR.  COUNT indicates the
-   size of VECTOR.  The status codes in the vector are in the order of
-   the calls to pex_run.  Returns 0 on error, 1 on success.  */
-
-extern int pex_get_status (struct pex_obj *, int count, int *vector);
-
-/* Return times of all programs in VECTOR.  COUNT indicates the size
-   of VECTOR.  struct pex_time is really just struct timeval, but that
-   is not portable to all systems.  Returns 0 on error, 1 on
-   success.  */
-
-struct pex_time
-{
-  unsigned long user_seconds;
-  unsigned long user_microseconds;
-  unsigned long system_seconds;
-  unsigned long system_microseconds;
-};
-
-extern int pex_get_times (struct pex_obj *, int count,
-			  struct pex_time *vector);
-
-/* Clean up a pex_obj.  */
-
-extern void pex_free (struct pex_obj *);
-
-/* Just execute one program.  Return value is as for pex_run.
-   FLAGS	Combination of PEX_SEARCH and PEX_STDERR_TO_STDOUT.
-   EXECUTABLE	As for pex_run.
-   ARGV		As for pex_run.
-   PNAME	As for pex_init.
-   OUTNAME	As for pex_run when PEX_LAST is set.
-   ERRNAME	As for pex_run.
-   STATUS	Set to exit status on success.
-   ERR		As for pex_run.
-*/
-
-extern const char *pex_one (int flags, const char *executable,
-			    char * const *argv, const char *pname,
-			    const char *outname, const char *errname,
-			    int *status, int *err);
-
-/* pexecute and pwait are the old pexecute interface, still here for
-   backward compatibility.  Don't use these for new code.  Instead,
-   use pex_init/pex_run/pex_get_status/pex_free, or pex_one.  */
-
-/* Definitions used by the pexecute routine.  */
-
-#define PEXECUTE_FIRST   1
-#define PEXECUTE_LAST    2
-#define PEXECUTE_ONE     (PEXECUTE_FIRST + PEXECUTE_LAST)
-#define PEXECUTE_SEARCH  4
-#define PEXECUTE_VERBOSE 8
-
-/* Execute a program.  */
-
-extern int pexecute (const char *, char * const *, const char *,
-                     const char *, char **, char **, int);
-
-/* Wait for pexecute to finish.  */
-
-extern int pwait (int, int *, int);
-
-#if !HAVE_DECL_ASPRINTF
-/* Like sprintf but provides a pointer to malloc'd storage, which must
-   be freed by the caller.  */
-
-extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2;
-#endif
-
-#if !HAVE_DECL_VASPRINTF
-/* Like vsprintf but provides a pointer to malloc'd storage, which
-   must be freed by the caller.  */
-
-extern int vasprintf (char **, const char *, va_list) ATTRIBUTE_PRINTF(2,0);
-#endif
-
-#if defined(HAVE_DECL_SNPRINTF) && !HAVE_DECL_SNPRINTF
-/* Like sprintf but prints at most N characters.  */
-extern int snprintf (char *, size_t, const char *, ...) ATTRIBUTE_PRINTF_3;
-#endif
-
-#if defined(HAVE_DECL_VSNPRINTF) && !HAVE_DECL_VSNPRINTF
-/* Like vsprintf but prints at most N characters.  */
-extern int vsnprintf (char *, size_t, const char *, va_list) ATTRIBUTE_PRINTF(3,0);
-#endif
-
-#if defined(HAVE_DECL_STRVERSCMP) && !HAVE_DECL_STRVERSCMP
-/* Compare version strings.  */
-extern int strverscmp (const char *, const char *);
-#endif
-
-#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0]))
-
-/* Drastically simplified alloca configurator.  If we're using GCC,
-   we use __builtin_alloca; otherwise we use the C alloca.  The C
-   alloca is always available.  You can override GCC by defining
-   USE_C_ALLOCA yourself.  The canonical autoconf macro C_ALLOCA is
-   also set/unset as it is often used to indicate whether code needs
-   to call alloca(0).  */
-extern void *C_alloca (size_t) ATTRIBUTE_MALLOC;
-#undef alloca
-#if GCC_VERSION >= 2000 && !defined USE_C_ALLOCA
-# define alloca(x) __builtin_alloca(x)
-# undef C_ALLOCA
-# define ASTRDUP(X) \
-  (__extension__ ({ const char *const libiberty_optr = (X); \
-   const unsigned long libiberty_len = strlen (libiberty_optr) + 1; \
-   char *const libiberty_nptr = (char *const) alloca (libiberty_len); \
-   (char *) memcpy (libiberty_nptr, libiberty_optr, libiberty_len); }))
-#else
-# define alloca(x) C_alloca(x)
-# undef USE_C_ALLOCA
-# define USE_C_ALLOCA 1
-# undef C_ALLOCA
-# define C_ALLOCA 1
-extern const char *libiberty_optr;
-extern char *libiberty_nptr;
-extern unsigned long libiberty_len;
-# define ASTRDUP(X) \
-  (libiberty_optr = (X), \
-   libiberty_len = strlen (libiberty_optr) + 1, \
-   libiberty_nptr = (char *) alloca (libiberty_len), \
-   (char *) memcpy (libiberty_nptr, libiberty_optr, libiberty_len))
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* ! defined (LIBIBERTY_H) */
diff --git a/include/md5.h b/include/md5.h
deleted file mode 100644
index e8eedb9..0000000
--- a/include/md5.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/* md5.h - Declaration of functions and data types used for MD5 sum
-   computing library functions.
-   Copyright 1995, 1996, 2000 Free Software Foundation, Inc.
-   NOTE: The canonical source of this file is maintained with the GNU C
-   Library.  Bugs can be reported to bug-glibc@prep.ai.mit.edu.
-
-   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, 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _MD5_H
-#define _MD5_H 1
-
-#include <stdio.h>
-
-#if defined HAVE_LIMITS_H || _LIBC
-# include <limits.h>
-#endif
-
-#include "ansidecl.h"
-
-/* The following contortions are an attempt to use the C preprocessor
-   to determine an unsigned integral type that is 32 bits wide.  An
-   alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
-   doing that would require that the configure script compile and *run*
-   the resulting executable.  Locally running cross-compiled executables
-   is usually not possible.  */
-
-#ifdef _LIBC
-# include <sys/types.h>
-typedef u_int32_t md5_uint32;
-typedef uintptr_t md5_uintptr;
-#else
-#  define INT_MAX_32_BITS 2147483647
-
-/* If UINT_MAX isn't defined, assume it's a 32-bit type.
-   This should be valid for all systems GNU cares about because
-   that doesn't include 16-bit systems, and only modern systems
-   (that certainly have <limits.h>) have 64+-bit integral types.  */
-
-# ifndef INT_MAX
-#  define INT_MAX INT_MAX_32_BITS
-# endif
-
-# if INT_MAX == INT_MAX_32_BITS
-   typedef unsigned int md5_uint32;
-# else
-#  if SHRT_MAX == INT_MAX_32_BITS
-    typedef unsigned short md5_uint32;
-#  else
-#   if LONG_MAX == INT_MAX_32_BITS
-     typedef unsigned long md5_uint32;
-#   else
-     /* The following line is intended to evoke an error.
-        Using #error is not portable enough.  */
-     "Cannot determine unsigned 32-bit data type."
-#   endif
-#  endif
-# endif
-/* We have to make a guess about the integer type equivalent in size
-   to pointers which should always be correct.  */
-typedef unsigned long int md5_uintptr;
-#endif
-
-/* Structure to save state of computation between the single steps.  */
-struct md5_ctx
-{
-  md5_uint32 A;
-  md5_uint32 B;
-  md5_uint32 C;
-  md5_uint32 D;
-
-  md5_uint32 total[2];
-  md5_uint32 buflen;
-  char buffer[128] ATTRIBUTE_ALIGNED_ALIGNOF(md5_uint32);
-};
-
-/*
- * The following three functions are build up the low level used in
- * the functions `md5_stream' and `md5_buffer'.
- */
-
-/* Initialize structure containing state of computation.
-   (RFC 1321, 3.3: Step 3)  */
-extern void md5_init_ctx (struct md5_ctx *ctx);
-
-/* Starting with the result of former calls of this function (or the
-   initialization function update the context for the next LEN bytes
-   starting at BUFFER.
-   It is necessary that LEN is a multiple of 64!!! */
-extern void md5_process_block (const void *buffer, size_t len,
-                               struct md5_ctx *ctx);
-
-/* Starting with the result of former calls of this function (or the
-   initialization function update the context for the next LEN bytes
-   starting at BUFFER.
-   It is NOT required that LEN is a multiple of 64.  */
-extern void md5_process_bytes (const void *buffer, size_t len,
-                               struct md5_ctx *ctx);
-
-/* Process the remaining bytes in the buffer and put result from CTX
-   in first 16 bytes following RESBUF.  The result is always in little
-   endian byte order, so that a byte-wise output yields to the wanted
-   ASCII representation of the message digest.
-
-   IMPORTANT: On some systems it is required that RESBUF is correctly
-   aligned for a 32 bits value.  */
-extern void *md5_finish_ctx (struct md5_ctx *ctx, void *resbuf);
-
-
-/* Put result from CTX in first 16 bytes following RESBUF.  The result is
-   always in little endian byte order, so that a byte-wise output yields
-   to the wanted ASCII representation of the message digest.
-
-   IMPORTANT: On some systems it is required that RESBUF is correctly
-   aligned for a 32 bits value.  */
-extern void *md5_read_ctx (const struct md5_ctx *ctx, void *resbuf);
-
-
-/* Compute MD5 message digest for bytes read from STREAM.  The
-   resulting message digest number will be written into the 16 bytes
-   beginning at RESBLOCK.  */
-extern int md5_stream (FILE *stream, void *resblock);
-
-/* Compute MD5 message digest for LEN bytes beginning at BUFFER.  The
-   result is always in little endian byte order, so that a byte-wise
-   output yields to the wanted ASCII representation of the message
-   digest.  */
-extern void *md5_buffer (const char *buffer, size_t len, void *resblock);
-
-#endif
diff --git a/include/nlm/ChangeLog b/include/nlm/ChangeLog
deleted file mode 100644
index a4b527d..0000000
--- a/include/nlm/ChangeLog
+++ /dev/null
@@ -1,100 +0,0 @@
-2005-05-10  Nick Clifton  <nickc@redhat.com>
-
-	* Update the address and phone number of the FSF organization in
-	the GPL notices in the following files:
-	alpha-ext.h, common.h, external.h, i386-ext.h, internal.h,
-	ppc-ext.h, sparc32-ext.h
-	
-2003-08-07  Alan Modra  <amodra@bigpond.net.au>
-
-	* internal.h (Nlm_Internal_Custom_Header): Replace PTR with void *.
-
-2001-10-02  Alan Modra  <amodra@bigpond.net.au>
-
-	* common.h (NLM_CAT, NLM_CAT3): Don't define.
-	(NLM_CAT4): Update conditions under which this is defined.  Document
-	why CONCAT4 can't be used.
-
-1994-05-06  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* external.h (nlmNAME(External_Custom_Header)): Add length,
-	dataOffset, and dataStamp field.
-	(nlmNAME(External_Cygnus_Ext_Header)): Remove.
-	* internal.h (Nlm_Internal_Custom_Header): Add hdrLength,
-	dataOffset, dataStamp and hdr fields.
-
-1994-04-22  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* external.h (struct nlmNAME(external_cygnus_ext_header)): Rename
-	from nlmNAME(external_cygnus_section_header).  Change stamp field
-	to 8 bytes.  Add bytes field.
-	* internal.h (nlm_internal_cygnus_ext_header): Rename from
-	nlm_internal_cygnus_section_header.  Change stamp field to 8
-	bytes.
-
-1994-04-21  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* internal.h (struct nlm_internal_cygnus_section_header): Define.
-	* external.h (struct nlmNAME(external_cygnus_section_header):
-	Define.
-
-1994-04-20  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* internal.h (struct nlm_internal_custom_header): Remove
-	debugRecOffset and debugRecLength fields.  Add data field.
-	* external.h (struct nlmNAME(external_custom_header)): Remove
-	debugRecOffset and debugRecLength fields.
-
-1994-02-07  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* internal.h: Change HOST_64_BIT to BFD_HOST_64_BIT.
-
-1993-12-02  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* alpha-ext.h: New file describing formats of information in Alpha
-	NetWare files.
-	* common.h: Define some non-external Alpha information.
-
-1993-11-17  Sean Eric Fagan  (sef@cygnus.com)
-
-	* external.h: Don't define external_fixed_header here.
-	* i386-ext.h, sparc32-ext.h: New header files to define
-	external_fixed_header for particular CPU's.
-
-1993-10-27  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* internal.h (Nlm_Internal_Extended_Header): Added fields
-	sharedDebugRecordOffset and sharedDebugRecordCount.
-	* external.h (NlmNAME(External_Extended_Header)): Likewise.
-
-	* common.h (NLM_SIGNATURE): Do not define (it's different for each
-	backend).
-
-1993-08-31  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* internal.h: Change length fields of type char to type unsigned
-	char.
-
-1993-07-31  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* common.h (NLM_HIBIT, NLM_HEADER_VERSION): Define.
-
-1993-07-22  Fred Fish  (fnf@deneb.cygnus.com)
-
-	* common.h (NLM_CAT*, NLM_ARCH_SIZE, NLM_TARGET_LONG_SIZE,
-	NLM_TARGET_ADDRESS_SIZE, NLM_NAME, NlmNAME, nlmNAME):  New
-	macros.
-	* external.h (TARGET_LONG_SIZE, TARGET_ADDRESS_SIZE): Remove
-	macros, convert usages to NLM_ equivalents.
-	* external.h:  Use nlmNAME and NlmNAME macros to derive both
-	32 and 64 bit versions.
-
-1993-07-20  Fred Fish  (fnf@deneb.cygnus.com)
-
-	* (common.h, external.h, internal.h):  New files for NLM/NetWare
-	support.
-
-
-Local Variables:
-version-control: never
-End:
diff --git a/include/nlm/alpha-ext.h b/include/nlm/alpha-ext.h
deleted file mode 100644
index eea56ef..0000000
--- a/include/nlm/alpha-ext.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/* Alpha NLM (NetWare Loadable Module) support for BFD.
-   Copyright 1993 Free Software Foundation, Inc.
-   By Ian Lance Taylor, 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* An Alpha NLM starts with an instance of this structure.  */
-
-struct nlm32_alpha_external_prefix_header
-{
-  /* Magic number.  Must be NLM32_ALPHA_MAGIC.  */
-  unsigned char magic[4];
-  /* Format descriptor.  Current value is 2.  */
-  unsigned char format[4];
-  /* Size of prefix header.  */
-  unsigned char size[4];
-  /* Padding.  */
-  unsigned char pad1[4];
-  /* More fields may be added later, supposedly.  */
-};
-
-/* The external format of an Alpha NLM reloc.  This is the same as an
-   Alpha ECOFF reloc.  */
-
-struct nlm32_alpha_external_reloc
-{
-  unsigned char r_vaddr[8];
-  unsigned char r_symndx[4];
-  unsigned char r_bits[4];
-};
-
-/* Constants to unpack the r_bits field of a reloc.  */
-
-#define RELOC_BITS0_TYPE_LITTLE			0xff
-#define RELOC_BITS0_TYPE_SH_LITTLE		0
-
-#define RELOC_BITS1_EXTERN_LITTLE		0x01
-
-#define RELOC_BITS1_OFFSET_LITTLE		0x7e
-#define RELOC_BITS1_OFFSET_SH_LITTLE		1
-
-#define RELOC_BITS1_RESERVED_LITTLE		0x80
-#define RELOC_BITS1_RESERVED_SH_LITTLE		7
-#define RELOC_BITS2_RESERVED_LITTLE		0xff
-#define RELOC_BITS2_RESERVED_SH_LEFT_LITTLE	1
-#define RELOC_BITS3_RESERVED_LITTLE		0x03
-#define RELOC_BITS3_RESERVED_SH_LEFT_LITTLE	9
-
-#define RELOC_BITS3_SIZE_LITTLE			0xfc
-#define RELOC_BITS3_SIZE_SH_LITTLE		2
-
-/* The external format of the fixed header.  */
-
-typedef struct nlm32_alpha_external_fixed_header
-{
-
-  /* The signature field identifies the file as an NLM.  It must contain
-     the signature string, which depends upon the NLM target. */
-
-  unsigned char signature[24];
-
-  /* The version of the header.  At this time, the highest version number
-     is 4. */
-
-  unsigned char version[4];
-
-  /* The name of the module, which must be a DOS name (1-8 characters followed
-     by a period and a 1-3 character extension).  The first byte is the byte
-     length of the name and the last byte is a null terminator byte.  This
-     field is fixed length, and any unused bytes should be null bytes.  The
-     value is set by the OUTPUT keyword to NLMLINK. */
-
-  unsigned char moduleName[14];
-
-  /* Padding to make it come out correct. */
-
-  unsigned char pad1[2];
-
-  /* The byte offset of the code image from the start of the file. */
-
-  unsigned char codeImageOffset[4];
-
-  /* The size of the code image, in bytes. */
-
-  unsigned char codeImageSize[4];
-
-  /* The byte offset of the data image from the start of the file. */
-
-  unsigned char dataImageOffset[4];
-
-  /* The size of the data image, in bytes. */
-
-  unsigned char dataImageSize[4];
-
-  /* The size of the uninitialized data region that the loader is to be
-     allocated at load time.  Uninitialized data follows the initialized
-     data in the NLM address space. */
-
-  unsigned char uninitializedDataSize[4];
-
-  /* The byte offset of the custom data from the start of the file.  The
-     custom data is set by the CUSTOM keyword to NLMLINK.  It is possible
-     for this to be EOF if there is no custom data. */
-
-  unsigned char customDataOffset[4];
-
-  /* The size of the custom data, in bytes. */
-
-  unsigned char customDataSize[4];
-
-  /* The byte offset of the module dependencies from the start of the file.
-     The module dependencies are determined by the MODULE keyword in
-     NLMLINK. */
-
-  unsigned char moduleDependencyOffset[4];
-
-  /* The number of module dependencies at the moduleDependencyOffset. */
-
-  unsigned char numberOfModuleDependencies[4];
-
-  /* The byte offset of the relocation fixup data from the start of the file */
-     
-  unsigned char relocationFixupOffset[4];
-
-  unsigned char numberOfRelocationFixups[4];
-
-  unsigned char externalReferencesOffset[4];
-
-  unsigned char numberOfExternalReferences[4];
-
-  unsigned char publicsOffset[4];
-
-  unsigned char numberOfPublics[4];
-
-  /* The byte offset of the internal debug info from the start of the file.
-     It is possible for this to be EOF if there is no debug info. */
-
-  unsigned char debugInfoOffset[4];
-
-  unsigned char numberOfDebugRecords[4];
-
-  unsigned char codeStartOffset[4];
-
-  unsigned char exitProcedureOffset[4];
-
-  unsigned char checkUnloadProcedureOffset[4];
-
-  unsigned char moduleType[4];
-
-  unsigned char flags[4];
-
-} Nlm32_alpha_External_Fixed_Header;
diff --git a/include/nlm/common.h b/include/nlm/common.h
deleted file mode 100644
index c6df3fd..0000000
--- a/include/nlm/common.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/* NLM (NetWare Loadable Module) support for BFD.
-   Copyright 1993, 2001 Free Software Foundation, Inc.
-
-   Written by Fred Fish @ 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-
-/* This file is part of NLM support for BFD, and contains the portions
-   that are common to both the internal and external representations. */
-
-/* If NLM_ARCH_SIZE is not defined, default to 32.  NLM_ARCH_SIZE is
-   optionally defined by the application. */
-
-#ifndef NLM_ARCH_SIZE
-#  define NLM_ARCH_SIZE			32
-#endif
-
-/* Due to horrible details of ANSI macro expansion, we can't use CONCAT4
-   for NLM_NAME.  CONCAT2 is used in BFD_JUMP_TABLE macros, and some of
-   them will expand to tokens that themselves are macros defined in terms
-   of NLM_NAME.  If NLM_NAME were defined using CONCAT4 (which is itself
-   defined in bfd-in.h using CONCAT2), ANSI preprocessor rules say that
-   the CONCAT2 within NLM_NAME should not be expanded.
-   So use another name.  */
-#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
-#ifdef SABER
-#define NLM_CAT4(a,b,c,d) a##b##c##d
-#else
-/* This hack is to avoid a problem with some strict ANSI C preprocessors.
-   The problem is, "32_" is not a valid preprocessing token, and we don't
-   want extra underscores (e.g., "nlm_32_").  The NLM_XCAT2 macro will
-   cause the inner CAT2 macros to be evaluated first, producing
-   still-valid pp-tokens.  Then the final concatenation can be done.  */
-#define NLM_CAT2(a,b)	  a##b
-#define NLM_XCAT2(a,b)	  NLM_CAT2(a,b)
-#define NLM_CAT4(a,b,c,d) NLM_XCAT2(NLM_CAT2(a,b),NLM_CAT2(c,d))
-#endif
-#else
-#define NLM_CAT4(a,b,c,d) a/**/b/**/c/**/d
-#endif
-
-#if NLM_ARCH_SIZE == 32
-#  define NLM_TARGET_LONG_SIZE		4
-#  define NLM_TARGET_ADDRESS_SIZE	4
-#  define NLM_NAME(x,y)			NLM_CAT4(x,32,_,y)
-#  define NLM_HIBIT			(((bfd_vma) 1) << 31)
-#endif
-#if NLM_ARCH_SIZE == 64
-#  define NLM_TARGET_LONG_SIZE		8
-#  define NLM_TARGET_ADDRESS_SIZE	8
-#  define NLM_NAME(x,y)			NLM_CAT4(x,64,_,y)
-#  define NLM_HIBIT			(((bfd_vma) 1) << 63)
-#endif
-
-#define NlmNAME(X)		NLM_NAME(Nlm,X)
-#define nlmNAME(X)		NLM_NAME(nlm,X)
-
-/* Give names to things that should not change. */
-
-#define NLM_MAX_DESCRIPTION_LENGTH		127
-#define NLM_MAX_SCREEN_NAME_LENGTH		71
-#define NLM_MAX_THREAD_NAME_LENGTH		71
-#define NLM_MAX_COPYRIGHT_MESSAGE_LENGTH	255
-#define NLM_OTHER_DATA_LENGTH 			400		/* FIXME */
-#define NLM_OLD_THREAD_NAME_LENGTH		5
-#define NLM_SIGNATURE_SIZE			24
-#define NLM_HEADER_VERSION			4
-#define NLM_MODULE_NAME_SIZE			14
-#define NLM_DEFAULT_STACKSIZE			(8 * 1024)
-
-/* Alpha information.  This should probably be in a separate Alpha
-   header file, but it can't go in alpha-ext.h because some of it is
-   needed by nlmconv.c.  */
-
-/* Magic number in Alpha prefix header.  */
-#define NLM32_ALPHA_MAGIC (0x83561840)
-
-/* The r_type field in an Alpha reloc is one of the following values.  */
-#define ALPHA_R_IGNORE		0
-#define ALPHA_R_REFLONG		1
-#define ALPHA_R_REFQUAD		2
-#define ALPHA_R_GPREL32		3
-#define ALPHA_R_LITERAL		4
-#define ALPHA_R_LITUSE		5
-#define ALPHA_R_GPDISP		6
-#define ALPHA_R_BRADDR		7
-#define ALPHA_R_HINT		8
-#define ALPHA_R_SREL16		9
-#define ALPHA_R_SREL32	       10
-#define ALPHA_R_SREL64	       11
-#define ALPHA_R_OP_PUSH	       12
-#define ALPHA_R_OP_STORE       13
-#define ALPHA_R_OP_PSUB	       14
-#define ALPHA_R_OP_PRSHIFT     15
-#define ALPHA_R_GPVALUE	       16
-#define ALPHA_R_NW_RELOC      250
-
-/* A local reloc, other than ALPHA_R_GPDISP or ALPHA_R_IGNORE, must be
-   against one of these symbol indices.  */
-#define ALPHA_RELOC_SECTION_TEXT	1
-#define ALPHA_RELOC_SECTION_DATA	3
-
-/* An ALPHA_R_NW_RELOC has one of these values in the size field.  If
-   it is SETGP, the r_vaddr field holds the GP value to use.  If it is
-   LITA, the r_vaddr field holds the address of the .lita section and
-   the r_symndx field holds the size of the .lita section.  */
-#define ALPHA_R_NW_RELOC_SETGP	1
-#define ALPHA_R_NW_RELOC_LITA	2
diff --git a/include/nlm/external.h b/include/nlm/external.h
deleted file mode 100644
index 66003b3..0000000
--- a/include/nlm/external.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/* NLM (NetWare Loadable Module) support for BFD.
-   Copyright 1993, 1994 Free Software Foundation, Inc.
-
-   Written by Fred Fish @ 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-
-/* This file is part of NLM support for BFD, and contains the portions
-   that describe how NLM is represented externally by the BFD library.
-   I.E. it describes the in-file representation of NLM.  It requires
-   the nlm/common.h file which contains the portions that are common to
-   both the internal and external representations.
-
-   Note that an NLM header consists of three parts:
-
-   (1)	A fixed length header that has specific fields of known length,
-	at specific offsets in the file. 
-
-   (2)  A variable length header that has specific fields in a specific
-        order, but some fields may be variable length.
-
-   (3)	A auxiliary header that has various optional fields in no specific
-        order.  There is no way to identify the end of the auxiliary headers
-	except by finding a header without a recognized 'stamp'.
-
-   The exact format of the fixed length header unfortunately varies
-   from one NLM target to another, due to padding.  Each target
-   defines the correct external format in a separate header file.
-
-*/
-   
-/* NLM Header */
-
-/* The version header is one of the optional auxiliary headers and
-   follows the fixed length and variable length NLM headers. */
-
-typedef struct nlmNAME(external_version_header)
-{
-
-  /* The header is recognized by "VeRsIoN#" in the stamp field. */
-  char stamp[8];
-
-  unsigned char majorVersion[NLM_TARGET_LONG_SIZE];
-
-  unsigned char minorVersion[NLM_TARGET_LONG_SIZE];
-
-  unsigned char revision[NLM_TARGET_LONG_SIZE];
-
-  unsigned char year[NLM_TARGET_LONG_SIZE];
-
-  unsigned char month[NLM_TARGET_LONG_SIZE];
-
-  unsigned char day[NLM_TARGET_LONG_SIZE];
-
-} NlmNAME(External_Version_Header);
-
-
-typedef struct nlmNAME(external_copyright_header)
-{
-
-  /* The header is recognized by "CoPyRiGhT=" in the stamp field. */
-
-  char stamp[10];
-
-  unsigned char copyrightMessageLength[1];
-
-  /* There is a variable length field here called 'copyrightMessage'
-     that is the length specified by copyrightMessageLength. */
-
-} NlmNAME(External_Copyright_Header);
-
-
-typedef struct nlmNAME(external_extended_header)
-{
-
-  /* The header is recognized by "MeSsAgEs" in the stamp field. */
-
-  char stamp[8];
-
-  unsigned char languageID[NLM_TARGET_LONG_SIZE];
-
-  unsigned char messageFileOffset[NLM_TARGET_LONG_SIZE];
-
-  unsigned char messageFileLength[NLM_TARGET_LONG_SIZE];
-
-  unsigned char messageCount[NLM_TARGET_LONG_SIZE];
-
-  unsigned char helpFileOffset[NLM_TARGET_LONG_SIZE];
-
-  unsigned char helpFileLength[NLM_TARGET_LONG_SIZE];
-
-  unsigned char RPCDataOffset[NLM_TARGET_LONG_SIZE];
-
-  unsigned char RPCDataLength[NLM_TARGET_LONG_SIZE];
-
-  unsigned char sharedCodeOffset[NLM_TARGET_LONG_SIZE];
-
-  unsigned char sharedCodeLength[NLM_TARGET_LONG_SIZE];
-
-  unsigned char sharedDataOffset[NLM_TARGET_LONG_SIZE];
-
-  unsigned char sharedDataLength[NLM_TARGET_LONG_SIZE];
-
-  unsigned char sharedRelocationFixupOffset[NLM_TARGET_LONG_SIZE];
-
-  unsigned char sharedRelocationFixupCount[NLM_TARGET_LONG_SIZE];
-
-  unsigned char sharedExternalReferenceOffset[NLM_TARGET_LONG_SIZE];
-
-  unsigned char sharedExternalReferenceCount[NLM_TARGET_LONG_SIZE];
-
-  unsigned char sharedPublicsOffset[NLM_TARGET_LONG_SIZE];
-
-  unsigned char sharedPublicsCount[NLM_TARGET_LONG_SIZE];
-
-  unsigned char sharedDebugRecordOffset[NLM_TARGET_LONG_SIZE];
-
-  unsigned char sharedDebugRecordCount[NLM_TARGET_LONG_SIZE];
-
-  unsigned char sharedInitializationOffset[NLM_TARGET_ADDRESS_SIZE];
-
-  unsigned char SharedExitProcedureOffset[NLM_TARGET_ADDRESS_SIZE];
-
-  unsigned char productID[NLM_TARGET_LONG_SIZE];
-
-  unsigned char reserved0[NLM_TARGET_LONG_SIZE];
-
-  unsigned char reserved1[NLM_TARGET_LONG_SIZE];
-
-  unsigned char reserved2[NLM_TARGET_LONG_SIZE];
-
-  unsigned char reserved3[NLM_TARGET_LONG_SIZE];
-
-  unsigned char reserved4[NLM_TARGET_LONG_SIZE];
-
-  unsigned char reserved5[NLM_TARGET_LONG_SIZE];
-
-} NlmNAME(External_Extended_Header);
-
-
-typedef struct nlmNAME(external_custom_header)
-{
-
-  /* The header is recognized by "CuStHeAd" in the stamp field. */
-  char stamp[8];
-
-  /* Length of this header.  */
-  unsigned char length[NLM_TARGET_LONG_SIZE];
-
-  /* Offset to data.  */
-  unsigned char dataOffset[NLM_TARGET_LONG_SIZE];
-
-  /* Length of data.  */
-  unsigned char dataLength[NLM_TARGET_LONG_SIZE];
-
-  /* Stamp for this customer header--we recognize "CyGnUsEx".  */
-  char dataStamp[8];
-
-} NlmNAME(External_Custom_Header);
diff --git a/include/nlm/i386-ext.h b/include/nlm/i386-ext.h
deleted file mode 100644
index ecb1cc2..0000000
--- a/include/nlm/i386-ext.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* i386 NLM (NetWare Loadable Module) support for BFD.
-   Copyright 1993 Free Software Foundation, Inc.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* The external format of the fixed header.  */
-
-typedef struct nlm32_i386_external_fixed_header
-{
-
-  /* The signature field identifies the file as an NLM.  It must contain
-     the signature string, which depends upon the NLM target. */
-
-  unsigned char signature[24];
-
-  /* The version of the header.  At this time, the highest version number
-     is 4. */
-
-  unsigned char version[4];
-
-  /* The name of the module, which must be a DOS name (1-8 characters followed
-     by a period and a 1-3 character extension).  The first byte is the byte
-     length of the name and the last byte is a null terminator byte.  This
-     field is fixed length, and any unused bytes should be null bytes.  The
-     value is set by the OUTPUT keyword to NLMLINK. */
-
-  unsigned char moduleName[14];
-
-  /* The byte offset of the code image from the start of the file. */
-
-  unsigned char codeImageOffset[4];
-
-  /* The size of the code image, in bytes. */
-
-  unsigned char codeImageSize[4];
-
-  /* The byte offset of the data image from the start of the file. */
-
-  unsigned char dataImageOffset[4];
-
-  /* The size of the data image, in bytes. */
-
-  unsigned char dataImageSize[4];
-
-  /* The size of the uninitialized data region that the loader is to be
-     allocated at load time.  Uninitialized data follows the initialized
-     data in the NLM address space. */
-
-  unsigned char uninitializedDataSize[4];
-
-  /* The byte offset of the custom data from the start of the file.  The
-     custom data is set by the CUSTOM keyword to NLMLINK.  It is possible
-     for this to be EOF if there is no custom data. */
-
-  unsigned char customDataOffset[4];
-
-  /* The size of the custom data, in bytes. */
-
-  unsigned char customDataSize[4];
-
-  /* The byte offset of the module dependencies from the start of the file.
-     The module dependencies are determined by the MODULE keyword in
-     NLMLINK. */
-
-  unsigned char moduleDependencyOffset[4];
-
-  /* The number of module dependencies at the moduleDependencyOffset. */
-
-  unsigned char numberOfModuleDependencies[4];
-
-  /* The byte offset of the relocation fixup data from the start of the file */
-     
-  unsigned char relocationFixupOffset[4];
-
-  unsigned char numberOfRelocationFixups[4];
-
-  unsigned char externalReferencesOffset[4];
-
-  unsigned char numberOfExternalReferences[4];
-
-  unsigned char publicsOffset[4];
-
-  unsigned char numberOfPublics[4];
-
-  /* The byte offset of the internal debug info from the start of the file.
-     It is possible for this to be EOF if there is no debug info. */
-
-  unsigned char debugInfoOffset[4];
-
-  unsigned char numberOfDebugRecords[4];
-
-  unsigned char codeStartOffset[4];
-
-  unsigned char exitProcedureOffset[4];
-
-  unsigned char checkUnloadProcedureOffset[4];
-
-  unsigned char moduleType[4];
-
-  unsigned char flags[4];
-
-} Nlm32_i386_External_Fixed_Header;
diff --git a/include/nlm/internal.h b/include/nlm/internal.h
deleted file mode 100644
index 59f8ff1..0000000
--- a/include/nlm/internal.h
+++ /dev/null
@@ -1,309 +0,0 @@
-/* NLM (NetWare Loadable Module) support for BFD.
-   Copyright 1993, 1994, 2003 Free Software Foundation, Inc.
-
-   Written by Fred Fish @ 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-
-/* This file is part of NLM support for BFD, and contains the portions
-   that describe how NLM is represented internally in the BFD library.
-   I.E. it describes the in-memory representation of NLM.  It requires
-   the nlm/common.h file which contains the portions that are common to
-   both the internal and external representations. */
-   
-#if 0
-
-/* Types used by various structures, functions, etc. */
-
-typedef unsigned long	Nlm32_Addr;	/* Unsigned program address */
-typedef unsigned long	Nlm32_Off;	/* Unsigned file offset */
-typedef 	 long	Nlm32_Sword;	/* Signed large integer */
-typedef unsigned long	Nlm32_Word;	/* Unsigned large integer */
-typedef unsigned short	Nlm32_Half;	/* Unsigned medium integer */
-typedef unsigned char	Nlm32_Char;	/* Unsigned tiny integer */
-
-#ifdef BFD_HOST_64_BIT
-typedef unsigned BFD_HOST_64_BIT	Nlm64_Addr;
-typedef unsigned BFD_HOST_64_BIT	Nlm64_Off;
-typedef          BFD_HOST_64_BIT	Nlm64_Sxword;
-typedef unsigned BFD_HOST_64_BIT	Nlm64_Xword;
-#endif
-typedef          long		Nlm64_Sword;
-typedef unsigned long		Nlm64_Word;
-typedef unsigned short		Nlm64_Half;
-
-#endif /* 0 */
-
-/* This structure contains the internal form of the portion of the NLM
-   header that is fixed length. */
-
-typedef struct nlm_internal_fixed_header
-{
-  /* The signature field identifies the file as an NLM.  It must contain
-     the signature string, which depends upon the NLM target. */
-
-  char signature[NLM_SIGNATURE_SIZE];
-
-  /* The version of the header.  At this time, the highest version number
-     is 4. */
-
-  long version;
-
-  /* The name of the module, which must be a DOS name (1-8 characters followed
-     by a period and a 1-3 character extension.  The first byte is the byte
-     length of the name and the last byte is a null terminator byte.  This
-     field is fixed length, and any unused bytes should be null bytes.  The
-     value is set by the OUTPUT keyword to NLMLINK. */
-
-  char moduleName[NLM_MODULE_NAME_SIZE];
-
-  /* The byte offset of the code image from the start of the file. */
-
-  file_ptr codeImageOffset;
-
-  /* The size of the code image, in bytes. */
-
-  bfd_size_type codeImageSize;
-
-  /* The byte offset of the data image from the start of the file. */
-
-  file_ptr dataImageOffset;
-
-  /* The size of the data image, in bytes. */
-
-  bfd_size_type dataImageSize;
-
-  /* The size of the uninitialized data region that the loader is to be
-     allocated at load time.  Uninitialized data follows the initialized
-     data in the NLM address space. */
-
-  bfd_size_type uninitializedDataSize;
-
-  /* The byte offset of the custom data from the start of the file.  The
-     custom data is set by the CUSTOM keyword to NLMLINK. */
-
-  file_ptr customDataOffset;
-
-  /* The size of the custom data, in bytes. */
-
-  bfd_size_type customDataSize;
-
-  /* The byte offset of the module dependencies from the start of the file.
-     The module dependencies are determined by the MODULE keyword in
-     NLMLINK. */
-
-  file_ptr moduleDependencyOffset;
-
-  /* The number of module dependencies at the moduleDependencyOffset. */
-
-  long numberOfModuleDependencies;
-
-  /* The byte offset of the relocation fixup data from the start of the file */
-
-  file_ptr relocationFixupOffset;
-  long numberOfRelocationFixups;
-  file_ptr externalReferencesOffset;
-  long numberOfExternalReferences;
-  file_ptr publicsOffset;
-  long numberOfPublics;
-  file_ptr debugInfoOffset;
-  long numberOfDebugRecords;
-  file_ptr codeStartOffset;
-  file_ptr exitProcedureOffset;
-  file_ptr checkUnloadProcedureOffset;
-  long moduleType;
-  long flags;
-} Nlm_Internal_Fixed_Header;
-
-#define nlm32_internal_fixed_header nlm_internal_fixed_header
-#define Nlm32_Internal_Fixed_Header Nlm_Internal_Fixed_Header
-#define nlm64_internal_fixed_header nlm_internal_fixed_header
-#define Nlm64_Internal_Fixed_Header Nlm_Internal_Fixed_Header
-
-/* This structure contains the portions of the NLM header that are either
-   variable in size in the external representation, or else are not at a
-   fixed offset relative to the start of the NLM header due to preceding
-   variable sized fields.
-
-   Note that all the fields must exist in the external header, and in
-   the order used here (the same order is used in the internal form
-   for consistency, not out of necessity). */
-
-typedef struct nlm_internal_variable_header
-{
-
-  /* The descriptionLength field contains the length of the text in
-     descriptionText, excluding the null terminator.  The descriptionText
-     field contains the NLM description obtained from the DESCRIPTION
-     keyword in NLMLINK plus the null byte terminator.  The descriptionText
-     can be up to NLM_MAX_DESCRIPTION_LENGTH characters. */
-     
-  unsigned char descriptionLength;
-  char descriptionText[NLM_MAX_DESCRIPTION_LENGTH + 1];
-
-  /* The stackSize field contains the size of the stack in bytes, as
-     specified by the STACK or STACKSIZE keyword in NLMLINK.  If no size
-     is specified, the default is NLM_DEFAULT_STACKSIZE. */
-     
-  long stackSize;
-
-  /* The reserved field is included only for completeness.  It should contain
-     zero. */
-
-  long reserved;
-
-  /* This field is fixed length, should contain " LONG" (note leading
-     space), and is unused. */
-
-  char oldThreadName[NLM_OLD_THREAD_NAME_LENGTH];
-
-  /* The screenNameLength field contains the length of the actual text stored
-     in the screenName field, excluding the null byte terminator.  The
-     screenName field contains the screen name as specified by the SCREENNAME
-     keyword in NLMLINK, and can be up to NLM_MAX_SCREEN_NAME_LENGTH
-     characters. */
-
-  unsigned char screenNameLength;
-  char screenName[NLM_MAX_SCREEN_NAME_LENGTH + 1];
-
-  /* The threadNameLength field contains the length of the actual text stored
-     in the threadName field, excluding the null byte terminator.  The
-     threadName field contains the thread name as specified by the THREADNAME
-     keyword in NLMLINK, and can be up to NLM_MAX_THREAD_NAME_LENGTH
-     characters. */
-
-  unsigned char threadNameLength;
-  char threadName[NLM_MAX_THREAD_NAME_LENGTH + 1];
-
-} Nlm_Internal_Variable_Header;
-
-#define nlm32_internal_variable_header nlm_internal_variable_header
-#define Nlm32_Internal_Variable_Header Nlm_Internal_Variable_Header
-#define nlm64_internal_variable_header nlm_internal_variable_header
-#define Nlm64_Internal_Variable_Header Nlm_Internal_Variable_Header
-
-/* The version header is one of the optional auxiliary headers and
-   follows the fixed length and variable length NLM headers. */
-
-typedef struct nlm_internal_version_header
-{
-  /* The header is recognized by "VeRsIoN#" in the stamp field. */
-  char stamp[8];
-  long majorVersion;
-  long minorVersion;
-  long revision;
-  long year;
-  long month;
-  long day;
-} Nlm_Internal_Version_Header;
-
-#define nlm32_internal_version_header nlm_internal_version_header
-#define Nlm32_Internal_Version_Header Nlm_Internal_Version_Header
-#define nlm64_internal_version_header nlm_internal_version_header
-#define Nlm64_Internal_Version_Header Nlm_Internal_Version_Header
-
-typedef struct nlm_internal_copyright_header
-{
-  /* The header is recognized by "CoPyRiGhT=" in the stamp field. */
-  char stamp[10];
-  unsigned char copyrightMessageLength;
-  char copyrightMessage[NLM_MAX_COPYRIGHT_MESSAGE_LENGTH];
-} Nlm_Internal_Copyright_Header;
-
-#define nlm32_internal_copyright_header nlm_internal_copyright_header
-#define Nlm32_Internal_Copyright_Header Nlm_Internal_Copyright_Header
-#define nlm64_internal_copyright_header nlm_internal_copyright_header
-#define Nlm64_Internal_Copyright_Header Nlm_Internal_Copyright_Header
-
-typedef struct nlm_internal_extended_header
-{
-  /* The header is recognized by "MeSsAgEs" in the stamp field. */
-  char stamp[8];
-  long languageID;
-  file_ptr messageFileOffset;
-  bfd_size_type messageFileLength;
-  long messageCount;
-  file_ptr helpFileOffset;
-  bfd_size_type helpFileLength;
-  file_ptr RPCDataOffset;
-  bfd_size_type RPCDataLength;
-  file_ptr sharedCodeOffset;
-  bfd_size_type sharedCodeLength;
-  file_ptr sharedDataOffset;
-  bfd_size_type sharedDataLength;
-  file_ptr sharedRelocationFixupOffset;
-  long sharedRelocationFixupCount;
-  file_ptr sharedExternalReferenceOffset;
-  long sharedExternalReferenceCount;
-  file_ptr sharedPublicsOffset;
-  long sharedPublicsCount;
-  file_ptr sharedDebugRecordOffset;
-  long sharedDebugRecordCount;
-  bfd_vma SharedInitializationOffset;
-  bfd_vma SharedExitProcedureOffset;
-  long productID;
-  long reserved0;
-  long reserved1;
-  long reserved2;
-  long reserved3;
-  long reserved4;
-  long reserved5;
-} Nlm_Internal_Extended_Header;
-
-#define nlm32_internal_extended_header nlm_internal_extended_header
-#define Nlm32_Internal_Extended_Header Nlm_Internal_Extended_Header
-#define nlm64_internal_extended_header nlm_internal_extended_header
-#define Nlm64_Internal_Extended_Header Nlm_Internal_Extended_Header
-
-/* The format of a custom header as stored internally is different
-   from the external format.  This is how we store a custom header
-   which we do not recognize.  */
-
-typedef struct nlm_internal_custom_header
-{
-  /* The header is recognized by "CuStHeAd" in the stamp field. */
-  char stamp[8];
-  bfd_size_type hdrLength;
-  file_ptr dataOffset;
-  bfd_size_type dataLength;
-  char dataStamp[8];
-  void *hdr;
-} Nlm_Internal_Custom_Header;
-
-#define nlm32_internal_custom_header nlm_internal_custom_header
-#define Nlm32_Internal_Custom_Header Nlm_Internal_Custom_Header
-#define nlm64_internal_custom_header nlm_internal_custom_header
-#define Nlm64_Internal_Custom_Header Nlm_Internal_Custom_Header
-
-/* The internal Cygnus header is written out externally as a custom
-   header.  We don't try to replicate that structure here.  */
-
-typedef struct nlm_internal_cygnus_ext_header
-{
-  /* The header is recognized by "CyGnUsEx" in the stamp field. */
-  char stamp[8];
-  /* File location of debugging information.  */
-  file_ptr offset;
-  /* Length of debugging information.  */
-  bfd_size_type length;
-} Nlm_Internal_Cygnus_Ext_Header;
-
-#define nlm32_internal_cygnus_ext_header nlm_internal_cygnus_ext_header
-#define Nlm32_Internal_Cygnus_Ext_Header Nlm_Internal_Cygnus_Ext_Header
-#define nlm64_internal_cygnus_ext_header nlm_internal_cygnus_ext_header
-#define Nlm64_Internal_Cygnus_Ext_Header Nlm_Internal_Cygnus_Ext_Header
diff --git a/include/nlm/ppc-ext.h b/include/nlm/ppc-ext.h
deleted file mode 100644
index 9f3a974..0000000
--- a/include/nlm/ppc-ext.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/* PowerPC NLM (NetWare Loadable Module) support for BFD.
-   Copyright (C) 1994 Free Software Foundation, Inc.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifdef OLDFORMAT
-
-/* The format of a PowerPC NLM changed.  These structures are only
-   used in the old format.  */
-
-/* A PowerPC NLM starts with an instance of this structure.  */
-
-struct nlm32_powerpc_external_prefix_header
-{
-  /* Signature.  Must be "AppleNLM".  */
-  char signature[8];
-  /* Version number.  Current value is 1.  */
-  unsigned char headerVersion[4];
-  /* ??.  Should be set to 0.  */
-  unsigned char origins[4];
-  /* File creation date in standard Unix time format (seconds since
-     1/1/70).  */
-  unsigned char date[4];
-};
-
-#define NLM32_POWERPC_SIGNATURE "AppleNLM"
-#define NLM32_POWERPC_HEADER_VERSION 1
-
-/* The external format of a PowerPC NLM reloc.  This is the same as an
-   XCOFF dynamic reloc.  */
-
-struct nlm32_powerpc_external_reloc
-{
-  /* Address.  */
-  unsigned char l_vaddr[4];
-  /* Symbol table index.  This is 0 for .text and 1 for .data.  2
-     means .bss, but I don't know if it is used.  In XCOFF, larger
-     numbers are indices into the dynamic symbol table, but they are
-     presumably not used in an NLM.  */
-  unsigned char l_symndx[4];
-  /* Relocation type.  */
-  unsigned char l_rtype[2];
-  /* Section number being relocated.  */
-  unsigned char l_rsecnm[2];
-};
-
-#endif /* OLDFORMAT */
-
-/* The external format of the fixed header.  */
-
-typedef struct nlm32_powerpc_external_fixed_header
-{
-
-  /* The signature field identifies the file as an NLM.  It must contain
-     the signature string, which depends upon the NLM target. */
-
-  unsigned char signature[24];
-
-  /* The version of the header.  At this time, the highest version number
-     is 4. */
-
-  unsigned char version[4];
-
-  /* The name of the module, which must be a DOS name (1-8 characters followed
-     by a period and a 1-3 character extension).  The first byte is the byte
-     length of the name and the last byte is a null terminator byte.  This
-     field is fixed length, and any unused bytes should be null bytes.  The
-     value is set by the OUTPUT keyword to NLMLINK. */
-
-  unsigned char moduleName[14];
-
-  /* Padding to make it come out correct. */
-
-  unsigned char pad1[2];
-
-  /* The byte offset of the code image from the start of the file. */
-
-  unsigned char codeImageOffset[4];
-
-  /* The size of the code image, in bytes. */
-
-  unsigned char codeImageSize[4];
-
-  /* The byte offset of the data image from the start of the file. */
-
-  unsigned char dataImageOffset[4];
-
-  /* The size of the data image, in bytes. */
-
-  unsigned char dataImageSize[4];
-
-  /* The size of the uninitialized data region that the loader is to be
-     allocated at load time.  Uninitialized data follows the initialized
-     data in the NLM address space. */
-
-  unsigned char uninitializedDataSize[4];
-
-  /* The byte offset of the custom data from the start of the file.  The
-     custom data is set by the CUSTOM keyword to NLMLINK.  It is possible
-     for this to be EOF if there is no custom data. */
-
-  unsigned char customDataOffset[4];
-
-  /* The size of the custom data, in bytes. */
-
-  unsigned char customDataSize[4];
-
-  /* The byte offset of the module dependencies from the start of the file.
-     The module dependencies are determined by the MODULE keyword in
-     NLMLINK. */
-
-  unsigned char moduleDependencyOffset[4];
-
-  /* The number of module dependencies at the moduleDependencyOffset. */
-
-  unsigned char numberOfModuleDependencies[4];
-
-  /* The byte offset of the relocation fixup data from the start of the file */
-     
-  unsigned char relocationFixupOffset[4];
-
-  unsigned char numberOfRelocationFixups[4];
-
-  unsigned char externalReferencesOffset[4];
-
-  unsigned char numberOfExternalReferences[4];
-
-  unsigned char publicsOffset[4];
-
-  unsigned char numberOfPublics[4];
-
-  /* The byte offset of the internal debug info from the start of the file.
-     It is possible for this to be EOF if there is no debug info. */
-
-  unsigned char debugInfoOffset[4];
-
-  unsigned char numberOfDebugRecords[4];
-
-  unsigned char codeStartOffset[4];
-
-  unsigned char exitProcedureOffset[4];
-
-  unsigned char checkUnloadProcedureOffset[4];
-
-  unsigned char moduleType[4];
-
-  unsigned char flags[4];
-
-} Nlm32_powerpc_External_Fixed_Header;
diff --git a/include/nlm/sparc32-ext.h b/include/nlm/sparc32-ext.h
deleted file mode 100644
index 79b1cc4..0000000
--- a/include/nlm/sparc32-ext.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/* SPARC NLM (NetWare Loadable Module) support for BFD.
-   Copyright 1993 Free Software Foundation, Inc.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* The external format of the fixed header.  */
-
-typedef struct nlm32_sparc_external_fixed_header
-{
-
-  /* The signature field identifies the file as an NLM.  It must contain
-     the signature string, which depends upon the NLM target. */
-
-  unsigned char signature[24];
-
-  /* The version of the header.  At this time, the highest version number
-     is 4. */
-
-  unsigned char version[4];
-
-  /* The name of the module, which must be a DOS name (1-8 characters followed
-     by a period and a 1-3 character extension).  The first byte is the byte
-     length of the name and the last byte is a null terminator byte.  This
-     field is fixed length, and any unused bytes should be null bytes.  The
-     value is set by the OUTPUT keyword to NLMLINK. */
-
-  unsigned char moduleName[14];
-
-  /* Padding to make it come out correct. */
-
-  unsigned char pad1[2];
-
-  /* The byte offset of the code image from the start of the file. */
-
-  unsigned char codeImageOffset[4];
-
-  /* The size of the code image, in bytes. */
-
-  unsigned char codeImageSize[4];
-
-  /* The byte offset of the data image from the start of the file. */
-
-  unsigned char dataImageOffset[4];
-
-  /* The size of the data image, in bytes. */
-
-  unsigned char dataImageSize[4];
-
-  /* The size of the uninitialized data region that the loader is to be
-     allocated at load time.  Uninitialized data follows the initialized
-     data in the NLM address space. */
-
-  unsigned char uninitializedDataSize[4];
-
-  /* The byte offset of the custom data from the start of the file.  The
-     custom data is set by the CUSTOM keyword to NLMLINK.  It is possible
-     for this to be EOF if there is no custom data. */
-
-  unsigned char customDataOffset[4];
-
-  /* The size of the custom data, in bytes. */
-
-  unsigned char customDataSize[4];
-
-  /* The byte offset of the module dependencies from the start of the file.
-     The module dependencies are determined by the MODULE keyword in
-     NLMLINK. */
-
-  unsigned char moduleDependencyOffset[4];
-
-  /* The number of module dependencies at the moduleDependencyOffset. */
-
-  unsigned char numberOfModuleDependencies[4];
-
-  /* The byte offset of the relocation fixup data from the start of the file */
-     
-  unsigned char relocationFixupOffset[4];
-
-  unsigned char numberOfRelocationFixups[4];
-
-  unsigned char externalReferencesOffset[4];
-
-  unsigned char numberOfExternalReferences[4];
-
-  unsigned char publicsOffset[4];
-
-  unsigned char numberOfPublics[4];
-
-  /* The byte offset of the internal debug info from the start of the file.
-     It is possible for this to be EOF if there is no debug info. */
-
-  unsigned char debugInfoOffset[4];
-
-  unsigned char numberOfDebugRecords[4];
-
-  unsigned char codeStartOffset[4];
-
-  unsigned char exitProcedureOffset[4];
-
-  unsigned char checkUnloadProcedureOffset[4];
-
-  unsigned char moduleType[4];
-
-  unsigned char flags[4];
-
-} Nlm32_sparc_External_Fixed_Header;
diff --git a/include/oasys.h b/include/oasys.h
deleted file mode 100644
index 25672c7..0000000
--- a/include/oasys.h
+++ /dev/null
@@ -1,192 +0,0 @@
-/* Oasys object format header file for BFD.
-
-   Copyright 2001 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 2, 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., 51 Franklin Street - Fifth Floor,
-   Boston, MA 02110-1301, USA.
-   
-   Contributed by Cygnus Support.  */
-
-#define OASYS_MAX_SEC_COUNT 16
-/* **** */
-
-typedef struct oasys_archive_header
-  {
-    unsigned int  version;
-    char create_date[12];
-    char revision_date[12];
-    unsigned int mod_count;
-    file_ptr mod_tbl_offset;
-    unsigned int sym_tbl_size;
-    unsigned int sym_count;
-    file_ptr sym_tbl_offset;
-    unsigned int xref_count;
-    file_ptr xref_lst_offset;
-  }
-oasys_archive_header_type;
-
-typedef struct oasys_extarchive_header
-  {
-    bfd_byte version[4];
-    bfd_byte create_date[12];
-    bfd_byte revision_date[12];
-    bfd_byte mod_count[4];
-    bfd_byte mod_tbl_offset[4];
-    bfd_byte sym_tbl_size[4];
-    bfd_byte sym_count[4];
-    bfd_byte sym_tbl_offset[4];
-    bfd_byte xref_count[4];
-    bfd_byte xref_lst_offset[4];
-  }
-oasys_extarchive_header_type;
-
-typedef struct oasys_module_table
-  {
-    int mod_number;
-    char mod_date[12];
-    unsigned int mod_size;
-    unsigned int dep_count;
-    unsigned int depee_count;
-    file_ptr file_offset;
-    unsigned int sect_count;
-    char *module_name;
-    unsigned int module_name_size;
-  }
-oasys_module_table_type;
-
-typedef struct oasys_extmodule_table_a
-  {
-    bfd_byte mod_number[4];
-    bfd_byte mod_date[12];
-    bfd_byte mod_size[4];
-    bfd_byte dep_count[4];
-    bfd_byte depee_count[4];
-    bfd_byte sect_count[4];
-    bfd_byte file_offset[4];
-    bfd_byte mod_name[32];
-  }
-oasys_extmodule_table_type_a_type;
-
-typedef struct oasys_extmodule_table_b
-  {
-    bfd_byte mod_number[4];
-    bfd_byte mod_date[12];
-    bfd_byte mod_size[4];
-    bfd_byte dep_count[4];
-    bfd_byte depee_count[4];
-    bfd_byte sect_count[4];
-    bfd_byte file_offset[4];
-    bfd_byte mod_name_length[4];
-  }
-oasys_extmodule_table_type_b_type;
-
-typedef enum oasys_record
-  {
-    oasys_record_is_end_enum = 0,
-    oasys_record_is_data_enum = 1,
-    oasys_record_is_symbol_enum = 2,
-    oasys_record_is_header_enum = 3,
-    oasys_record_is_named_section_enum = 4,
-    oasys_record_is_com_enum = 5,
-    oasys_record_is_debug_enum = 6,
-    oasys_record_is_section_enum = 7,
-    oasys_record_is_debug_file_enum = 8,
-    oasys_record_is_module_enum = 9,
-    oasys_record_is_local_enum = 10
-  }
-oasys_record_enum_type;
-
-typedef struct oasys_record_header
-  {
-    unsigned char length;
-    unsigned char check_sum;
-    unsigned char type;
-    unsigned char fill;
-  }
-oasys_record_header_type;
-
-typedef struct oasys_data_record
-  {
-    oasys_record_header_type header;
-    unsigned char relb;
-    bfd_byte addr[4];
-    /* maximum total size of data record is 255 bytes */
-    bfd_byte data[246];
-  }
-oasys_data_record_type;
-
-typedef struct oasys_header_record
-  {
-    oasys_record_header_type header;
-    unsigned char version_number;
-    unsigned char rev_number;
-    char module_name[26-6];
-    char description[64-26];
-  }
-oasys_header_record_type;
-
-#define OASYS_VERSION_NUMBER 0
-#define OASYS_REV_NUMBER 0
-
-typedef struct oasys_symbol_record
-  {
-    oasys_record_header_type header;
-    unsigned char relb;
-    bfd_byte value[4];
-    bfd_byte refno[2];
-    char name[64];
-  }
-oasys_symbol_record_type;
-
-#define RELOCATION_PCREL_BIT 0x80
-#define RELOCATION_32BIT_BIT 0x40
-#define RELOCATION_TYPE_BITS 0x30
-#define RELOCATION_TYPE_ABS 0x00
-#define RELOCATION_TYPE_REL 0x10
-#define RELOCATION_TYPE_UND 0x20
-#define RELOCATION_TYPE_COM 0x30
-#define RELOCATION_SECT_BITS 0x0f
-
-typedef struct oasys_section_record
-  {
-    oasys_record_header_type header;
-    unsigned char relb;
-    bfd_byte value[4];
-    bfd_byte vma[4];
-    bfd_byte fill[3];
-  }
-oasys_section_record_type;
-
-typedef struct oasys_end_record
-  {
-    oasys_record_header_type header;
-    unsigned char relb;
-    bfd_byte entry[4];
-    bfd_byte fill[2];
-    bfd_byte zero;
-  }
-oasys_end_record_type;
-
-typedef union oasys_record_union
-  {
-    oasys_record_header_type header;
-    oasys_data_record_type data;
-    oasys_section_record_type section;
-    oasys_symbol_record_type symbol;
-    oasys_header_record_type first;
-    oasys_end_record_type end;
-    bfd_byte pad[256];
-  }
-oasys_record_union_type;
diff --git a/include/objalloc.h b/include/objalloc.h
deleted file mode 100644
index 36772d1..0000000
--- a/include/objalloc.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/* objalloc.h -- routines to allocate memory for objects
-   Copyright 1997, 2001 Free Software Foundation, Inc.
-   Written by Ian Lance Taylor, Cygnus Solutions.
-
-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, 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, 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#ifndef OBJALLOC_H
-#define OBJALLOC_H
-
-#include "ansidecl.h"
-
-/* These routines allocate space for an object.  The assumption is
-   that the object will want to allocate space as it goes along, but
-   will never want to free any particular block.  There is a function
-   to free a block, which also frees all more recently allocated
-   blocks.  There is also a function to free all the allocated space.
-
-   This is essentially a specialization of obstacks.  The main
-   difference is that a block may not be allocated a bit at a time.
-   Another difference is that these routines are always built on top
-   of malloc, and always pass an malloc failure back to the caller,
-   unlike more recent versions of obstacks.  */
-
-/* This is what an objalloc structure looks like.  Callers should not
-   refer to these fields, nor should they allocate these structure
-   themselves.  Instead, they should only create them via
-   objalloc_init, and only access them via the functions and macros
-   listed below.  The structure is only defined here so that we can
-   access it via macros.  */
-
-struct objalloc
-{
-  char *current_ptr;
-  unsigned int current_space;
-  void *chunks;
-};
-
-/* Work out the required alignment.  */
-
-struct objalloc_align { char x; double d; };
-
-#if defined (__STDC__) && __STDC__
-#ifndef offsetof
-#include <stddef.h>
-#endif
-#endif
-#ifndef offsetof
-#define offsetof(TYPE, MEMBER) ((unsigned long) &((TYPE *)0)->MEMBER)
-#endif
-#define OBJALLOC_ALIGN offsetof (struct objalloc_align, d)
-
-/* Create an objalloc structure.  Returns NULL if malloc fails.  */
-
-extern struct objalloc *objalloc_create (void);
-
-/* Allocate space from an objalloc structure.  Returns NULL if malloc
-   fails.  */
-
-extern void *_objalloc_alloc (struct objalloc *, unsigned long);
-
-/* The macro version of objalloc_alloc.  We only define this if using
-   gcc, because otherwise we would have to evaluate the arguments
-   multiple times, or use a temporary field as obstack.h does.  */
-
-#if defined (__GNUC__) && defined (__STDC__) && __STDC__
-
-/* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and
-   does not implement __extension__.  But that compiler doesn't define
-   __GNUC_MINOR__.  */
-#if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__)
-#define __extension__
-#endif
-
-#define objalloc_alloc(o, l)						\
-  __extension__								\
-  ({ struct objalloc *__o = (o);					\
-     unsigned long __len = (l);						\
-     if (__len == 0)							\
-       __len = 1;							\
-     __len = (__len + OBJALLOC_ALIGN - 1) &~ (OBJALLOC_ALIGN - 1);	\
-     (__len <= __o->current_space					\
-      ? (__o->current_ptr += __len,					\
-	 __o->current_space -= __len,					\
-	 (void *) (__o->current_ptr - __len))				\
-      : _objalloc_alloc (__o, __len)); })
-
-#else /* ! __GNUC__ */
-
-#define objalloc_alloc(o, l) _objalloc_alloc ((o), (l))
-
-#endif /* ! __GNUC__ */
-
-/* Free an entire objalloc structure.  */
-
-extern void objalloc_free (struct objalloc *);
-
-/* Free a block allocated by objalloc_alloc.  This also frees all more
-   recently allocated blocks.  */
-
-extern void objalloc_free_block (struct objalloc *, void *);
-
-#endif /* OBJALLOC_H */
diff --git a/include/obstack.h b/include/obstack.h
deleted file mode 100644
index 88c2a26..0000000
--- a/include/obstack.h
+++ /dev/null
@@ -1,545 +0,0 @@
-/* obstack.h - object stack macros
-   Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998,
-   1999, 2000, 2001, 2002, 2003, 2004, 2005
-   Free Software Foundation, Inc.
-
-
-   NOTE: The canonical source of this file is maintained with the GNU C Library.
-   Bugs can be reported to bug-glibc@gnu.org.
-
-   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, 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301,
-   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' an 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 _OBSTACK_H
-#define _OBSTACK_H 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* 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
-
-/* We need the type of the resulting object.  If __PTRDIFF_TYPE__ is
-   defined, as with GNU C, use that; that way we don't pollute the
-   namespace with <stddef.h>'s symbols.  Otherwise, if <stddef.h> is
-   available, include it and use ptrdiff_t.  In traditional C, long is
-   the best that we can do.  */
-
-#ifdef __PTRDIFF_TYPE__
-# define PTR_INT_TYPE __PTRDIFF_TYPE__
-#else
-# ifdef HAVE_STDDEF_H
-#  include <stddef.h>
-#  define PTR_INT_TYPE ptrdiff_t
-# else
-#  define PTR_INT_TYPE long
-# endif
-#endif
-
-#if defined _LIBC || defined HAVE_STRING_H
-# include <string.h>
-# define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N))
-#else
-# ifdef memcpy
-#  define _obstack_memcpy(To, From, N) memcpy ((To), (char *)(From), (N))
-# else
-#  define _obstack_memcpy(To, From, N) bcopy ((char *)(From), (To), (N))
-# endif
-#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 */
-  PTR_INT_TYPE temp;		/* Temporary for some macros.  */
-  int   alignment_mask;		/* Mask of alignment for each object. */
-  /* These prototypes vary based on `use_extra_arg', and we use
-     casts to the prototypeless function type in all assignments,
-     but having prototypes here quiets -Wstrict-prototypes.  */
-  struct _obstack_chunk *(*chunkfun) (void *, long);
-  void (*freefun) (void *, struct _obstack_chunk *);
-  void *extra_arg;		/* first arg for chunk alloc/dealloc funcs */
-  unsigned use_extra_arg:1;	/* chunk alloc/dealloc funcs take extra arg */
-  unsigned maybe_empty_object:1;/* There is a possibility that the current
-				   chunk contains a zero-length object.  This
-				   prevents freeing the chunk if we allocate
-				   a bigger chunk to replace it. */
-  unsigned alloc_failed:1;	/* No longer used, as we now call the failed
-				   handler on error, but retained for binary
-				   compatibility.  */
-};
-
-/* Declare the external functions we use; they are in obstack.c.  */
-
-extern void _obstack_newchunk (struct obstack *, int);
-extern void _obstack_free (struct obstack *, void *);
-extern int _obstack_begin (struct obstack *, int, int,
-			    void *(*) (long), void (*) (void *));
-extern int _obstack_begin_1 (struct obstack *, int, int,
-			     void *(*) (void *, long),
-			     void (*) (void *, void *), void *);
-extern int _obstack_memory_used (struct obstack *);
-
-/* 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_make_room (struct obstack *obstack, int size);
-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);
-int obstack_memory_used (struct obstack *obstack);
-
-/* Error handler called when `obstack_chunk_alloc' failed to allocate
-   more memory.  This can be set to a user defined function.  The
-   default action is to print a message and abort.  */
-extern void (*obstack_alloc_failed_handler) (void);
-
-/* Exit value used when `print_and_abort' is used.  */
-extern int obstack_exit_failure;
-
-/* 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)
-
-/* To prevent prototype warnings provide complete argument list in
-   standard C version.  */
-# define obstack_init(h) \
-  _obstack_begin ((h), 0, 0, \
-		  (void *(*) (long)) obstack_chunk_alloc, (void (*) (void *)) obstack_chunk_free)
-
-# define obstack_begin(h, size) \
-  _obstack_begin ((h), (size), 0, \
-		  (void *(*) (long)) obstack_chunk_alloc, (void (*) (void *)) obstack_chunk_free)
-
-# define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
-  _obstack_begin ((h), (size), (alignment), \
-		    (void *(*) (long)) (chunkfun), (void (*) (void *)) (freefun))
-
-# define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
-  _obstack_begin_1 ((h), (size), (alignment), \
-		    (void *(*) (void *, long)) (chunkfun), \
-		    (void (*) (void *, void *)) (freefun), (arg))
-
-# define obstack_chunkfun(h, newchunkfun) \
-  ((h) -> chunkfun = (struct _obstack_chunk *(*)(void *, long)) (newchunkfun))
-
-# define obstack_freefun(h, newfreefun) \
-  ((h) -> freefun = (void (*)(void *, struct _obstack_chunk *)) (newfreefun))
-
-#define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = (achar))
-
-#define obstack_blank_fast(h,n) ((h)->next_free += (n))
-
-#define obstack_memory_used(h) _obstack_memory_used (h)
-
-#if defined __GNUC__ && defined __STDC__ && __STDC__
-/* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and
-   does not implement __extension__.  But that compiler doesn't define
-   __GNUC_MINOR__.  */
-# if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__)
-#  define __extension__
-# endif
-
-/* 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)					\
-  __extension__								\
-  ({ struct obstack *__o = (OBSTACK);					\
-     (unsigned) (__o->next_free - __o->object_base); })
-
-# define obstack_room(OBSTACK)						\
-  __extension__								\
-  ({ struct obstack *__o = (OBSTACK);					\
-     (unsigned) (__o->chunk_limit - __o->next_free); })
-
-# define obstack_make_room(OBSTACK,length)				\
-__extension__								\
-({ struct obstack *__o = (OBSTACK);					\
-   int __len = (length);						\
-   if (__o->chunk_limit - __o->next_free < __len)			\
-     _obstack_newchunk (__o, __len);					\
-   (void) 0; })
-
-# define obstack_empty_p(OBSTACK)					\
-  __extension__								\
-  ({ struct obstack *__o = (OBSTACK);					\
-     (__o->chunk->prev == 0 && __o->next_free - __o->chunk->contents == 0); })
-
-# define obstack_grow(OBSTACK,where,length)				\
-__extension__								\
-({ struct obstack *__o = (OBSTACK);					\
-   int __len = (length);						\
-   if (__o->next_free + __len > __o->chunk_limit)			\
-     _obstack_newchunk (__o, __len);					\
-   _obstack_memcpy (__o->next_free, (where), __len);			\
-   __o->next_free += __len;						\
-   (void) 0; })
-
-# define obstack_grow0(OBSTACK,where,length)				\
-__extension__								\
-({ struct obstack *__o = (OBSTACK);					\
-   int __len = (length);						\
-   if (__o->next_free + __len + 1 > __o->chunk_limit)			\
-     _obstack_newchunk (__o, __len + 1);				\
-   _obstack_memcpy (__o->next_free, (where), __len);			\
-   __o->next_free += __len;						\
-   *(__o->next_free)++ = 0;						\
-   (void) 0; })
-
-# define obstack_1grow(OBSTACK,datum)					\
-__extension__								\
-({ struct obstack *__o = (OBSTACK);					\
-   if (__o->next_free + 1 > __o->chunk_limit)				\
-     _obstack_newchunk (__o, 1);					\
-   obstack_1grow_fast (__o, 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)				\
-__extension__								\
-({ struct obstack *__o = (OBSTACK);					\
-   if (__o->next_free + sizeof (void *) > __o->chunk_limit)		\
-     _obstack_newchunk (__o, sizeof (void *));				\
-   obstack_ptr_grow_fast (__o, datum); })
-
-# define obstack_int_grow(OBSTACK,datum)				\
-__extension__								\
-({ struct obstack *__o = (OBSTACK);					\
-   if (__o->next_free + sizeof (int) > __o->chunk_limit)		\
-     _obstack_newchunk (__o, sizeof (int));				\
-   obstack_int_grow_fast (__o, datum); })
-
-# define obstack_ptr_grow_fast(OBSTACK,aptr)				\
-__extension__								\
-({ struct obstack *__o1 = (OBSTACK);					\
-   *(const void **) __o1->next_free = (aptr);				\
-   __o1->next_free += sizeof (const void *);				\
-   (void) 0; })
-
-# define obstack_int_grow_fast(OBSTACK,aint)				\
-__extension__								\
-({ struct obstack *__o1 = (OBSTACK);					\
-   *(int *) __o1->next_free = (aint);					\
-   __o1->next_free += sizeof (int);					\
-   (void) 0; })
-
-# define obstack_blank(OBSTACK,length)					\
-__extension__								\
-({ struct obstack *__o = (OBSTACK);					\
-   int __len = (length);						\
-   if (__o->chunk_limit - __o->next_free < __len)			\
-     _obstack_newchunk (__o, __len);					\
-   obstack_blank_fast (__o, __len);					\
-   (void) 0; })
-
-# define obstack_alloc(OBSTACK,length)					\
-__extension__								\
-({ struct obstack *__h = (OBSTACK);					\
-   obstack_blank (__h, (length));					\
-   obstack_finish (__h); })
-
-# define obstack_copy(OBSTACK,where,length)				\
-__extension__								\
-({ struct obstack *__h = (OBSTACK);					\
-   obstack_grow (__h, (where), (length));				\
-   obstack_finish (__h); })
-
-# define obstack_copy0(OBSTACK,where,length)				\
-__extension__								\
-({ struct obstack *__h = (OBSTACK);					\
-   obstack_grow0 (__h, (where), (length));				\
-   obstack_finish (__h); })
-
-/* The local variable is named __o1 to avoid a name conflict
-   when obstack_blank is called.  */
-# define obstack_finish(OBSTACK)  					\
-__extension__								\
-({ struct obstack *__o1 = (OBSTACK);					\
-   void *value;								\
-   value = (void *) __o1->object_base;					\
-   if (__o1->next_free == value)					\
-     __o1->maybe_empty_object = 1;					\
-   __o1->next_free							\
-     = __INT_TO_PTR ((__PTR_TO_INT (__o1->next_free)+__o1->alignment_mask)\
-		     & ~ (__o1->alignment_mask));			\
-   if (__o1->next_free - (char *)__o1->chunk				\
-       > __o1->chunk_limit - (char *)__o1->chunk)			\
-     __o1->next_free = __o1->chunk_limit;				\
-   __o1->object_base = __o1->next_free;					\
-   value; })
-
-# define obstack_free(OBSTACK, OBJ)					\
-__extension__								\
-({ struct obstack *__o = (OBSTACK);					\
-   void *__obj = (void *) (OBJ);					\
-   if (__obj > (void *)__o->chunk && __obj < (void *)__o->chunk_limit)  \
-     __o->next_free = __o->object_base = (char *) __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_empty_p(h) \
- ((h)->chunk->prev == 0 && (h)->next_free - (h)->chunk->contents == 0)
-
-/* Note that the call to _obstack_newchunk is enclosed in (..., 0)
-   so that we can avoid having void expressions
-   in the arms of the conditional expression.
-   Casting the third operand to void was tried before,
-   but some compilers won't accept it.  */
-
-# define obstack_make_room(h,length)					\
-( (h)->temp = (length),							\
-  (((h)->next_free + (h)->temp > (h)->chunk_limit)			\
-   ? (_obstack_newchunk ((h), (h)->temp), 0) : 0))
-
-# define obstack_grow(h,where,length)					\
-( (h)->temp = (length),							\
-  (((h)->next_free + (h)->temp > (h)->chunk_limit)			\
-   ? (_obstack_newchunk ((h), (h)->temp), 0) : 0),			\
-  _obstack_memcpy ((h)->next_free, (where), (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) : 0),			\
-  _obstack_memcpy ((h)->next_free, (where), (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) : 0),				\
-  obstack_1grow_fast (h, datum))
-
-# define obstack_ptr_grow(h,datum)					\
-( (((h)->next_free + sizeof (char *) > (h)->chunk_limit)		\
-   ? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0),		\
-  obstack_ptr_grow_fast (h, datum))
-
-# define obstack_int_grow(h,datum)					\
-( (((h)->next_free + sizeof (int) > (h)->chunk_limit)			\
-   ? (_obstack_newchunk ((h), sizeof (int)), 0) : 0),			\
-  obstack_int_grow_fast (h, datum))
-
-# define obstack_ptr_grow_fast(h,aptr)					\
-  (((const void **) ((h)->next_free += sizeof (void *)))[-1] = (aptr))
-
-# define obstack_int_grow_fast(h,aint)					\
-  (((int *) ((h)->next_free += sizeof (int)))[-1] = (aptr))
-
-# define obstack_blank(h,length)					\
-( (h)->temp = (length),							\
-  (((h)->chunk_limit - (h)->next_free < (h)->temp)			\
-   ? (_obstack_newchunk ((h), (h)->temp), 0) : 0),			\
-  obstack_blank_fast (h, (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)->next_free == (h)->object_base					\
-   ? (((h)->maybe_empty_object = 1), 0)					\
-   : 0),								\
-  (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))
-
-# 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), 0)))
-
-#endif /* not __GNUC__ or not __STDC__ */
-
-#ifdef __cplusplus
-}	/* C++ */
-#endif
-
-#endif /* obstack.h */
diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog
deleted file mode 100644
index 5170514..0000000
--- a/include/opcode/ChangeLog
+++ /dev/null
@@ -1,572 +0,0 @@
-2006-07-14  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* i386.h (i386_optab): Remove InvMem from maskmovq, movhlps,
-	movlhps, movmskps, pextrw, pmovmskb, movmskpd, maskmovdqu,
-	movdq2q and movq2dq.
-
-2006-07-10 Dwarakanath Rajagopal	<dwarak.rajagopal@amd.com>
-	   Michael Meissner		<michael.meissner@amd.com>
-
-	* i386.h: Add amdfam10 new instructions (SSE4a and ABM instructions).
-
-2006-06-12  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* i386.h (i386_optab): Add "nop" with memory reference.
-
-2006-06-12  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* i386.h (i386_optab): Update comment for 64bit NOP.
-
-2006-06-06  Ben Elliston  <bje@au.ibm.com>
-	    Anton Blanchard  <anton@samba.org>
-
-	* ppc.h (PPC_OPCODE_POWER6): Define.
-	Adjust whitespace.
-
-2006-06-05  Thiemo Seufer  <ths@mips.com>
-
-	* mips.h: Improve description of MT flags.	
-
-2006-05-25  Richard Sandiford  <richard@codesourcery.com>
-
-	* m68k.h (mcf_mask): Define.
-
-2006-05-05  Thiemo Seufer  <ths@mips.com>
-            David Ung  <davidu@mips.com>
-
-	* mips.h (enum): Add macro M_CACHE_AB.
-
-2006-05-04  Thiemo Seufer  <ths@mips.com>
-            Nigel Stephens  <nigel@mips.com>
-	    David Ung  <davidu@mips.com>
-
-	* mips.h: Add INSN_SMARTMIPS define.
-
-2006-04-30  Thiemo Seufer  <ths@mips.com>
-            David Ung  <davidu@mips.com>
-
-	* mips.h: Defines udi bits and masks.  Add description of
-	characters which may appear in the args field of udi
-	instructions.
-
-2006-04-26  Thiemo Seufer  <ths@networkno.de>
-
-	* mips.h: Improve comments describing the bitfield instruction
-	fields.
-
-2006-04-26  Julian Brown  <julian@codesourcery.com>
-
-	* arm.h (FPU_VFP_EXT_V3): Define constant.
-	(FPU_NEON_EXT_V1): Likewise.
-	(FPU_VFP_HARD): Update.
-	(FPU_VFP_V3): Define macro.
-	(FPU_ARCH_VFP_V3, FPU_ARCH_VFP_V3_PLUS_NEON_V1): Define macros.
-
-2006-04-07  Joerg Wunsch  <j.gnu@uriah.heep.sax.de>
-
-	* avr.h (AVR_ISA_PWMx): New.
-
-2006-03-28  Nathan Sidwell  <nathan@codesourcery.com>
-
-	* m68k.h (cpu_m68k, cpu_cf, cpu_m68000, cpu_m68008, cpu_m68010,
-	cpu_m68020, cpu_m68ec030, cpu_m68040, cpu_m68060, cpu_m68851,
-	cpu_m68881, cpu_m68882, cpu_cpu32, cpu_cf5200, cpu_cf5206e,
-	cpu_cf5208, cpu_cf521x, cpu_cf5213, cpu_cf5249, cpu_cf528x,
-	cpu_cf5307, cpu_cf5329, cpu_cf5407, cpu_cf547x, cpu_cf548x): Remove.
-
-2006-03-10  Paul Brook  <paul@codesourcery.com>
-
-	* arm.h (ARM_AEXT_V7_ARM): Include v6ZK extensions.
-
-2006-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-
-	* hppa.h (pa_opcodes): Reorder bb opcodes so that pa10 opcodes come
-	first.  Correct mask of bb "B" opcode.
-
-2006-02-27  H.J. Lu <hongjiu.lu@intel.com>
-
-	* i386.h (i386_optab): Support Intel Merom New Instructions.
-
-2006-02-24  Paul Brook  <paul@codesourcery.com>
-
-	* arm.h: Add V7 feature bits.
-
-2006-02-23  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* ia64.h (ia64_opnd): Add IA64_OPND_IMMU5b.
-
-2006-01-31  Paul Brook  <paul@codesourcery.com>
-	Richard Earnshaw <rearnsha@arm.com>
-
-	* arm.h: Use ARM_CPU_FEATURE.
-	(ARM_AEXT_*, FPU_ENDIAN_PURE, FPU_VFP_HARD): New.
-	(arm_feature_set): Change to a structure.
-	(ARM_CPU_HAS_FEATURE, ARM_MERGE_FEATURE_SETS, ARM_CLEAR_FEATURE,
-	ARM_FEATURE): New macros.
-
-2005-12-07  Hans-Peter Nilsson  <hp@axis.com>
-
-	* cris.h (MOVE_M_TO_PREG_OPCODE, MOVE_M_TO_PREG_ZBITS)
-	(MOVE_PC_INCR_OPCODE_PREFIX, MOVE_PC_INCR_OPCODE_SUFFIX): New macros.
-	(ADD_PC_INCR_OPCODE): Don't define.
-
-2005-12-06  H.J. Lu  <hongjiu.lu@intel.com>
-
-	PR gas/1874
-	* i386.h (i386_optab): Add 64bit support for monitor and mwait.
-
-2005-11-14  David Ung  <davidu@mips.com>
-
-	* mips.h: Assign 'm'/'M' codes to MIPS16e save/restore
-	instructions.  Define MIPS16_ALL_ARGS and MIPS16_ALL_STATICS for
-	save/restore encoding of the args field.
-
-2005-10-28  Dave Brolley  <brolley@redhat.com>
-
-	Contribute the following changes:
-	2005-02-16  Dave Brolley  <brolley@redhat.com>
-
-	* cgen-bitset.h: Rename CGEN_ISA_MASK to CGEN_BITSET. Rename
-	cgen_isa_mask_* to cgen_bitset_*.
-	* cgen.h: Likewise.
-
-	2003-10-21  Richard Sandiford  <rsandifo@redhat.com>
-
-	* cgen.h (CGEN_BITSET_ATTR_VALUE): Fix definition.
-	(CGEN_ATTR_ENTRY): Change "value" to type "unsigned".
-	(CGEN_CPU_TABLE): Make isas a ponter.
-
-	2003-09-29  Dave Brolley  <brolley@redhat.com>
-
-	* cgen.h (CGEN_ATTR_VALUE_BITSET_TYPE): New typedef.
-	(CGEN_ATTR_VALUE_ENUM_TYPE): Ditto.
-	(CGEN_ATTR_VALUE_TYPE): Use these new typedefs.
-
-	2002-12-13  Dave Brolley  <brolley@redhat.com>
-
-	* cgen.h (symcat.h): #include it.
-	(cgen-bitset.h): #include it.
-	(CGEN_ATTR_VALUE_TYPE): Now a union.
-	(CGEN_ATTR_VALUE): Reference macros generated in opcodes/<arch>-desc.h.
-	(CGEN_ATTR_ENTRY): 'value' now unsigned.
-	(cgen_cpu_desc): 'isas' now (CGEN_ISA_MASK*).
-	* cgen-bitset.h: New file.
-
-2005-09-30  Catherine Moore  <clm@cm00re.com>
-
-	* bfin.h: New file.
-
-2005-10-24  Jan Beulich  <jbeulich@novell.com>
-
-	* ia64.h (enum ia64_opnd): Move memory operand out of set of
-	indirect operands.
-
-2005-10-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-
-	* hppa.h (pa_opcodes): Add two fcmp opcodes.  Reorder ftest opcodes.
-	Add FLAG_STRICT to pa10 ftest opcode.
-
-2005-10-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-
-	* hppa.h (pa_opcodes): Remove lha entries.
-
-2005-10-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-
-	* hppa.h (FLAG_STRICT): Revise comment.
-	(pa_opcode): Revise ordering rules.  Add/move strict pa10 variants
-	before corresponding pa11 opcodes.  Add strict pa10 register-immediate
-	entries for "fdc".
-
-2005-09-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-
-	* hppa.h (pa_opcodes): Add new "fdc" and "fic" opcode entries.
-
-2005-09-06  Chao-ying Fu  <fu@mips.com>
-
-	* mips.h (OP_SH_MT_U, OP_MASK_MT_U, OP_SH_MT_H, OP_MASK_MT_H,
-	OP_SH_MTACC_T, OP_MASK_MTACC_T, OP_SH_MTACC_D, OP_MASK_MTACC_D): New
-	define.
-	Document !, $, *, &, g, +t, +T operand formats for MT instructions.
-	(INSN_ASE_MASK): Update to include INSN_MT.
-	(INSN_MT): New define for MT ASE.
-
-2005-08-25  Chao-ying Fu  <fu@mips.com>
-
-	* mips.h (OP_SH_DSPACC, OP_MASK_DSPACC, OP_SH_DSPACC_S,
-	OP_MASK_DSPACC_S, OP_SH_DSPSFT, OP_MASK_DSPSFT, OP_SH_DSPSFT_7,
-	OP_MASK_DSPSFT_7, OP_SH_SA3, OP_MASK_SA3, OP_SH_SA4, OP_MASK_SA4,
-	OP_SH_IMM8, OP_MASK_IMM8, OP_SH_IMM10, OP_MASK_IMM10, OP_SH_WRDSP,
-	OP_MASK_WRDSP, OP_SH_RDDSP, OP_MASK_RDDSP): New define.
-	Document 3, 4, 5, 6, 7, 8, 9, 0, :, ', @ operand formats for DSP
-	instructions.
-	(INSN_DSP): New define for DSP ASE.
-
-2005-08-18  Alan Modra  <amodra@bigpond.net.au>
-
-	* a29k.h: Delete.
-
-2005-08-15  Daniel Jacobowitz  <dan@codesourcery.com>
-
-	* ppc.h (PPC_OPCODE_E300): Define.
-
-2005-08-12 Martin Schwidefsky  <schwidefsky@de.ibm.com>
-
-	* s390.h (s390_opcode_cpu_val): Add enum for cpu type z9-109.
-
-2005-07-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-
-	PR gas/336
- 	* hppa.h (pa_opcodes): Allow 0 immediates in PA 2.0 variants of pdtlb
-	and pitlb.
-
-2005-07-27  Jan Beulich  <jbeulich@novell.com>
-
-	* i386.h (i386_optab): Add comment to movd. Use LongMem for all
-	movd-s. Add NoRex64 to movq-s dealing only with mmx or xmm registers.
-	Add movq-s as 64-bit variants of movd-s.
-
-2005-07-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-
-	* hppa.h: Fix punctuation in comment.
-
-	* hppa.h (pa_opcode):  Add rules for opcode ordering.  Check first for
-	implicit space-register addressing.  Set space-register bits on opcodes
-	using implicit space-register addressing.  Add various missing pa20
-	long-immediate opcodes.  Remove various opcodes using implicit 3-bit
-	space-register addressing.  Use "fE" instead of "fe" in various
-	fstw opcodes.
-
-2005-07-18  Jan Beulich  <jbeulich@novell.com>
-
-	* i386.h (i386_optab): Operands of aam and aad are unsigned.
-
-2007-07-15  H.J. Lu <hongjiu.lu@intel.com>
-
-	* i386.h (i386_optab): Support Intel VMX Instructions.
-
-2005-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-
-	* hppa.h (pa_opcode): Don't set FLAG_STRICT in pa10 loads and stores.
-
-2005-07-05  Jan Beulich  <jbeulich@novell.com>
-
-	* i386.h (i386_optab): Add new insns.
-
-2005-07-01  Nick Clifton  <nickc@redhat.com>
-
-	* sparc.h: Add typedefs to structure declarations.
-
-2005-06-20  H.J. Lu  <hongjiu.lu@intel.com>
-
-	PR 1013
-	* i386.h (i386_optab): Update comments for 64bit addressing on
-	mov. Allow 64bit addressing for mov and movq.
-
-2005-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-
-	* hppa.h (pa_opcodes): Use cM and cX instead of cm and cx,
-	respectively, in various floating-point load and store patterns.
-
-2005-05-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-
-	* hppa.h (FLAG_STRICT): Correct comment.
-	(pa_opcodes): Update load and store entries to allow both PA 1.X and
-	PA 2.0 mneumonics when equivalent.  Entries with cache control
-	completers now require PA 1.1.  Adjust whitespace.
-
-2005-05-19  Anton Blanchard  <anton@samba.org>
-
-	* ppc.h (PPC_OPCODE_POWER5): Define.
-
-2005-05-10  Nick Clifton  <nickc@redhat.com>
-
-	* Update the address and phone number of the FSF organization in
-	the GPL notices in the following files:
-	a29k.h,	alpha.h, arc.h, arm.h, avr.h, cgen.h, convex.h, cris.h,
-	crx.h, d10v.h, d30v.h, dlx.h, h8300.h, hppa.h, i370.h, i386.h,
-	i860.h, i960.h, m68hc11.h, m68k.h, m88k.h, maxq.h, mips.h, mmix.h,
-	mn10200.h, mn10300.h, msp430.h, np1.h, ns32k.h, or32.h, pdp11.h,
-	pj.h, pn.h, ppc.h, pyr.h, s390.h, sparc.h, tic30.h, tic4x.h,
-	tic54x.h, tic80.h, v850.h, vax.h
-
-2005-05-09  Jan Beulich  <jbeulich@novell.com>
-
-	* i386.h (i386_optab): Add ht and hnt.
-
-2005-04-18  Mark Kettenis  <kettenis@gnu.org>
-
-	* i386.h: Insert hyphens into selected VIA PadLock extensions.
-	Add xcrypt-ctr.  Provide aliases without hyphens.
-
-2005-04-13  H.J. Lu  <hongjiu.lu@intel.com>
-
-	Moved from ../ChangeLog
-
-	2005-04-12  Paul Brook  <paul@codesourcery.com>
-	* m88k.h: Rename psr macros to avoid conflicts.
-
-	2005-03-12  Zack Weinberg  <zack@codesourcery.com>
-	* arm.h: Adjust comments for ARM_EXT_V4T and ARM_EXT_V5T.
-	Add ARM_EXT_V6T2, ARM_ARCH_V6T2, ARM_ARCH_V6KT2, ARM_ARCH_V6ZT2,
-	and ARM_ARCH_V6ZKT2.
-
-	2004-11-29  Tomer Levi  <Tomer.Levi@nsc.com>
-	* crx.h (enum operand_type): Rename rbase_cst4 to rbase_dispu4.
-	Remove redundant instruction types.
-	(struct argument): X_op - new field.
-	(struct cst4_entry): Remove.
-	(no_op_insn): Declare.
-
-	2004-11-05  Tomer Levi  <Tomer.Levi@nsc.com>
-	* crx.h (enum argtype): Rename types, remove unused types.
-
-	2004-10-27  Tomer Levi  <Tomer.Levi@nsc.com>
-	* crx.h (enum reg): Rearrange registers, remove 'ccfg' and `'pc'.
-	(enum reg_type): Remove CRX_PC_REGTYPE, CRX_MTPR_REGTYPE.
-	(enum operand_type): Rearrange operands, edit comments.
-	replace us<N> with ui<N> for unsigned immediate.
-	replace d<N> with disps<N>/dispu<N>/dispe<N> for signed/unsigned/escaped
-	displacements (respectively).
-	replace rbase_ridx_scl2_dispu<N> with rindex_disps<N> for register index.
-	(instruction type): Add NO_TYPE_INS.
-	(instruction flags): Add USER_REG, CST4MAP, NO_SP, NO_RPTR.
-	(operand_entry): New field - 'flags'.
-	(operand flags): New.
-
-	2004-10-21  Tomer Levi  <Tomer.Levi@nsc.com>
-	* crx.h (operand_type): Remove redundant types i3, i4,
-	i5, i8, i12.
-	Add new unsigned immediate types us3, us4, us5, us16.
-
-2005-04-12  Mark Kettenis  <kettenis@gnu.org>
-
-	* i386.h (i386_optab): Mark VIA PadLock instructions as ImmExt and
-	adjust them accordingly.
-
-2005-04-01  Jan Beulich  <jbeulich@novell.com>
-
-	* i386.h (i386_optab): Add rdtscp.
-
-2005-03-29  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* i386.h (i386_optab): Don't allow the `l' suffix for moving
-	between memory and segment register. Allow movq for moving between
-	general-purpose register and segment register.
-
-2005-02-09  Jan Beulich  <jbeulich@novell.com>
-
-	PR gas/707
-	* i386.h (i386_optab): Add x_Suf to fbld and fbstp. Add w_Suf and
-	FloatMF to fldcw, fstcw, fnstcw, and the memory formas of fstsw and
-	fnstsw.
-
-2006-02-07  Nathan Sidwell  <nathan@codesourcery.com>
-
-	* m68k.h (m68008, m68ec030, m68882): Remove.
-	(m68k_mask): New.
-	(cpu_m68k, cpu_cf): New.
-	(mcf5200, mcf5206e, mcf521x, mcf5249, mcf528x, mcf5307, mcf5407,
-	mcf5470, mcf5480): Rename to cpu_<foo>. Add m680x0 variants.
-
-2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
-
-	2004-11-10  Alexandre Oliva  <aoliva@redhat.com>
-	* cgen.h (enum cgen_parse_operand_type): Add
-	CGEN_PARSE_OPERAND_SYMBOLIC.
-
-2005-01-21  Fred Fish  <fnf@specifixinc.com>
-
-	* mips.h: Change INSN_ALIAS to INSN2_ALIAS.
-	Change INSN_WRITE_MDMX_ACC to INSN2_WRITE_MDMX_ACC.
-	Change INSN_READ_MDMX_ACC to INSN2_READ_MDMX_ACC.
-
-2005-01-19  Fred Fish  <fnf@specifixinc.com>
-
-	* mips.h (struct mips_opcode): Add new pinfo2 member.
-	(INSN_ALIAS): New define for opcode table entries that are
-	specific instances of another entry, such as 'move' for an 'or'
-	with a zero operand.
-	(INSN_READ_MDMX_ACC): Redefine from 0 to 0x2.
-	(INSN_WRITE_MDMX_ACC): Redefine from 0 to 0x4.
-
-2004-12-09  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* mips.h (CPU_RM9000): Define.
-	(OPCODE_IS_MEMBER): Handle CPU_RM9000.
-
-2004-11-25 Jan Beulich  <jbeulich@novell.com>
-
-	* i386.h: CpuNo64 mov can't reasonably have a 'q' suffix. Moves
-	to/from test registers are illegal in 64-bit mode. Add missing
-	NoRex64 to sidt. fxsave/fxrstor now allow for a 'q' suffix
-	(previously one had to explicitly encode a rex64 prefix). Re-enable
-	lahf/sahf in 64-bit mode as at least some Athlon64/Opteron steppings
-	support it there. Add cmpxchg16b as per Intel's 64-bit documentation.
-
-2004-11-23 Jan Beulich  <jbeulich@novell.com>
-
-	* i386.h (i386_optab): paddq and psubq, even in their MMX form, are
-	available only with SSE2. Change the MMX additions introduced by SSE
-	and 3DNow!A to CpuMMX2 (rather than CpuMMX). Indicate the 3DNow!A
-	instructions by their now designated identifier (since combining i686
-	and 3DNow! does not really imply 3DNow!A).
-
-2004-11-19  Alan Modra  <amodra@bigpond.net.au>
-
-	* msp430.h (struct rcodes_s, MSP430_RLC, msp430_rcodes,
-	struct hcodes_s, msp430_hcodes): Move to gas/config/tc-msp430.c.
-
-2004-11-08  Inderpreet Singh   <inderpreetb@nioda.hcltech.com>
-	    Vineet Sharma      <vineets@noida.hcltech.com>
-
-	* maxq.h: New file: Disassembly information for the maxq port.
-
-2004-11-05  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* i386.h (i386_optab): Put back "movzb".
-
-2004-11-04  Hans-Peter Nilsson  <hp@axis.com>
-
-	* cris.h (enum cris_insn_version_usage): Tweak formatting and
-	comments.  Remove member cris_ver_sim.  Add members
-	cris_ver_sim_v0_10, cris_ver_v0_10, cris_ver_v3_10,
-	cris_ver_v8_10, cris_ver_v10, cris_ver_v10p.
-	(struct cris_support_reg, struct cris_cond15): New types.
-	(cris_conds15): Declare.
-	(JUMP_PC_INCR_OPCODE_V32, BA_DWORD_OPCODE, NOP_OPCODE_COMMON)
-	(NOP_OPCODE_ZBITS_COMMON, LAPC_DWORD_OPCODE, LAPC_DWORD_Z_BITS)
-	(NOP_OPCODE_V32, NOP_Z_BITS_V32): New macros.
-	(NOP_Z_BITS): Define in terms of NOP_OPCODE.
-	(cris_imm_oprnd_size_type): New members SIZE_FIELD_SIGNED and
-	SIZE_FIELD_UNSIGNED.
-
-2004-11-04 Jan Beulich  <jbeulich@novell.com>
-
-	* i386.h (sldx_Suf): Remove.
-	(FP, l_FP, sl_FP, x_FP): Don't imply IgnoreSize.
-	(q_FP): Define, implying no REX64.
-	(x_FP, sl_FP): Imply FloatMF.
-	(i386_optab): Split reg and mem forms of moving from segment registers
-	so that the memory forms can ignore the 16-/32-bit operand size
-	distinction. Adjust a few others for Intel mode. Remove *FP uses from
-	all non-floating-point instructions. Unite 32- and 64-bit forms of
-	movsx, movzx, and movd. Adjust floating point operations for the above
-	changes to the *FP macros. Add DefaultSize to floating point control
-	insns operating on larger memory ranges. Remove left over comments
-	hinting at certain insns being Intel-syntax ones where the ones
-	actually meant are already gone.
-
-2004-10-07  Tomer Levi  <Tomer.Levi@nsc.com>
-
-	* crx.h: Add COPS_REG_INS - Coprocessor Special register
-	instruction type.
-
-2004-09-30  Paul Brook  <paul@codesourcery.com>
-
-	* arm.h (ARM_EXT_V6K, ARM_EXT_V6Z): Define.
-	(ARM_ARCH_V6K, ARM_ARCH_V6Z, ARM_ARCH_V6ZK): Define.
-
-2004-09-11  Theodore A. Roth  <troth@openavr.org>
-
-	* avr.h: Add support for
-	atmega48, atmega88, atmega168, attiny13, attiny2313, at90can128.
-
-2004-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
-
-	* ppc.h (PPC_OPERAND_OPTIONAL): Fix comment.
-
-2004-08-24  Dmitry Diky  <diwil@spec.ru>
-
-	* msp430.h (msp430_opc): Add new instructions.
-	(msp430_rcodes): Declare new instructions.
-	(msp430_hcodes): Likewise..
-
-2004-08-13  Nick Clifton  <nickc@redhat.com>
-
-	PR/301
-	* h8300.h (O_JSR): Do not allow VECIND addressing for non-SX
-	processors.
-
-2004-08-30  Michal Ludvig  <mludvig@suse.cz>
-
-	* i386.h (i386_optab): Added montmul/xsha1/xsha256 insns.
-
-2004-07-22  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* i386.h (i386_optab): Allow cs/ds in 64bit for branch hints.
-
-2004-07-21  Jan Beulich  <jbeulich@novell.com>
-
-	* i386.h: Adjust instruction descriptions to better match the
-	specification.
-
-2004-07-16  Richard Earnshaw  <rearnsha@arm.com>
-
-	* arm.h: Remove all old content.  Replace with architecture defines
-	from gas/config/tc-arm.c.
-
-2004-07-09  Andreas Schwab  <schwab@suse.de>
-
-	* m68k.h: Fix comment.
-
-2004-07-07  Tomer Levi  <Tomer.Levi@nsc.com>
-
-	* crx.h: New file.
-
-2004-06-24  Alan Modra  <amodra@bigpond.net.au>
-
-	* i386.h (i386_optab): Remove fildd, fistpd and fisttpd.
-
-2004-05-24  Peter Barada  <peter@the-baradas.com>
-
-	* m68k.h: Add 'size' to m68k_opcode.
-
-2004-05-05  Peter Barada  <peter@the-baradas.com>
-
-	* m68k.h: Switch from ColdFire chip name to core variant.
-
-2004-04-22  Peter Barada  <peter@the-baradas.com>
-
-	* m68k.h: Add mcfmac/mcfemac definitions.  Update operand
-	descriptions for new EMAC cases.
-	Remove ColdFire macmw/macml/msacmw/msacmw hacks and properly
-	handle Motorola MAC syntax.
-	Allow disassembly of ColdFire V4e object files.
-
-2004-03-16  Alan Modra  <amodra@bigpond.net.au>
-
-	* ppc.h (PPC_OPERAND_GPR_0): Define.  Bump other operand defines.
-
-2004-03-12  Jakub Jelinek  <jakub@redhat.com>
-
-	* i386.h (i386_optab): Remove CpuNo64 from sysenter and sysexit.
-
-2004-03-12  Michal Ludvig  <mludvig@suse.cz>
-
-	* i386.h (i386_optab): Added xstore as an alias for xstorerng.
-
-2004-03-12  Michal Ludvig  <mludvig@suse.cz>
-
-	* i386.h (i386_optab): Added xstore/xcrypt insns.
-
-2004-02-09  Anil Paranjpe  <anilp1@KPITCummins.com>
-
-	* h8300.h (32bit ldc/stc): Add relaxing support.
-
-2004-01-12  Anil Paranjpe  <anilp1@KPITCummins.com>
-
-	* h8300.h (BITOP): Pass MEMRELAX flag.
-
-2004-01-09  Anil Paranjpe  <anilp1@KPITCummins.com>
-
-	* h8300.h (BITOP): Dissallow operations on @aa:16 and @aa:32
-	except for the H8S.
-
-For older changes see ChangeLog-9103
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/include/opcode/ChangeLog-9103 b/include/opcode/ChangeLog-9103
deleted file mode 100644
index 9a04bf5..0000000
--- a/include/opcode/ChangeLog-9103
+++ /dev/null
@@ -1,3121 +0,0 @@
-2005-04-13  H.J. Lu  <hongjiu.lu@intel.com>
-
-	2003-11-18  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
-	* mips.h: Define new enum members, M_LCA_AB and M_DLCA_AB.
-
-	2003-04-04  Svein E. Seldal  <Svein.Seldal@solidas.com>
-	* tic4x.h: Namespace cleanup. Replace s/c4x/tic4x
-
-	2002-11-16  Klee Dienes  <kdienes@apple.com>
-	* m88k.h (INSTAB): Remove 'next' field.
-	(instruction): Remove definition; replace with extern declaration
-	and mark as const.
-
-	2002-08-28  Michael Hayes <m.hayes@elec.canterbury.ac.nz>
-	* tic4x.h: New file.
-
-	2002-07-25  Richard Sandiford  <rsandifo@redhat.com>
-	* mips.h (CPU_R2000): Remove.
-
-2003-10-21  Peter Barada  <pbarada@mail.wm.sps.mot.com>
-	    Bernardo Innocenti  <bernie@develer.com>
-
-	* m68k.h: Add MCFv4/MCF5528x support.
-
-2003-10-19  Hans-Peter Nilsson  <hp@bitrange.com>
-
-	* mmix.h (JMP_INSN_BYTE): Define.
-
-2003-09-30  Chris Demetriou  <cgd@broadcom.com>
-
-	* mips.h: Document +E, +F, +G, +H, and +I operand types.
-	Update documentation of I, +B and +C operand types.
-	(INSN_ISA64R2, ISA_MIPS64R2, CPU_MIPS64R2): New defines.
-	(M_DEXT, M_DINS): New enum values.
-
-2003-09-04  Nick Clifton  <nickc@redhat.com>
-
-	* v850.h (PROCESSOR_V850E1): Define.
-
-2003-08-19  Alan Modra  <amodra@bigpond.net.au>
-
-	* ppc.h (PPC_OPCODE_440): Define.  Formatting.  Use hex for other
-	PPC_OPCODE_* defines.
-
-2003-08-16  Jason Eckhardt  <jle@rice.edu>
-
-	* i860.h (fmov.ds): Expand as famov.ds.
-	(fmov.sd): Expand as famov.sd.
-	(pfmov.ds): Expand as pfamov.ds.
-
-2003-08-07  Michael Meissner  <gnu@the-meissners.org>
-
-	* cgen.h: Remove PARAM macro usage in all prototypes.
-	(CGEN_EXTRACT_INFO): Use void * instead of PTR.
-	(cgen_print_fn): Ditto.
-	(CGEN_HW_ENTRY): Ditto.
-	(CGEN_MAYBE_MULTI_IFLD): Ditto.
-	(struct cgen_insn): Ditto.
-	(CGEN_CPU_TABLE): Ditto.
-
-2003-08-07  Alan Modra  <amodra@bigpond.net.au>
-
-	* alpha.h: Remove PARAMS macro.
-	* arc.h: Likewise.
-	* d10v.h: Likewise.
-	* d30v.h: Likewise.
-	* i370.h: Likewise.
-	* or32.h: Likewise.
-	* pj.h: Likewise.
-	* ppc.h: Likewise.
-	* sparc.h: Likewise.
-	* tic80.h: Likewise.
-	* v850.h: Likewise.
-
-2003-07-18  Michael Snyder  <msnyder@redhat.com>
-
-	* include/opcode/h8sx.h (DO_MOVA1, DO_MOVA2): Reformatting.
-
-2003-07-15  Richard Sandiford  <rsandifo@redhat.com>
-
-	* mips.h (CPU_RM7000): New macro.
-	(OPCODE_IS_MEMBER): Match CPU_RM7000 against 4650 insns.
-
-2003-07-09  Alexandre Oliva  <aoliva@redhat.com>
-
-	2000-04-01  Alexandre Oliva  <aoliva@cygnus.com>
-	* mn10300.h (AM33_2): Renamed from AM33.
-	2000-03-31  Alexandre Oliva  <aoliva@cygnus.com>
-	* mn10300.h (AM332, FMT_D3): Defined.
-	(MN10300_OPERAND_FSREG, MN10300_OPERAND_FDREG): Likewise.
-	(MN10300_OPERAND_FPCR): Likewise.
-
-2003-07-01  Martin Schwidefsky  <schwidefsky@de.ibm.com>
-
-	* s390.h (s390_opcode_cpu_val): Add enum for cpu type z990.
-
-2003-06-25  Richard Sandiford  <rsandifo@redhat.com>
-
-	* h8300.h (IMM2_NS, IMM8_NS, IMM16_NS): Remove.
-	(IMM8U, IMM8U_NS): Define.
-	(h8_opcodes): Use IMM8U_NS for mov.[wl] #xx:8,@yy.
-
-2003-06-25  Richard Sandiford  <rsandifo@redhat.com>
-
-	* h8300.h (h8_opcodes): Fix the mov.l @(dd:32,ERs),ERd and
-	mov.l ERs,@(dd:32,ERd) entries.
-
-2003-06-23  H.J. Lu <hongjiu.lu@intel.com>
-
-	* i386.h (i386_optab): Support Intel Precott New Instructions.
-
-2003-06-10  Gary Hade <garyhade@us.ibm.com>
-
-	* ppc.h (PPC_OPERAND_DQ): Define.
-
-2003-06-10  Richard Sandiford  <rsandifo@redhat.com>
-
-	* h8300.h (IMM4_NS, IMM8_NS): New.
-	(h8_opcodes): Replace IMM4 with IMM4_NS in mov.b and mov.w entries.
-	Likewise IMM8 for mov.w and mov.l.  Likewise IMM16U for mov.l.
-
-2003-06-03  Michael Snyder  <msnyder@redhat.com>
-
-	* h8300.h (enum h8_model): Add AV_H8S to distinguish from H8H.
-	(ldc): Split ccr ops from exr ops (which are only available
-	on H8S or H8SX).
-	(stc): Ditto.
-	(andc, orc, xorc): Ditto.
-	(ldmac, stmac, clrmac, mac): Change access to AV_H8S.
-
-2003-06-03  Michael Snyder  <msnyder@redhat.com>
-	and Bernd Schmidt   <bernds@redhat.com>
-	and Alexandre Oliva <aoliva@redhat.com>
-	* h8300.h: Add support for h8300sx instruction set.
-
-2003-05-23  Jason Eckhardt  <jle@rice.edu>
-
-	* i860.h (expand_type): Add XP_ONLY.
-	(scyc.b): New XP instruction.
-	(ldio.l): Likewise.
-	(ldio.s): Likewise.
-	(ldio.b): Likewise.
-	(ldint.l): Likewise.
-	(ldint.s): Likewise.
-	(ldint.b): Likewise.
-	(stio.l): Likewise.
-	(stio.s): Likewise.
-	(stio.b): Likewise.
-	(pfld.q): Likewise.
-
-2003-05-20  Jason Eckhardt  <jle@rice.edu>
-
-	* i860.h (flush): Set lower 3 bits properly and use 'L'
-	for the immediate operand type instead of 'i'.
-
-2003-05-20  Jason Eckhardt  <jle@rice.edu>
-
-	* i860.h (fzchks): Both S and R bits must be set.
-	(pfzchks): Likewise.
-	(faddp): Likewise.
-	(pfaddp): Likewise.
-	(fix.ss): Remove (invalid instruction).
-	(pfix.ss): Likewise.
-	(ftrunc.ss): Likewise.
-	(pftrunc.ss): Likewise.
-
-2003-05-18  Jason Eckhardt  <jle@rice.edu>
-
-	* i860.h (form, pform): Add missing .dd suffix.
-
-2003-05-13  Stephane Carrez  <stcarrez@nerim.fr>
-
-	* m68hc11.h (M68HC12_BANK_VIRT): Define to 0x010000
-
-2003-04-07  Michael Snyder  <msnyder@redhat.com>
-
-	* h8300.h (ldc/stc): Fix up src/dst swaps.
-
-2003-04-09  J. Grant  <jg-binutils@jguk.org>
-
-	* mips.h: Correct comment typo.
-
-2003-03-21  Martin Schwidefsky  <schwidefsky@de.ibm.com>
-
-	* s390.h (s390_opcode_arch_val): Rename to s390_opcode_mode_val.
-	(S390_OPCODE_ESAME): Rename to S390_OPCODE_ZARCH.
-	(s390_opcode): Remove architecture. Add modes and min_cpu.
-
-2003-03-17 D.Venkatasubramanian <dvenkat@noida.hcltech.com>
-
-	* h8300.h (O_SYS_CMDLINE): New pseudo opcode for command line
-	processing.
-
-2003-02-21  Noida D.Venkatasubramanian  <dvenkat@noida.hcltech.com>
-
-	* h8300.h (ldmac, stmac): Replace MACREG with MS32 and MD32.
-
-2003-01-23  Alan Modra  <amodra@bigpond.net.au>
-
-	* m68hc11.h (cpu6812s): Define.
-
-2003-01-07  Chris Demetriou  <cgd@broadcom.com>
-
-	* mips.h: Fix missing space in comment.
-	(INSN_ISA1, INSN_ISA2, INSN_ISA3, INSN_ISA4, INSN_ISA5)
-	(INSN_ISA32, INSN_ISA32R2, INSN_ISA64): Shift values right
-	by four bits.
-
-2003-01-02  Chris Demetriou  <cgd@broadcom.com>
-
-	* mips.h: Update copyright years to include 2002 (which had
-	been missed previously) and 2003.  Make comments about "+A",
-	"+B", and "+C" operand types more descriptive.
-
-2002-12-31  Chris Demetriou  <cgd@broadcom.com>
-
-	* mips.h: Note that the "+D" operand type name is now used.
-
-2002-12-30  Chris Demetriou  <cgd@broadcom.com>
-
-	* mips.h: Document "+" as the start of two-character operand
-	type names, and add new "K", "+A", "+B", and "+C" operand types.
-	(OP_MASK_INSMSB, OP_SH_INSMSB, OP_MASK_EXTMSB)
-	(OP_SH_EXTMSB, INSN_ISA32R2, ISA_MIPS32R2, CPU_MIPS32R2): New
-	defines.
-
-2002-12-24    Dmitry Diky <diwil@mail.ru>
-
-	* msp430.h: New file.  Defines msp430 opcodes.
-
-2002-12-30 D.Venkatasubramanian <dvenkat@noida.hcltech.com>
-
-	* h8300.h: Added some more pseudo opcodes for system call
-	processing.
-
-2002-12-19  Chris Demetriou  <cgd@broadcom.com>
-
-	* mips.h (OP_OP_COP0, OP_OP_COP1, OP_OP_COP2, OP_OP_COP3)
-	(OP_OP_LWC1, OP_OP_LWC2, OP_OP_LWC3, OP_OP_LDC1, OP_OP_LDC2)
-	(OP_OP_LDC3, OP_OP_SWC1, OP_OP_SWC2, OP_OP_SWC3, OP_OP_SDC1)
-	(OP_OP_SDC2, OP_OP_SDC3): Define.
-
-2002-12-16  Alan Modra  <amodra@bigpond.net.au>
-
-	* hppa.h (completer_chars): #if 0 out.
-
-	* ns32k.h (struct ns32k_opcode): Constify "name", "operands" and
-	"default_args".
-	(struct not_wot): Constify "args".
-	(struct not): Constify "name".
-	(numopcodes): Delete.
-	(endop): Delete.
-
-2002-12-13  Alan Modra  <amodra@bigpond.net.au>
-
-	* pj.h (pj_opc_info_t): Add union.
-
-2002-12-04  David Mosberger  <davidm@hpl.hp.com>
-
-	* ia64.h: Fix copyright message.
-	(IA64_OPND_AR_CSD): New operand kind.
-
-2002-12-03  Richard Henderson  <rth@redhat.com>
-
-	* ia64.h (enum ia64_opnd): Add IA64_OPND_LDXMOV.
-
-2002-12-03  Alan Modra  <amodra@bigpond.net.au>
-
-	* cgen.h (struct cgen_maybe_multi_ifield): Add "const PTR p" to union.
-	Constify "leaf" and "multi".
-
-2002-11-19  Klee Dienes  <kdienes@apple.com>
-
-	* h8300.h (h8_opcode): Remove 'noperands', 'idx', and 'size'
-	fields.
-	(h8_opcodes). Modify initializer and initializer macros to no
-	longer initialize the removed fields.
-
-2002-11-19  Svein E. Seldal  <Svein.Seldal@solidas.com>
-
-	* tic4x.h (c4x_insts): Fixed LDHI constraint
-
-2002-11-18  Klee Dienes  <kdienes@apple.com>
-
-	* h8300.h (h8_opcode): Remove 'length' field.
-	(h8_opcodes): Mark as 'const' (both the declaration and
-	definition).  Modify initializer and initializer macros to no
-	longer initialize the length field.
-
-2002-11-18  Klee Dienes  <kdienes@apple.com>
-
-	* arc.h (arc_ext_opcodes): Declare as extern.
-	(arc_ext_operands): Declare as extern.
-	* i860.h (i860_opcodes): Declare as const.
-
-2002-11-18  Svein E. Seldal  <Svein.Seldal@solidas.com>
-
-	* tic4x.h: File reordering. Added enhanced opcodes.
-
-2002-11-16  Svein E. Seldal  <Svein.Seldal@solidas.com>
-
-	* tic4x.h: Major rewrite of entire file. Define instruction
-	  classes, and put each instruction into a class.
-
-2002-11-11  Svein E. Seldal  <Svein.Seldal@solidas.com>
-
-	* tic4x.h: Added new opcodes and corrected some bugs.  Add support
-	for new DSP types.
-
-2002-10-14  Alan Modra  <amodra@bigpond.net.au>
-
-	* cgen.h: Test __BFD_H_SEEN__ rather than BFD_VERSION_DATE.
-
-2002-09-30  Gavin Romig-Koch  <gavin@redhat.com>
-	    Ken Raeburn  <raeburn@cygnus.com>
-	    Aldy Hernandez  <aldyh@redhat.com>
-	    Eric Christopher  <echristo@redhat.com>
-	    Richard Sandiford  <rsandifo@redhat.com>
-
-	* mips.h: Update comment for new opcodes.
-	(OP_MASK_VECBYTE, OP_SH_VECBYTE): New.
-	(OP_MASK_VECALIGN, OP_SH_VECALIGN): New.
-	(INSN_4111, INSN_4120, INSN_5400, INSN_5500): New.
-	(CPU_VR4120, CPU_VR5400, CPU_VR5500): New.
-	(OPCODE_IS_MEMBER): Handle the new CPU_* values and INSN_* flags.
-	Don't match CPU_R4111 with INSN_4100.
-
-2002-08-19  Elena Zannoni <ezannoni@redhat.com>
-
-	From matthew green  <mrg@redhat.com>
-
-	* ppc.h (PPC_OPCODE_SPE): New opcode flag for Powerpc e500
-	instructions.
-	(PPC_OPCODE_ISEL, PPC_OPCODE_BRLOCK, PPC_OPCODE_PMR,
-	PPC_OPCODE_CACHELCK, PPC_OPCODE_RFMCI): New opcode flags for the
-	e500x2 Integer select, branch locking, performance monitor,
-	cache locking and machine check APUs, respectively.
-	(PPC_OPCODE_EFS): New opcode type for efs* instructions.
-	(PPC_OPCODE_CLASSIC): New opcode type for Classic PowerPC instructions.
-
-2002-08-13  Stephane Carrez  <stcarrez@nerim.fr>
-
-	* m68hc11.h (M6812_OP_PAGE): Define to identify call operand.
-	(M68HC12_BANK_VIRT, M68HC12_BANK_MASK, M68HC12_BANK_BASE,
-	M68HC12_BANK_SHIFT, M68HC12_BANK_PAGE_MASK): Define for 68HC12
-	memory banks.
-	(M6811_OC1M5, M6811_OC1M4, M6811_MODF): Fix value.
-
-2002-07-09  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
-	* mips.h (INSN_MIPS16): New define.
-
-2002-07-08  Alan Modra  <amodra@bigpond.net.au>
-
-	* i386.h: Remove IgnoreSize from movsx and movzx.
-
-2002-06-08  Alan Modra  <amodra@bigpond.net.au>
-
-	* a29k.h: Replace CONST with const.
-	(CONST): Don't define.
-	* convex.h: Replace CONST with const.
-	(CONST): Don't define.
-	* dlx.h: Replace CONST with const.
-	* or32.h (CONST): Don't define.
-
-2002-05-30  Chris G. Demetriou  <cgd@broadcom.com>
-
-	* mips.h (OP_SH_ALN, OP_MASK_ALN, OP_SH_VSEL, OP_MASK_VSEL)
-	(MDMX_FMTSEL_IMM_QH, MDMX_FMTSEL_IMM_OB, MDMX_FMTSEL_VEC_QH)
-	(MDMX_FMTSEL_VEC_OB, INSN_READ_MDMX_ACC, INSN_WRITE_MDMX_ACC)
-	(INSN_MDMX): New constants, for MDMX support.
-	(opcode character list): Add "O", "Q", "X", "Y", and "Z" for MDMX.
-
-2002-05-28  Kuang Hwa Lin <kuang@sbcglobal.net>
-
-	* dlx.h: New file.
-
-2002-05-25  Alan Modra  <amodra@bigpond.net.au>
-
-	* ia64.h: Use #include "" instead of <> for local header files.
-	* sparc.h: Likewise.
-
-2002-05-22  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
-	* mips.h: Add M_DROL, M_DROL_I, M_DROR, M_DROR_I macro cases.
-
-2002-05-17  Andrey Volkov  <avolkov@sources.redhat.com>
-
-	* h8300.h: Corrected defs of all control regs
-	and eepmov instr.
-
-2002-04-11  Alan Modra  <amodra@bigpond.net.au>
-
-	* i386.h: Add intel mode cmpsd and movsd.
-	Put them before SSE2 insns, so that rep prefix works.
-
-2002-03-15  Chris G. Demetriou  <cgd@broadcom.com>
-
-	* mips.h (INSN_MIPS3D): New definition used to mark MIPS-3D
-	instructions.
-	(OPCODE_IS_MEMBER): Adjust comments to indicate that ASE bit masks
-	may be passed along with the ISA bitmask.
-
-2002-03-05  Paul Koning  <pkoning@equallogic.com>
-
-	* pdp11.h: Add format codes for float instruction formats.
-
-2002-02-25  Alan Modra  <amodra@bigpond.net.au>
-
-	* ppc.h (PPC_OPCODE_POWER4, PPC_OPCODE_NOPOWER4): Define.
-
-Mon Feb 18 17:31:48 CET 2002  Jan Hubicka  <jh@suse.cz>
-
-	* i386.h (push,pop): Fix Reg64 to WordReg to allow 16bit operands.
-
-Mon Feb 11 12:53:19 CET 2002  Jan Hubicka  <jh@suse.cz>
-
-	* i386.h (push,pop): Allow 16bit operands in 64bit mode.
-	(xchg): Fix.
-	(in, out): Disable 64bit operands.
-	(call, jmp): Avoid REX prefixes.
-	(jcxz): Prohibit in 64bit mode
-	(jrcxz, loop): Add 64bit variants.
-	(movq): Fix patterns.
-	(movmskps, pextrw, pinstrw): Add 64bit variants.
-
-2002-01-31  Ivan Guzvinec  <ivang@opencores.org>
-
-	* or32.h: New file.
-
-2002-01-22  Graydon Hoare  <graydon@redhat.com>
-
-	* cgen.h (CGEN_MAYBE_MULTI_IFLD): New structure.
-	(CGEN_OPERAND): Add CGEN_MAYBE_MULTI_IFLD field.
-
-2002-01-21  Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>
-
-	* h8300.h: Comment typo fix.
-
-2002-01-03  matthew green  <mrg@redhat.com>
-
-	* ppc.h (PPC_OPCODE_BOOKE): BookE is not Motorola specific.
-	(PPC_OPCODE_BOOKE64): Likewise.
-
-Mon Dec 31 16:45:41 2001  Jeffrey A Law  (law@cygnus.com)
-
-	* hppa.h (call, ret): Move to end of table.
-	(addb, addib): PA2.0 variants should have been PA2.0W.
-	(ldw, ldh, ldb, stw, sth, stb, stwa): Reorder to keep disassembler
-	happy.
-	(fldw, fldd, fstw, fstd, bb): Likewise.
-	(short loads/stores): Tweak format specifier slightly to keep
-	disassembler happy.
-	(indexed loads/stores): Likewise.
-	(absolute loads/stores): Likewise.
-
-2001-12-04  Alexandre Oliva  <aoliva@redhat.com>
-
-	* d10v.h (OPERAND_NOSP): New macro.
-
-2001-11-29  Alexandre Oliva  <aoliva@redhat.com>
-
-	* d10v.h (OPERAND_SP): New macro.
-
-2001-11-15  Alan Modra  <amodra@bigpond.net.au>
-
-	* ppc.h (struct powerpc_operand <insert, extract>): Add dialect param.
-
-2001-11-11  Timothy Wall  <twall@alum.mit.edu>
-
-	* tic54x.h: Revise opcode layout; don't really need a separate
-	structure for parallel opcodes.
-
-2001-11-13  Zack Weinberg <zack@codesourcery.com>
-	    Alan Modra  <amodra@bigpond.net.au>
-
-	* i386.h (i386_optab): Add entries for "sldr", "smsw" and "str" to
-	accept WordReg.
-
-2001-11-04  Chris Demetriou  <cgd@broadcom.com>
-
-	* mips.h (OPCODE_IS_MEMBER): Remove extra space.
-
-2001-10-30  Hans-Peter Nilsson  <hp@bitrange.com>
-
-	* mmix.h: New file.
-
-2001-10-18  Chris Demetriou  <cgd@broadcom.com>
-
-	* mips.h (OPCODE_IS_MEMBER): Add a no-op term to the end
-	of the expression, to make source code merging easier.
-
-2001-10-17  Chris Demetriou  <cgd@broadcom.com>
-
-	* mips.h: Sort coprocessor instruction argument characters
-	in comment, add a few more words of description for "H".
-
-2001-10-17  Chris Demetriou  <cgd@broadcom.com>
-
-	* mips.h (INSN_SB1): New cpu-specific instruction bit.
-	(OPCODE_IS_MEMBER): Allow instructions matching INSN_SB1
-	if cpu is CPU_SB1.
-
-2001-10-17  matthew green  <mrg@redhat.com>
-
-	* ppc.h (PPC_OPCODE_BOOKE64): Fix typo.
-
-2001-10-12  matthew green  <mrg@redhat.com>
-
-	* ppc.h (PPC_OPCODE_BOOKE, PPC_OPCODE_BOOKE64, PPC_OPCODE_403): New
-	opcode flags for BookE 32-bit, BookE 64-bit and PowerPC 403
-	instructions, respectively.
-
-2001-09-27  Nick Clifton  <nickc@cambridge.redhat.com>
-
-	* v850.h: Remove spurious comment.
-
-2001-09-21  Nick Clifton  <nickc@cambridge.redhat.com>
-
-	* h8300.h: Fix compile time warning messages
-
-2001-09-04  Richard Henderson  <rth@redhat.com>
-
-	* alpha.h (struct alpha_operand): Pack elements into bitfields.
-
-2001-08-31  Eric Christopher  <echristo@redhat.com>
-
-	* mips.h: Remove CPU_MIPS32_4K.
-
-2001-08-27  Torbjorn Granlund  <tege@swox.com>
-
-	* ppc.h (PPC_OPERAND_DS): Define.
-
-2001-08-25  Andreas Jaeger  <aj@suse.de>
-
-	* d30v.h: Fix declaration of reg_name_cnt.
-
-	* d10v.h: Fix declaration of d10v_reg_name_cnt.
-
-	* arc.h: Add prototypes from opcodes/arc-opc.c.
-
-2001-08-16  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
-	* mips.h (INSN_10000): Define.
-	(OPCODE_IS_MEMBER): Check for INSN_10000.
-
-2001-08-10  Alan Modra  <amodra@one.net.au>
-
-	* ppc.h: Revert 2001-08-08.
-
-2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
-
-	* mips.h (INSN_GP32): Remove.
-	(OPCODE_IS_MEMBER): Remove gp32 parameter.
-	(M_MOVE): New macro identifier.
-
-2001-08-08  Alan Modra  <amodra@one.net.au>
-
-	1999-10-25  Torbjorn Granlund  <tege@swox.com>
-	* ppc.h (struct powerpc_operand): New field `reloc'.
-
-2001-08-01  Aldy Hernandez  <aldyh@redhat.com>
-
-	* mips.h (INSN_ISA_MASK): Nuke bits 12-15.
-
-2001-07-12  Jeff Johnston  <jjohnstn@redhat.com>
-
-	* cgen.h (CGEN_INSN): Add regex support.
-	(build_insn_regex): Declare.
-
-2001-07-11  Frank Ch. Eigler  <fche@redhat.com>
-
-	* cgen.h (CGEN_MACH): Add insn_chunk_bitsize field.
-	(cgen_cpu_desc): Ditto.
-
-2001-07-07  Ben Elliston  <bje@redhat.com>
-
-	* m88k.h: Clean up and reformat. Remove unused code.
-
-2001-06-14  Geoffrey Keating  <geoffk@redhat.com>
-
-	* cgen.h (cgen_keyword): Add nonalpha_chars field.
-
-2001-05-23  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
-	* mips.h (CPU_R12000): Define.
-
-2001-05-23  John Healy  <jhealy@redhat.com>
-
-	* cgen.h: Increased CGEN_MAX_SYNTAX_ELEMENTS to 48.
-
-2001-05-15  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
-	* mips.h (INSN_ISA_MASK): Define.
-
-2001-05-12  Alan Modra  <amodra@one.net.au>
-
-	* i386.h (i386_optab): Second operand of cvtps2dq is an xmm reg,
-	not an mmx reg.  Swap xmm/mmx regs on both movdq2q and movq2dq,
-	and use InvMem as these insns must have register operands.
-
-2001-05-04  Alan Modra  <amodra@one.net.au>
-
-	* i386.h (i386_optab): Move InvMem to first operand of pmovmskb
-	and pextrw to swap reg/rm assignments.
-
-2001-04-05  Hans-Peter Nilsson  <hp@axis.com>
-
-	* cris.h (enum cris_insn_version_usage): Correct comment for
-	cris_ver_v3p.
-
-2001-03-24  Alan Modra  <alan@linuxcare.com.au>
-
-	* i386.h (i386_optab): Correct entry for "movntdq".  Add "punpcklqdq".
-	Add InvMem to first operand of "maskmovdqu".
-
-2001-03-22  Hans-Peter Nilsson  <hp@axis.com>
-
-	* cris.h (ADD_PC_INCR_OPCODE): New macro.
-
-2001-03-21  Kazu Hirata  <kazu@hxi.com>
-
-	* h8300.h: Fix formatting.
-
-2001-03-22  Alan Modra  <alan@linuxcare.com.au>
-
-	* i386.h (i386_optab): Add paddq, psubq.
-
-2001-03-19  Alan Modra  <alan@linuxcare.com.au>
-
-	* i386.h (REGNAM_AL, REGNAM_AX, REGNAM_EAX): Define.
-
-2001-02-28  Igor Shevlyakov  <igor@windriver.com>
-
-	* m68k.h: new defines for Coldfire V4. Update mcf to know
-	about mcf5407.
-
-2001-02-18  lars brinkhoff  <lars@nocrew.org>
-
-	* pdp11.h: New file.
-
-2001-02-12  Jan Hubicka  <jh@suse.cz>
-
-	* i386.h (i386_optab): SSE integer converison instructions have
-	64bit versions on x86-64.
-
-2001-02-10  Nick Clifton  <nickc@redhat.com>
-
-	* mips.h: Remove extraneous whitespace.  Formating change to allow
-	for future contribution.
-
-2001-02-09  Martin Schwidefsky  <schwidefsky@de.ibm.com>
-
-	* s390.h: New file.
-
-2001-02-02  Patrick Macdonald  <patrickm@redhat.com>
-
-	* cgen.h (CGEN_SYNTAX_CHAR_TYPE): Typedef as unsigned short.
-	(CGEN_MAX_SYNTAX_ELEMENTS): Rename from CGEN_MAX_SYNTAX_BYTES.
-	(CGEN_SYNTAX): Define using CGEN_MAX_SYNTAX_ELEMENTS.
-
-2001-01-24  Karsten Keil  <kkeil@suse.de>
-
-	* i386.h (i386_optab): Fix swapgs
-
-2001-01-14  Alan Modra  <alan@linuxcare.com.au>
-
-	* hppa.h: Describe new '<' and '>' operand types, and tidy
-	existing comments.
-	(pa_opcodes): Add entries for missing wide mode ldi,ldo,ldw,stw.
-	Remove duplicate "ldw j(s,b),x".  Sort some entries.
-
-2001-01-13  Jan Hubicka  <jh@suse.cz>
-
-	* i386.h (i386_optab): Fix pusha and ret templates.
-
-2001-01-11  Peter Targett  <peter.targett@arccores.com>
-
-	* arc.h (ARC_MACH_5, ARC_MACH_6, ARC_MACH_7, ARC_MACH_8): New
-	definitions for masking cpu type.
-	(arc_ext_operand_value) New structure for storing extended
-	operands.
-	(ARC_OPERAND_*) Flags for operand values.
-
-2001-01-10  Jan Hubicka  <jh@suse.cz>
-
-	* i386.h (pinsrw): Add.
-	(pshufw): Remove.
-	(cvttpd2dq): Fix operands.
-	(cvttps2dq): Likewise.
-	(movq2q): Rename to movdq2q.
-
-2001-01-10  Richard Schaal  <richard.schaal@intel.com>
-
-	* i386.h: Correct movnti instruction.
-
-2001-01-09  Jeff Johnston  <jjohnstn@redhat.com>
-
-	* cgen.h (CGEN_SYNTAX_CHAR_TYPE): New typedef based on max number
-	of operands (unsigned char or unsigned short).
-	(CGEN_SYNTAX): Changed to make array CGEN_SYNTAX_CHAR_TYPE.
-	(CGEN_SYNTAX_CHAR): Changed to cast to unsigned char.
-
-2001-01-05  Jan Hubicka  <jh@suse.cz>
-
-	* i386.h (i386_optab): Make [sml]fence template to use immext field.
-
-2001-01-03  Jan Hubicka  <jh@suse.cz>
-
-	* i386.h (i386_optab): Fix 64bit pushf template; Add instructions
-	introduced by Pentium4
-
-2000-12-30  Jan Hubicka  <jh@suse.cz>
-
-	* i386.h (i386_optab): Add "rex*" instructions;
-	add swapgs; disable jmp/call far direct instructions for
-	64bit mode; add syscall and sysret; disable registers for 0xc6
-	template.  Add 'q' suffixes to extendable instructions, disable
-	obsolete instructions, add new sign/zero extension ones.
-	(i386_regtab): Add extended registers.
-	(*Suf): Add No_qSuf.
-	(q_Suf, wlq_Suf, bwlq_Suf): New.
-
-2000-12-20  Jan Hubicka  <jh@suse.cz>
-
-	* i386.h (i386_optab): Replace "Imm" with "EncImm".
-	(i386_regtab): Add flags field.
-
-2000-12-12  Nick Clifton  <nickc@redhat.com>
-
-	* mips.h: Fix formatting.
-
-2000-12-01  Chris Demetriou  <cgd@sibyte.com>
-
-	mips.h (OP_MASK_SYSCALL, OP_SH_SYSCALL): Delete.
-	(OP_MASK_CODE20, OP_SH_CODE20): Define, with values of old
-	OP_*_SYSCALL definitions.
-	(OP_SH_CODE19, OP_MASK_CODE19): Define, for use as
-	19 bit wait codes.
-	(MIPS operand specifier comments): Remove 'm', add 'U' and
-	'J', and update the meaning of 'B' so that it's more general.
-
-	* mips.h (INSN_ISA1, INSN_ISA2, INSN_ISA3, INSN_ISA4,
-	INSN_ISA5): Renumber, redefine to mean the ISA at which the
-	instruction was added.
-	(INSN_ISA32): New constant.
-	(INSN_4650, INSN_4010, INSN_4100, INSN_3900, INSN_GP32):
-	Renumber to avoid new and/or renumbered INSN_* constants.
-	(INSN_MIPS32): Delete.
-	(ISA_UNKNOWN): New constant to indicate unknown ISA.
-	(ISA_MIPS1, ISA_MIPS2, ISA_MIPS3, ISA_MIPS4, ISA_MIPS5,
-	ISA_MIPS32): New constants, defined to be the mask of INSN_*
-	constants available at that ISA level.
-	(CPU_UNKNOWN): New constant to indicate unknown CPU.
-	(CPU_4K, CPU_MIPS32_4K): Rename the former to the latter,
-	define it with a unique value.
-	(OPCODE_IS_MEMBER): Update for new ISA membership-related
-	constant meanings.
-
-	* mips.h (INSN_ISA64, ISA_MIPS5, ISA_MIPS64): New
-	definitions.
-
-	* mips.h (CPU_SB1): New constant.
-
-2000-10-20  Jakub Jelinek  <jakub@redhat.com>
-
-	* sparc.h (enum sparc_opcode_arch_val): Add SPARC_OPCODE_ARCH_V9B.
-	Note that '3' is used for siam operand.
-
-2000-09-22  Jim Wilson  <wilson@cygnus.com>
-
-	* ia64.h (enum ia64_dependency_semantics): Add IA64_DVS_STOP.
-
-2000-09-13  Anders Norlander  <anorland@acc.umu.se>
-
-	* mips.h: Use defines instead of hard-coded processor numbers.
-	(CPU_R2000, CPU_R3000, CPU_R3900, CPU_R4000, CPU_R4010,
-	CPU_VR4100, CPU_R4111, CPU_R4300, CPU_R4400, CPU_R4600, CPU_R4650,
-	CPU_R5000, CPU_R6000, CPU_R8000, CPU_R10000, CPU_MIPS32, CPU_4K,
-	CPU_4KC, CPU_4KM, CPU_4KP): Define..
-	(OPCODE_IS_MEMBER): Use new defines.
-	(OP_MASK_SEL, OP_SH_SEL): Define.
-	(OP_MASK_CODE20, OP_SH_CODE20): Define.
-	Add 'P' to used characters.
-	Use 'H' for coprocessor select field.
-	Use 'm' for 20 bit breakpoint code.
-	Document new arg characters and add to used characters.
-	(INSN_MIPS32): New define for MIPS32 extensions.
-	(OPCODE_IS_MEMBER): Recognize MIPS32 instructions.
-
-2000-09-05  Alan Modra  <alan@linuxcare.com.au>
-
-	* hppa.h: Mention cz completer.
-
-2000-08-16  Jim Wilson  <wilson@cygnus.com>
-
-	* ia64.h (IA64_OPCODE_POSTINC): New.
-
-2000-08-15  H.J. Lu  <hjl@gnu.org>
-
-	* i386.h: Swap the Intel syntax "movsx"/"movzx" due to the
-	IgnoreSize change.
-
-2000-08-08  Jason Eckhardt  <jle@cygnus.com>
-
-	* i860.h: Small formatting adjustments.
-
-2000-07-29  Marek Michalkiewicz  <marekm@linux.org.pl>
-
-	* avr.h (AVR_UNDEF_P, AVR_SKIP_P, AVR_DISP0_P): New macros.
-	Move related opcodes closer to each other.
-	Minor changes in comments, list undefined opcodes.
-
-2000-07-26  Dave Brolley  <brolley@redhat.com>
-
-	* cgen.h (cgen_hw_lookup_by_num): Second parameter is unsigned.
-
-2000-07-22  Jason Eckhardt  <jle@cygnus.com>
-
-	* i860.h (btne, bte, bla): Changed these opcodes
-	to use sbroff ('r') instead of split16 ('s').
-	(J, K, L, M): New operand types for 16-bit aligned fields.
-	(ld.x, {p}fld.x, fst.x, pst.d): Changed these opcodes to
-	use I, J, K, L, M instead of just I.
-	(T, U): New operand types for split 16-bit aligned fields.
-	(st.x): Changed these opcodes to use S, T, U instead of just S.
-	(andh, andnoth, orh, xorh): Deleted 3-register forms as they do not
-	exist on the i860.
-	(pfgt.sd, pfle.sd): Deleted these as they do not exist on the i860.
-	(pfeq.ss, pfeq.dd): New opcodes.
-	(st.s): Fixed incorrect mask bits.
-	(fmlow): Fixed incorrect mask bits.
-	(fzchkl, pfzchkl): Fixed incorrect mask bits.
-	(faddz, pfaddz): Fixed incorrect mask bits.
-	(form, pform): Fixed incorrect mask bits.
-	(pfld.l): Fixed incorrect mask bits.
-	(fst.q): Fixed incorrect mask bits.
-	(all floating point opcodes): Fixed incorrect mask bits for
-	handling of dual bit.
-
-2000-07-20  Hans-Peter Nilsson  <hp@axis.com>
-
-	cris.h: New file.
-
-2000-06-26  Marek Michalkiewicz  <marekm@linux.org.pl>
-
-	* avr.h (AVR_ISA_WRAP): Remove, now assumed if not AVR_ISA_MEGA.
-	(AVR_ISA_ESPM): Remove, because ESPM removed in databook update.
-	(AVR_ISA_85xx): Remove, all uses changed back to AVR_ISA_2xxx.
-	(AVR_ISA_M83): Define for ATmega83, ATmega85.
-	(espm): Remove, because ESPM removed in databook update.
-	(eicall, eijmp): Move to the end of opcode table.
-
-2000-06-18  Stephane Carrez  <stcarrez@worldnet.fr>
-
-	* m68hc11.h: New file for support of Motorola 68hc11.
-
-Fri Jun  9 21:51:50 2000  Denis Chertykov  <denisc@overta.ru>
-
-	* avr.h: clr,lsl,rol, ... moved after add,adc, ...
-
-Wed Jun  7 21:39:54 2000  Denis Chertykov  <denisc@overta.ru>
-
-	* avr.h: New file with AVR opcodes.
-
-Wed Apr 12 17:11:20 2000  Donald Lindsay  <dlindsay@hound.cygnus.com>
-
-	* d10v.h: added ALONE attribute for d10v_opcode.exec_type.
-
-2000-05-23  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
-
-	* i386.h: Allow d suffix on iret, and add DefaultSize modifier.
-
-2000-05-17  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
-
-	* i386.h: Use sl_FP, not sl_Suf for fild.
-
-2000-05-16  Frank Ch. Eigler  <fche@redhat.com>
-
-	* cgen.h (CGEN_MAX_SYNTAX_BYTES): Increase to 32.  Check that
-	it exceeds CGEN_ACTUAL_MAX_SYNTAX_BYTES, if set.
-	(CGEN_MAX_IFMT_OPERANDS): Increase to 16.  Check that it exceeds
-	CGEN_ACTUAL_MAX_IFMT_OPERANDS, if set.
-
-2000-05-13  Alan Modra  <alan@linuxcare.com.au>,
-
-	* i386.h (i386_optab): Cpu686 for sysenter,sysexit,fxsave,fxrestore.
-
-2000-05-13  Alan Modra  <alan@linuxcare.com.au>,
-	    Alexander Sokolov <robocop@netlink.ru>
-
-	* i386.h (i386_optab): Add cpu_flags for all instructions.
-
-2000-05-13  Alan Modra  <alan@linuxcare.com.au>
-
-	From Gavin Romig-Koch <gavin@cygnus.com>
-	* i386.h (wld_Suf): Define.  Use on pushf, popf, pusha, popa.
-
-2000-05-04  Timothy Wall  <twall@cygnus.com>
-
-	* tic54x.h: New.
-
-2000-05-03  J.T. Conklin  <jtc@redback.com>
-
-	* ppc.h (PPC_OPCODE_ALTIVEC): New opcode flag for vector unit.
-	(PPC_OPERAND_VR): New operand flag for vector registers.
-
-2000-05-01  Kazu Hirata  <kazu@hxi.com>
-
-	* h8300.h (EOP): Add missing initializer.
-
-Fri Apr 21 15:03:37 2000  Jason Eckhardt  <jle@cygnus.com>
-
-	* hppa.h (pa_opcodes): New opcodes for PA2.0 wide mode
-	forms of ld/st{b,h,w,d} and fld/fst{w,d} (16-bit displacements).
-	New operand types l,y,&,fe,fE,fx added to support above forms.
-	(pa_opcodes): Replaced usage of 'x' as source/target for
-	floating point double-word loads/stores with 'fx'.
-
-Fri Apr 21 13:20:53 2000  Richard Henderson  <rth@cygnus.com>
-			  David Mosberger  <davidm@hpl.hp.com>
-			  Timothy Wall <twall@cygnus.com>
-			  Jim Wilson  <wilson@cygnus.com>
-
-	* ia64.h: New file.
-
-2000-03-27  Nick Clifton  <nickc@cygnus.com>
-
-	* d30v.h (SHORT_A1): Fix value.
-	(SHORT_AR): Renumber so that it is at the end of the list of short
-	instructions, not the end of the list of long instructions.
-
-2000-03-26  Alan Modra  <alan@linuxcare.com>
-
-	* i386.h: (UNIXWARE_COMPAT): Rename to SYSV386_COMPAT as the
-	problem isn't really specific to Unixware.
-	(OLDGCC_COMPAT): Define.
-	(i386_optab): If !OLDGCC_COMPAT, don't handle fsubp etc. with
-	destination %st(0).
-	Fix lots of comments.
-
-2000-03-02  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* d30v.h:
-	(SHORT_B2r, SHORT_B3, SHORT_B3r, SHORT_B3b, SHORT_B3br): Updated.
-	(SHORT_D1r, SHORT_D2, SHORT_D2r, SHORT_D2Br, SHORT_U): Updated.
-	(SHORT_F, SHORT_AF, SHORT_T, SHORT_A5, SHORT_CMP, SHORT_CMPU): Updated.
-	(SHORT_A1, SHORT_AA, SHORT_RA, SHORT_MODINC, SHORT_MODDEC): Updated.
-	(SHORT_C1, SHORT_C2, SHORT_UF, SHORT_A2, SHORT_NONE, LONG): Updated.
-	(LONG_U, LONG_Ur, LONG_CMP, LONG_M, LONG_M2, LONG_2, LONG_2r): Updated.
-	(LONG_2b, LONG_2br, LONG_D, LONG_Dr, LONG_Dbr): Updated.
-
-2000-02-25  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* i386.h (fild, fistp): Change intel d_Suf form to fildd and
-	fistpd without suffix.
-
-2000-02-24  Nick Clifton  <nickc@cygnus.com>
-
-	* cgen.h (cgen_cpu_desc): Rename field 'flags' to
-	'signed_overflow_ok_p'.
-	Delete prototypes for cgen_set_flags() and cgen_get_flags().
-
-2000-02-24  Andrew Haley  <aph@cygnus.com>
-
-	* cgen.h (CGEN_INSN_MACH_HAS_P): New macro.
-	(CGEN_CPU_TABLE): flags: new field.
-	Add prototypes for new functions.
-
-2000-02-24  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* i386.h: Add some more UNIXWARE_COMPAT comments.
-
-2000-02-23  Linas Vepstas <linas@linas.org>
-
-	* i370.h: New file.
-
-2000-02-22  Chandra Chavva  <cchavva@cygnus.com>
-
-	* d30v.h (FLAG_NOT_WITH_ADDSUBppp): Redefined as operation
-	cannot be combined in parallel with ADD/SUBppp.
-
-2000-02-22  Andrew Haley  <aph@cygnus.com>
-
-	* mips.h: (OPCODE_IS_MEMBER): Add comment.
-
-1999-12-30  Andrew Haley  <aph@cygnus.com>
-
-	* mips.h (OPCODE_IS_MEMBER): Add gp32 arg, which determines
-	whether synthetic opcodes (e.g. move) generate 32-bit or 64-bit
-	insns.
-
-2000-01-15  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* i386.h: Qualify intel mode far call and jmp with x_Suf.
-
-1999-12-27  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* i386.h: Add JumpAbsolute qualifier to all non-intel mode
-	indirect jumps and calls.  Add FF/3 call for intel mode.
-
-Wed Dec  1 03:05:25 1999  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.h: Add new operand types.  Add new instruction formats.
-
-Wed Nov 24 20:28:58 1999  Jeffrey A Law  (law@cygnus.com)
-
-	* hppa.h (pa_opcodes): Correctly handle immediate for PA2.0 "bb"
-	instruction.
-
-1999-11-18  Gavin Romig-Koch  <gavin@cygnus.com>
-
-	* mips.h (INSN_ISA5): New.
-
-1999-11-01  Gavin Romig-Koch  <gavin@cygnus.com>
-
-	* mips.h (OPCODE_IS_MEMBER): New.
-
-1999-10-29  Nick Clifton  <nickc@cygnus.com>
-
-	* d30v.h (SHORT_AR): Define.
-
-1999-10-18  Michael Meissner  <meissner@cygnus.com>
-
-	* alpha.h (alpha_num_opcodes): Convert to unsigned.
-	(alpha_num_operands): Ditto.
-
-Sun Oct 10 01:46:56 1999  Jerry Quinn <jerry.quinn.adv91@alum.dartmouth.org>
-
-	* hppa.h (pa_opcodes): Add load and store cache control to
-	instructions.  Add ordered access load and store.
-
-	* hppa.h (pa_opcode): Add new entries for addb and addib.
-
-	* hppa.h (pa_opcodes): Fix cmpb and cmpib entries.
-
-	* hppa.h (pa_opcodes): Add entries for cmpb and cmpib.
-
-Thu Oct  7 00:12:25 MDT 1999	Diego Novillo <dnovillo@cygnus.com>
-
-	* d10v.h: Add flag RESTRICTED_NUM3 for imm3 operands.
-
-Thu Sep 23 07:08:38 1999  Jerry Quinn <jquinn@nortelnetworks.com>
-
-	* hppa.h (pa_opcodes): Add "call" and "ret".  Clean up "b", "bve"
-	and "be" using completer prefixes.
-
-	* hppa.h (pa_opcodes): Add initializers to silence compiler.
-
-	* hppa.h: Update comments about character usage.
-
-Mon Sep 20 03:55:31 1999  Jeffrey A Law  (law@cygnus.com)
-
-	* hppa.h (pa_opcodes): Fix minor thinkos introduced while cleaning
-	up the new fstw & bve instructions.
-
-Sun Sep 19 10:40:59 1999  Jeffrey A Law  (law@cygnus.com)
-
-	* hppa.h (pa_opcodes): Add remaining PA2.0 integer load/store
-	instructions.
-
-	* hppa.h (pa_opcodes): Add remaining PA2.0 FP load/store instructions.
-
-	* hppa.h (pa_opcodes): Add long offset double word load/store
-	instructions.
-
-	* hppa.h (pa_opcodes): Add FLAG_STRICT variants of FP loads and
-	stores.
-
-	* hppa.h (pa_opcodes): Handle PA2.0 fcnv, fcmp and ftest insns.
-
-	* hppa.h (pa_opcodes): Finish support for PA2.0 "b" instructions.
-
-	* hppa.h (pa_opcodes): Handle PA2.0 "bve" instructions.
-
-	* hppa.h (pa_opcodes): Add new syntax "be" instructions.
-
-	* hppa.h (pa_opcodes): Note use of 'M' and 'L'.
-
-	* hppa.h (pa_opcodes): Add support for "b,l".
-
-	* hppa.h (pa_opcodes): Add support for "b,gate".
-
-Sat Sep 18 11:41:16 1999  Jeffrey A Law  (law@cygnus.com)
-
-	* hppa.h (pa_opcodes): Use 'fX' for first register operand
-	in xmpyu.
-
-	* hppa.h (pa_opcodes): Fix mask for probe and probei.
-
-	* hppa.h (pa_opcodes): Fix mask for depwi.
-
-Tue Sep  7 13:44:25 1999  Jeffrey A Law  (law@cygnus.com)
-
-	* hppa.h (pa_opcodes): Add "addil" variant which has the %r1 as
-	an explicit output argument.
-
-Mon Sep  6 04:41:42 1999  Jeffrey A Law  (law@cygnus.com)
-
-	* hppa.h: Add strict variants of PA1.0/PA1.1 loads and stores.
-	Add a few PA2.0 loads and store variants.
-
-1999-09-04  Steve Chamberlain  <sac@pobox.com>
-
-	* pj.h: New file.
-
-1999-08-29  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* i386.h (i386_regtab): Move %st to top of table, and split off
-	other fp reg entries.
-	(i386_float_regtab): To here.
-
-Sat Aug 28 00:25:25 1999  Jerry Quinn <jquinn@nortelnetworks.com>
-
-	* hppa.h (pa_opcodes): Replace 'f' by 'v'.  Prefix float register args
-	by 'f'.
-
-	* hppa.h (pa_opcodes): Add extrd, extrw, depd, depdi, depw, depwi.
-	Add supporting args.
-
-	* hppa.h: Document new completers and args.
-	* hppa.h (pa_opcodes): Add 64 bit patterns and pa2.0 syntax for uxor,
-	uaddcm, dcor, addi, add, sub, subi, shladd, rfi, and probe.  Add pa2.0
-	extensions for ssm, rsm, pdtlb, pitlb.  Add performance instructions
-	pmenb and pmdis.
-
-	* hppa.h (pa_opcodes): Add pa2.0 instructions hadd, hshl,
-	hshr, hsub, mixh, mixw, permh.
-
-	* hppa.h (pa_opcodes): Change completers in instructions to
-	use 'c' prefix.
-
-	* hppa.h (pa_opcodes): Add popbts, new forms of bb, havg,
-	hshladd, hshradd, shrpd, and shrpw instructions.  Update arg comments.
-
-	* hppa.h (pa_opcodes): Change fmpyfadd, fmpynfadd, fneg,
-	fnegabs to use 'I' instead of 'F'.
-
-1999-08-21  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* i386.h: Add AMD athlon instructions, pfnacc, pfpnacc, pswapd.
-	Document pf2iw and pi2fw as athlon insns.  Remove pswapw.
-	Alphabetically sort PIII insns.
-
-Wed Aug 18 18:14:40 1999  Doug Evans  <devans@canuck.cygnus.com>
-
-	* cgen.h (CGEN_INSN_MACH_HAS_P): New macro.
-
-Fri Aug  6 09:46:35 1999  Jerry Quinn <jquinn@nortelnetworks.com>
-
-	* hppa.h (pa_opcodes): Add 64 bit versions of or, xor, and,
-	and andcm.  Add 32 and 64 bit version of cmpclr, cmpiclr.
-
-	* hppa.h: Document 64 bit condition completers.
-
-Thu Aug  5 16:56:07 1999  Jerry Quinn <jquinn@nortelnetworks.com>
-
-	* hppa.h (pa_opcodes): Change condition args to use '?' prefix.
-
-1999-08-04  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* i386.h (i386_optab): Add DefaultSize modifier to all insns
-	that implicitly modify %esp.  #undef d_Suf, x_suf, sld_suf,
-	sldx_suf, bwld_Suf, d_FP, x_FP, sld_FP, sldx_FP at end of table.
-
-Wed Jul 28 02:04:24 1999  Jerry Quinn <jquinn@nortelnetworks.com>
-			  Jeff Law <law@cygnus.com>
-
-	* hppa.h (pa_opcodes): Add "pushnom" and "pushbts".
-
-	* hppa.h (pa_opcodes): Mark all PA2.0 opcodes with FLAG_STRICT.
-
-	* hppa.h (pa_opcodes): Change xmpyu, fmpyfadd,
-	and fmpynfadd to use 'J' and 'K' instead of 'E' and 'X'.
-
-1999-07-13  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* i386.h: Add "undocumented" AMD 3DNow! pf2iw, pi2fw, pswapw insns.
-
-Thu Jul  1 00:17:24 1999  Jeffrey A Law  (law@cygnus.com)
-
-	* hppa.h (struct pa_opcode): Add new field "flags".
-	(FLAGS_STRICT): Define.
-
-Fri Jun 25 04:22:04 1999  Jerry Quinn <jquinn@nortelnetworks.com>
-			  Jeff Law <law@cygnus.com>
-
-	* hppa.h (pa_opcodes): Add pa2.0 clrbts instruction.
-
-	* hppa.h (pa_opcodes): Add entries for mfia and mtsarcm instructions.
-
-1999-06-23  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* i386.h: Allow `l' suffix on bswap.  Allow `w' suffix on arpl,
-	lldt, lmsw, ltr, str, verr, verw.  Add FP flag to fcmov*.  Add FP
-	flag to fcomi and friends.
-
-Fri May 28 15:26:11 1999  Jeffrey A Law  (law@cygnus.com)
-
-	* hppa.h (pa_opcodes): Move integer arithmetic instructions after
-	integer logical instructions.
-
-1999-05-28  Linus Nordberg  <linus.nordberg@canit.se>
-
-	* m68k.h: Document new formats `E', `G', `H' and new places `N',
-	`n', `o'.
-
-	* m68k.h: Define mcf5206e, mcf5307, mcf.  Document new format `u'
-	and new places `m', `M', `h'.
-
-Thu May 27 04:13:54 1999  Joel Sherrill (joel@OARcorp.com
-
-	* hppa.h (pa_opcodes): Add several processor specific system
-	instructions.
-
-Wed May 26 16:57:44 1999  Jeffrey A Law  (law@cygnus.com)
-
-	* hppa.h (pa_opcodes): Add second entry for "comb", "comib",
-	"addb", and "addib" to be used by the disassembler.
-
-1999-05-12  Alan Modra  <alan@apri.levels.unisa.edu.au>
-
-	* i386.h (ReverseModrm): Remove all occurences.
-	(InvMem): Add to control/debug/test mov insns, movhlps, movlhps,
-	movmskps, pextrw, pmovmskb, maskmovq.
-	Change NoSuf to FP on all MMX, XMM and AMD insns as these all
-	ignore the data size prefix.
-
-	* i386.h (i386_optab, i386_regtab): Add support for PIII SIMD.
-	Mostly stolen from Doug Ledford <dledford@redhat.com>
-
-Sat May  8 23:27:35 1999  Richard Henderson  <rth@cygnus.com>
-
-	* ppc.h (PPC_OPCODE_64_BRIDGE): New.
-
-1999-04-14  Doug Evans  <devans@casey.cygnus.com>
-
-	* cgen.h (CGEN_ATTR): Delete member num_nonbools.
-	(CGEN_ATTR_TYPE): Update.
-	(CGEN_ATTR_MASK): Number booleans starting at 0.
-	(CGEN_ATTR_VALUE): Update.
-	(CGEN_INSN_ATTR): Update.
-
-Mon Apr 12 23:43:27 1999  Jeffrey A Law  (law@cygnus.com)
-
-	* hppa.h (fmpyfadd, fmpynfadd, fneg, fnegabs): New PA2.0
-	instructions.
-
-Tue Mar 23 11:24:38 1999  Jeffrey A Law  (law@cygnus.com)
-
-	* hppa.h (bb, bvb): Tweak opcode/mask.
-
-
-1999-03-22  Doug Evans  <devans@casey.cygnus.com>
-
-	* cgen.h (CGEN_ISA,CGEN_MACH): New typedefs.
-	(struct cgen_cpu_desc): Rename member mach to machs.  New member isas.
-	New members word_bitsize,default_insn_bitsize,base_insn-bitsize,
-	min_insn_bitsize,max_insn_bitsize,isa_table,mach_table,rebuild_tables.
-	Delete member max_insn_size.
-	(enum cgen_cpu_open_arg): New enum.
-	(cpu_open): Update prototype.
-	(cpu_open_1): Declare.
-	(cgen_set_cpu): Delete.
-
-1999-03-11  Doug Evans  <devans@casey.cygnus.com>
-
-	* cgen.h (CGEN_HW_TABLE): Delete `num_init_entries' member.
-	(CGEN_OPERAND_NIL): New macro.
-	(CGEN_OPERAND): New member `type'.
-	(@arch@_cgen_operand_table): Delete decl.
-	(CGEN_OPERAND_INDEX,CGEN_OPERAND_TYPE,CGEN_OPERAND_ENTRY): Delete.
-	(CGEN_OPERAND_TABLE): New struct.
-	(cgen_operand_lookup_by_name,cgen_operand_lookup_by_num): Declare.
-	(CGEN_OPINST): Pointer to operand table entry replaced with enum.
-	(CGEN_CPU_TABLE): New member `isa'.  Change member `operand_table',
-	now a CGEN_OPERAND_TABLE.  Add CGEN_CPU_DESC arg to
-	{get,set}_{int,vma}_operand.
-	(@arch@_cgen_cpu_open): New arg `isa'.
-	(cgen_set_cpu): Ditto.
-
-Fri Feb 26 02:36:45 1999  Richard Henderson  <rth@cygnus.com>
-
-	* i386.h: Fill in cmov and fcmov alternates.  Add fcomi short forms.
-
-1999-02-25  Doug Evans  <devans@casey.cygnus.com>
-
-	* cgen.h (enum cgen_asm_type): Add CGEN_ASM_NONE.
-	(CGEN_HW_ENTRY): Delete member `next'.  Change type of `type' to
-	enum cgen_hw_type.
-	(CGEN_HW_TABLE): New struct.
-	(hw_table): Delete declaration.
-	(CGEN_OPERAND): Change member hw to hw_type, change type from pointer
-	to table entry to enum.
-	(CGEN_OPINST): Ditto.
-	(CGEN_CPU_TABLE): Change member hw_list to hw_table.
-
-Sat Feb 13 14:13:44 1999  Richard Henderson  <rth@cygnus.com>
-
-	* alpha.h (AXP_OPCODE_EV6): New.
-	(AXP_OPCODE_NOPAL): Include it.
-
-1999-02-09  Doug Evans  <devans@casey.cygnus.com>
-
-	* cgen.h (CGEN_CPU_DESC): Renamed from CGEN_OPCODE_DESC.
-	All uses updated.  New members int_insn_p, max_insn_size,
-	parse_operand,insert_operand,extract_operand,print_operand,
-	sizeof_fields,set_fields_bitsize,get_int_operand,set_int_operand,
-	get_vma_operand,set_vma_operand,parse_handlers,insert_handlers,
-	extract_handlers,print_handlers.
-	(CGEN_ATTR): Change type of num_nonbools to unsigned int.
-	(CGEN_ATTR_BOOL_OFFSET): New macro.
-	(CGEN_ATTR_MASK): Subtract it to compute bit number.
-	(CGEN_ATTR_VALUE): Redo bool/nonbool attr calculation.
-	(cgen_opcode_handler): Renamed from cgen_base.
-	(CGEN_HW_ATTR_VALUE): Renamed from CGEN_HW_ATTR, all uses updated.
-	(CGEN_OPERAND_ATTR_VALUE): Renamed from CGEN_OPERAND_ATTR,
-	all uses updated.
-	(CGEN_OPERAND_INDEX): Rewrite to use table entry, not global.
-	(enum cgen_opinst_type): Renamed from cgen_operand_instance_type.
-	(CGEN_IFLD_ATTR_VALUE): Renamed from CGEN_IFLD_ATTR, all uses updated.
-	(CGEN_OPCODE,CGEN_IBASE): New types.
-	(CGEN_INSN): Rewrite.
-	(CGEN_{ASM,DIS}_HASH*): Delete.
-	(init_opcode_table,init_ibld_table): Declare.
-	(CGEN_INSN_ATTR): New type.
-
-Mon Feb  1 21:09:14 1999  Catherine Moore  <clm@cygnus.com>
-
-	* i386.h (d_Suf, x_Suf, sld_Suf, sldx_Suf, bwld_Suf): Define.
-	(x_FP, d_FP, dls_FP, sldx_FP): Define.
-	Change *Suf definitions to include x and d suffixes.
-	(movsx): Use w_Suf and b_Suf.
-	(movzx): Likewise.
-	(movs): Use bwld_Suf.
-	(fld): Change ordering.  Use sld_FP.
-	(fild): Add Intel Syntax equivalent of fildq.
-	(fst): Use sld_FP.
-	(fist): Use sld_FP.
-	(fstp): Use sld_FP.  Add x_FP version.
-	(fistp): LLongMem version for Intel Syntax.
-	(fcom, fcomp): Use sld_FP.
-	(fadd, fiadd, fsub): Use sld_FP.
-	(fsubr): Use sld_FP.
-	(fmul, fimul, fdvi, fidiv, fdivr): Use sld_FP.
-
-1999-01-27  Doug Evans  <devans@casey.cygnus.com>
-
-	* cgen.h (enum cgen_mode): Add CGEN_MODE_TARGET_MAX, CGEN_MODE_INT,
-	CGEN_MODE_UINT.
-
-1999-01-16  Jeffrey A Law  (law@cygnus.com)
-
-	* hppa.h (bv): Fix mask.
-
-1999-01-05  Doug Evans  <devans@casey.cygnus.com>
-
-	* cgen.h (CGEN_ATTR_VALUE_TYPE): New typedef.
-	(CGEN_ATTR): Use it.
-	(CGEN_ATTR_TYPE,CGEN_ATTR_ENTRY): Ditto.
-	(CGEN_ATTR_TABLE): New member dfault.
-
-1998-12-30  Gavin Romig-Koch  <gavin@cygnus.com>
-
-	* mips.h (MIPS16_INSN_BRANCH): New.
-
-Wed Dec  9 10:38:48 1998  David Taylor  <taylor@texas.cygnus.com>
-
-	The following is part of a change made by Edith Epstein
-	<eepstein@sophia.cygnus.com> as part of a project to merge in
-	changes by HP; HP did not create ChangeLog entries.
-
-	* hppa.h (completer_chars): list of chars to not put a space
-	after.
-
-Sun Dec  6 13:21:34 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* i386.h (i386_optab): Permit w suffix on processor control and
-	status word instructions.
-
-1998-11-30  Doug Evans  <devans@casey.cygnus.com>
-
-	* cgen.h (struct cgen_hw_entry): Delete const on attrs member.
-	(struct cgen_keyword_entry): Ditto.
-	(struct cgen_operand): Ditto.
-	(CGEN_IFLD): New typedef, with associated access macros.
-	(CGEN_IFMT): New typedef, with associated access macros.
-	(CGEN_IFMT): Renamed from CGEN_FORMAT.  New member `iflds'.
-	(CGEN_IVALUE): New typedef.
-	(struct cgen_insn): Delete const on syntax,attrs members.
-	`format' now points to format data.  Type of `value' is now
-	CGEN_IVALUE.
-	(struct cgen_opcode_table): New member ifld_table.
-
-1998-11-18  Doug Evans  <devans@casey.cygnus.com>
-
-	* cgen.h (cgen_extract_fn): Update type of `base_insn' arg.
-	(CGEN_OPERAND_INSTANCE): New member `attrs'.
-	(CGEN_OPERAND_INSTANCE_{ATTRS,ATTR}): New macros.
-	(cgen_dis_lookup_insn): Update type of `base_insn' arg.
-	(cgen_opcode_table): Update type of dis_hash fn.
-	(extract_operand): Update type of `insn_value' arg.
-
-Thu Oct 29 11:38:36 1998  Doug Evans  <devans@canuck.cygnus.com>
-
-	* cgen.h (CGEN_VERSION_{MAJOR,MINOR,FIXLEVEL}): Delete.
-
-Tue Oct 27 08:57:59 1998  Gavin Romig-Koch  <gavin@cygnus.com>
-
-	* mips.h (INSN_MULT): Added.
-
-Tue Oct 20 11:31:34 1998  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* i386.h (MAX_MNEM_SIZE): Rename from MAX_OPCODE_SIZE.
-
-Mon Oct 19 12:50:00 1998  Doug Evans  <devans@seba.cygnus.com>
-
-	* cgen.h (CGEN_INSN_INT): New typedef.
-	(CGEN_INT_INSN_P): Renamed from CGEN_INT_INSN.
-	(CGEN_INSN_BYTES): Renamed from cgen_insn_t.
-	(CGEN_INSN_BYTES_PTR): New typedef.
-	(CGEN_EXTRACT_INFO): New typedef.
-	(cgen_insert_fn,cgen_extract_fn): Update.
-	(cgen_opcode_table): New member `insn_endian'.
-	(assemble_insn,lookup_insn,lookup_get_insn_operands): Update.
-	(insert_operand,extract_operand): Update.
-	(cgen_get_insn_value,cgen_put_insn_value): Add prototypes.
-
-Fri Oct  9 13:38:13 1998  Doug Evans  <devans@seba.cygnus.com>
-
-	* cgen.h (CGEN_ATTR_BOOLS): New macro.
-	(struct CGEN_HW_ENTRY): New member `attrs'.
-	(CGEN_HW_ATTR): New macro.
-	(struct CGEN_OPERAND_INSTANCE): New member `name'.
-	(CGEN_INSN_INVALID_P): New macro.
-
-Mon Oct  5 00:21:07 1998  Jeffrey A Law  (law@cygnus.com)
-
-	* hppa.h: Add "fid".
-
-Sun Oct  4 21:00:00 1998  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	From Robert Andrew Dale <rob@nb.net>
-	* i386.h (i386_optab): Add AMD 3DNow! instructions.
-	(AMD_3DNOW_OPCODE): Define.
-
-Tue Sep 22 17:53:47 1998  Nick Clifton  <nickc@cygnus.com>
-
-	* d30v.h (EITHER_BUT_PREFER_MU): Define.
-
-Mon Aug 10 14:09:38 1998  Doug Evans  <devans@canuck.cygnus.com>
-
-	* cgen.h (cgen_insn): #if 0 out element `cdx'.
-
-Mon Aug  3 12:21:57 1998  Doug Evans  <devans@seba.cygnus.com>
-
-	Move all global state data into opcode table struct, and treat
-	opcode table as something that is "opened/closed".
-	* cgen.h (CGEN_OPCODE_DESC): New type.
-	(all fns): New first arg of opcode table descriptor.
-	(cgen_set_parse_operand_fn): Add prototype.
-	(cgen_current_machine,cgen_current_endian): Delete.
-	(CGEN_OPCODE_TABLE): New members mach,endian,operand_table,
-	parse_operand_fn,asm_hash_table,asm_hash_table_entries,
-	dis_hash_table,dis_hash_table_entries.
-	(opcode_open,opcode_close): Add prototypes.
-
-	* cgen.h (cgen_insn): New element `cdx'.
-
-Thu Jul 30 21:44:25 1998  Frank Ch. Eigler  <fche@cygnus.com>
-
-	* d30v.h (FLAG_LKR): New flag for "left-kills-right" instructions.
-
-Tue Jul 28 10:59:07 1998  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.h: Add "no_match_operands" field for instructions.
-	(MN10300_MAX_OPERANDS): Define.
-
-Fri Jul 24 11:44:24 1998  Doug Evans  <devans@canuck.cygnus.com>
-
-	* cgen.h (cgen_macro_insn_count): Declare.
-
-Tue Jul 21 13:12:13 1998  Doug Evans  <devans@seba.cygnus.com>
-
-	* cgen.h (CGEN_VERSION_{MAJOR,MINOR,FIXLEVEL}): Define.
-	(cgen_insert_fn,cgen_extract_fn): New arg `pc'.
-	(get_operand,put_operand): Replaced with get_{int,vma}_operand,
-	set_{int,vma}_operand.
-
-Fri Jun 26 11:09:06 1998  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.h: Add "machine" field for instructions.
-	(MN103, AM30): Define machine types.
-
-Fri Jun 19 16:09:09 1998  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* i386.h: Use FP, not sl_Suf, for fxsave and fxrstor.
-
-1998-06-18  Ulrich Drepper  <drepper@cygnus.com>
-
-	* i386.h: Add support for fxsave, fxrstor, sysenter and sysexit.
-
-Sat Jun 13 11:31:35 1998  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* i386.h (i386_optab): Add general form of aad and aam.  Add ud2a
-	and ud2b.
-	(i386_regtab): Allow cr0..7, db0..7, dr0..7, tr0..7, not just
-	those that happen to be implemented on pentiums.
-
-Tue Jun  9 12:16:01 1998  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* i386.h: Change occurences of Data16 to Size16, Data32 to Size32,
-	IgnoreDataSize to IgnoreSize.  Flag address and data size prefixes
-	with Size16|IgnoreSize or Size32|IgnoreSize.
-
-Mon Jun  8 12:15:52 1998  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* i386.h (REPNE): Rename to REPNE_PREFIX_OPCODE.
-	(REPE): Rename to REPE_PREFIX_OPCODE.
-	(i386_regtab_end): Remove.
-	(i386_prefixtab, i386_prefixtab_end): Remove.
-	(i386_optab): Use NULL as sentinel rather than "" to suit rewrite
-	of md_begin.
-	(MAX_OPCODE_SIZE): Define.
-	(i386_optab_end): Remove.
-	(sl_Suf): Define.
-	(sl_FP): Use sl_Suf.
-
-	* i386.h (i386_optab): Allow 16 bit displacement for `mov
-	mem,acc'.  Combine 16 and 32 bit forms of various insns.  Allow 16
-	bit form of ljmp.  Add IsPrefix modifier to prefixes.  Add addr32,
-	data32, dword, and adword prefixes.
-	(i386_regtab): Add BaseIndex modifier to valid 16 bit base/index
-	regs.
-
-Fri Jun  5 23:42:43 1998  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* i386.h (i386_regtab): Remove BaseIndex modifier from esp.
-
-	* i386.h: Allow `l' suffix on fld, fst, fstp, fcom, fcomp with
-	register operands, because this is a common idiom.  Flag them with
-	a warning.  Allow illegal faddp, fsubp, fsubrp, fmulp, fdivp,
-	fdivrp because gcc erroneously generates them.  Also flag with a
-	warning.
-
-	* i386.h: Add suffix modifiers to most insns, and tighter operand
-	checks in some cases.  Fix a number of UnixWare compatibility
-	issues with float insns.  Merge some floating point opcodes, using
-	new FloatMF modifier.
-	(WORD_PREFIX_OPCODE): Rename to DATA_PREFIX_OPCODE for
-	consistency.
-
-	* i386.h: Change occurence of ShortformW to W|ShortForm.  Add
-	IgnoreDataSize where appropriate.
-
-Wed Jun  3 18:28:45 1998  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* i386.h: (one_byte_segment_defaults): Remove.
-	(two_byte_segment_defaults): Remove.
-	(i386_regtab): Add BaseIndex to 32 bit regs reg_type.
-
-Fri May 15 15:59:04 1998  Doug Evans  <devans@seba.cygnus.com>
-
-	* cgen.h (cgen_hw_lookup_by_name): Renamed from cgen_hw_lookup.
-	(cgen_hw_lookup_by_num): Declare.
-
-Thu May  7 09:27:58 1998  Frank Ch. Eigler  <fche@cygnus.com>
-
-	* mips.h (OP_{SH,MASK}_CODE2): Added "q" operand format for lower
-	ten bits of MIPS ISA1 "break" instruction, and for "sdbbp"
-
-Thu May  7 02:14:08 1998  Doug Evans  <devans@charmed.cygnus.com>
-
-	* cgen.h (cgen_asm_init_parse): Delete.
-	(cgen_save_fixups,cgen_restore_fixups,cgen_swap_fixups): Delete.
-	(cgen_asm_record_register,cgen_asm_finish_insn): Delete.
-
-Mon Apr 27 10:13:11 1998  Doug Evans  <devans@seba.cygnus.com>
-
-	* cgen.h (CGEN_ATTR_TYPE): Delete `const', moved to uses.
-	(cgen_asm_finish_insn): Update prototype.
-	(cgen_insn): New members num, data.
-	(CGEN_INSN_TABLE): Members asm_hash, asm_hash_table_size,
-	dis_hash, dis_hash_table_size moved to ...
-	(CGEN_OPCODE_TABLE).  Here.  Renamed from CGEN_OPCODE_DATA.
-	All uses updated.  New members asm_hash_p, dis_hash_p.
-	(CGEN_MINSN_EXPANSION): New struct.
-	(cgen_expand_macro_insn): Declare.
-	(cgen_macro_insn_count): Declare.
-	(get_insn_operands): Update prototype.
-	(lookup_get_insn_operands): Declare.
-
-Tue Apr 21 17:11:32 1998  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* i386.h (i386_optab): Change iclrKludge and imulKludge to
-	regKludge.  Add operands types for string instructions.
-
-Mon Apr 20 14:40:29 1998  Tom Tromey  <tromey@cygnus.com>
-
-	* i386.h (X): Renamed from `Z_' to preserve formatting of opcode
-	table.
-
-Sun Apr 19 13:54:06 1998  Tom Tromey  <tromey@cygnus.com>
-
-	* i386.h (Z_): Renamed from `_' to avoid clash with common alias
-	for `gettext'.
-
-Fri Apr  3 12:04:48 1998  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* i386.h: Remove NoModrm flag from all insns: it's never checked.
-	Add IsString flag to string instructions.
-	(IS_STRING): Don't define.
-	(LOCK_PREFIX_OPCODE, CS_PREFIX_OPCODE, DS_PREFIX_OPCODE): Define.
-	(ES_PREFIX_OPCODE, FS_PREFIX_OPCODE, GS_PREFIX_OPCODE): Define.
-	(SS_PREFIX_OPCODE): Define.
-
-Mon Mar 30 21:31:56 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* i386.h: Revert March 24 patch; no more LinearAddress.
-
-Mon Mar 30 10:25:54 1998  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* i386.h (i386_optab): Remove fwait (9b) from all floating point
-	instructions, and instead add FWait opcode modifier.  Add short
-	form of fldenv and fstenv.
-	(FWAIT_OPCODE): Define.
-
-	* i386.h (i386_optab): Change second operand constraint of `mov
-	sreg,reg|mem' instruction from Reg16|Mem to WordReg|WordMem to
-	allow legal instructions such as `movl %gs,%esi'
-
-Fri Mar 27 18:30:52 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* h8300.h: Various changes to fully bracket initializers.
-
-Tue Mar 24 18:32:47 1998  H.J. Lu  <hjl@gnu.org>
-
-	* i386.h: Set LinearAddress for lidt and lgdt.
-
-Mon Mar  2 10:44:07 1998  Doug Evans  <devans@seba.cygnus.com>
-
-	* cgen.h (CGEN_BOOL_ATTR): New macro.
-
-Thu Feb 26 15:54:31 1998  Michael Meissner  <meissner@cygnus.com>
-
-	* d30v.h (FLAG_DELAY): New flag for delayed branches/jumps.
-
-Mon Feb 23 10:38:21 1998  Doug Evans  <devans@seba.cygnus.com>
-
-	* cgen.h (CGEN_CAT3): Delete.  Use CONCAT3 now.
-	(cgen_insn): Record syntax and format entries here, rather than
-	separately.
-
-Tue Feb 17 21:42:56 1998  Nick Clifton  <nickc@cygnus.com>
-
-	* cgen.h (CGEN_SYNTAX_MAKE_FIELD): New macro.
-
-Tue Feb 17 16:00:56 1998  Doug Evans  <devans@seba.cygnus.com>
-
-	* cgen.h (cgen_insert_fn): Change type of result to const char *.
-	(cgen_parse_{signed,unsigned}_integer): Delete min,max arguments.
-	(CGEN_{INSN,KEYWORD,OPERAND}_NBOOL_ATTRS): Renamed from ..._MAX_ATTRS.
-
-Thu Feb 12 18:30:41 1998  Doug Evans  <devans@canuck.cygnus.com>
-
-	* cgen.h (lookup_insn): New argument alias_p.
-
-Thu Feb 12 03:41:00 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
-
-Fix rac to accept only a0:
-	* d10v.h (OPERAND_ACC): Split into:
-	(OPERAND_ACC0, OPERAND_ACC1) .
-	(OPERAND_GPR): Define.
-
-Wed Feb 11 17:31:53 1998  Doug Evans  <devans@seba.cygnus.com>
-
-	* cgen.h (CGEN_FIELDS): Define here.
-	(CGEN_HW_ENTRY): New member `type'.
-	(hw_list): Delete decl.
-	(enum cgen_mode): Declare.
-	(CGEN_OPERAND): New member `hw'.
-	(enum cgen_operand_instance_type): Declare.
-	(CGEN_OPERAND_INSTANCE): New type.
-	(CGEN_INSN): New member `operands'.
-	(CGEN_OPCODE_DATA): Make hw_list const.
-	(get_insn_operands,lookup_insn): Add prototypes for.
-
-Tue Feb  3 17:11:23 1998  Doug Evans  <devans@seba.cygnus.com>
-
-	* cgen.h (CGEN_INSN_MAX_ATTRS): Renamed from CGEN_MAX_INSN_ATTRS.
-	(CGEN_HW_ENTRY): Move `next' entry to end of struct.
-	(CGEN_KEYWORD_MAX_ATTRS): Renamed from CGEN_MAX_KEYWORD_ATTRS.
-	(CGEN_OPERAND_MAX_ATTRS): Renamed from CGEN_MAX_OPERAND_ATTRS.
-
-Mon Feb  2 19:19:15 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* cgen.h: Correct typo in comment end marker.
-
-Mon Feb  2 17:10:38 1998  Steve Haworth  <steve@pm.cse.rmit.EDU.AU>
-
-	* tic30.h: New file.
-
-Thu Jan 22 17:54:56 1998  Nick Clifton  <nickc@cygnus.com>
-
-	* cgen.h: Add prototypes for cgen_save_fixups(),
-	cgen_restore_fixups(), and cgen_swap_fixups().  Change prototype
-	of cgen_asm_finish_insn() to return a char *.
-
-Wed Jan 14 17:21:43 1998  Nick Clifton  <nickc@cygnus.com>
-
-	* cgen.h: Formatting changes to improve readability.
-
-Mon Jan 12 11:37:36 1998  Doug Evans  <devans@seba.cygnus.com>
-
-	* cgen.h (*): Clean up pass over `struct foo' usage.
-	(CGEN_ATTR): Make unsigned char.
-	(CGEN_ATTR_TYPE): Update.
-	(CGEN_ATTR_{ENTRY,TABLE}): New types.
-	(cgen_base): Move member `attrs' to cgen_insn.
-	(CGEN_KEYWORD): New member `null_entry'.
-	(CGEN_{SYNTAX,FORMAT}): New types.
-	(cgen_insn): Format and syntax separated from each other.
-
-Tue Dec 16 15:15:52 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* d30v.h (d30v_opcode): Reorder flags somewhat, add new flags for
-	2 word load/store, ADDppp/SUBppp, 16/32 bit multiply.  Make
-	flags_{used,set} long.
-	(d30v_operand): Make flags field long.
-
-Mon Dec  1 12:24:44 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* m68k.h: Fix comment describing operand types.
-
-Sun Nov 23 22:31:27 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* d30v.h (SHORT_CMPU): Add case for cmpu instruction, and move
-	everything else after down.
-
-Tue Nov 18 18:45:14 1997  J"orn Rennecke  <amylaar@cygnus.co.uk>
-
-	* d10v.h (OPERAND_FLAG): Split into:
-	(OPERAND_FFLAG, OPERAND_CFLAG) .
-
-Thu Nov 13 11:04:24 1997  Gavin Koch  <gavin@cygnus.com>
-
-	* mips.h (struct mips_opcode): Changed comments to reflect new
-	field usage.
-
-Fri Oct 24 22:36:20 1997  Ken Raeburn  <raeburn@cygnus.com>
-
-	* mips.h: Added to comments a quick-ref list of all assigned
-	operand type characters.
-	(OP_{MASK,SH}_PERFREG): New macros.
-
-Wed Oct 22 17:28:33 1997  Richard Henderson  <rth@cygnus.com>
-
-	* sparc.h: Add '_' and '/' for v9a asr's.
-	Patch from David Miller <davem@vger.rutgers.edu>
-
-Tue Oct 14 13:22:29 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* h8300.h: Bit ops with absolute addresses not in the 8 bit
-	area are not available in the base model (H8/300).
-
-Thu Sep 25 13:03:41 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* m68k.h: Remove documentation of ` operand specifier.
-
-Wed Sep 24 19:00:34 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* m68k.h: Document q and v operand specifiers.
-
-Mon Sep 15 18:28:37 1997  Nick Clifton  <nickc@cygnus.com>
-
-	* v850.h (struct v850_opcode): Add processors field.
-	(PROCESSOR_V850, PROCESSOR_ALL): New bit constants.
-	(PROCESSOR_V850E, PROCESSOR_NOT_V850): New bit constants.
-	(PROCESSOR_V850EA): New bit constants.
-
-Mon Sep 15 11:29:43 1997  Ken Raeburn  <raeburn@cygnus.com>
-
-	Merge changes from Martin Hunt:
-
-	* d30v.h: Allow up to 64 control registers. Add
-	SHORT_A5S format.
-
-	* d30v.h (LONG_Db): New form for delayed branches.
-
-	* d30v.h: (LONG_Db): New form for repeati.
-
-	* d30v.h (SHORT_D2B): New form.
-
-	* d30v.h (SHORT_A2): New form.
-
-	* d30v.h (OPERAND_2REG): Add new operand to indicate 2
-	registers are used.  Needed for VLIW optimization.
-
-Mon Sep  8 14:05:45 1997  Doug Evans  <dje@canuck.cygnus.com>
-
-	* cgen.h: Move assembler interface section
-	up so cgen_parse_operand_result is defined for cgen_parse_address.
-	(cgen_parse_address): Update prototype.
-
-Tue Sep  2 15:32:32 1997  Nick Clifton  <nickc@cygnus.com>
-
-	* v850.h (V850_OPREAND_ADJUST_SHORT_MEMORY): Removed.
-
-Tue Aug 26 12:21:52 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* i386.h (two_byte_segment_defaults): Correct base register 5 in
-	modes 1 and 2 to be ss rather than ds.  From Gabriel Paubert
-	<paubert@iram.es>.
-
-	* i386.h: Set ud2 to 0x0f0b.  From Gabriel Paubert
-	<paubert@iram.es>.
-
-	* i386.h: Comment fixes for ficom[p]?{s,l} from Gabriel Paubert
-	<paubert@iram.es>.
-
-	* i386.h (JUMP_ON_CX_ZERO): Uncomment (define again).
-	(JUMP_ON_ECX_ZERO): Remove commented out macro.
-
-Fri Aug 22 10:38:29 1997  Nick Clifton  <nickc@cygnus.com>
-
-	* v850.h (V850_NOT_R0): New flag.
-
-Mon Aug 18 11:05:58 1997  Nick Clifton  <nickc@cygnus.com>
-
-	* v850.h (struct v850_opcode): Remove flags field.
-
-Wed Aug 13 18:45:48 1997  Nick Clifton  <nickc@cygnus.com>
-
-	* v850.h (struct v850_opcode): Add flags field.
-	(struct v850_operand): Extend meaning of 'bits' and 'shift'
-	fields.
-	(V850E_INSTRUCTION, V850EA_INSTRUCTION): New flags.
-	(V850E_PUSH_POP, V850E_IMMEDIATE16, V850E_IMMEDIATE32): New flags.
-
-Fri Aug  8 16:58:42 1997  Doug Evans  <dje@canuck.cygnus.com>
-
-	* arc.h: New file.
-
-Thu Jul 24 21:16:58 1997  Doug Evans  <dje@canuck.cygnus.com>
-
-	* sparc.h (sparc_opcodes): Declare as const.
-
-Thu Jul 10 12:53:25 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* mips.h (FP_S, FP_D): Define.  Bitmasks indicating if an insn
-	uses single or double precision floating point resources.
-	(INSN_NO_ISA, INSN_ISA1): Define.
-	(cpu specific INSN macros): Tweak into bitmasks outside the range
-	of INSN_ISA field.
-
-Mon Jun 16 14:10:00 1997  H.J. Lu  <hjl@gnu.ai.mit.edu>
-
-	* i386.h: Fix pand opcode.
-
-Mon Jun  2 11:35:09 1997  Gavin Koch  <gavin@cygnus.com>
-
-	* mips.h: Widen INSN_ISA and move it to a more convenient
-	bit position.  Add INSN_3900.
-
-Tue May 20 11:25:29 1997  Gavin Koch  <gavin@cygnus.com>
-
-	* mips.h (struct mips_opcode): added new field membership.
-
-Mon May 12 16:26:50 1997  H.J. Lu  <hjl@gnu.ai.mit.edu>
-
-	* i386.h (movd): only Reg32 is allowed.
-
-	* i386.h: add fcomp and ud2.  From Wayne Scott
-	<wscott@ichips.intel.com>.
-
-Mon May  5 17:16:21 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* i386.h: Add MMX instructions.
-
-Mon May  5 12:45:19 1997  H.J. Lu  <hjl@gnu.ai.mit.edu>
-
-	* i386.h: Remove W modifier from conditional move instructions.
-
-Mon Apr 14 14:56:58 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* i386.h: Change the opcodes for fsubp, fsubrp, fdivp, and fdivrp
-	with no arguments to match that generated by the UnixWare
-	assembler.
-
-Thu Apr 10 14:35:00 1997  Doug Evans  <dje@canuck.cygnus.com>
-
-	* cgen.h (<cpu>_cgen_assemble_insn): New arg for errmsg.
-	(cgen_parse_operand_fn): Declare.
-	(cgen_init_parse_operand): Declare.
-	(cgen_parse_operand): Renamed from cgen_asm_parse_operand,
-	new argument `want'.
-	(enum cgen_parse_operand_result): Renamed from cgen_asm_result.
-	(enum cgen_parse_operand_type): New enum.
-
-Sat Apr  5 13:14:05 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* i386.h: Revert last patch for the NON_BROKEN_OPCODES cases.
-
-Fri Apr  4 11:46:11 1997  Doug Evans  <dje@canuck.cygnus.com>
-
-	* cgen.h: New file.
-
-Fri Apr  4 14:02:32 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* i386.h: Correct opcode values for fsubp, fsubrp, fdivp, and
-	fdivrp.
-
-Tue Mar 25 22:57:26 1997  Stu Grossman  (grossman@critters.cygnus.com)
-
-	* v850.h (extract): Make unsigned.
-
-Mon Mar 24 14:38:15 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* i386.h: Add iclr.
-
-Thu Mar 20 19:49:10 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* i386.h: Change DW to W for cmpxchg and xadd, since they don't
-	take a direction bit.
-
-Sat Mar 15 19:03:29 1997  H.J. Lu  <hjl@lucon.org>
-
-	* sparc.h (sparc_opcode_lookup_arch): Use full prototype.
-
-Fri Mar 14 15:22:01 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* sparc.h: Include <ansidecl.h>.  Update function declarations to
-	use prototypes, and to use const when appropriate.
-
-Thu Mar  6 14:18:30 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.h (MN10300_OPERAND_RELAX): Define.
-
-Mon Feb 24 15:15:56 1997  Martin M. Hunt  <hunt@pizza.cygnus.com>
-
-	* d10v.h: Change pre_defined_registers to
-	d10v_predefined_registers and reg_name_cnt to d10v_reg_name_cnt.
-
-Sat Feb 22 21:25:00 1997  Dawn Perchik  <dawn@cygnus.com>
-
-	* mips.h: Add macros for cop0, cop1 cop2 and cop3.
-	Change mips_opcodes from const array to a pointer,
-	and change bfd_mips_num_opcodes from const int to int,
-	so that we can increase the size of the mips opcodes table
-	dynamically.
-
-Fri Feb 21 16:34:18 1997  Martin M. Hunt  <hunt@pizza.cygnus.com>
-
-	* d30v.h (FLAG_X): Remove unused flag.
-
-Tue Feb 18 17:37:20 1997  Martin M. Hunt  <hunt@pizza.cygnus.com>
-
-	* d30v.h: New file.
-
-Fri Feb 14 13:16:15 1997  Fred Fish  <fnf@cygnus.com>
-
-	* tic80.h (PDS_NAME): Macro to access name field of predefined symbols.
-	(PDS_VALUE): Macro to access value field of predefined symbols.
-	(tic80_next_predefined_symbol): Add prototype.
-
-Mon Feb 10 10:32:17 1997  Fred Fish  <fnf@cygnus.com>
-
-	* tic80.h (tic80_symbol_to_value): Change prototype to match
-	change in function, added class parameter.
-
-Thu Feb  6 17:30:15 1997  Fred Fish  <fnf@cygnus.com>
-
-	* tic80.h (TIC80_OPERAND_ENDMASK): Add for flagging TIc80
-	endmask fields, which are somewhat weird in that 0 and 32 are
-	treated exactly the same.
-
-Thu Jan 30 13:46:18 1997  Fred Fish  <fnf@cygnus.com>
-
-	* tic80.h: Change all the OPERAND defines to use the form (1 << X)
-	rather than a constant that is 2**X.  Reorder them to put bits for
-	operands that have symbolic names in the upper bits, so they can
-	be packed into an int where the lower bits contain the value that
-	corresponds to that symbolic name.
-	(predefined_symbo): Add struct.
-	(tic80_predefined_symbols): Declare array of translations.
-	(tic80_num_predefined_symbols): Declare size of that array.
-	(tic80_value_to_symbol): Declare function.
-	(tic80_symbol_to_value): Declare function.
-
-Wed Jan 29 09:37:25 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10200.h (MN10200_OPERAND_RELAX): Define.
-
-Sat Jan 18 15:18:59 1997  Fred Fish  <fnf@cygnus.com>
-
-	* tic80.h (TIC80_NO_R0_DEST): Add for opcodes where r0 cannot
-	be the destination register.
-
-Thu Jan 16 20:48:55 1997  Fred Fish  <fnf@cygnus.com>
-
-	* tic80.h (struct tic80_opcode): Change "format" field to "flags".
-	(FMT_UNUSED, FMT_SI, FMT_LI, FMT_REG): Delete.
-	(TIC80_VECTOR): Define a flag bit for the flags.  This one means
-	that the opcode can have two vector instructions in a single
-	32 bit word and we have to encode/decode both.
-
-Tue Jan 14 19:37:09 1997  Fred Fish  <fnf@cygnus.com>
-
-	* tic80.h (TIC80_OPERAND_PCREL): Renamed from
-	TIC80_OPERAND_RELATIVE for PC relative.
-	(TIC80_OPERAND_BASEREL): New flag bit for register
-	base relative.
-
-Mon Jan 13 15:56:38 1997  Fred Fish  <fnf@cygnus.com>
-
-	* tic80.h (TIC80_OPERAND_FLOAT): Add for floating point operands.
-
-Mon Jan  6 10:51:15 1997  Fred Fish  <fnf@cygnus.com>
-
-	* tic80.h (TIC80_OPERAND_SCALED): Operand may have optional
-	":s" modifier for scaling.
-
-Sun Jan  5 12:12:19 1997  Fred Fish  <fnf@cygnus.com>
-
-	* tic80.h (TIC80_OPERAND_M_SI): Add operand modifier for ":m".
-	(TIC80_OPERAND_M_LI): Ditto
-
-Sat Jan  4 19:02:44 1997  Fred Fish  <fnf@cygnus.com>
-
-	* tic80.h (TIC80_OPERAND_BITNUM): Renamed from TIC80_OPERAND_CC_SZ.
-	(TIC80_OPERAND_CC): New define for condition code operand.
-	(TIC80_OPERAND_CR): New define for control register operand.
-
-Fri Jan  3 16:22:23 1997  Fred Fish  <fnf@cygnus.com>
-
-	* tic80.h (struct tic80_opcode): Name changed.
-	(struct tic80_opcode): Remove format field.
-	(struct tic80_operand): Add insertion and extraction functions.
-	(TIC80_OPERAND_*): Remove old bogus values, start adding new
-	correct ones.
-	(FMT_*): Ditto.
-
-Tue Dec 31 15:05:41 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* v850.h (V850_OPERAND_ADJUST_SHORT_MEMORY): New flag to adjust
-	type IV instruction offsets.
-
-Fri Dec 27 22:23:10 1996  Fred Fish  <fnf@cygnus.com>
-
-	* tic80.h: New file.
-
-Wed Dec 18 10:06:31 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10200.h (MN10200_OPERAND_NOCHECK): Define.
-
-Sat Dec 14 10:48:31 1996  Fred Fish  <fnf@ninemoons.com>
-
-	* mn10200.h: Fix comment, mn10200_operand not powerpc_operand.
-	* mn10300.h: Fix comment, mn10300_operand not powerpc_operand.
-	* v850.h: Fix comment, v850_operand not powerpc_operand.
-
-Mon Dec  9 16:45:39 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10200.h: Flesh out structures and definitions needed by
-	the mn10200 assembler & disassembler.
-
-Tue Nov 26 10:46:56 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips.h: Add mips16 definitions.
-
-Mon Nov 25 17:56:54 1996  J.T. Conklin  <jtc@cygnus.com>
-
-	* m68k.h: Document new <, >, m, n, o and p operand specifiers.
-
-Wed Nov 20 10:59:41 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.h (MN10300_OPERAND_PCREL): Define.
-	(MN10300_OPERAND_MEMADDR): Define.
-
-Tue Nov 19 13:30:40 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.h (MN10300_OPERAND_REG_LIST): Define.
-
-Wed Nov  6 13:41:08 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.h (MN10300_OPERAND_SPLIT): Define.
-
-Tue Nov  5 13:26:12 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.h (MN10300_OPERAND_EXTENDED): Define.
-
-Mon Nov  4 12:52:48 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.h (MN10300_OPERAND_REPEATED): Define.
-
-Fri Nov  1 10:31:02 1996  Richard Henderson  <rth@tamu.edu>
-
-	* alpha.h: Don't include "bfd.h"; private relocation types are now
-	negative to minimize problems with shared libraries.  Organize
-	instruction subsets by AMASK extensions and PALcode
-	implementation.
-	(struct alpha_operand): Move flags slot for better packing.
-
-Tue Oct 29 12:19:10 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* v850.h (V850_OPERAND_RELAX): New operand flag.
-
-Thu Oct 10 14:29:11 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.h (FMT_*): Move operand format definitions
-	here.
-
-Tue Oct  8 14:48:07 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.h (MN10300_OPERAND_PAREN): Define.
-
-Mon Oct  7 16:52:11 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.h (mn10300_opcode): Add "format" field.
-	(MN10300_OPERAND_*): Define.
-
-Thu Oct  3 10:33:46 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10x00.h: Delete.
-	* mn10200.h, mn10300.h: New files.
-
-Wed Oct  2 21:31:26 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10x00.h: New file.
-
-Fri Sep 27 18:26:46 1996  Stu Grossman  (grossman@critters.cygnus.com)
-
-	* v850.h: Add new flag to indicate this instruction uses a PC
-	displacement.
-
-Fri Sep 13 14:58:13 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* h8300.h (stmac): Add missing instruction.
-
-Sat Aug 31 16:02:03 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* v850.h (v850_opcode): Remove "size" field.  Add "memop"
-	field.
-
-Fri Aug 23 10:39:08 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* v850.h (V850_OPERAND_EP): Define.
-
-	* v850.h (v850_opcode): Add size field.
-
-Thu Aug 22 16:51:25 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
-
-	* v850.h (v850_operands): Add insert and extract fields, pointers
-	to functions used to handle unusual operand encoding.
-	(V850_OPERAND_REG, V850_OPERAND_SRG, V850_OPERAND_CC,
-	V850_OPERAND_SIGNED): Defined.
-
-Wed Aug 21 17:45:10 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
-
-	* v850.h (v850_operands): Add flags field.
-	(OPERAND_REG, OPERAND_NUM): Defined.
-
-Tue Aug 20 14:52:02 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
-
-	* v850.h: New file.
-
-Fri Aug 16 14:44:15 1996  James G. Smith  <jsmith@cygnus.co.uk>
-
-	* mips.h (OP_SH_LOCC, OP_SH_HICC, OP_MASK_CC, OP_SH_COP1NORM,
-	OP_MASK_COP1NORM, OP_SH_COP1SPEC, OP_MASK_COP1SPEC,
-	OP_MASK_COP1SCLR, OP_MASK_COP1CMP, OP_SH_COP1CMP, OP_SH_FORMAT,
-	OP_MASK_FORMAT, OP_SH_TRUE, OP_MASK_TRUE, OP_SH_GE, OP_MASK_GE,
-	OP_SH_UNSIGNED, OP_MASK_UNSIGNED, OP_SH_HINT, OP_MASK_HINT):
-	Defined.
-
-Fri Aug 16 00:15:15 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* hppa.h (pitlb, pitlbe, iitlba, iitlbp, fic, fice): Accept
-	a 3 bit space id instead of a 2 bit space id.
-
-Thu Aug 15 13:11:46 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
-
-	* d10v.h: Add some additional defines to support the
-	assembler in determining which operations can be done in parallel.
-
-Tue Aug  6 11:13:22 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* h8300.h (SN): Define.
-	(eepmov.b): Renamed from "eepmov"
-	(nop, bpt, rte, rts, sleep, clrmac): These have no size associated
-	with them.
-
-Fri Jul 26 11:47:10 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
-
-	* d10v.h (OPERAND_SHIFT): New operand flag.
-
-Thu Jul 25 12:06:22 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
-
-	* d10v.h: Changes for divs, parallel-only instructions, and
-	signed numbers.
-
-Mon Jul 22 11:21:15 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
-
-	* d10v.h (pd_reg): Define. Putting the definition here allows
-	the assembler and disassembler to share the same struct.
-
-Mon Jul 22 12:15:25 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* i960.h (i960_opcodes): "halt" takes an argument.  From Stephen
-	Williams <steve@icarus.com>.
-
-Wed Jul 17 14:46:38 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
-
-	* d10v.h: New file.
-
-Thu Jul 11 12:09:15 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* h8300.h (band, bclr): Force high bit of immediate nibble to zero.
-
-Wed Jul  3 14:30:12 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
-
-	* m68k.h (mcf5200): New macro.
-	Document names of coldfire control registers.
-
-Tue Jul  2 23:05:45 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* h8300.h (SRC_IN_DST): Define.
-
-	* h8300.h (UNOP3): Mark the register operand in this insn
-	as a source operand, not a destination operand.
-	(SHIFT_2, SHIFT_IMM): Remove.  Eliminate all references.
-	(UNOP3): Change SHIFT_IMM to IMM for H8/S bitops.  Mark
-	register operand with SRC_IN_DST.
-
-Fri Jun 21 13:52:17 1996  Richard Henderson  <rth@tamu.edu>
-
-	* alpha.h: New file.
-
-Thu Jun 20 15:02:57 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* rs6k.h: Remove obsolete file.
-
-Wed Jun 19 15:29:38 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* i386.h: Correct opcode values for faddp, fsubp, fsubrp, fmulp,
-	fdivp, and fdivrp.  Add ffreep.
-
-Tue Jun 18 16:06:00 1996  Jeffrey A. Law  <law@rtl.cygnus.com>
-
-	* h8300.h: Reorder various #defines for readability.
-	(ABS32SRC, ABS32DST, DSP32LIST, ABS32LIST, A32LIST): Define.
-	(BITOP): Accept additional (unused) argument.  All callers changed.
-	(EBITOP): Likewise.
-	(O_LAST): Bump.
-	(ldc, stc, movb, movw, movl): Use 32bit offsets and absolutes.
-
-	* h8300.h (EXR, SHIFT_2, MACREG, SHIFT_IMM, RDINC): Define.
-	(O_TAS, O_CLRMAC, O_LDMAC, O_MAC, O_LDM, O_STM): Define.
-	(BITOP, EBITOP): Handle new H8/S addressing modes for
-	bit insns.
-	(UNOP3): Handle new shift/rotate insns on the H8/S.
-	(insns using exr): New instructions.
-	(tas, mac, ldmac, clrmac, ldm, stm): New instructions.
-
-Thu May 23 16:56:48 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* h8300.h (add.l): Undo Apr 5th change.  The manual I had
-	was incorrect.
-
-Mon May  6 23:38:22 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* h8300.h (START): Remove.
-	(MEMRELAX): Define.  Mark absolute memory operands in mov.b, mov.w
-	and mov.l insns that can be relaxed.
-
-Tue Apr 30 18:30:58 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* i386.h: Remove Abs32 from lcall.
-
-Mon Apr 22 17:09:23 1996  Doug Evans  <dje@blues.cygnus.com>
-
-	* sparc.h (SPARC_OPCODE_ARCH_V9_P): New macro.
-	(SLCPOP): New macro.
-	Mark X,Y opcode letters as in use.
-
-Thu Apr 11 17:28:18 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* sparc.h (F_FLOAT, F_FBR): Define.
-
-Fri Apr  5 16:55:34 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* h8300.h (ABS8MEM): Renamed from ABSMOV.  Remove ABSMOV
-	from all insns.
-	(ABS8SRC,ABS8DST): Add ABS8MEM.
-	(add.l): Fix reg+reg variant.
-	(eepmov.w): Renamed from eepmovw.
-	(ldc,stc): Fix many cases.
-
-Sun Mar 31 13:30:03 1996  Doug Evans  <dje@canuck.cygnus.com>
-
-	* sparc.h (SPARC_OPCODE_ARCH_MASK): New macro.
-
-Thu Mar  7 15:08:23 1996  Doug Evans  <dje@charmed.cygnus.com>
-
-	* sparc.h (O): Mark operand letter as in use.
-
-Tue Feb 20 20:46:21 1996  Doug Evans  <dje@charmed.cygnus.com>
-
-	* sparc.h (sparc_{encode,decode}_sparclet_cpreg): Declare.
-	Mark operand letters uU as in use.
-
-Mon Feb 19 01:59:08 1996  Doug Evans  <dje@charmed.cygnus.com>
-
-	* sparc.h (sparc_opcode_arch_val): Add SPARC_OPCODE_ARCH_SPARCLET.
-	(sparc_opcode_arch): Delete member `conflicts'.  Add `supported'.
-	(SPARC_OPCODE_SUPPORTED): New macro.
-	(SPARC_OPCODE_CONFLICT_P): Rewrite.
-	(F_NOTV9): Delete.
-
-Fri Feb 16 12:23:34 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* sparc.h (sparc_opcode_lookup_arch) Make return type in
-	declaration consistent with return type in definition.
-
-Wed Feb 14 18:14:11 1996  Alan Modra  <alan@spri.levels.unisa.edu.au>
-
-	* i386.h (i386_optab): Remove Data32 from pushf and popf.
-
-Thu Feb  8 14:27:21 1996  James Carlson <carlson@xylogics.com>
-
-	* i386.h (i386_regtab): Add 80486 test registers.
-
-Mon Feb  5 18:35:46 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* i960.h (I_HX): Define.
-	(i960_opcodes): Add HX instruction.
-
-Mon Jan 29 12:43:39 1996  Ken Raeburn  <raeburn@cygnus.com>
-
-	* i386.h: Fix waiting forms of finit, fstenv, fsave, fstsw, fstcw,
-	and fclex.
-
-Wed Jan 24 22:36:59 1996  Doug Evans  <dje@charmed.cygnus.com>
-
-	* sparc.h (enum sparc_opcode_arch_val): Replaces sparc_architecture.
-	(SPARC_OPCODE_CONFLICT_P): Renamed from ARCHITECTURES_CONFLICT_P.
-	(bfd_* defines): Delete.
-	(sparc_opcode_archs): Replaces architecture_pname.
-	(sparc_opcode_lookup_arch): Declare.
-	(NUMOPCODES): Delete.
-
-Mon Jan 22 08:24:32 1996  Doug Evans  <dje@charmed.cygnus.com>
-
-	* sparc.h (enum sparc_architecture): Add v9a.
-	(ARCHITECTURES_CONFLICT_P): Update.
-
-Thu Dec 28 13:27:53 1995  John Hassey  <hassey@rtp.dg.com>
-
-	* i386.h: Added Pentium Pro instructions.
-
-Thu Nov  2 22:59:22 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* m68k.h: Document new 'W' operand place.
-
-Tue Oct 24 10:49:10 1995  Jeffrey A Law  (law@cygnus.com)
-
-	* hppa.h: Add lci and syncdma instructions.
-
-Mon Oct 23 11:09:16 1995  James G. Smith  <jsmith@pasanda.cygnus.co.uk>
-
-	* mips.h: Added INSN_4100 flag to mark NEC VR4100 specific
-	instructions.
-
-Mon Oct 16 10:28:15 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* ppc.h (PPC_OPCODE_{COMMON,ANY}): New opcode flags for
-	assembler's -mcom and -many switches.
-
-Wed Oct 11 16:56:33 1995  Ken Raeburn  <raeburn@cygnus.com>
-
-	* i386.h: Fix cmpxchg8b extension opcode description.
-
-Thu Oct  5 18:03:36 1995  Ken Raeburn  <raeburn@cygnus.com>
-
-	* i386.h: Add Pentium instructions wrmsr, rdtsc, rdmsr, cmpxchg8b,
-	and register cr4.
-
-Tue Sep 19 15:26:43 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* m68k.h: Change comment: split type P into types 0, 1 and 2.
-
-Wed Aug 30 13:50:55 1995  Doug Evans  <dje@canuck.cygnus.com>
-
-	* sparc.h (sparc_{encode,decode}_prefetch): Declare.
-
-Tue Aug 29 15:34:58 1995  Doug Evans  <dje@canuck.cygnus.com>
-
-	* sparc.h (sparc_{encode,decode}_{asi,membar}): Declare.
-
-Wed Aug  2 18:32:19 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* m68kmri.h: Remove.
-
-	* m68k.h: Move tables into opcodes/m68k-opc.c, leaving just the
-	declarations.  Remove F_ALIAS and flag field of struct
-	m68k_opcode.  Change arch field of struct m68k_opcode to unsigned
-	int.  Make name and args fields of struct m68k_opcode const.
-
-Wed Aug  2 08:16:46 1995  Doug Evans  <dje@canuck.cygnus.com>
-
-	* sparc.h (F_NOTV9): Define.
-
-Tue Jul 11 14:20:42 1995  Jeff Spiegel  <jeffs@lsil.com>
-
-	* mips.h (INSN_4010): Define.
-
-Wed Jun 21 18:49:51 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>
-
-	* m68k.h (TBL1): Reverse sense of "round" argument in result.
-
-	Changes from Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>:
-	* m68k.h: Fix argument descriptions of coprocessor
-	instructions to allow only alterable operands where appropriate.
-	[!NO_DEFAULT_SIZES]: An omitted size defaults to `w'.
-	(m68k_opcode_aliases): Add more aliases.
-
-Fri Apr 14 22:15:34 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>
-
-	* m68k.h: Added explcitly short-sized conditional branches, and a
-	bunch of aliases (fmov*, ftest*, tdivul) to support gcc's
-	svr4-based configurations.
-
-Mon Mar 13 21:30:01 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>
-
-	Mon Feb 27 08:36:39 1995  Bryan Ford  <baford@cs.utah.edu>
-	* i386.h: added missing Data16/Data32 flags to a few instructions.
-
-Wed Mar  8 15:19:53 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips.h (OP_MASK_FR, OP_SH_FR): Define.
-	(OP_MASK_BCC, OP_SH_BCC): Define.
-	(OP_MASK_PREFX, OP_SH_PREFX): Define.
-	(OP_MASK_CCC, OP_SH_CCC): Define.
-	(INSN_READ_FPR_R): Define.
-	(INSN_RFE): Delete.
-
-Wed Mar  8 03:13:23 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>
-
-	* m68k.h (enum m68k_architecture): Deleted.
-	(struct m68k_opcode_alias): New type.
-	(m68k_opcodes): Now const.  Deleted opcode aliases with exactly
-	matching constraints, values and flags.  As a side effect of this,
-	the MOTOROLA_SYNTAX_ONLY and MIT_SYNTAX_ONLY macros, which so far
-	as I know were never used, now may need re-examining.
-	(numopcodes): Now const.
-	(m68k_opcode_aliases, numaliases): New variables.
-	(endop): Deleted.
-	[DONT_DEFINE_TABLE]: Declare numopcodes, numaliases, and
-	m68k_opcode_aliases; update declaration of m68k_opcodes.
-
-Mon Mar  6 10:02:00 1995  Jeff Law  (law@snake.cs.utah.edu)
-
-	* hppa.h (delay_type): Delete unused enumeration.
-	(pa_opcode): Replace unused delayed field with an architecture
-	field.
-	(pa_opcodes): Mark each instruction as either PA1.0 or PA1.1.
-
-Fri Mar  3 16:10:24 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips.h (INSN_ISA4): Define.
-
-Fri Feb 24 19:13:37 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips.h (M_DLA_AB, M_DLI): Define.
-
-Thu Feb 23 17:33:09 1995  Jeff Law  (law@snake.cs.utah.edu)
-
-	* hppa.h (fstwx): Fix single-bit error.
-
-Wed Feb 15 12:19:52 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips.h (M_ULD, M_ULD_A, M_USD, M_USD_A): Define.
-
-Mon Feb  6 10:35:23 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
-
-	* i386.h: added cpuid instruction , and dr[0-7] aliases for the
-	  debug registers.  From Charles Hannum (mycroft@netbsd.org).
-
-Mon Feb  6 03:31:54 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>
-
-	Changes from Bryan Ford <baford@schirf.cs.utah.edu> for 16-bit
-	i386 support:
-	* i386.h (MOV_AX_DISP32): New macro.
-	(i386_optab): Added Data16 and Data32 as needed.  Added "w" forms
-	of several call/return instructions.
-	(ADDR_PREFIX_OPCODE): New macro.
-
-Mon Jan 23 16:45:43 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>
-
-	Sat Jan 21 17:50:38 1995  Pat Rankin  (rankin@eql.caltech.edu)
-
-	* vax.h (struct vot_wot, field `args'): Make it pointer to const
-	char.
-	(struct vot, field `name'): ditto.
-
-Thu Jan 19 14:47:53 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>
-
-	* vax.h: Supply and properly group all values in end sentinel.
-
-Tue Jan 17 10:55:30 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>
-
-	* mips.h (INSN_ISA, INSN_4650): Define.
-
-Wed Oct 19 13:34:17 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
-
-	* a29k.h: Add operand type 'I' for `inv' and `iretinv'.  On
-	systems with a separate instruction and data cache, such as the
-	29040, these instructions take an optional argument.
-
-Wed Sep 14 17:44:20 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
-
-	* mips.h (INSN_STORE_MEMORY): Correct value to not conflict with
-	INSN_TRAP.
-
-Tue Sep  6 11:39:08 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
-
-	* mips.h (INSN_STORE_MEMORY): Define.
-
-Thu Jul 28 19:28:07 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
-
-	* sparc.h: Document new operand type 'x'.
-
-Tue Jul 26 17:48:05 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
-
-	* i960.h (I_CX2): New instruction category.  It includes
-	instructions available on Cx and Jx processors.
-	(I_JX): New instruction category, for JX-only instructions.
-	(i960_opcodes): Put eshro and sysctl in I_CX2 category.  Added
-	Jx-only instructions, in I_JX category.
-
-Wed Jul 13 18:43:47 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
-
-	* ns32k.h (endop): Made pointer const too.
-
-Sun Jul 10 11:01:09 1994  Ian Dall  (dall@hfrd.dsto.gov.au)
-
-	* ns32k.h: Drop Q operand type as there is no correct use
-	for it. Add I and Z operand types which allow better checking.
-
-Thu Jul  7 12:34:48 1994  Steve Chamberlain  (sac@jonny.cygnus.com)
-
-	* h8300.h (xor.l) :fix bit pattern.
-	(L_2): New size of operand.
-	(trapa): Use it.
-
-Fri Jun 10 16:38:11 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* m68k.h: Move "trap" before "tpcc" to change disassembly.
-
-Fri Jun  3 15:57:36 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
-
-	* sparc.h: Include v9 definitions.
-
-Thu Jun  2 12:23:17 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
-
-	* m68k.h (m68060): Defined.
-	(m68040up, mfloat, mmmu): Include it.
-	(struct m68k_opcode): Widen `arch' field.
-	(m68k_opcodes): Updated for M68060.  Removed comments that were
-	instructions commented out by "JF" years ago.
-
-Thu Apr 28 18:31:14 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
-
-	* m68k.h (struct m68k_opcode): Shorten `arch' field to 8 bits, and
-	add a one-bit `flags' field.
-	(F_ALIAS): New macro.
-
-Wed Apr 27 11:29:52 1994  Steve Chamberlain  (sac@cygnus.com)
-
-	* h8300.h (dec, inc): Get encoding right.
-
-Mon Apr  4 13:12:43 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* ppc.h (struct powerpc_operand): Removed signedp field; just use
-	a flag instead.
-	(PPC_OPERAND_SIGNED): Define.
-	(PPC_OPERAND_SIGNOPT): Define.
-
-Thu Mar 31 19:34:08 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
-
-	* i386.h (IS_JUMP_ON_ECX_ZERO, "jcxz" pattern): Operand size
-	prefix is 0x66, not 0x67.  Patch from H.J. Lu (hlu@nynexst.com).
-
-Thu Mar  3 15:51:05 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
-
-	* i386.h: Reverse last change.  It'll be handled in gas instead.
-
-Thu Feb 24 15:29:05 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
-
-	* i386.h (sar): Disabled the two-operand Imm1 form, since it was
-	slower on the 486 and used the implicit shift count despite the
-	explicit operand.  The one-operand form is still available to get
-	the shorter form with the implicit shift count.
-
-Thu Feb 17 12:27:52 1994  Torbjorn Granlund  (tege@mexican.cygnus.com)
-
-	* hppa.h: Fix typo in fstws arg string.
-
-Wed Feb  9 21:23:52 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* ppc.h (struct powerpc_opcode): Make operands field unsigned.
-
-Mon Feb  7 19:14:58 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* ppc.h (PPC_OPCODE_601): Define.
-
-Fri Feb  4 23:43:50 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
-
-	* hppa.h (addb): Use '@' for addb and addib pseudo ops.
-	(so we can determine valid completers for both addb and addb[tf].)
-
-	* hppa.h (xmpyu): No floating point format specifier for the
-	xmpyu instruction.
-
-Fri Feb  4 23:36:52 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* ppc.h (PPC_OPERAND_NEXT): Define.
-	(PPC_OPERAND_NEGATIVE): Change value to make room for above.
-	(struct powerpc_macro): Define.
-	(powerpc_macros, powerpc_num_macros): Declare.
-
-Fri Jan 21 19:13:50 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* ppc.h: New file.  Header file for PowerPC opcode table.
-
-Mon Jan 17 00:14:23 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
-
-	* hppa.h: More minor template fixes for sfu and copr (to allow
-	for easier disassembly).
-
-	* hppa.h: Fix templates for all the sfu and copr instructions.
-
-Wed Dec 15 15:12:42 1993  Ken Raeburn  (raeburn@cujo.cygnus.com)
-
-	* i386.h (push): Permit Imm16 operand too.
-
-Sat Dec 11 16:14:06 1993  Steve Chamberlain  (sac@thepub.cygnus.com)
-
-	*  h8300.h (andc): Exists in base arch.
-
-Wed Dec  1 12:15:32 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
-
-	* From Hisashi MINAMINO <minamino@sramhc.sra.co.jp>
-	* hppa.h: #undef NONE to avoid conflict with hiux include files.
-
-Sun Nov 21 22:06:57 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
-
-	* hppa.h: Add FP quadword store instructions.
-
-Wed Nov 17 17:13:16 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* mips.h: (M_J_A): Added.
-	(M_LA): Removed.
-
-Mon Nov  8 12:12:47 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* mips.h (OP_MASK_CACHE, OP_SH_CACHE): Define.  From Ted Lemon
-	<mellon@pepper.ncd.com>.
-
-Sun Nov  7 00:30:11 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
-
-	* hppa.h: Immediate field in probei instructions is unsigned,
-	not low-sign extended.
-
-Wed Nov  3 10:30:00 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* m88k.h (RRI10MASK): Change from 0xfc00ffe0 to 0xfc00fc00.
-
-Tue Nov  2 12:41:30 1993  Ken Raeburn  (raeburn@rover.cygnus.com)
-
-	* i386.h: Add "fxch" without operand.
-
-Mon Nov  1 18:13:03 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* mips.h (M_JAL_1, M_JAL_2, M_JAL_A): Added.
-
-Sat Oct  2 22:26:11 1993  Jeffrey A Law  (law@snake.cs.utah.edu)
-
-	* hppa.h: Add gfw and gfr to the opcode table.
-
-Wed Sep 29 16:23:00 1993  K. Richard Pixley  (rich@sendai.cygnus.com)
-
-	* m88k.h: extended to handle m88110.
-
-Tue Sep 28 19:19:08 1993  Jeffrey A Law  (law@snake.cs.utah.edu)
-
-	* hppa.h (be, ble): Use operand type 'z' to denote absolute branch
-	addresses.
-
-Tue Sep 14 14:04:35 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* i960.h (i960_opcodes): Properly bracket initializers.
-
-Mon Sep 13 12:50:52 1993  K. Richard Pixley  (rich@sendai.cygnus.com)
-
-	* m88k.h (BOFLAG): rewrite to avoid nested comment.
-
-Mon Sep 13 15:46:06 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* m68k.h (two): Protect second argument with parentheses.
-
-Fri Sep 10 16:29:47 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
-
-	* i386.h (i386_optab): Added new instruction "rsm" (for i386sl).
-	Deleted old in/out instructions in "#if 0" section.
-
-Thu Sep  9 17:42:19 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* i386.h (i386_optab): Properly bracket initializers.
-
-Wed Aug 25 13:50:56 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
-
-	* hppa.h (pa_opcode): Use '|' for movb and movib insns.  (From
-	Jeff Law, law@cs.utah.edu).
-
-Mon Aug 23 16:55:03 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
-
-	* i386.h (lcall): Accept Imm32 operand also.
-
-Mon Aug 23 12:43:11 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* mips.h (M_ABSU): Removed (absolute value of unsigned number??).
-	(M_DABS): Added.
-
-Thu Aug 19 15:08:37 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* mips.h (INSN_*): Changed values.  Removed unused definitions.
-	Added INSN_COND_BRANCH_LIKELY, INSN_ISA2 and INSN_ISA3.  Split
-	INSN_LOAD_DELAY into INSN_LOAD_MEMORY_DELAY and
-	INSN_LOAD_COPROC_DELAY.  Split INSN_COPROC_DELAY into
-	INSN_COPROC_MOVE_DELAY and INSN_COPROC_MEMORY_DELAY.
-	(M_*): Added new values for r6000 and r4000 macros.
-	(ANY_DELAY): Removed.
-
-Wed Aug 18 15:37:48 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* mips.h: Added M_LI_S and M_LI_SS.
-
-Tue Aug 17 07:08:08 1993  Steve Chamberlain  (sac@phydeaux.cygnus.com)
-
-	* h8300.h: Get some rare mov.bs correct.
-
-Thu Aug  5 09:15:17 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* sparc.h: Don't define const ourself; rely on ansidecl.h having
-	been included.
-
-Fri Jul 30 18:41:11 1993  John Gilmore  (gnu@cygnus.com)
-
-	* sparc.h (F_JSR, F_UNBR, F_CONDBR): Add new flags to mark
-	jump instructions, for use in disassemblers.
-
-Thu Jul 22 07:25:27 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* m88k.h: Make bitfields just unsigned, not unsigned long or
-	unsigned short.
-
-Wed Jul 21 11:55:31 1993  Jim Kingdon  (kingdon@deneb.cygnus.com)
-
-	* hppa.h: New argument type 'y'.  Use in various float instructions.
-
-Mon Jul 19 17:17:03 1993  Jim Kingdon  (kingdon@deneb.cygnus.com)
-
-	* hppa.h (break): First immediate field is unsigned.
-
-	* hppa.h: Add rfir instruction.
-
-Sun Jul 18 16:28:08 1993  Jim Kingdon  (kingdon@rtl.cygnus.com)
-
-	* mips.h: Split the actual table out into ../../opcodes/mips-opc.c.
-
-Fri Jul 16 09:59:29 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* mips.h: Reworked the hazard information somewhat, and fixed some
-	bugs in the instruction hazard descriptions.
-
-Thu Jul 15 12:42:01 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* m88k.h: Corrected a couple of opcodes.
-
-Tue Jul  6 15:17:35 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* mips.h: Replaced with version from Ralph Campbell and OSF.  The
-	new version includes instruction hazard information, but is
-	otherwise reasonably similar.
-
-Thu Jul  1 20:36:17 1993  Doug Evans  (dje@canuck.cygnus.com)
-
-	* h8300.h: Fix typo in UNOP3 (affected sh[al][lr].l).
-
-Fri Jun 11 18:38:44 1993  Ken Raeburn  (raeburn@cygnus.com)
-
-	Patches from Jeff Law, law@cs.utah.edu:
-	* hppa.h: Clean up some of the OLD_TABLE, non-OLD_TABLE braindamage.
-	Make the tables be the same for the following instructions:
-	"bb", "addb[tf]", "addib[tf]", "add", "add[loc]", "addco",
-	"sh[123]add", "sh[123]add[lo]", "sub", "sub[obt]", "sub[bt]o",
-	"ds", "comclr", "addi", "addi[ot]", "addito", "subi", "subio",
-	"comiclr", "fadd", "fsub", "fmpy", "fdiv", "fsqrt", "fabs",
-	"frnd", "fcpy", "fcnvff", "fcnvxf", "fcnvfx", "fcnvfxt",
-	"fcmp", and "ftest".
-
-	* hppa.h: Make new and old tables the same for "break", "mtctl",
-	"mfctl", "bb", "ssm", "rsm", "xmpyu", "fmpyadd", "fmpysub".
-	Fix typo in last patch.  Collapse several #ifdefs into a
-	single #ifdef.
-
-	* hppa.h: Delete remaining OLD_TABLE code.  Bring some
-	of the comments up-to-date.
-
-	* hppa.h: Update "free list" of letters and update
-	comments describing each letter's function.
-
-Thu Jul  8 09:05:26 1993  Doug Evans  (dje@canuck.cygnus.com)
-
-	* h8300.h: Lots of little fixes for the h8/300h.
-
-Tue Jun  8 12:16:03 1993  Steve Chamberlain  (sac@phydeaux.cygnus.com)
-
-	 Support for H8/300-H
-	* h8300.h: Lots of new opcodes.
-
-Fri Jun  4 15:41:37 1993  Steve Chamberlain  (sac@phydeaux.cygnus.com)
-
-	* h8300.h: checkpoint, includes H8/300-H opcodes.
-
-Thu Jun  3 15:42:59 1993  Stu Grossman  (grossman@cygnus.com)
-
-	* Patches from Jeffrey Law <law@cs.utah.edu>.
-	* hppa.h: Rework single precision FP
-	instructions so that they correctly disassemble code
-	PA1.1 code.
-
-Thu May 27 19:21:22 1993  Bruce Bauman  (boot@osf.org)
-
-	* i386.h (i386_optab, mov pattern): Remove Mem16 restriction from
-	mov to allow instructions like mov ss,xyz(ecx) to assemble.
-
-Tue May 25 00:39:40 1993  Ken Raeburn  (raeburn@cygnus.com)
-
-	* hppa.h: Use new version from Utah if OLD_TABLE isn't defined;
-	gdb will define it for now.
-
-Mon May 24 15:20:06 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
-
-	* sparc.h: Don't end enumerator list with comma.
-
-Fri May 14 15:15:50 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* Based on patches from davidj@ICSI.Berkeley.EDU (David Johnson):
-	* mips.h (OP_MASK_COPZ, OP_SH_COPZ): Define.
-	("bc2t"): Correct typo.
-	("[ls]wc[023]"): Use T rather than t.
-	("c[0123]"): Define general coprocessor instructions.
-
-Mon May 10 06:02:25 1993  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
-
-	* m68k.h: Move split point for gcc compilation more towards
-	middle.
-
-Fri Apr  9 13:26:16 1993  Jim Kingdon  (kingdon@cygnus.com)
-
-	* rs6k.h: Clean up instructions for primary opcode 19 (many were
-	simply wrong, ics, rfi, & rfsvc were missing).
-	Add "a" to opr_ext for "bb".  Doc fix.
-
-Thu Mar 18 13:45:31 1993  Per Bothner  (bothner@rtl.cygnus.com)
-
-	* i386.h: 486 extensions from John Hassey (hassey@dg-rtp.dg.com).
-	* mips.h: Add casts, to suppress warnings about shifting too much.
-	* m68k.h: Document the placement code '9'.
-
-Thu Feb 18 02:03:14 1993  John Gilmore  (gnu@cygnus.com)
-
-	* m68k.h (BREAK_UP_BIG_DECL, AND_OTHER_PART): Add kludge which
-	allows callers to break up the large initialized struct full of
-	opcodes into two half-sized ones.  This permits GCC to compile
-	this module, since it takes exponential space for initializers.
-	(numopcodes, endop): Revise to use AND_OTHER_PART in size calcs.
-
-Thu Feb  4 02:06:56 1993  John Gilmore  (gnu@cygnus.com)
-
-	* a29k.h: Remove RCS crud, update GPL to v2, update copyrights.
-	* convex.h: Added, from GDB's convx-opcode.h.  Added CONST to all
-	initialized structs in it.
-
-Thu Jan 28 21:32:22 1993  John Gilmore  (gnu@cygnus.com)
-
-	Delta 88 changes inspired by Carl Greco, <cgreco@Creighton.Edu>:
-	* m88k.h (PMEM): Avoid previous definition from <sys/param.h>.
-	(AND): Change to AND_ to avoid ansidecl.h `AND' conflict.
-
-Sat Jan 23 18:10:49 PST 1993  Ralph Campbell  (ralphc@pyramid.com)
-
-	* mips.h: document "i" and "j" operands correctly.
-
-Thu Jan  7 15:58:13 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* mips.h: Removed endianness dependency.
-
-Sun Jan  3 14:13:35 1993  Steve Chamberlain  (sac@thepub.cygnus.com)
-
-	* h8300.h: include info on number of cycles per instruction.
-
-Mon Dec 21 21:29:08 1992  Stu Grossman  (grossman at cygnus.com)
-
-	* hppa.h: Move handy aliases to the front.  Fix masks for extract
-	and deposit instructions.
-
-Sat Dec 12 16:09:48 1992  Ian Lance Taylor  (ian@cygnus.com)
-
-	* i386.h: accept shld and shrd both with and without the shift
-	count argument, which is always %cl.
-
-Fri Nov 27 17:13:18 1992  Ken Raeburn  (raeburn at cygnus.com)
-
-	* i386.h (i386_optab_end, i386_regtab_end): Now const.
-	(one_byte_segment_defaults, two_byte_segment_defaults,
-	i386_prefixtab_end): Ditto.
-
-Mon Nov 23 10:47:25 1992  Ken Raeburn  (raeburn@cygnus.com)
-
-	* vax.h (bb*): Use "v" (bitfield type), not "a" (address operand)
-	for operand 2; from John Carr, jfc@dsg.dec.com.
-
-Wed Nov  4 07:36:49 1992  Ken Raeburn  (raeburn@cygnus.com)
-
-	* m68k.h: Define FIXED_SIZE_BRANCH, so bsr and bra instructions
-	always use 16-bit offsets.  Makes calculated-size jump tables
-	feasible.
-
-Fri Oct 16 22:52:43 1992  Ken Raeburn  (raeburn@cygnus.com)
-
-	* i386.h: Fix one-operand forms of in* and out* patterns.
-
-Tue Sep 22 14:08:14 1992  Ken Raeburn  (raeburn@cambridge.cygnus.com)
-
-	* m68k.h: Added CPU32 support.
-
-Tue Sep 22 00:38:41 1992  John Gilmore  (gnu@cygnus.com)
-
-	* mips.h (break): Disassemble the argument.  Patch from
-	jonathan@cs.stanford.edu (Jonathan Stone).
-
-Wed Sep  9 11:25:28 1992  Ian Lance Taylor  (ian@cygnus.com)
-
-	* m68k.h: merged Motorola and MIT syntax.
-
-Thu Sep  3 09:33:22 1992  Steve Chamberlain  (sac@thepub.cygnus.com)
-
-	* m68k.h (pmove): make the tests less strict, the 68k book is
-	wrong.
-
-Tue Aug 25 23:25:19 1992  Ken Raeburn  (raeburn@cambridge.cygnus.com)
-
-	* m68k.h (m68ec030): Defined as alias for 68030.
-	(m68k_opcodes): New type characters "3" for 68030 MMU regs and "t"
-	for immediate 0-7 added.  Set up some opcodes (ptest, bkpt) to use
-	them.  Tightened description of "fmovex" to distinguish it from
-	some "pmove" encodings.  Added "pmove" for 68030 MMU regs, cleaned
-	up descriptions that claimed versions were available for chips not
-	supporting them.  Added "pmovefd".
-
-Mon Aug 24 12:04:51 1992  Steve Chamberlain  (sac@thepub.cygnus.com)
-
-	* m68k.h: fix where the . goes in divull
-
-Wed Aug 19 11:22:24 1992  Ian Lance Taylor  (ian@cygnus.com)
-
-	* m68k.h: the cas2 instruction is supposed to be written with
-	indirection on the last two operands, which can be either data or
-	address registers.  Added a new operand type 'r' which accepts
-	either register type.  Added new cases for cas2l and cas2w which
-	use them.  Corrected masks for cas2 which failed to recognize use
-	of address register.
-
-Fri Aug 14 14:20:38 1992  Per Bothner  (bothner@cygnus.com)
-
-	* m68k.h: Merged in patches (mostly m68040-specific) from
-	Colin Smith <colin@wrs.com>.
-
-	* m68k.h: Merged m68kmri.h and m68k.h (using the former as a
-	base).  Also cleaned up duplicates, re-ordered instructions for
-	the sake of dis-assembling (so aliases come after standard names).
-	* m68kmri.h: Now just defines some macros, and #includes m68k.h.
-
-Wed Aug 12 16:38:15 1992  Steve Chamberlain  (sac@thepub.cygnus.com)
-
-	* m68kmri.h: added various opcodes. Moved jbxx to bxxes. Filled in
-	all missing .s
-
-Mon Aug 10 23:22:33 1992  Ken Raeburn  (raeburn@cygnus.com)
-
-	* sparc.h: Moved tables to BFD library.
-
-	* i386.h (i386_optab): Add fildq, fistpq aliases used by gcc.
-
-Sun Jun 28 13:29:03 1992  Fred Fish  (fnf@cygnus.com)
-
-	* h8300.h: Finish filling in all the holes in the opcode table,
-	so that the Lucid C compiler can digest this as well...
-
-Fri Jun 26 21:27:17 1992  John Gilmore  (gnu at cygnus.com)
-
-	* i386.h: Add setc, setnc, addr16, data16, repz, repnz aliases.
-	Fix opcodes on various sizes of fild/fist instructions
-	(16bit=no suffix, 32bit="l" suffix, 64bit="ll" suffix).
-	Use tabs to indent for comments.  Fixes suggested by Minh Tran-Le.
-
-Thu Jun 25 16:13:26 1992  Stu Grossman  (grossman at cygnus.com)
-
-	* h8300.h: Fill in all the holes in the opcode table so that the
-	losing HPUX C compiler can digest this...
-
-Thu Jun 11 12:15:25 1992  John Gilmore  (gnu at cygnus.com)
-
-	* mips.h: Fix decoding of coprocessor instructions, somewhat.
-	(Fix by Eric Anderson, 3jean@maas-neotek.arc.nasa.gov.)
-
-Thu May 28 11:17:44 1992  Jim Wilson  (wilson@sphagnum.cygnus.com)
-
-	* sparc.h: Add new architecture variant sparclite; add its scan
-	and divscc opcodes.  Define ARCHITECTURES_CONFLICT_P macro.
-
-Tue May  5 14:23:27 1992  Per Bothner  (bothner@rtl.cygnus.com)
-
-	* mips.h: Add some more opcode synonyms (from Frank Yellin,
-	fy@lucid.com).
-
-Thu Apr 16 18:25:26 1992  Per Bothner  (bothner@cygnus.com)
-
-	* rs6k.h: New version from IBM (Metin).
-
-Thu Apr  9 00:31:19 1992  Per Bothner  (bothner@rtl.cygnus.com)
-
-	* rs6k.h: Fix incorrect extended opcode for instructions `fm'
-	and `fd'.  (From metin@ibmpa.awdpa.ibm.com (Metin G. Ozisik).)
-
-Tue Apr  7 13:38:47 1992  Stu Grossman  (grossman at cygnus.com)
-
-	* rs6k.h: Move from ../../gdb/rs6k-opcode.h.
-
-Fri Apr  3 11:30:20 1992  Fred Fish  (fnf@cygnus.com)
-
-	* m68k.h (one, two): Cast macro args to unsigned to suppress
-	complaints from compiler and lint about integer overflow during
-	shift.
-
-Sun Mar 29 12:22:08 1992  John Gilmore  (gnu at cygnus.com)
-
-	* sparc.h (OP): Avoid signed overflow when shifting to high order bit.
-
-Fri Mar  6 00:22:38 1992  John Gilmore  (gnu at cygnus.com)
-
-	* mips.h: Make bitfield layout depend on the HOST compiler,
-	not on the TARGET system.
-
-Fri Feb 21 01:29:51 1992  K. Richard Pixley  (rich@cygnus.com)
-
-	* i386.h: added inb, inw, outb, outw opcodes, added att syntax for
-	  scmp, slod, smov, ssca, ssto.  Curtesy Minh Tran-Le
-	  <TRANLE@INTELLICORP.COM>.
-
-Thu Jan 30 07:31:44 1992  Steve Chamberlain  (sac at rtl.cygnus.com)
-
-	* h8300.h: turned op_type enum into #define list
-
-Thu Jan 30 01:07:24 1992  John Gilmore  (gnu at cygnus.com)
-
-	* sparc.h: Remove "cypress" architecture.  Remove "fitox" and
-	similar instructions -- they've been renamed to "fitoq", etc.
-	REALLY fix tsubcctv.  Fix "fcmpeq" and "fcmpq" which had wrong
-	number of arguments.
-	* h8300.h: Remove extra ; which produces compiler warning.
-
-Tue Jan 28 22:59:22 1992  Stu Grossman  (grossman at cygnus.com)
-
-	* sparc.h: fix opcode for tsubcctv.
-
-Tue Jan  7 17:19:39 1992  K. Richard Pixley  (rich at cygnus.com)
-
-	* sparc.h: fba and cba are now aliases for fb and cb respectively.
-
-Fri Dec 27 10:55:50 1991  Per Bothner  (bothner at cygnus.com)
-
-	* sparc.h (nop): Made the 'lose' field be even tighter,
-	so only a standard 'nop' is disassembled as a nop.
-
-Sun Dec 22 12:18:18 1991  Michael Tiemann  (tiemann at cygnus.com)
-
-	* sparc.h (nop): Add RD_GO to `lose' so that only %g0 in dest is
-	disassembled as a nop.
-
-Wed Dec 18 17:19:44 1991  Stu Grossman  (grossman at cygnus.com)
-
-	* m68k.h, sparc.h: ANSIfy enums.
-
-Tue Dec 10 00:22:20 1991  K. Richard Pixley  (rich at rtl.cygnus.com)
-
-	* sparc.h: fix a typo.
-
-Sat Nov 30 20:40:51 1991  Steve Chamberlain  (sac at rtl.cygnus.com)
-
-	* a29k.h, arm.h, h8300.h,  i386.h,  i860.h, i960.h , m68k.h,
-	m88k.h, mips.h , np1.h, ns32k.h, pn.h, pyr.h, sparc.h, tahoe.h,
-	vax.h: Renamed from ../<foo>-opcode.h.
-
-
-Local Variables:
-version-control: never
-End:
diff --git a/include/opcode/alpha.h b/include/opcode/alpha.h
deleted file mode 100644
index 22c85a1..0000000
--- a/include/opcode/alpha.h
+++ /dev/null
@@ -1,237 +0,0 @@
-/* alpha.h -- Header file for Alpha opcode table
-   Copyright 1996, 1999, 2001, 2003 Free Software Foundation, Inc.
-   Contributed by Richard Henderson <rth@tamu.edu>,
-   patterned after the PPC opcode table written by Ian Lance Taylor.
-
-This file is part of GDB, GAS, and the GNU binutils.
-
-GDB, GAS, and the GNU binutils are free software; you can redistribute
-them and/or modify them 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.
-
-GDB, GAS, and the GNU binutils are distributed in the hope that they
-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 file; see the file COPYING.  If not, write to the Free
-Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef OPCODE_ALPHA_H
-#define OPCODE_ALPHA_H
-
-/* The opcode table is an array of struct alpha_opcode.  */
-
-struct alpha_opcode
-{
-  /* The opcode name.  */
-  const char *name;
-
-  /* The opcode itself.  Those bits which will be filled in with
-     operands are zeroes.  */
-  unsigned opcode;
-
-  /* The opcode mask.  This is used by the disassembler.  This is a
-     mask containing ones indicating those bits which must match the
-     opcode field, and zeroes indicating those bits which need not
-     match (and are presumably filled in by operands).  */
-  unsigned mask;
-
-  /* One bit flags for the opcode.  These are primarily used to
-     indicate specific processors and environments support the
-     instructions.  The defined values are listed below. */
-  unsigned flags;
-
-  /* An array of operand codes.  Each code is an index into the
-     operand table.  They appear in the order which the operands must
-     appear in assembly code, and are terminated by a zero.  */
-  unsigned char operands[4];
-};
-
-/* The table itself is sorted by major opcode number, and is otherwise
-   in the order in which the disassembler should consider
-   instructions.  */
-extern const struct alpha_opcode alpha_opcodes[];
-extern const unsigned alpha_num_opcodes;
-
-/* Values defined for the flags field of a struct alpha_opcode.  */
-
-/* CPU Availability */
-#define AXP_OPCODE_BASE  0x0001  /* Base architecture -- all cpus.  */
-#define AXP_OPCODE_EV4   0x0002  /* EV4 specific PALcode insns.  */
-#define AXP_OPCODE_EV5   0x0004  /* EV5 specific PALcode insns.  */
-#define AXP_OPCODE_EV6   0x0008  /* EV6 specific PALcode insns.  */
-#define AXP_OPCODE_BWX   0x0100  /* Byte/word extension (amask bit 0).  */
-#define AXP_OPCODE_CIX   0x0200  /* "Count" extension (amask bit 1).  */
-#define AXP_OPCODE_MAX   0x0400  /* Multimedia extension (amask bit 8).  */
-
-#define AXP_OPCODE_NOPAL (~(AXP_OPCODE_EV4|AXP_OPCODE_EV5|AXP_OPCODE_EV6))
-
-/* A macro to extract the major opcode from an instruction.  */
-#define AXP_OP(i)	(((i) >> 26) & 0x3F)
-
-/* The total number of major opcodes. */
-#define AXP_NOPS	0x40
-
-
-/* The operands table is an array of struct alpha_operand.  */
-
-struct alpha_operand
-{
-  /* The number of bits in the operand.  */
-  unsigned int bits : 5;
-
-  /* How far the operand is left shifted in the instruction.  */
-  unsigned int shift : 5;
-
-  /* The default relocation type for this operand.  */
-  signed int default_reloc : 16;
-
-  /* One bit syntax flags.  */
-  unsigned int flags : 16;
-
-  /* Insertion function.  This is used by the assembler.  To insert an
-     operand value into an instruction, check this field.
-
-     If it is NULL, execute
-         i |= (op & ((1 << o->bits) - 1)) << o->shift;
-     (i is the instruction which we are filling in, o is a pointer to
-     this structure, and op is the opcode value; this assumes twos
-     complement arithmetic).
-
-     If this field is not NULL, then simply call it with the
-     instruction and the operand value.  It will return the new value
-     of the instruction.  If the ERRMSG argument is not NULL, then if
-     the operand value is illegal, *ERRMSG will be set to a warning
-     string (the operand will be inserted in any case).  If the
-     operand value is legal, *ERRMSG will be unchanged (most operands
-     can accept any value).  */
-  unsigned (*insert) (unsigned instruction, int op, const char **errmsg);
-
-  /* Extraction function.  This is used by the disassembler.  To
-     extract this operand type from an instruction, check this field.
-
-     If it is NULL, compute
-         op = ((i) >> o->shift) & ((1 << o->bits) - 1);
-	 if ((o->flags & AXP_OPERAND_SIGNED) != 0
-	     && (op & (1 << (o->bits - 1))) != 0)
-	   op -= 1 << o->bits;
-     (i is the instruction, o is a pointer to this structure, and op
-     is the result; this assumes twos complement arithmetic).
-
-     If this field is not NULL, then simply call it with the
-     instruction value.  It will return the value of the operand.  If
-     the INVALID argument is not NULL, *INVALID will be set to
-     non-zero if this operand type can not actually be extracted from
-     this operand (i.e., the instruction does not match).  If the
-     operand is valid, *INVALID will not be changed.  */
-  int (*extract) (unsigned instruction, int *invalid);
-};
-
-/* Elements in the table are retrieved by indexing with values from
-   the operands field of the alpha_opcodes table.  */
-
-extern const struct alpha_operand alpha_operands[];
-extern const unsigned alpha_num_operands;
-
-/* Values defined for the flags field of a struct alpha_operand.  */
-
-/* Mask for selecting the type for typecheck purposes */
-#define AXP_OPERAND_TYPECHECK_MASK					\
-  (AXP_OPERAND_PARENS | AXP_OPERAND_COMMA | AXP_OPERAND_IR |		\
-   AXP_OPERAND_FPR | AXP_OPERAND_RELATIVE | AXP_OPERAND_SIGNED | 	\
-   AXP_OPERAND_UNSIGNED)
-
-/* This operand does not actually exist in the assembler input.  This
-   is used to support extended mnemonics, for which two operands fields
-   are identical.  The assembler should call the insert function with
-   any op value.  The disassembler should call the extract function,
-   ignore the return value, and check the value placed in the invalid
-   argument.  */
-#define AXP_OPERAND_FAKE	01
-
-/* The operand should be wrapped in parentheses rather than separated
-   from the previous by a comma.  This is used for the load and store
-   instructions which want their operands to look like "Ra,disp(Rb)".  */
-#define AXP_OPERAND_PARENS	02
-
-/* Used in combination with PARENS, this supresses the supression of
-   the comma.  This is used for "jmp Ra,(Rb),hint".  */
-#define AXP_OPERAND_COMMA	04
-
-/* This operand names an integer register.  */
-#define AXP_OPERAND_IR		010
-
-/* This operand names a floating point register.  */
-#define AXP_OPERAND_FPR		020
-
-/* This operand is a relative branch displacement.  The disassembler
-   prints these symbolically if possible.  */
-#define AXP_OPERAND_RELATIVE	040
-
-/* This operand takes signed values.  */
-#define AXP_OPERAND_SIGNED	0100
-
-/* This operand takes unsigned values.  This exists primarily so that
-   a flags value of 0 can be treated as end-of-arguments.  */
-#define AXP_OPERAND_UNSIGNED	0200
-
-/* Supress overflow detection on this field.  This is used for hints. */
-#define AXP_OPERAND_NOOVERFLOW	0400
-
-/* Mask for optional argument default value.  */
-#define AXP_OPERAND_OPTIONAL_MASK 07000
-
-/* This operand defaults to zero.  This is used for jump hints.  */
-#define AXP_OPERAND_DEFAULT_ZERO 01000
-
-/* This operand should default to the first (real) operand and is used
-   in conjunction with AXP_OPERAND_OPTIONAL.  This allows
-   "and $0,3,$0" to be written as "and $0,3", etc.  I don't like
-   it, but it's what DEC does.  */
-#define AXP_OPERAND_DEFAULT_FIRST 02000
-
-/* Similarly, this operand should default to the second (real) operand.
-   This allows "negl $0" instead of "negl $0,$0".  */
-#define AXP_OPERAND_DEFAULT_SECOND 04000
-
-
-/* Register common names */
-
-#define AXP_REG_V0	0
-#define AXP_REG_T0	1
-#define AXP_REG_T1	2
-#define AXP_REG_T2	3
-#define AXP_REG_T3	4
-#define AXP_REG_T4	5
-#define AXP_REG_T5	6
-#define AXP_REG_T6	7
-#define AXP_REG_T7	8
-#define AXP_REG_S0	9
-#define AXP_REG_S1	10
-#define AXP_REG_S2	11
-#define AXP_REG_S3	12
-#define AXP_REG_S4	13
-#define AXP_REG_S5	14
-#define AXP_REG_FP	15
-#define AXP_REG_A0	16
-#define AXP_REG_A1	17
-#define AXP_REG_A2	18
-#define AXP_REG_A3	19
-#define AXP_REG_A4	20
-#define AXP_REG_A5	21
-#define AXP_REG_T8	22
-#define AXP_REG_T9	23
-#define AXP_REG_T10	24
-#define AXP_REG_T11	25
-#define AXP_REG_RA	26
-#define AXP_REG_PV	27
-#define AXP_REG_T12	27
-#define AXP_REG_AT	28
-#define AXP_REG_GP	29
-#define AXP_REG_SP	30
-#define AXP_REG_ZERO	31
-
-#endif /* OPCODE_ALPHA_H */
diff --git a/include/opcode/arc.h b/include/opcode/arc.h
deleted file mode 100644
index 8ddcf54..0000000
--- a/include/opcode/arc.h
+++ /dev/null
@@ -1,323 +0,0 @@
-/* Opcode table for the ARC.
-   Copyright 1994, 1995, 1997, 2001, 2002, 2003
-   Free Software Foundation, Inc.
-   Contributed by Doug Evans (dje@cygnus.com).
-
-   This file is part of GAS, the GNU Assembler, GDB, the GNU debugger, and
-   the GNU Binutils.
-
-   GAS/GDB 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.
-
-   GAS/GDB 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 GAS or GDB; see the file COPYING.	If not, write to
-   the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
-   MA 02110-1301, USA.  */
-
-
-/* List of the various cpu types.
-   The tables currently use bit masks to say whether the instruction or
-   whatever is supported by a particular cpu.  This lets us have one entry
-   apply to several cpus.
-
-   The `base' cpu must be 0. The cpu type is treated independently of
-   endianness. The complete `mach' number includes endianness.
-   These values are internal to opcodes/bfd/binutils/gas.  */
-#define ARC_MACH_5 0
-#define ARC_MACH_6 1
-#define ARC_MACH_7 2
-#define ARC_MACH_8 4
-
-/* Additional cpu values can be inserted here and ARC_MACH_BIG moved down.  */
-#define ARC_MACH_BIG 16
-
-/* Mask of number of bits necessary to record cpu type.  */
-#define ARC_MACH_CPU_MASK (ARC_MACH_BIG - 1)
-
-/* Mask of number of bits necessary to record cpu type + endianness.  */
-#define ARC_MACH_MASK ((ARC_MACH_BIG << 1) - 1)
-
-/* Type to denote an ARC instruction (at least a 32 bit unsigned int).  */
-
-typedef unsigned int arc_insn;
-
-struct arc_opcode {
-  char *syntax;              /* syntax of insn  */
-  unsigned long mask, value; /* recognize insn if (op&mask) == value  */
-  int flags;                 /* various flag bits  */
-
-/* Values for `flags'.  */
-
-/* Return CPU number, given flag bits.  */
-#define ARC_OPCODE_CPU(bits) ((bits) & ARC_MACH_CPU_MASK)
-
-/* Return MACH number, given flag bits.  */
-#define ARC_OPCODE_MACH(bits) ((bits) & ARC_MACH_MASK)
-
-/* First opcode flag bit available after machine mask.  */
-#define ARC_OPCODE_FLAG_START (ARC_MACH_MASK + 1)
-
-/* This insn is a conditional branch.  */
-#define ARC_OPCODE_COND_BRANCH (ARC_OPCODE_FLAG_START)
-#define SYNTAX_3OP             (ARC_OPCODE_COND_BRANCH << 1)
-#define SYNTAX_LENGTH          (SYNTAX_3OP                 )
-#define SYNTAX_2OP             (SYNTAX_3OP             << 1)
-#define OP1_MUST_BE_IMM        (SYNTAX_2OP             << 1)
-#define OP1_IMM_IMPLIED        (OP1_MUST_BE_IMM        << 1)
-#define SYNTAX_VALID           (OP1_IMM_IMPLIED        << 1)
-
-#define I(x) (((x) & 31) << 27)
-#define A(x) (((x) & ARC_MASK_REG) << ARC_SHIFT_REGA)
-#define B(x) (((x) & ARC_MASK_REG) << ARC_SHIFT_REGB)
-#define C(x) (((x) & ARC_MASK_REG) << ARC_SHIFT_REGC)
-#define R(x,b,m) (((x) & (m)) << (b)) /* value X, mask M, at bit B */
-
-/* These values are used to optimize assembly and disassembly.  Each insn
-   is on a list of related insns (same first letter for assembly, same
-   insn code for disassembly).  */
-
-  struct arc_opcode *next_asm;	/* Next instr to try during assembly.  */
-  struct arc_opcode *next_dis;	/* Next instr to try during disassembly.  */
-
-/* Macros to create the hash values for the lists.  */
-#define ARC_HASH_OPCODE(string) \
-  ((string)[0] >= 'a' && (string)[0] <= 'z' ? (string)[0] - 'a' : 26)
-#define ARC_HASH_ICODE(insn) \
-  ((unsigned int) (insn) >> 27)
-
- /* Macros to access `next_asm', `next_dis' so users needn't care about the
-    underlying mechanism.  */
-#define ARC_OPCODE_NEXT_ASM(op) ((op)->next_asm)
-#define ARC_OPCODE_NEXT_DIS(op) ((op)->next_dis)
-};
-
-/* this is an "insert at front" linked list per Metaware spec
-   that new definitions override older ones.  */
-extern struct arc_opcode *arc_ext_opcodes;
-
-struct arc_operand_value {
-  char *name;          /* eg: "eq"  */
-  short value;         /* eg: 1  */
-  unsigned char type;  /* index into `arc_operands'  */
-  unsigned char flags; /* various flag bits  */
-
-/* Values for `flags'.  */
-
-/* Return CPU number, given flag bits.  */
-#define ARC_OPVAL_CPU(bits) ((bits) & ARC_MACH_CPU_MASK)
-/* Return MACH number, given flag bits.  */
-#define ARC_OPVAL_MACH(bits) ((bits) & ARC_MACH_MASK)
-};
-
-struct arc_ext_operand_value {
-  struct arc_ext_operand_value *next;
-  struct arc_operand_value operand;
-};
-
-extern struct arc_ext_operand_value *arc_ext_operands;
-
-struct arc_operand {
-/* One of the insn format chars.  */
-  unsigned char fmt;
-
-/* The number of bits in the operand (may be unused for a modifier).  */
-  unsigned char bits;
-
-/* How far the operand is left shifted in the instruction, or
-   the modifier's flag bit (may be unused for a modifier.  */
-  unsigned char shift;
-
-/* Various flag bits.  */
-  int flags;
-
-/* Values for `flags'.  */
-
-/* This operand is a suffix to the opcode.  */
-#define ARC_OPERAND_SUFFIX 1
-
-/* This operand is a relative branch displacement.  The disassembler
-   prints these symbolically if possible.  */
-#define ARC_OPERAND_RELATIVE_BRANCH 2
-
-/* This operand is an absolute branch address.  The disassembler
-   prints these symbolically if possible.  */
-#define ARC_OPERAND_ABSOLUTE_BRANCH 4
-
-/* This operand is an address.  The disassembler
-   prints these symbolically if possible.  */
-#define ARC_OPERAND_ADDRESS 8
-
-/* This operand is a long immediate value.  */
-#define ARC_OPERAND_LIMM 0x10
-
-/* This operand takes signed values.  */
-#define ARC_OPERAND_SIGNED 0x20
-
-/* This operand takes signed values, but also accepts a full positive
-   range of values.  That is, if bits is 16, it takes any value from
-   -0x8000 to 0xffff.  */
-#define ARC_OPERAND_SIGNOPT 0x40
-
-/* This operand should be regarded as a negative number for the
-   purposes of overflow checking (i.e., the normal most negative
-   number is disallowed and one more than the normal most positive
-   number is allowed).  This flag will only be set for a signed
-   operand.  */
-#define ARC_OPERAND_NEGATIVE 0x80
-
-/* This operand doesn't really exist.  The program uses these operands
-   in special ways.  */
-#define ARC_OPERAND_FAKE 0x100
-
-/* separate flags operand for j and jl instructions  */
-#define ARC_OPERAND_JUMPFLAGS 0x200
-
-/* allow warnings and errors to be issued after call to insert_xxxxxx  */
-#define ARC_OPERAND_WARN  0x400
-#define ARC_OPERAND_ERROR 0x800
-
-/* this is a load operand */
-#define ARC_OPERAND_LOAD  0x8000
-
-/* this is a store operand */
-#define ARC_OPERAND_STORE 0x10000
-
-/* Modifier values.  */
-/* A dot is required before a suffix.  Eg: .le  */
-#define ARC_MOD_DOT 0x1000
-
-/* A normal register is allowed (not used, but here for completeness).  */
-#define ARC_MOD_REG 0x2000
-
-/* An auxiliary register name is expected.  */
-#define ARC_MOD_AUXREG 0x4000
-
-/* Sum of all ARC_MOD_XXX bits.  */
-#define ARC_MOD_BITS 0x7000
-
-/* Non-zero if the operand type is really a modifier.  */
-#define ARC_MOD_P(X) ((X) & ARC_MOD_BITS)
-
-/* enforce read/write only register restrictions  */
-#define ARC_REGISTER_READONLY    0x01
-#define ARC_REGISTER_WRITEONLY   0x02
-#define ARC_REGISTER_NOSHORT_CUT 0x04
-
-/* Insertion function.  This is used by the assembler.  To insert an
-   operand value into an instruction, check this field.
-
-   If it is NULL, execute
-   i |= (p & ((1 << o->bits) - 1)) << o->shift;
-   (I is the instruction which we are filling in, O is a pointer to
-   this structure, and OP is the opcode value; this assumes twos
-   complement arithmetic).
-   
-   If this field is not NULL, then simply call it with the
-   instruction and the operand value.  It will return the new value
-   of the instruction.  If the ERRMSG argument is not NULL, then if
-   the operand value is illegal, *ERRMSG will be set to a warning
-   string (the operand will be inserted in any case).  If the
-   operand value is legal, *ERRMSG will be unchanged.
-
-   REG is non-NULL when inserting a register value.  */
-
-  arc_insn (*insert)
-    (arc_insn insn, const struct arc_operand *operand, int mods,
-     const struct arc_operand_value *reg, long value, const char **errmsg);
-
-/* Extraction function.  This is used by the disassembler.  To
-   extract this operand type from an instruction, check this field.
-   
-   If it is NULL, compute
-     op = ((i) >> o->shift) & ((1 << o->bits) - 1);
-     if ((o->flags & ARC_OPERAND_SIGNED) != 0
-          && (op & (1 << (o->bits - 1))) != 0)
-       op -= 1 << o->bits;
-   (I is the instruction, O is a pointer to this structure, and OP
-   is the result; this assumes twos complement arithmetic).
-   
-   If this field is not NULL, then simply call it with the
-   instruction value.  It will return the value of the operand.  If
-   the INVALID argument is not NULL, *INVALID will be set to
-   non-zero if this operand type can not actually be extracted from
-   this operand (i.e., the instruction does not match).  If the
-   operand is valid, *INVALID will not be changed.
-
-   INSN is a pointer to an array of two `arc_insn's.  The first element is
-   the insn, the second is the limm if present.
-
-   Operands that have a printable form like registers and suffixes have
-   their struct arc_operand_value pointer stored in OPVAL.  */
-
-  long (*extract)
-    (arc_insn *insn, const struct arc_operand *operand, int mods,
-     const struct arc_operand_value **opval, int *invalid);
-};
-
-/* Bits that say what version of cpu we have. These should be passed to
-   arc_init_opcode_tables. At present, all there is is the cpu type.  */
-
-/* CPU number, given value passed to `arc_init_opcode_tables'.  */
-#define ARC_HAVE_CPU(bits) ((bits) & ARC_MACH_CPU_MASK)
-/* MACH number, given value passed to `arc_init_opcode_tables'.  */
-#define ARC_HAVE_MACH(bits) ((bits) & ARC_MACH_MASK)
-
-/* Special register values:  */
-#define ARC_REG_SHIMM_UPDATE 61
-#define ARC_REG_SHIMM 63
-#define ARC_REG_LIMM 62
-
-/* Non-zero if REG is a constant marker.  */
-#define ARC_REG_CONSTANT_P(REG) ((REG) >= 61)
-
-/* Positions and masks of various fields:  */
-#define ARC_SHIFT_REGA 21
-#define ARC_SHIFT_REGB 15
-#define ARC_SHIFT_REGC 9
-#define ARC_MASK_REG 63
-
-/* Delay slot types.  */
-#define ARC_DELAY_NONE 0   /* no delay slot */
-#define ARC_DELAY_NORMAL 1 /* delay slot in both cases */
-#define ARC_DELAY_JUMP 2   /* delay slot only if branch taken */
-
-/* Non-zero if X will fit in a signed 9 bit field.  */
-#define ARC_SHIMM_CONST_P(x) ((long) (x) >= -256 && (long) (x) <= 255)
-
-extern const struct arc_operand arc_operands[];
-extern const int arc_operand_count;
-extern struct arc_opcode arc_opcodes[];
-extern const int arc_opcodes_count;
-extern const struct arc_operand_value arc_suffixes[];
-extern const int arc_suffixes_count;
-extern const struct arc_operand_value arc_reg_names[];
-extern const int arc_reg_names_count;
-extern unsigned char arc_operand_map[];
-
-/* Utility fns in arc-opc.c.  */
-int arc_get_opcode_mach (int, int);
-
-/* `arc_opcode_init_tables' must be called before `arc_xxx_supported'.  */
-void arc_opcode_init_tables (int);
-void arc_opcode_init_insert (void);
-void arc_opcode_init_extract (void);
-const struct arc_opcode *arc_opcode_lookup_asm (const char *);
-const struct arc_opcode *arc_opcode_lookup_dis (unsigned int);
-int arc_opcode_limm_p (long *);
-const struct arc_operand_value *arc_opcode_lookup_suffix
-  (const struct arc_operand *type, int value);
-int arc_opcode_supported (const struct arc_opcode *);
-int arc_opval_supported (const struct arc_operand_value *);
-int arc_limm_fixup_adjust (arc_insn);
-int arc_insn_is_j (arc_insn);
-int arc_insn_not_jl (arc_insn);
-int arc_operand_type (int);
-struct arc_operand_value *get_ext_suffix (char *);
-int arc_get_noshortcut_flag (void);
diff --git a/include/opcode/arm.h b/include/opcode/arm.h
deleted file mode 100644
index f142fca..0000000
--- a/include/opcode/arm.h
+++ /dev/null
@@ -1,194 +0,0 @@
-/* ARM assembler/disassembler support.
-   Copyright 2004 Free Software Foundation, Inc.
-
-   This file is part of GDB and GAS.
-
-   GDB and GAS are 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.
-
-   GDB and GAS are 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 GDB or GAS; see the file COPYING.  If not, write to the
-   Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
-   02110-1301, USA.  */
-
-/* The following bitmasks control CPU extensions:  */
-#define ARM_EXT_V1	 0x00000001	/* All processors (core set).  */
-#define ARM_EXT_V2	 0x00000002	/* Multiply instructions.  */
-#define ARM_EXT_V2S	 0x00000004	/* SWP instructions.       */
-#define ARM_EXT_V3	 0x00000008	/* MSR MRS.                */
-#define ARM_EXT_V3M	 0x00000010	/* Allow long multiplies.  */
-#define ARM_EXT_V4	 0x00000020	/* Allow half word loads.  */
-#define ARM_EXT_V4T	 0x00000040	/* Thumb.                  */
-#define ARM_EXT_V5	 0x00000080	/* Allow CLZ, etc.         */
-#define ARM_EXT_V5T	 0x00000100	/* Improved interworking.  */
-#define ARM_EXT_V5ExP	 0x00000200	/* DSP core set.           */
-#define ARM_EXT_V5E	 0x00000400	/* DSP Double transfers.   */
-#define ARM_EXT_V5J	 0x00000800	/* Jazelle extension.	   */
-#define ARM_EXT_V6       0x00001000     /* ARM V6.                 */
-#define ARM_EXT_V6K      0x00002000     /* ARM V6K.                */
-#define ARM_EXT_V6Z      0x00004000     /* ARM V6Z.                */
-#define ARM_EXT_V6T2	 0x00008000	/* Thumb-2.                */
-#define ARM_EXT_DIV	 0x00010000	/* Integer division.       */
-/* The 'M' in Arm V7M stands for Microcontroller.
-   On earlier architecture variants it stands for Multiply.  */
-#define ARM_EXT_V5E_NOTM 0x00020000	/* Arm V5E but not Arm V7M. */
-#define ARM_EXT_V6_NOTM	 0x00040000	/* Arm V6 but not Arm V7M. */
-#define ARM_EXT_V7	 0x00080000	/* Arm V7.                 */
-#define ARM_EXT_V7A	 0x00100000	/* Arm V7A.                */
-#define ARM_EXT_V7R	 0x00200000	/* Arm V7R.                */
-#define ARM_EXT_V7M	 0x00400000	/* Arm V7M.                */
-
-/* Co-processor space extensions.  */
-#define ARM_CEXT_XSCALE   0x00000001	/* Allow MIA etc.          */
-#define ARM_CEXT_MAVERICK 0x00000002	/* Use Cirrus/DSP coprocessor.  */
-#define ARM_CEXT_IWMMXT   0x00000004    /* Intel Wireless MMX technology coprocessor.   */
-
-#define FPU_ENDIAN_PURE	 0x80000000	/* Pure-endian doubles.	      */
-#define FPU_ENDIAN_BIG	 0		/* Double words-big-endian.   */
-#define FPU_FPA_EXT_V1	 0x40000000	/* Base FPA instruction set.  */
-#define FPU_FPA_EXT_V2	 0x20000000	/* LFM/SFM.		      */
-#define FPU_MAVERICK	 0x10000000	/* Cirrus Maverick.	      */
-#define FPU_VFP_EXT_V1xD 0x08000000	/* Base VFP instruction set.  */
-#define FPU_VFP_EXT_V1	 0x04000000	/* Double-precision insns.    */
-#define FPU_VFP_EXT_V2	 0x02000000	/* ARM10E VFPr1.	      */
-#define FPU_VFP_EXT_V3	 0x01000000	/* VFPv3 insns.	              */
-#define FPU_NEON_EXT_V1	 0x00800000	/* Neon (SIMD) insns.	      */
-
-/* Architectures are the sum of the base and extensions.  The ARM ARM (rev E)
-   defines the following: ARMv3, ARMv3M, ARMv4xM, ARMv4, ARMv4TxM, ARMv4T,
-   ARMv5xM, ARMv5, ARMv5TxM, ARMv5T, ARMv5TExP, ARMv5TE.  To these we add
-   three more to cover cores prior to ARM6.  Finally, there are cores which
-   implement further extensions in the co-processor space.  */
-#define ARM_AEXT_V1			  ARM_EXT_V1
-#define ARM_AEXT_V2	(ARM_AEXT_V1	| ARM_EXT_V2)
-#define ARM_AEXT_V2S	(ARM_AEXT_V2	| ARM_EXT_V2S)
-#define ARM_AEXT_V3	(ARM_AEXT_V2S	| ARM_EXT_V3)
-#define ARM_AEXT_V3M	(ARM_AEXT_V3	| ARM_EXT_V3M)
-#define ARM_AEXT_V4xM	(ARM_AEXT_V3	| ARM_EXT_V4)
-#define ARM_AEXT_V4	(ARM_AEXT_V3M	| ARM_EXT_V4)
-#define ARM_AEXT_V4TxM	(ARM_AEXT_V4xM	| ARM_EXT_V4T)
-#define ARM_AEXT_V4T	(ARM_AEXT_V4	| ARM_EXT_V4T)
-#define ARM_AEXT_V5xM	(ARM_AEXT_V4xM	| ARM_EXT_V5)
-#define ARM_AEXT_V5	(ARM_AEXT_V4	| ARM_EXT_V5)
-#define ARM_AEXT_V5TxM	(ARM_AEXT_V5xM	| ARM_EXT_V4T | ARM_EXT_V5T)
-#define ARM_AEXT_V5T	(ARM_AEXT_V5	| ARM_EXT_V4T | ARM_EXT_V5T)
-#define ARM_AEXT_V5TExP	(ARM_AEXT_V5T	| ARM_EXT_V5ExP)
-#define ARM_AEXT_V5TE	(ARM_AEXT_V5TExP | ARM_EXT_V5E)
-#define ARM_AEXT_V5TEJ	(ARM_AEXT_V5TE	| ARM_EXT_V5J)
-#define ARM_AEXT_V6     (ARM_AEXT_V5TEJ | ARM_EXT_V6)
-#define ARM_AEXT_V6K    (ARM_AEXT_V6    | ARM_EXT_V6K)
-#define ARM_AEXT_V6Z    (ARM_AEXT_V6    | ARM_EXT_V6Z)
-#define ARM_AEXT_V6ZK   (ARM_AEXT_V6    | ARM_EXT_V6K | ARM_EXT_V6Z)
-#define ARM_AEXT_V6T2   (ARM_AEXT_V6    | ARM_EXT_V6T2 | ARM_EXT_V6_NOTM)
-#define ARM_AEXT_V6KT2  (ARM_AEXT_V6T2 | ARM_EXT_V6K)
-#define ARM_AEXT_V6ZT2  (ARM_AEXT_V6T2 | ARM_EXT_V6Z)
-#define ARM_AEXT_V6ZKT2 (ARM_AEXT_V6T2 | ARM_EXT_V6K | ARM_EXT_V6Z)
-#define ARM_AEXT_V7_ARM	(ARM_AEXT_V6ZKT2 | ARM_EXT_V7)
-#define ARM_AEXT_V7A	(ARM_AEXT_V7_ARM | ARM_EXT_V7A)
-#define ARM_AEXT_V7R	(ARM_AEXT_V7_ARM | ARM_EXT_V7R | ARM_EXT_DIV)
-#define ARM_AEXT_NOTM \
-  (ARM_AEXT_V4 | ARM_EXT_V5ExP | ARM_EXT_V5J | ARM_EXT_V6_NOTM)
-#define ARM_AEXT_V7M \
-  ((ARM_AEXT_V7_ARM | ARM_EXT_V7M | ARM_EXT_DIV) & ~(ARM_AEXT_NOTM))
-#define ARM_AEXT_V7 (ARM_AEXT_V7A & ARM_AEXT_V7R & ARM_AEXT_V7M)
-
-/* Processors with specific extensions in the co-processor space.  */
-#define ARM_ARCH_XSCALE	ARM_FEATURE (ARM_AEXT_V5TE, ARM_CEXT_XSCALE)
-#define ARM_ARCH_IWMMXT	\
- ARM_FEATURE (ARM_AEXT_V5TE, ARM_CEXT_XSCALE | ARM_CEXT_IWMMXT)
-
-#define FPU_VFP_V1xD	(FPU_VFP_EXT_V1xD | FPU_ENDIAN_PURE)
-#define FPU_VFP_V1	(FPU_VFP_V1xD | FPU_VFP_EXT_V1)
-#define FPU_VFP_V2	(FPU_VFP_V1 | FPU_VFP_EXT_V2)
-#define FPU_VFP_V3	(FPU_VFP_V2 | FPU_VFP_EXT_V3)
-#define FPU_VFP_HARD	(FPU_VFP_EXT_V1xD | FPU_VFP_EXT_V1 | FPU_VFP_EXT_V2 \
-                         | FPU_VFP_EXT_V3 | FPU_NEON_EXT_V1)
-#define FPU_FPA		(FPU_FPA_EXT_V1 | FPU_FPA_EXT_V2)
-
-/* Deprecated */
-#define FPU_ARCH_VFP	ARM_FEATURE (0, FPU_ENDIAN_PURE)
-
-#define FPU_ARCH_FPE	ARM_FEATURE (0, FPU_FPA_EXT_V1)
-#define FPU_ARCH_FPA	ARM_FEATURE (0, FPU_FPA)
-
-#define FPU_ARCH_VFP_V1xD ARM_FEATURE (0, FPU_VFP_V1xD)
-#define FPU_ARCH_VFP_V1	  ARM_FEATURE (0, FPU_VFP_V1)
-#define FPU_ARCH_VFP_V2	  ARM_FEATURE (0, FPU_VFP_V2)
-#define FPU_ARCH_VFP_V3	  ARM_FEATURE (0, FPU_VFP_V3)
-#define FPU_ARCH_NEON_V1  ARM_FEATURE (0, FPU_NEON_EXT_V1)
-#define FPU_ARCH_VFP_V3_PLUS_NEON_V1 \
-  ARM_FEATURE (0, FPU_VFP_V3 | FPU_NEON_EXT_V1)
-#define FPU_ARCH_VFP_HARD ARM_FEATURE (0, FPU_VFP_HARD)
-
-#define FPU_ARCH_ENDIAN_PURE ARM_FEATURE (0, FPU_ENDIAN_PURE)
-
-#define FPU_ARCH_MAVERICK ARM_FEATURE (0, FPU_MAVERICK)
-
-#define ARM_ARCH_V1	ARM_FEATURE (ARM_AEXT_V1, 0)
-#define ARM_ARCH_V2	ARM_FEATURE (ARM_AEXT_V2, 0)
-#define ARM_ARCH_V2S	ARM_FEATURE (ARM_AEXT_V2S, 0)
-#define ARM_ARCH_V3	ARM_FEATURE (ARM_AEXT_V3, 0)
-#define ARM_ARCH_V3M	ARM_FEATURE (ARM_AEXT_V3M, 0)
-#define ARM_ARCH_V4xM	ARM_FEATURE (ARM_AEXT_V4xM, 0)
-#define ARM_ARCH_V4	ARM_FEATURE (ARM_AEXT_V4, 0)
-#define ARM_ARCH_V4TxM	ARM_FEATURE (ARM_AEXT_V4TxM, 0)
-#define ARM_ARCH_V4T	ARM_FEATURE (ARM_AEXT_V4T, 0)
-#define ARM_ARCH_V5xM	ARM_FEATURE (ARM_AEXT_V5xM, 0)
-#define ARM_ARCH_V5	ARM_FEATURE (ARM_AEXT_V5, 0)
-#define ARM_ARCH_V5TxM	ARM_FEATURE (ARM_AEXT_V5TxM, 0)
-#define ARM_ARCH_V5T	ARM_FEATURE (ARM_AEXT_V5T, 0)
-#define ARM_ARCH_V5TExP	ARM_FEATURE (ARM_AEXT_V5TExP, 0)
-#define ARM_ARCH_V5TE	ARM_FEATURE (ARM_AEXT_V5TE, 0)
-#define ARM_ARCH_V5TEJ	ARM_FEATURE (ARM_AEXT_V5TEJ, 0)
-#define ARM_ARCH_V6	ARM_FEATURE (ARM_AEXT_V6, 0)
-#define ARM_ARCH_V6K	ARM_FEATURE (ARM_AEXT_V6K, 0)
-#define ARM_ARCH_V6Z	ARM_FEATURE (ARM_AEXT_V6Z, 0)
-#define ARM_ARCH_V6ZK	ARM_FEATURE (ARM_AEXT_V6ZK, 0)
-#define ARM_ARCH_V6T2	ARM_FEATURE (ARM_AEXT_V6T2, 0)
-#define ARM_ARCH_V6KT2	ARM_FEATURE (ARM_AEXT_V6KT2, 0)
-#define ARM_ARCH_V6ZT2	ARM_FEATURE (ARM_AEXT_V6ZT2, 0)
-#define ARM_ARCH_V6ZKT2	ARM_FEATURE (ARM_AEXT_V6ZKT2, 0)
-#define ARM_ARCH_V7	ARM_FEATURE (ARM_AEXT_V7, 0)
-#define ARM_ARCH_V7A	ARM_FEATURE (ARM_AEXT_V7A, 0)
-#define ARM_ARCH_V7R	ARM_FEATURE (ARM_AEXT_V7R, 0)
-#define ARM_ARCH_V7M	ARM_FEATURE (ARM_AEXT_V7M, 0)
-
-/* Some useful combinations:  */
-#define ARM_ARCH_NONE	ARM_FEATURE (0, 0)
-#define FPU_NONE	ARM_FEATURE (0, 0)
-#define ARM_ANY		ARM_FEATURE (-1, 0)	/* Any basic core.  */
-#define FPU_ANY_HARD	ARM_FEATURE (0, FPU_FPA | FPU_VFP_HARD | FPU_MAVERICK)
-#define ARM_ARCH_THUMB2 ARM_FEATURE (ARM_EXT_V6T2 | ARM_EXT_V7 | ARM_EXT_V7A | ARM_EXT_V7R | ARM_EXT_V7M | ARM_EXT_DIV, 0)
-
-/* There are too many feature bits to fit in a single word, so use a
-   structure.  For simplicity we put all core features in one word and
-   everything else in the other.  */
-typedef struct
-{
-  unsigned long core;
-  unsigned long coproc;
-} arm_feature_set;
-
-#define ARM_CPU_HAS_FEATURE(CPU,FEAT) \
-  (((CPU).core & (FEAT).core) != 0 || ((CPU).coproc & (FEAT).coproc) != 0)
-
-#define ARM_MERGE_FEATURE_SETS(TARG,F1,F2)	\
-  do {						\
-    (TARG).core = (F1).core | (F2).core;	\
-    (TARG).coproc = (F1).coproc | (F2).coproc;	\
-  } while (0)
-
-#define ARM_CLEAR_FEATURE(TARG,F1,F2)		\
-  do {						\
-    (TARG).core = (F1).core &~ (F2).core;	\
-    (TARG).coproc = (F1).coproc &~ (F2).coproc;	\
-  } while (0)
-
-#define ARM_FEATURE(core, coproc) {(core), (coproc)}
diff --git a/include/opcode/avr.h b/include/opcode/avr.h
deleted file mode 100644
index 55bb161..0000000
--- a/include/opcode/avr.h
+++ /dev/null
@@ -1,266 +0,0 @@
-/* Opcode table for the Atmel AVR micro controllers.
-
-   Copyright 2000, 2001, 2004, 2006 Free Software Foundation, Inc.
-   Contributed by Denis Chertykov <denisc@overta.ru>
-   
-   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, 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#define AVR_ISA_1200  0x0001 /* In the beginning there was ...  */
-#define AVR_ISA_LPM   0x0002 /* device has LPM */
-#define AVR_ISA_LPMX  0x0004 /* device has LPM Rd,Z[+] */
-#define AVR_ISA_SRAM  0x0008 /* device has SRAM (LD, ST, PUSH, POP, ...) */
-#define AVR_ISA_MEGA  0x0020 /* device has >8K program memory (JMP and CALL
-				supported, no 8K wrap on RJMP and RCALL) */
-#define AVR_ISA_MUL   0x0040 /* device has new core (MUL, FMUL, ...) */
-#define AVR_ISA_ELPM  0x0080 /* device has >64K program memory (ELPM) */
-#define AVR_ISA_ELPMX 0x0100 /* device has ELPM Rd,Z[+] */
-#define AVR_ISA_SPM   0x0200 /* device can program itself */
-#define AVR_ISA_BRK   0x0400 /* device has BREAK (on-chip debug) */
-#define AVR_ISA_EIND  0x0800 /* device has >128K program memory (none yet) */
-#define AVR_ISA_MOVW  0x1000 /* device has MOVW */
-
-#define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM)
-#define AVR_ISA_PWMx  (AVR_ISA_M8   | AVR_ISA_BRK)
-#define AVR_ISA_2xxx  (AVR_ISA_TINY1 | AVR_ISA_SRAM)
-#define AVR_ISA_TINY2 (AVR_ISA_2xxx | AVR_ISA_MOVW | AVR_ISA_LPMX | \
-                       AVR_ISA_SPM  | AVR_ISA_BRK)
-#define AVR_ISA_M8    (AVR_ISA_2xxx | AVR_ISA_MUL | AVR_ISA_MOVW | \
-                       AVR_ISA_LPMX | AVR_ISA_SPM)
-#define AVR_ISA_M603  (AVR_ISA_2xxx | AVR_ISA_MEGA)
-#define AVR_ISA_M103  (AVR_ISA_M603 | AVR_ISA_ELPM)
-#define AVR_ISA_M161  (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_MOVW | \
-                       AVR_ISA_LPMX | AVR_ISA_SPM)
-#define AVR_ISA_94K   (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_MOVW | AVR_ISA_LPMX)
-#define AVR_ISA_M323  (AVR_ISA_M161 | AVR_ISA_BRK)
-#define AVR_ISA_M128  (AVR_ISA_M323 | AVR_ISA_ELPM | AVR_ISA_ELPMX)
-
-#define AVR_ISA_ALL   0xFFFF
-
-#define REGISTER_P(x) ((x) == 'r'		\
-		       || (x) == 'd'		\
-		       || (x) == 'w'		\
-		       || (x) == 'a'		\
-		       || (x) == 'v')
-
-/* Undefined combination of operands - does the register
-   operand overlap with pre-decremented or post-incremented
-   pointer register (like ld r31,Z+)?  */
-#define AVR_UNDEF_P(x) (((x) & 0xFFED) == 0x91E5 ||		\
-  ((x) & 0xFDEF) == 0x91AD || ((x) & 0xFDEF) == 0x91AE ||	\
-  ((x) & 0xFDEF) == 0x91C9 || ((x) & 0xFDEF) == 0x91CA ||	\
-  ((x) & 0xFDEF) == 0x91E1 || ((x) & 0xFDEF) == 0x91E2)
-
-/* Is this a skip instruction {cpse,sbic,sbis,sbrc,sbrs}?  */
-#define AVR_SKIP_P(x) (((x) & 0xFC00) == 0x1000 ||		\
-  ((x) & 0xFD00) == 0x9900 || ((x) & 0xFC08) == 0xFC00)
-
-/* Is this `ldd r,b+0' or `std b+0,r' (b={Y,Z}, disassembled as
-   `ld r,b' or `st b,r' respectively - next opcode entry)?  */
-#define AVR_DISP0_P(x) (((x) & 0xFC07) == 0x8000)
-
-/* constraint letters
-   r - any register
-   d - `ldi' register (r16-r31)
-   v - `movw' even register (r0, r2, ..., r28, r30)
-   a - `fmul' register (r16-r23)
-   w - `adiw' register (r24,r26,r28,r30)
-   e - pointer registers (X,Y,Z)
-   b - base pointer register and displacement ([YZ]+disp)
-   z - Z pointer register (for [e]lpm Rd,Z[+])
-   M - immediate value from 0 to 255
-   n - immediate value from 0 to 255 ( n = ~M ). Relocation impossible
-   s - immediate value from 0 to 7
-   P - Port address value from 0 to 63. (in, out)
-   p - Port address value from 0 to 31. (cbi, sbi, sbic, sbis)
-   K - immediate value from 0 to 63 (used in `adiw', `sbiw')
-   i - immediate value
-   l - signed pc relative offset from -64 to 63
-   L - signed pc relative offset from -2048 to 2047
-   h - absolute code address (call, jmp)
-   S - immediate value from 0 to 7 (S = s << 4)
-   ? - use this opcode entry if no parameters, else use next opcode entry
-
-   Order is important - some binary opcodes have more than one name,
-   the disassembler will only see the first match.
-
-   Remaining undefined opcodes (1699 total - some of them might work
-   as normal instructions if not all of the bits are decoded):
-
-    0x0001...0x00ff    (255) (known to be decoded as `nop' by the old core)
-   "100100xxxxxxx011"  (128) 0x9[0-3][0-9a-f][3b]
-   "100100xxxxxx1000"   (64) 0x9[0-3][0-9a-f]8
-   "1001001xxxxx01xx"  (128) 0x9[23][0-9a-f][4-7]
-   "1001010xxxxx0100"   (32) 0x9[45][0-9a-f]4
-   "1001010x001x1001"    (4) 0x9[45][23]9
-   "1001010x01xx1001"    (8) 0x9[45][4-7]9
-   "1001010x1xxx1001"   (16) 0x9[45][8-9a-f]9
-   "1001010xxxxx1011"   (32) 0x9[45][0-9a-f]b
-   "10010101001x1000"    (2) 0x95[23]8
-   "1001010101xx1000"    (4) 0x95[4-7]8
-   "1001010110111000"    (1) 0x95b8
-   "1001010111111000"    (1) 0x95f8 (`espm' removed in databook update)
-   "11111xxxxxxx1xxx" (1024) 0xf[8-9a-f][0-9a-f][8-9a-f]
- */
-
-AVR_INSN (clc,  "",    "1001010010001000", 1, AVR_ISA_1200, 0x9488)
-AVR_INSN (clh,  "",    "1001010011011000", 1, AVR_ISA_1200, 0x94d8)
-AVR_INSN (cli,  "",    "1001010011111000", 1, AVR_ISA_1200, 0x94f8)
-AVR_INSN (cln,  "",    "1001010010101000", 1, AVR_ISA_1200, 0x94a8)
-AVR_INSN (cls,  "",    "1001010011001000", 1, AVR_ISA_1200, 0x94c8)
-AVR_INSN (clt,  "",    "1001010011101000", 1, AVR_ISA_1200, 0x94e8)
-AVR_INSN (clv,  "",    "1001010010111000", 1, AVR_ISA_1200, 0x94b8)
-AVR_INSN (clz,  "",    "1001010010011000", 1, AVR_ISA_1200, 0x9498)
-
-AVR_INSN (sec,  "",    "1001010000001000", 1, AVR_ISA_1200, 0x9408)
-AVR_INSN (seh,  "",    "1001010001011000", 1, AVR_ISA_1200, 0x9458)
-AVR_INSN (sei,  "",    "1001010001111000", 1, AVR_ISA_1200, 0x9478)
-AVR_INSN (sen,  "",    "1001010000101000", 1, AVR_ISA_1200, 0x9428)
-AVR_INSN (ses,  "",    "1001010001001000", 1, AVR_ISA_1200, 0x9448)
-AVR_INSN (set,  "",    "1001010001101000", 1, AVR_ISA_1200, 0x9468)
-AVR_INSN (sev,  "",    "1001010000111000", 1, AVR_ISA_1200, 0x9438)
-AVR_INSN (sez,  "",    "1001010000011000", 1, AVR_ISA_1200, 0x9418)
-
-   /* Same as {cl,se}[chinstvz] above.  */
-AVR_INSN (bclr, "S",   "100101001SSS1000", 1, AVR_ISA_1200, 0x9488)
-AVR_INSN (bset, "S",   "100101000SSS1000", 1, AVR_ISA_1200, 0x9408)
-
-AVR_INSN (icall,"",    "1001010100001001", 1, AVR_ISA_2xxx, 0x9509)
-AVR_INSN (ijmp, "",    "1001010000001001", 1, AVR_ISA_2xxx, 0x9409)
-
-AVR_INSN (lpm,  "?",   "1001010111001000", 1, AVR_ISA_TINY1,0x95c8)
-AVR_INSN (lpm,  "r,z", "1001000ddddd010+", 1, AVR_ISA_LPMX, 0x9004)
-AVR_INSN (elpm, "?",   "1001010111011000", 1, AVR_ISA_ELPM, 0x95d8)
-AVR_INSN (elpm, "r,z", "1001000ddddd011+", 1, AVR_ISA_ELPMX,0x9006)
-
-AVR_INSN (nop,  "",    "0000000000000000", 1, AVR_ISA_1200, 0x0000)
-AVR_INSN (ret,  "",    "1001010100001000", 1, AVR_ISA_1200, 0x9508)
-AVR_INSN (reti, "",    "1001010100011000", 1, AVR_ISA_1200, 0x9518)
-AVR_INSN (sleep,"",    "1001010110001000", 1, AVR_ISA_1200, 0x9588)
-AVR_INSN (break,"",    "1001010110011000", 1, AVR_ISA_BRK,  0x9598)
-AVR_INSN (wdr,  "",    "1001010110101000", 1, AVR_ISA_1200, 0x95a8)
-AVR_INSN (spm,  "",    "1001010111101000", 1, AVR_ISA_SPM,  0x95e8)
-
-AVR_INSN (adc,  "r,r", "000111rdddddrrrr", 1, AVR_ISA_1200, 0x1c00)
-AVR_INSN (add,  "r,r", "000011rdddddrrrr", 1, AVR_ISA_1200, 0x0c00)
-AVR_INSN (and,  "r,r", "001000rdddddrrrr", 1, AVR_ISA_1200, 0x2000)
-AVR_INSN (cp,   "r,r", "000101rdddddrrrr", 1, AVR_ISA_1200, 0x1400)
-AVR_INSN (cpc,  "r,r", "000001rdddddrrrr", 1, AVR_ISA_1200, 0x0400)
-AVR_INSN (cpse, "r,r", "000100rdddddrrrr", 1, AVR_ISA_1200, 0x1000)
-AVR_INSN (eor,  "r,r", "001001rdddddrrrr", 1, AVR_ISA_1200, 0x2400)
-AVR_INSN (mov,  "r,r", "001011rdddddrrrr", 1, AVR_ISA_1200, 0x2c00)
-AVR_INSN (mul,  "r,r", "100111rdddddrrrr", 1, AVR_ISA_MUL,  0x9c00)
-AVR_INSN (or,   "r,r", "001010rdddddrrrr", 1, AVR_ISA_1200, 0x2800)
-AVR_INSN (sbc,  "r,r", "000010rdddddrrrr", 1, AVR_ISA_1200, 0x0800)
-AVR_INSN (sub,  "r,r", "000110rdddddrrrr", 1, AVR_ISA_1200, 0x1800)
-
-   /* Shorthand for {eor,add,adc,and} r,r above.  */
-AVR_INSN (clr,  "r=r", "001001rdddddrrrr", 1, AVR_ISA_1200, 0x2400)
-AVR_INSN (lsl,  "r=r", "000011rdddddrrrr", 1, AVR_ISA_1200, 0x0c00)
-AVR_INSN (rol,  "r=r", "000111rdddddrrrr", 1, AVR_ISA_1200, 0x1c00)
-AVR_INSN (tst,  "r=r", "001000rdddddrrrr", 1, AVR_ISA_1200, 0x2000)
-
-AVR_INSN (andi, "d,M", "0111KKKKddddKKKK", 1, AVR_ISA_1200, 0x7000)
-  /*XXX special case*/
-AVR_INSN (cbr,  "d,n", "0111KKKKddddKKKK", 1, AVR_ISA_1200, 0x7000)
-
-AVR_INSN (ldi,  "d,M", "1110KKKKddddKKKK", 1, AVR_ISA_1200, 0xe000)
-AVR_INSN (ser,  "d",   "11101111dddd1111", 1, AVR_ISA_1200, 0xef0f)
-
-AVR_INSN (ori,  "d,M", "0110KKKKddddKKKK", 1, AVR_ISA_1200, 0x6000)
-AVR_INSN (sbr,  "d,M", "0110KKKKddddKKKK", 1, AVR_ISA_1200, 0x6000)
-
-AVR_INSN (cpi,  "d,M", "0011KKKKddddKKKK", 1, AVR_ISA_1200, 0x3000)
-AVR_INSN (sbci, "d,M", "0100KKKKddddKKKK", 1, AVR_ISA_1200, 0x4000)
-AVR_INSN (subi, "d,M", "0101KKKKddddKKKK", 1, AVR_ISA_1200, 0x5000)
-
-AVR_INSN (sbrc, "r,s", "1111110rrrrr0sss", 1, AVR_ISA_1200, 0xfc00)
-AVR_INSN (sbrs, "r,s", "1111111rrrrr0sss", 1, AVR_ISA_1200, 0xfe00)
-AVR_INSN (bld,  "r,s", "1111100ddddd0sss", 1, AVR_ISA_1200, 0xf800)
-AVR_INSN (bst,  "r,s", "1111101ddddd0sss", 1, AVR_ISA_1200, 0xfa00)
-
-AVR_INSN (in,   "r,P", "10110PPdddddPPPP", 1, AVR_ISA_1200, 0xb000)
-AVR_INSN (out,  "P,r", "10111PPrrrrrPPPP", 1, AVR_ISA_1200, 0xb800)
-
-AVR_INSN (adiw, "w,K", "10010110KKddKKKK", 1, AVR_ISA_2xxx, 0x9600)
-AVR_INSN (sbiw, "w,K", "10010111KKddKKKK", 1, AVR_ISA_2xxx, 0x9700)
-
-AVR_INSN (cbi,  "p,s", "10011000pppppsss", 1, AVR_ISA_1200, 0x9800)
-AVR_INSN (sbi,  "p,s", "10011010pppppsss", 1, AVR_ISA_1200, 0x9a00)
-AVR_INSN (sbic, "p,s", "10011001pppppsss", 1, AVR_ISA_1200, 0x9900)
-AVR_INSN (sbis, "p,s", "10011011pppppsss", 1, AVR_ISA_1200, 0x9b00)
-
-AVR_INSN (brcc, "l",   "111101lllllll000", 1, AVR_ISA_1200, 0xf400)
-AVR_INSN (brcs, "l",   "111100lllllll000", 1, AVR_ISA_1200, 0xf000)
-AVR_INSN (breq, "l",   "111100lllllll001", 1, AVR_ISA_1200, 0xf001)
-AVR_INSN (brge, "l",   "111101lllllll100", 1, AVR_ISA_1200, 0xf404)
-AVR_INSN (brhc, "l",   "111101lllllll101", 1, AVR_ISA_1200, 0xf405)
-AVR_INSN (brhs, "l",   "111100lllllll101", 1, AVR_ISA_1200, 0xf005)
-AVR_INSN (brid, "l",   "111101lllllll111", 1, AVR_ISA_1200, 0xf407)
-AVR_INSN (brie, "l",   "111100lllllll111", 1, AVR_ISA_1200, 0xf007)
-AVR_INSN (brlo, "l",   "111100lllllll000", 1, AVR_ISA_1200, 0xf000)
-AVR_INSN (brlt, "l",   "111100lllllll100", 1, AVR_ISA_1200, 0xf004)
-AVR_INSN (brmi, "l",   "111100lllllll010", 1, AVR_ISA_1200, 0xf002)
-AVR_INSN (brne, "l",   "111101lllllll001", 1, AVR_ISA_1200, 0xf401)
-AVR_INSN (brpl, "l",   "111101lllllll010", 1, AVR_ISA_1200, 0xf402)
-AVR_INSN (brsh, "l",   "111101lllllll000", 1, AVR_ISA_1200, 0xf400)
-AVR_INSN (brtc, "l",   "111101lllllll110", 1, AVR_ISA_1200, 0xf406)
-AVR_INSN (brts, "l",   "111100lllllll110", 1, AVR_ISA_1200, 0xf006)
-AVR_INSN (brvc, "l",   "111101lllllll011", 1, AVR_ISA_1200, 0xf403)
-AVR_INSN (brvs, "l",   "111100lllllll011", 1, AVR_ISA_1200, 0xf003)
-
-   /* Same as br?? above.  */
-AVR_INSN (brbc, "s,l", "111101lllllllsss", 1, AVR_ISA_1200, 0xf400)
-AVR_INSN (brbs, "s,l", "111100lllllllsss", 1, AVR_ISA_1200, 0xf000)
-
-AVR_INSN (rcall, "L",  "1101LLLLLLLLLLLL", 1, AVR_ISA_1200, 0xd000)
-AVR_INSN (rjmp,  "L",  "1100LLLLLLLLLLLL", 1, AVR_ISA_1200, 0xc000)
-
-AVR_INSN (call, "h",   "1001010hhhhh111h", 2, AVR_ISA_MEGA, 0x940e)
-AVR_INSN (jmp,  "h",   "1001010hhhhh110h", 2, AVR_ISA_MEGA, 0x940c)
-
-AVR_INSN (asr,  "r",   "1001010rrrrr0101", 1, AVR_ISA_1200, 0x9405)
-AVR_INSN (com,  "r",   "1001010rrrrr0000", 1, AVR_ISA_1200, 0x9400)
-AVR_INSN (dec,  "r",   "1001010rrrrr1010", 1, AVR_ISA_1200, 0x940a)
-AVR_INSN (inc,  "r",   "1001010rrrrr0011", 1, AVR_ISA_1200, 0x9403)
-AVR_INSN (lsr,  "r",   "1001010rrrrr0110", 1, AVR_ISA_1200, 0x9406)
-AVR_INSN (neg,  "r",   "1001010rrrrr0001", 1, AVR_ISA_1200, 0x9401)
-AVR_INSN (pop,  "r",   "1001000rrrrr1111", 1, AVR_ISA_2xxx, 0x900f)
-AVR_INSN (push, "r",   "1001001rrrrr1111", 1, AVR_ISA_2xxx, 0x920f)
-AVR_INSN (ror,  "r",   "1001010rrrrr0111", 1, AVR_ISA_1200, 0x9407)
-AVR_INSN (swap, "r",   "1001010rrrrr0010", 1, AVR_ISA_1200, 0x9402)
-
-   /* Known to be decoded as `nop' by the old core.  */
-AVR_INSN (movw, "v,v", "00000001ddddrrrr", 1, AVR_ISA_MOVW, 0x0100)
-AVR_INSN (muls, "d,d", "00000010ddddrrrr", 1, AVR_ISA_MUL,  0x0200)
-AVR_INSN (mulsu,"a,a", "000000110ddd0rrr", 1, AVR_ISA_MUL,  0x0300)
-AVR_INSN (fmul, "a,a", "000000110ddd1rrr", 1, AVR_ISA_MUL,  0x0308)
-AVR_INSN (fmuls,"a,a", "000000111ddd0rrr", 1, AVR_ISA_MUL,  0x0380)
-AVR_INSN (fmulsu,"a,a","000000111ddd1rrr", 1, AVR_ISA_MUL,  0x0388)
-
-AVR_INSN (sts,  "i,r", "1001001ddddd0000", 2, AVR_ISA_2xxx, 0x9200)
-AVR_INSN (lds,  "r,i", "1001000ddddd0000", 2, AVR_ISA_2xxx, 0x9000)
-
-   /* Special case for b+0, `e' must be next entry after `b',
-      b={Y=1,Z=0}, ee={X=11,Y=10,Z=00}, !=1 if -e or e+ or X.  */
-AVR_INSN (ldd,  "r,b", "10o0oo0dddddbooo", 1, AVR_ISA_2xxx, 0x8000)
-AVR_INSN (ld,   "r,e", "100!000dddddee-+", 1, AVR_ISA_1200, 0x8000)
-AVR_INSN (std,  "b,r", "10o0oo1rrrrrbooo", 1, AVR_ISA_2xxx, 0x8200)
-AVR_INSN (st,   "e,r", "100!001rrrrree-+", 1, AVR_ISA_1200, 0x8200)
-
-   /* These are for devices that don't exist yet
-      (>128K program memory, PC = EIND:Z).  */
-AVR_INSN (eicall, "",  "1001010100011001", 1, AVR_ISA_EIND, 0x9519)
-AVR_INSN (eijmp, "",   "1001010000011001", 1, AVR_ISA_EIND, 0x9419)
-
diff --git a/include/opcode/bfin.h b/include/opcode/bfin.h
deleted file mode 100755
index 4466fdc..0000000
--- a/include/opcode/bfin.h
+++ /dev/null
@@ -1,1693 +0,0 @@
-/* bfin.h -- Header file for ADI Blackfin opcode table
-   Copyright 2005 Free Software Foundation, Inc.
-
-This file is part of GDB, GAS, and the GNU binutils.
-
-GDB, GAS, and the GNU binutils are free software; you can redistribute
-them and/or modify them 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.
-
-GDB, GAS, and the GNU binutils are distributed in the hope that they
-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 file; see the file COPYING.  If not, write to the Free
-Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* Common to all DSP32 instructions.  */
-#define BIT_MULTI_INS 0x0800
-
-/* This just sets the multi instruction bit of a DSP32 instruction.  */
-#define SET_MULTI_INSTRUCTION_BIT(x) x->value |=  BIT_MULTI_INS;
-
-
-/* DSP instructions (32 bit) */
-
-/*   dsp32mac
-+----+----+---+---|---+----+----+---|---+---+---+---|---+---+---+---+
-| 1  | 1  | 0 | 0 |.M.| 0  | 0  |.mmod..........|.MM|.P.|.w1|.op1...|
-|.h01|.h11|.w0|.op0...|.h00|.h10|.dst.......|.src0......|.src1......|
-+----+----+---+---|---+----+----+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned long opcode;
-  int bits_src1;
-  int mask_src1;
-  int bits_src0;      
-  int mask_src0;
-  int bits_dst;      
-  int mask_dst;
-  int bits_h10;      
-  int mask_h10;
-  int bits_h00;      
-  int mask_h00;
-  int bits_op0;      
-  int mask_op0;
-  int bits_w0;      
-  int mask_w0;
-  int bits_h11;      
-  int mask_h11;
-  int bits_h01;      
-  int mask_h01;
-  int bits_op1;      
-  int mask_op1;
-  int bits_w1;      
-  int mask_w1;
-  int bits_P;      
-  int mask_P;
-  int bits_MM;      
-  int mask_MM;
-  int bits_mmod;      
-  int mask_mmod;
-  int bits_code2;      
-  int mask_code2;
-  int bits_M;      
-  int mask_M;
-  int bits_code;      
-  int mask_code;
-} DSP32Mac;
-
-#define DSP32Mac_opcode			0xc0000000
-#define DSP32Mac_src1_bits		0
-#define DSP32Mac_src1_mask		0x7
-#define DSP32Mac_src0_bits		3
-#define DSP32Mac_src0_mask		0x7
-#define DSP32Mac_dst_bits		6
-#define DSP32Mac_dst_mask		0x7
-#define DSP32Mac_h10_bits		9
-#define DSP32Mac_h10_mask		0x1
-#define DSP32Mac_h00_bits		10
-#define DSP32Mac_h00_mask		0x1
-#define DSP32Mac_op0_bits		11
-#define DSP32Mac_op0_mask		0x3
-#define DSP32Mac_w0_bits		13
-#define DSP32Mac_w0_mask		0x1
-#define DSP32Mac_h11_bits		14
-#define DSP32Mac_h11_mask		0x1
-#define DSP32Mac_h01_bits		15
-#define DSP32Mac_h01_mask		0x1
-#define DSP32Mac_op1_bits		16
-#define DSP32Mac_op1_mask		0x3
-#define DSP32Mac_w1_bits		18
-#define DSP32Mac_w1_mask		0x1
-#define DSP32Mac_p_bits			19
-#define DSP32Mac_p_mask			0x1
-#define DSP32Mac_MM_bits		20	
-#define DSP32Mac_MM_mask		0x1
-#define DSP32Mac_mmod_bits		21
-#define DSP32Mac_mmod_mask		0xf
-#define DSP32Mac_code2_bits		25
-#define DSP32Mac_code2_mask		0x3
-#define DSP32Mac_M_bits			27
-#define DSP32Mac_M_mask			0x1
-#define DSP32Mac_code_bits		28
-#define DSP32Mac_code_mask		0xf
-
-#define init_DSP32Mac				\
-{						\
-  DSP32Mac_opcode,				\
-  DSP32Mac_src1_bits,	DSP32Mac_src1_mask,	\
-  DSP32Mac_src0_bits,	DSP32Mac_src0_mask,	\
-  DSP32Mac_dst_bits,	DSP32Mac_dst_mask,	\
-  DSP32Mac_h10_bits,	DSP32Mac_h10_mask,	\
-  DSP32Mac_h00_bits,	DSP32Mac_h00_mask,	\
-  DSP32Mac_op0_bits,	DSP32Mac_op0_mask,	\
-  DSP32Mac_w0_bits,	DSP32Mac_w0_mask,	\
-  DSP32Mac_h11_bits,	DSP32Mac_h11_mask,	\
-  DSP32Mac_h01_bits,	DSP32Mac_h01_mask,	\
-  DSP32Mac_op1_bits,	DSP32Mac_op1_mask,	\
-  DSP32Mac_w1_bits,	DSP32Mac_w1_mask,	\
-  DSP32Mac_p_bits,	DSP32Mac_p_mask,	\
-  DSP32Mac_MM_bits,	DSP32Mac_MM_mask,	\
-  DSP32Mac_mmod_bits,	DSP32Mac_mmod_mask,	\
-  DSP32Mac_code2_bits,	DSP32Mac_code2_mask,	\
-  DSP32Mac_M_bits,	DSP32Mac_M_mask,	\
-  DSP32Mac_code_bits,	DSP32Mac_code_mask	\
-};
-
-/*  dsp32mult
-+----+----+---+---|---+----+----+---|---+---+---+---|---+---+---+---+
-| 1  | 1  | 0 | 0 |.M.| 0  | 1  |.mmod..........|.MM|.P.|.w1|.op1...|
-|.h01|.h11|.w0|.op0...|.h00|.h10|.dst.......|.src0......|.src1......|
-+----+----+---+---|---+----+----+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef DSP32Mac DSP32Mult;
-#define DSP32Mult_opcode 	0xc2000000
-
-#define init_DSP32Mult				\
-{						\
-  DSP32Mult_opcode,				\
-  DSP32Mac_src1_bits,	DSP32Mac_src1_mask,	\
-  DSP32Mac_src0_bits,	DSP32Mac_src0_mask,	\
-  DSP32Mac_dst_bits,	DSP32Mac_dst_mask,	\
-  DSP32Mac_h10_bits,	DSP32Mac_h10_mask,	\
-  DSP32Mac_h00_bits,	DSP32Mac_h00_mask,	\
-  DSP32Mac_op0_bits,	DSP32Mac_op0_mask,	\
-  DSP32Mac_w0_bits,	DSP32Mac_w0_mask,	\
-  DSP32Mac_h11_bits,	DSP32Mac_h11_mask,	\
-  DSP32Mac_h01_bits,	DSP32Mac_h01_mask,	\
-  DSP32Mac_op1_bits,	DSP32Mac_op1_mask,	\
-  DSP32Mac_w1_bits,	DSP32Mac_w1_mask,	\
-  DSP32Mac_p_bits,	DSP32Mac_p_mask,	\
-  DSP32Mac_MM_bits,	DSP32Mac_MM_mask,	\
-  DSP32Mac_mmod_bits,	DSP32Mac_mmod_mask,	\
-  DSP32Mac_code2_bits,	DSP32Mac_code2_mask,	\
-  DSP32Mac_M_bits,	DSP32Mac_M_mask,	\
-  DSP32Mac_code_bits,	DSP32Mac_code_mask	\
-};
-
-/*  dsp32alu
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 0 | 0 |.M.| 1 | 0 | - | - | - |.HL|.aopcde............|
-|.aop...|.s.|.x.|.dst0......|.dst1......|.src0......|.src1......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned long opcode;
-  int bits_src1;
-  int mask_src1;
-  int bits_src0;
-  int mask_src0;
-  int bits_dst1;
-  int mask_dst1;
-  int bits_dst0;
-  int mask_dst0;
-  int bits_x;
-  int mask_x;
-  int bits_s;
-  int mask_s;
-  int bits_aop;
-  int mask_aop;
-  int bits_aopcde;
-  int mask_aopcde;
-  int bits_HL;
-  int mask_HL;
-  int bits_dontcare;
-  int mask_dontcare;
-  int bits_code2;
-  int mask_code2;
-  int bits_M;
-  int mask_M;
-  int bits_code;
-  int mask_code;
-} DSP32Alu;
-
-#define DSP32Alu_opcode		0xc4000000
-#define DSP32Alu_src1_bits	0
-#define DSP32Alu_src1_mask	0x7
-#define DSP32Alu_src0_bits	3	
-#define DSP32Alu_src0_mask	0x7
-#define DSP32Alu_dst1_bits	6
-#define DSP32Alu_dst1_mask	0x7
-#define DSP32Alu_dst0_bits	9	
-#define DSP32Alu_dst0_mask	0x7
-#define DSP32Alu_x_bits		12
-#define DSP32Alu_x_mask		0x1
-#define DSP32Alu_s_bits		13
-#define DSP32Alu_s_mask		0x1
-#define DSP32Alu_aop_bits	14
-#define DSP32Alu_aop_mask	0x3
-#define DSP32Alu_aopcde_bits	16
-#define DSP32Alu_aopcde_mask	0x1f
-#define DSP32Alu_HL_bits	21
-#define DSP32Alu_HL_mask	0x1
-#define DSP32Alu_dontcare_bits	22
-#define DSP32Alu_dontcare_mask	0x7
-#define DSP32Alu_code2_bits	25
-#define DSP32Alu_code2_mask	0x3
-#define DSP32Alu_M_bits		27
-#define DSP32Alu_M_mask		0x1
-#define DSP32Alu_code_bits	28
-#define DSP32Alu_code_mask	0xf
-
-#define init_DSP32Alu 					\
-{							\
-  DSP32Alu_opcode,					\
-  DSP32Alu_src1_bits,		DSP32Alu_src1_mask,	\
-  DSP32Alu_src0_bits,		DSP32Alu_src0_mask,	\
-  DSP32Alu_dst1_bits,		DSP32Alu_dst1_mask,	\
-  DSP32Alu_dst0_bits,		DSP32Alu_dst0_mask,	\
-  DSP32Alu_x_bits,		DSP32Alu_x_mask,	\
-  DSP32Alu_s_bits,		DSP32Alu_s_mask,	\
-  DSP32Alu_aop_bits,		DSP32Alu_aop_mask,	\
-  DSP32Alu_aopcde_bits,		DSP32Alu_aopcde_mask,	\
-  DSP32Alu_HL_bits,		DSP32Alu_HL_mask,	\
-  DSP32Alu_dontcare_bits,	DSP32Alu_dontcare_mask,	\
-  DSP32Alu_code2_bits,		DSP32Alu_code2_mask,	\
-  DSP32Alu_M_bits,		DSP32Alu_M_mask,	\
-  DSP32Alu_code_bits,		DSP32Alu_code_mask 	\
-};
-
-/*  dsp32shift
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 0 | 0 |.M.| 1 | 1 | 0 | 0 | - | - |.sopcde............|
-|.sop...|.HLs...|.dst0......| - | - | - |.src0......|.src1......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned long opcode;
-  int bits_src1;
-  int mask_src1;
-  int bits_src0;
-  int mask_src0;
-  int bits_dst1;
-  int mask_dst1;
-  int bits_dst0;
-  int mask_dst0;
-  int bits_HLs;
-  int mask_HLs;
-  int bits_sop;
-  int mask_sop;
-  int bits_sopcde;
-  int mask_sopcde;
-  int bits_dontcare;
-  int mask_dontcare;
-  int bits_code2;
-  int mask_code2;
-  int bits_M;
-  int mask_M;
-  int bits_code;
-  int mask_code;
-} DSP32Shift;
-
-#define DSP32Shift_opcode		0xc6000000
-#define DSP32Shift_src1_bits		0
-#define DSP32Shift_src1_mask		0x7
-#define DSP32Shift_src0_bits		3
-#define DSP32Shift_src0_mask		0x7
-#define DSP32Shift_dst1_bits		6
-#define DSP32Shift_dst1_mask		0x7
-#define DSP32Shift_dst0_bits		9
-#define DSP32Shift_dst0_mask		0x7
-#define DSP32Shift_HLs_bits		12
-#define DSP32Shift_HLs_mask		0x3
-#define DSP32Shift_sop_bits		14
-#define DSP32Shift_sop_mask		0x3
-#define DSP32Shift_sopcde_bits		16
-#define DSP32Shift_sopcde_mask		0x1f
-#define DSP32Shift_dontcare_bits	21
-#define DSP32Shift_dontcare_mask	0x3
-#define DSP32Shift_code2_bits		23
-#define DSP32Shift_code2_mask		0xf
-#define DSP32Shift_M_bits		27
-#define DSP32Shift_M_mask		0x1
-#define DSP32Shift_code_bits		28
-#define DSP32Shift_code_mask		0xf
-
-#define init_DSP32Shift						\
-{								\
-  DSP32Shift_opcode,						\
-  DSP32Shift_src1_bits,		DSP32Shift_src1_mask,		\
-  DSP32Shift_src0_bits,		DSP32Shift_src0_mask,		\
-  DSP32Shift_dst1_bits,		DSP32Shift_dst1_mask,		\
-  DSP32Shift_dst0_bits,		DSP32Shift_dst0_mask,		\
-  DSP32Shift_HLs_bits,		DSP32Shift_HLs_mask,		\
-  DSP32Shift_sop_bits,		DSP32Shift_sop_mask,		\
-  DSP32Shift_sopcde_bits,	DSP32Shift_sopcde_mask,		\
-  DSP32Shift_dontcare_bits,	DSP32Shift_dontcare_mask,	\
-  DSP32Shift_code2_bits,	DSP32Shift_code2_mask,		\
-  DSP32Shift_M_bits,		DSP32Shift_M_mask,		\
-  DSP32Shift_code_bits,		DSP32Shift_code_mask		\
-};
-
-/*  dsp32shiftimm
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 0 | 0 |.M.| 1 | 1 | 0 | 1 | - | - |.sopcde............|
-|.sop...|.HLs...|.dst0......|.immag.................|.src1......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned long opcode;
-  int bits_src1;
-  int mask_src1;
-  int bits_immag;
-  int mask_immag;
-  int bits_dst0;
-  int mask_dst0;
-  int bits_HLs;
-  int mask_HLs;
-  int bits_sop;
-  int mask_sop;
-  int bits_sopcde;
-  int mask_sopcde;
-  int bits_dontcare;
-  int mask_dontcare;
-  int bits_code2;
-  int mask_code2;
-  int bits_M;
-  int mask_M;
-  int bits_code;
-  int mask_code;
-} DSP32ShiftImm;
-
-#define DSP32ShiftImm_opcode		0xc6800000
-#define DSP32ShiftImm_src1_bits		0
-#define DSP32ShiftImm_src1_mask		0x7
-#define DSP32ShiftImm_immag_bits	3
-#define DSP32ShiftImm_immag_mask	0x3f
-#define DSP32ShiftImm_dst0_bits		9
-#define DSP32ShiftImm_dst0_mask		0x7
-#define DSP32ShiftImm_HLs_bits		12
-#define DSP32ShiftImm_HLs_mask		0x3
-#define DSP32ShiftImm_sop_bits		14
-#define DSP32ShiftImm_sop_mask		0x3
-#define DSP32ShiftImm_sopcde_bits	16
-#define DSP32ShiftImm_sopcde_mask	0x1f
-#define DSP32ShiftImm_dontcare_bits	21
-#define DSP32ShiftImm_dontcare_mask	0x3
-#define DSP32ShiftImm_code2_bits	23
-#define DSP32ShiftImm_code2_mask	0xf
-#define DSP32ShiftImm_M_bits		27
-#define DSP32ShiftImm_M_mask		0x1
-#define DSP32ShiftImm_code_bits		28	
-#define DSP32ShiftImm_code_mask		0xf
-
-#define init_DSP32ShiftImm					\
-{								\
-  DSP32ShiftImm_opcode,						\
-  DSP32ShiftImm_src1_bits,	DSP32ShiftImm_src1_mask,	\
-  DSP32ShiftImm_immag_bits,	DSP32ShiftImm_immag_mask,	\
-  DSP32ShiftImm_dst0_bits,	DSP32ShiftImm_dst0_mask,	\
-  DSP32ShiftImm_HLs_bits,	DSP32ShiftImm_HLs_mask,		\
-  DSP32ShiftImm_sop_bits,	DSP32ShiftImm_sop_mask,		\
-  DSP32ShiftImm_sopcde_bits,	DSP32ShiftImm_sopcde_mask,	\
-  DSP32ShiftImm_dontcare_bits,	DSP32ShiftImm_dontcare_mask,	\
-  DSP32ShiftImm_code2_bits,	DSP32ShiftImm_code2_mask,	\
-  DSP32ShiftImm_M_bits,		DSP32ShiftImm_M_mask,		\
-  DSP32ShiftImm_code_bits,	DSP32ShiftImm_code_mask		\
-};
-
-/* LOAD / STORE  */
-
-/*  LDSTidxI
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 1 | 0 | 0 | 1 |.W.|.Z.|.sz....|.ptr.......|.reg.......|
-|.offset........................................................|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned long opcode;
-  int bits_offset;
-  int mask_offset;
-  int bits_reg;
-  int mask_reg;
-  int bits_ptr;
-  int mask_ptr;
-  int bits_sz;
-  int mask_sz;
-  int bits_Z;
-  int mask_Z;
-  int bits_W;
-  int mask_W;
-  int bits_code;
-  int mask_code;
-} LDSTidxI;
-
-#define LDSTidxI_opcode		0xe4000000
-#define LDSTidxI_offset_bits	0
-#define LDSTidxI_offset_mask	0xffff
-#define LDSTidxI_reg_bits	16
-#define LDSTidxI_reg_mask	0x7
-#define LDSTidxI_ptr_bits	19
-#define LDSTidxI_ptr_mask	0x7
-#define LDSTidxI_sz_bits	22
-#define LDSTidxI_sz_mask	0x3
-#define LDSTidxI_Z_bits		24
-#define LDSTidxI_Z_mask		0x1
-#define LDSTidxI_W_bits		25
-#define LDSTidxI_W_mask		0x1
-#define LDSTidxI_code_bits	26
-#define LDSTidxI_code_mask	0x3f
-
-#define init_LDSTidxI				\
-{						\
-  LDSTidxI_opcode,				\
-  LDSTidxI_offset_bits, LDSTidxI_offset_mask,	\
-  LDSTidxI_reg_bits, LDSTidxI_reg_mask,		\
-  LDSTidxI_ptr_bits, LDSTidxI_ptr_mask,		\
-  LDSTidxI_sz_bits, LDSTidxI_sz_mask,		\
-  LDSTidxI_Z_bits, LDSTidxI_Z_mask,		\
-  LDSTidxI_W_bits, LDSTidxI_W_mask,		\
-  LDSTidxI_code_bits, LDSTidxI_code_mask	\
-};
-
-
-/*  LDST
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 0 | 0 | 1 |.sz....|.W.|.aop...|.Z.|.ptr.......|.reg.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_reg;
-  int mask_reg;
-  int bits_ptr;
-  int mask_ptr;
-  int bits_Z;
-  int mask_Z;
-  int bits_aop;
-  int mask_aop;
-  int bits_W;
-  int mask_W;
-  int bits_sz;
-  int mask_sz;
-  int bits_code;
-  int mask_code;
-} LDST;
-
-#define LDST_opcode		0x9000
-#define LDST_reg_bits		0
-#define LDST_reg_mask		0x7
-#define LDST_ptr_bits		3
-#define LDST_ptr_mask		0x7
-#define LDST_Z_bits		6
-#define LDST_Z_mask		0x1
-#define LDST_aop_bits		7
-#define LDST_aop_mask		0x3
-#define LDST_W_bits		9
-#define LDST_W_mask		0x1
-#define LDST_sz_bits		10
-#define LDST_sz_mask		0x3
-#define LDST_code_bits		12
-#define LDST_code_mask		0xf
-
-#define init_LDST			\
-{					\
-  LDST_opcode,				\
-  LDST_reg_bits,	LDST_reg_mask,	\
-  LDST_ptr_bits,	LDST_ptr_mask,	\
-  LDST_Z_bits,		LDST_Z_mask,	\
-  LDST_aop_bits,	LDST_aop_mask,	\
-  LDST_W_bits,		LDST_W_mask,	\
-  LDST_sz_bits,		LDST_sz_mask,	\
-  LDST_code_bits,	LDST_code_mask	\
-};
-
-/*  LDSTii
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 0 | 1 |.W.|.op....|.offset........|.ptr.......|.reg.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_reg;
-  int mask_reg;
-  int bits_ptr;
-  int mask_ptr;
-  int bits_offset;
-  int mask_offset;
-  int bits_op;
-  int mask_op;
-  int bits_W;
-  int mask_W;
-  int bits_code;
-  int mask_code;
-} LDSTii;
-
-#define LDSTii_opcode		0xa000
-#define LDSTii_reg_bit		0
-#define LDSTii_reg_mask		0x7
-#define LDSTii_ptr_bit		3
-#define LDSTii_ptr_mask		0x7
-#define LDSTii_offset_bit	6
-#define LDSTii_offset_mask	0xf
-#define LDSTii_op_bit		10
-#define LDSTii_op_mask		0x3
-#define LDSTii_W_bit		12
-#define LDSTii_W_mask		0x1
-#define LDSTii_code_bit		13
-#define LDSTii_code_mask	0x7
-
-#define init_LDSTii 				\
-{						\
-  LDSTii_opcode,				\
-  LDSTii_reg_bit,	LDSTii_reg_mask,	\
-  LDSTii_ptr_bit,	LDSTii_ptr_mask,	\
-  LDSTii_offset_bit,    LDSTii_offset_mask, 	\
-  LDSTii_op_bit,        LDSTii_op_mask,		\
-  LDSTii_W_bit,		LDSTii_W_mask,		\
-  LDSTii_code_bit,	LDSTii_code_mask	\
-};
-
-
-/*  LDSTiiFP
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 0 | 1 | 1 | 1 | 0 |.W.|.offset............|.reg...........|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_reg;
-  int mask_reg;
-  int bits_offset;
-  int mask_offset;
-  int bits_W;
-  int mask_W;
-  int bits_code;
-  int mask_code;
-} LDSTiiFP;
-
-#define LDSTiiFP_opcode		0xb800
-#define LDSTiiFP_reg_bits	0
-#define LDSTiiFP_reg_mask	0xf
-#define LDSTiiFP_offset_bits	4
-#define LDSTiiFP_offset_mask	0x1f
-#define LDSTiiFP_W_bits		9
-#define LDSTiiFP_W_mask		0x1
-#define LDSTiiFP_code_bits	10
-#define LDSTiiFP_code_mask	0x3f
-
-#define init_LDSTiiFP				\
-{						\
-  LDSTiiFP_opcode,				\
-  LDSTiiFP_reg_bits,	LDSTiiFP_reg_mask,	\
-  LDSTiiFP_offset_bits, LDSTiiFP_offset_mask,	\
-  LDSTiiFP_W_bits,	LDSTiiFP_W_mask,	\
-  LDSTiiFP_code_bits,	LDSTiiFP_code_mask	\
-};
-
-/*  dspLDST
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 0 | 0 | 1 | 1 | 1 |.W.|.aop...|.m.....|.i.....|.reg.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_reg;
-  int mask_reg;
-  int bits_i;
-  int mask_i;
-  int bits_m;
-  int mask_m;
-  int bits_aop;
-  int mask_aop;
-  int bits_W;
-  int mask_W;
-  int bits_code;
-  int mask_code;
-} DspLDST;
-
-#define DspLDST_opcode		0x9c00
-#define DspLDST_reg_bits	0
-#define DspLDST_reg_mask	0x7
-#define DspLDST_i_bits		3
-#define DspLDST_i_mask		0x3
-#define DspLDST_m_bits		5
-#define DspLDST_m_mask		0x3
-#define DspLDST_aop_bits	7
-#define DspLDST_aop_mask	0x3
-#define DspLDST_W_bits		9
-#define DspLDST_W_mask		0x1
-#define DspLDST_code_bits	10
-#define DspLDST_code_mask	0x3f
-
-#define init_DspLDST				\
-{						\
-  DspLDST_opcode,				\
-  DspLDST_reg_bits,	DspLDST_reg_mask,	\
-  DspLDST_i_bits,	DspLDST_i_mask,		\
-  DspLDST_m_bits,	DspLDST_m_mask,		\
-  DspLDST_aop_bits,	DspLDST_aop_mask,	\
-  DspLDST_W_bits,	DspLDST_W_mask,		\
-  DspLDST_code_bits,	DspLDST_code_mask	\
-};
-
-
-/*  LDSTpmod
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 0 | 0 | 0 |.W.|.aop...|.reg.......|.idx.......|.ptr.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_ptr;
-  int mask_ptr;
-  int bits_idx;
-  int mask_idx;
-  int bits_reg;
-  int mask_reg;
-  int bits_aop;
-  int mask_aop;
-  int bits_W;
-  int mask_W;
-  int bits_code;
-  int mask_code;
-} LDSTpmod;
-
-#define LDSTpmod_opcode		0x8000
-#define LDSTpmod_ptr_bits	0
-#define LDSTpmod_ptr_mask	0x7
-#define LDSTpmod_idx_bits	3
-#define LDSTpmod_idx_mask	0x7
-#define LDSTpmod_reg_bits	6
-#define LDSTpmod_reg_mask	0x7
-#define LDSTpmod_aop_bits	9
-#define LDSTpmod_aop_mask	0x3
-#define LDSTpmod_W_bits		11
-#define LDSTpmod_W_mask		0x1
-#define LDSTpmod_code_bits	12
-#define LDSTpmod_code_mask	0xf
-
-#define init_LDSTpmod				\
-{						\
-  LDSTpmod_opcode,				\
-  LDSTpmod_ptr_bits, 	LDSTpmod_ptr_mask,	\
-  LDSTpmod_idx_bits,	LDSTpmod_idx_mask,	\
-  LDSTpmod_reg_bits,	LDSTpmod_reg_mask,	\
-  LDSTpmod_aop_bits,	LDSTpmod_aop_mask,	\
-  LDSTpmod_W_bits,	LDSTpmod_W_mask,	\
-  LDSTpmod_code_bits,	LDSTpmod_code_mask	\
-};
-
-
-/*  LOGI2op
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 1 | 0 | 0 | 1 |.opc.......|.src...............|.dst.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_dst;
-  int mask_dst;
-  int bits_src;
-  int mask_src;
-  int bits_opc;
-  int mask_opc;
-  int bits_code;
-  int mask_code;
-} LOGI2op;
-
-#define LOGI2op_opcode		0x4800
-#define LOGI2op_dst_bits	0
-#define LOGI2op_dst_mask	0x7
-#define LOGI2op_src_bits	3
-#define LOGI2op_src_mask	0x1f
-#define LOGI2op_opc_bits	8
-#define LOGI2op_opc_mask	0x7
-#define LOGI2op_code_bits	11
-#define LOGI2op_code_mask	0x1f
-
-#define init_LOGI2op				\
-{						\
-  LOGI2op_opcode,				\
-  LOGI2op_dst_bits, 	LOGI2op_dst_mask,	\
-  LOGI2op_src_bits,	LOGI2op_src_mask,	\
-  LOGI2op_opc_bits,	LOGI2op_opc_mask,	\
-  LOGI2op_code_bits,	LOGI2op_code_mask	\
-};
-
-
-/*  ALU2op
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 1 | 0 | 0 | 0 | 0 |.opc...........|.src.......|.dst.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_dst;
-  int mask_dst;
-  int bits_src;
-  int mask_src;
-  int bits_opc;
-  int mask_opc;
-  int bits_code;
-  int mask_code;
-} ALU2op;
-
-#define ALU2op_opcode 		0x4000
-#define ALU2op_dst_bits		0
-#define ALU2op_dst_mask		0x7
-#define ALU2op_src_bits		3
-#define ALU2op_src_mask		0x7
-#define ALU2op_opc_bits		6
-#define ALU2op_opc_mask		0xf
-#define ALU2op_code_bits	10
-#define ALU2op_code_mask	0x3f
-
-#define init_ALU2op				\
-{						\
-  ALU2op_opcode,				\
-  ALU2op_dst_bits,	ALU2op_dst_mask,	\
-  ALU2op_src_bits,	ALU2op_src_mask,	\
-  ALU2op_opc_bits,	ALU2op_opc_mask,	\
-  ALU2op_code_bits,	ALU2op_code_mask	\
-};
-
-
-/*  BRCC
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 0 | 1 |.T.|.B.|.offset................................|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_offset;
-  int mask_offset;
-  int bits_B;
-  int mask_B;
-  int bits_T;
-  int mask_T;
-  int bits_code;
-  int mask_code;
-} BRCC;
-
-#define BRCC_opcode		0x1000
-#define BRCC_offset_bits	0
-#define BRCC_offset_mask	0x3ff
-#define BRCC_B_bits		10
-#define BRCC_B_mask		0x1
-#define BRCC_T_bits		11
-#define BRCC_T_mask		0x1
-#define BRCC_code_bits		12
-#define BRCC_code_mask		0xf
-
-#define init_BRCC				\
-{						\
-  BRCC_opcode,					\
-  BRCC_offset_bits,	BRCC_offset_mask,	\
-  BRCC_B_bits,		BRCC_B_mask,		\
-  BRCC_T_bits,		BRCC_T_mask,		\
-  BRCC_code_bits,	BRCC_code_mask		\
-};
-
-
-/*  UJUMP
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 1 | 0 |.offset........................................|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_offset;
-  int mask_offset;
-  int bits_code;
-  int mask_code;
-} UJump;
-
-#define UJump_opcode		0x2000
-#define UJump_offset_bits	0
-#define UJump_offset_mask	0xfff
-#define UJump_code_bits		12
-#define UJump_code_mask		0xf
-
-#define init_UJump				\
-{						\
-  UJump_opcode,					\
-  UJump_offset_bits,	UJump_offset_mask,	\
-  UJump_code_bits,	UJump_code_mask		\
-};
-
-
-/*  ProgCtrl
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |.prgfunc.......|.poprnd........|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_poprnd;
-  int mask_poprnd;
-  int bits_prgfunc;
-  int mask_prgfunc;
-  int bits_code;
-  int mask_code;
-} ProgCtrl;
-
-#define ProgCtrl_opcode		0x0000
-#define ProgCtrl_poprnd_bits	0
-#define ProgCtrl_poprnd_mask	0xf
-#define ProgCtrl_prgfunc_bits	4
-#define ProgCtrl_prgfunc_mask	0xf
-#define ProgCtrl_code_bits	8
-#define ProgCtrl_code_mask	0xff
-
-#define init_ProgCtrl					\
-{							\
-  ProgCtrl_opcode,					\
-  ProgCtrl_poprnd_bits,		ProgCtrl_poprnd_mask,	\
-  ProgCtrl_prgfunc_bits,	ProgCtrl_prgfunc_mask,	\
-  ProgCtrl_code_bits,		ProgCtrl_code_mask	\
-};
-
-/*  CALLa
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 1 | 0 | 0 | 0 | 1 |.S.|.msw...........................|
-|.lsw...........................................................|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-
-typedef struct
-{
-  unsigned long opcode;
-  int bits_addr;
-  int mask_addr;
-  int bits_S;
-  int mask_S;
-  int bits_code;
-  int mask_code;
-} CALLa;
-
-#define CALLa_opcode	0xe2000000
-#define CALLa_addr_bits	0
-#define CALLa_addr_mask	0xffffff
-#define CALLa_S_bits	24
-#define CALLa_S_mask	0x1
-#define CALLa_code_bits	25
-#define CALLa_code_mask	0x7f
-
-#define init_CALLa				\
-{						\
-  CALLa_opcode,					\
-  CALLa_addr_bits,	CALLa_addr_mask,	\
-  CALLa_S_bits,		CALLa_S_mask,		\
-  CALLa_code_bits,	CALLa_code_mask		\
-};
-
-
-/*  pseudoDEBUG
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |.fn....|.grp.......|.reg.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_reg;
-  int mask_reg;
-  int bits_grp;
-  int mask_grp;
-  int bits_fn;
-  int mask_fn;
-  int bits_code;
-  int mask_code;
-} PseudoDbg;
-
-#define PseudoDbg_opcode	0xf800
-#define PseudoDbg_reg_bits	0
-#define PseudoDbg_reg_mask	0x7
-#define PseudoDbg_grp_bits	3
-#define PseudoDbg_grp_mask	0x7
-#define PseudoDbg_fn_bits	6
-#define PseudoDbg_fn_mask	0x3
-#define PseudoDbg_code_bits	8
-#define PseudoDbg_code_mask	0xff
-
-#define init_PseudoDbg				\
-{						\
-  PseudoDbg_opcode,				\
-  PseudoDbg_reg_bits,	PseudoDbg_reg_mask,	\
-  PseudoDbg_grp_bits,	PseudoDbg_grp_mask,	\
-  PseudoDbg_fn_bits,	PseudoDbg_fn_mask,	\
-  PseudoDbg_code_bits,	PseudoDbg_code_mask	\
-};
-
-/*  PseudoDbg_assert
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 1 | 1 | 0 | - | - | - | - | - |.dbgop.....|.regtest...|
-|.expected......................................................|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned long opcode;
-  int bits_expected;
-  int mask_expected;
-  int bits_regtest;
-  int mask_regtest;
-  int bits_dbgop;
-  int mask_dbgop;
-  int bits_dontcare;
-  int mask_dontcare;
-  int bits_code;
-  int mask_code;
-} PseudoDbg_Assert;
-
-#define PseudoDbg_Assert_opcode		0xf0000000
-#define PseudoDbg_Assert_expected_bits	0
-#define PseudoDbg_Assert_expected_mask	0xffff
-#define PseudoDbg_Assert_regtest_bits	16
-#define PseudoDbg_Assert_regtest_mask	0x7
-#define PseudoDbg_Assert_dbgop_bits	19
-#define PseudoDbg_Assert_dbgop_mask	0x7
-#define PseudoDbg_Assert_dontcare_bits	22
-#define PseudoDbg_Assert_dontcare_mask	0x1f
-#define PseudoDbg_Assert_code_bits	27
-#define PseudoDbg_Assert_code_mask	0x1f
-
-#define init_PseudoDbg_Assert						\
-{									\
-  PseudoDbg_Assert_opcode,						\
-  PseudoDbg_Assert_expected_bits, 	PseudoDbg_Assert_expected_mask,	\
-  PseudoDbg_Assert_regtest_bits, 	PseudoDbg_Assert_regtest_mask,	\
-  PseudoDbg_Assert_dbgop_bits, 		PseudoDbg_Assert_dbgop_mask,	\
-  PseudoDbg_Assert_dontcare_bits, 	PseudoDbg_Assert_dontcare_mask,	\
-  PseudoDbg_Assert_code_bits,	 	PseudoDbg_Assert_code_mask	\
-};
-
-/*  CaCTRL
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |.a.|.op....|.reg.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_reg;
-  int mask_reg;
-  int bits_op;
-  int mask_op;
-  int bits_a;
-  int mask_a;
-  int bits_code;
-  int mask_code;
-} CaCTRL;
-
-#define CaCTRL_opcode		0x0240
-#define CaCTRL_reg_bits		0
-#define CaCTRL_reg_mask		0x7
-#define CaCTRL_op_bits		3
-#define CaCTRL_op_mask		0x3
-#define CaCTRL_a_bits		5
-#define CaCTRL_a_mask		0x1
-#define CaCTRL_code_bits	6
-#define CaCTRL_code_mask	0x3fff
-
-#define init_CaCTRL				\
-{						\
-  CaCTRL_opcode,				\
-  CaCTRL_reg_bits,	CaCTRL_reg_mask,	\
-  CaCTRL_op_bits,	CaCTRL_op_mask,		\
-  CaCTRL_a_bits,	CaCTRL_a_mask,		\
-  CaCTRL_code_bits,	CaCTRL_code_mask	\
-};
-
-/*  PushPopMultiple
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 0 | 0 | 0 | 1 | 0 |.d.|.p.|.W.|.dr........|.pr........|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_pr;
-  int mask_pr;
-  int bits_dr;
-  int mask_dr;
-  int bits_W;
-  int mask_W;
-  int bits_p;
-  int mask_p;
-  int bits_d;
-  int mask_d;
-  int bits_code;
-  int mask_code;
-} PushPopMultiple;
-
-#define PushPopMultiple_opcode		0x0400
-#define PushPopMultiple_pr_bits		0
-#define PushPopMultiple_pr_mask		0x7
-#define PushPopMultiple_dr_bits		3
-#define PushPopMultiple_dr_mask		0x7
-#define PushPopMultiple_W_bits		6
-#define PushPopMultiple_W_mask		0x1
-#define PushPopMultiple_p_bits		7
-#define PushPopMultiple_p_mask		0x1
-#define PushPopMultiple_d_bits		8
-#define PushPopMultiple_d_mask		0x1
-#define PushPopMultiple_code_bits	8
-#define PushPopMultiple_code_mask	0x1
-
-#define init_PushPopMultiple					\
-{								\
-  PushPopMultiple_opcode,					\
-  PushPopMultiple_pr_bits,	PushPopMultiple_pr_mask,	\
-  PushPopMultiple_dr_bits,	PushPopMultiple_dr_mask,	\
-  PushPopMultiple_W_bits,	PushPopMultiple_W_mask,		\
-  PushPopMultiple_p_bits,	PushPopMultiple_p_mask,		\
-  PushPopMultiple_d_bits,	PushPopMultiple_d_mask,		\
-  PushPopMultiple_code_bits,	PushPopMultiple_code_mask	\
-};
-
-/*  PushPopReg
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |.W.|.grp.......|.reg.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_reg;
-  int mask_reg;
-  int bits_grp;
-  int mask_grp;
-  int bits_W;
-  int mask_W;
-  int bits_code;
-  int mask_code;
-} PushPopReg;
-
-#define PushPopReg_opcode	0x0100
-#define PushPopReg_reg_bits	0
-#define PushPopReg_reg_mask	0x7
-#define PushPopReg_grp_bits	3
-#define PushPopReg_grp_mask	0x7
-#define PushPopReg_W_bits	6
-#define PushPopReg_W_mask	0x1
-#define PushPopReg_code_bits	7
-#define PushPopReg_code_mask	0x1ff
-
-#define init_PushPopReg				\
-{						\
-  PushPopReg_opcode,				\
-  PushPopReg_reg_bits,	PushPopReg_reg_mask,	\
-  PushPopReg_grp_bits,	PushPopReg_grp_mask,	\
-  PushPopReg_W_bits,	PushPopReg_W_mask,	\
-  PushPopReg_code_bits,	PushPopReg_code_mask,	\
-};
-
-/*  linkage
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |.R.|
-|.framesize.....................................................|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned long opcode;
-  int bits_framesize;      
-  int mask_framesize;
-  int bits_R;      
-  int mask_R;
-  int bits_code;
-  int mask_code;
-} Linkage;
-
-#define Linkage_opcode		0xe8000000
-#define Linkage_framesize_bits	0
-#define Linkage_framesize_mask	0xffff
-#define Linkage_R_bits		16
-#define Linkage_R_mask		0x1
-#define Linkage_code_bits	17
-#define Linkage_code_mask	0x7fff
-
-#define init_Linkage					\
-{							\
-  Linkage_opcode,					\
-  Linkage_framesize_bits,	Linkage_framesize_mask,	\
-  Linkage_R_bits,		Linkage_R_mask,		\
-  Linkage_code_bits,		Linkage_code_mask	\
-};
-
-/*  LoopSetup
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |.rop...|.c.|.soffset.......|
-|.reg...........| - | - |.eoffset...............................|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned long opcode;
-  int bits_eoffset;
-  int mask_eoffset; 
-  int bits_dontcare;      
-  int mask_dontcare;
-  int bits_reg;      
-  int mask_reg;
-  int bits_soffset;      
-  int mask_soffset;
-  int bits_c;      
-  int mask_c;
-  int bits_rop;      
-  int mask_rop;
-  int bits_code;      
-  int mask_code;
-} LoopSetup;
-
-#define LoopSetup_opcode		0xe0800000
-#define LoopSetup_eoffset_bits		0
-#define LoopSetup_eoffset_mask		0x3ff
-#define LoopSetup_dontcare_bits		10
-#define LoopSetup_dontcare_mask		0x3
-#define LoopSetup_reg_bits		12
-#define LoopSetup_reg_mask		0xf
-#define LoopSetup_soffset_bits		16
-#define LoopSetup_soffset_mask		0xf
-#define LoopSetup_c_bits		20
-#define LoopSetup_c_mask		0x1
-#define LoopSetup_rop_bits		21
-#define LoopSetup_rop_mask		0x3
-#define LoopSetup_code_bits		23
-#define LoopSetup_code_mask		0x1ff
-
-#define init_LoopSetup						\
-{								\
-  LoopSetup_opcode,						\
-  LoopSetup_eoffset_bits,	LoopSetup_eoffset_mask,		\
-  LoopSetup_dontcare_bits,	LoopSetup_dontcare_mask,	\
-  LoopSetup_reg_bits,		LoopSetup_reg_mask,		\
-  LoopSetup_soffset_bits,	LoopSetup_soffset_mask,		\
-  LoopSetup_c_bits,		LoopSetup_c_mask,		\
-  LoopSetup_rop_bits,		LoopSetup_rop_mask,		\
-  LoopSetup_code_bits,		LoopSetup_code_mask		\
-};
-
-/*  LDIMMhalf
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |.Z.|.H.|.S.|.grp...|.reg.......|
-|.hword.........................................................|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned long opcode;
-  int bits_hword;
-  int mask_hword;
-  int bits_reg;      
-  int mask_reg;
-  int bits_grp;      
-  int mask_grp;
-  int bits_S;      
-  int mask_S;
-  int bits_H;      
-  int mask_H;
-  int bits_Z;      
-  int mask_Z;
-  int bits_code;      
-  int mask_code;
-} LDIMMhalf;
-
-#define LDIMMhalf_opcode	0xe1000000
-#define LDIMMhalf_hword_bits	0
-#define LDIMMhalf_hword_mask	0xffff
-#define LDIMMhalf_reg_bits	16
-#define LDIMMhalf_reg_mask	0x7
-#define LDIMMhalf_grp_bits	19
-#define LDIMMhalf_grp_mask	0x3
-#define LDIMMhalf_S_bits	21
-#define LDIMMhalf_S_mask	0x1
-#define LDIMMhalf_H_bits	22
-#define LDIMMhalf_H_mask	0x1
-#define LDIMMhalf_Z_bits	23
-#define LDIMMhalf_Z_mask	0x1
-#define LDIMMhalf_code_bits	24
-#define LDIMMhalf_code_mask	0xff
-
-#define init_LDIMMhalf				\
-{						\
-  LDIMMhalf_opcode,				\
-  LDIMMhalf_hword_bits,	LDIMMhalf_hword_mask,	\
-  LDIMMhalf_reg_bits,	LDIMMhalf_reg_mask,	\
-  LDIMMhalf_grp_bits,	LDIMMhalf_grp_mask,	\
-  LDIMMhalf_S_bits,	LDIMMhalf_S_mask,	\
-  LDIMMhalf_H_bits,	LDIMMhalf_H_mask,	\
-  LDIMMhalf_Z_bits,	LDIMMhalf_Z_mask,	\
-  LDIMMhalf_code_bits,	LDIMMhalf_code_mask	\
-};
-
-
-/*  CC2dreg
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |.op....|.reg.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_reg;
-  int mask_reg;
-  int bits_op;      
-  int mask_op;
-  int bits_code;      
-  int mask_code;
-} CC2dreg;
-
-#define CC2dreg_opcode		0x0200
-#define CC2dreg_reg_bits	0
-#define CC2dreg_reg_mask	0x7
-#define CC2dreg_op_bits		3
-#define CC2dreg_op_mask		0x3
-#define CC2dreg_code_bits	5
-#define CC2dreg_code_mask	0x7fff
-
-#define init_CC2dreg				\
-{						\
-  CC2dreg_opcode,				\
-  CC2dreg_reg_bits,	CC2dreg_reg_mask,	\
-  CC2dreg_op_bits,	CC2dreg_op_mask,	\
-  CC2dreg_code_bits,	CC2dreg_code_mask	\
-};
-
-
-/*  PTR2op
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 1 | 0 | 0 | 0 | 1 | 0 |.opc.......|.src.......|.dst.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_dst;
-  int mask_dst;
-  int bits_src;      
-  int mask_src;
-  int bits_opc;      
-  int mask_opc;
-  int bits_code;      
-  int mask_code;
-} PTR2op;
-
-#define PTR2op_opcode		0x4400
-#define PTR2op_dst_bits		0
-#define PTR2op_dst_mask		0x7
-#define PTR2op_src_bits		3
-#define PTR2op_src_mask		0x7
-#define PTR2op_opc_bits		6
-#define PTR2op_opc_mask		0x7
-#define PTR2op_code_bits	9	
-#define PTR2op_code_mask	0x7f
-
-#define init_PTR2op				\
-{						\
-  PTR2op_opcode,				\
-  PTR2op_dst_bits,	PTR2op_dst_mask,	\
-  PTR2op_src_bits,	PTR2op_src_mask,	\
-  PTR2op_opc_bits,	PTR2op_opc_mask,	\
-  PTR2op_code_bits,	PTR2op_code_mask	\
-};
-
-
-/*  COMP3op
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 1 | 0 | 1 |.opc.......|.dst.......|.src1......|.src0......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_src0;
-  int mask_src0;
-  int bits_src1;      
-  int mask_src1;
-  int bits_dst;      
-  int mask_dst;
-  int bits_opc;      
-  int mask_opc;
-  int bits_code;      
-  int mask_code;
-} COMP3op;
-
-#define COMP3op_opcode		0x5000
-#define COMP3op_src0_bits	0
-#define COMP3op_src0_mask	0x7
-#define COMP3op_src1_bits	3
-#define COMP3op_src1_mask	0x7
-#define COMP3op_dst_bits	6
-#define COMP3op_dst_mask	0x7
-#define COMP3op_opc_bits	9
-#define COMP3op_opc_mask	0x7
-#define COMP3op_code_bits	12
-#define COMP3op_code_mask	0xf
-
-#define init_COMP3op				\
-{						\
-  COMP3op_opcode,				\
-  COMP3op_src0_bits,	COMP3op_src0_mask,	\
-  COMP3op_src1_bits,	COMP3op_src1_mask,	\
-  COMP3op_dst_bits,	COMP3op_dst_mask,	\
-  COMP3op_opc_bits,	COMP3op_opc_mask,	\
-  COMP3op_code_bits,	COMP3op_code_mask	\
-};
-
-/*  ccMV
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 0 | 0 | 0 | 1 | 1 |.T.|.d.|.s.|.dst.......|.src.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_src;
-  int mask_src;
-  int bits_dst;      
-  int mask_dst;
-  int bits_s;      
-  int mask_s;
-  int bits_d;      
-  int mask_d;
-  int bits_T;      
-  int mask_T;
-  int bits_code;      
-  int mask_code;
-} CCmv;
-
-#define CCmv_opcode	0x0600
-#define CCmv_src_bits	0
-#define CCmv_src_mask	0x7
-#define CCmv_dst_bits	3
-#define CCmv_dst_mask	0x7
-#define CCmv_s_bits	6
-#define CCmv_s_mask	0x1
-#define CCmv_d_bits	7	
-#define CCmv_d_mask	0x1
-#define CCmv_T_bits	8
-#define CCmv_T_mask	0x1
-#define CCmv_code_bits	9
-#define CCmv_code_mask	0x7f
-
-#define init_CCmv			\
-{					\
-  CCmv_opcode,				\
-  CCmv_src_bits,	CCmv_src_mask,	\
-  CCmv_dst_bits,	CCmv_dst_mask,	\
-  CCmv_s_bits,		CCmv_s_mask,	\
-  CCmv_d_bits,		CCmv_d_mask,	\
-  CCmv_T_bits,		CCmv_T_mask,	\
-  CCmv_code_bits,	CCmv_code_mask	\
-};
-
-
-/*  CCflag
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 0 | 0 | 1 |.I.|.opc.......|.G.|.y.........|.x.........|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_x;
-  int mask_x;
-  int bits_y;      
-  int mask_y;
-  int bits_G;      
-  int mask_G;
-  int bits_opc;      
-  int mask_opc;
-  int bits_I;      
-  int mask_I;
-  int bits_code;      
-  int mask_code;
-} CCflag;
-
-#define CCflag_opcode		0x0800
-#define CCflag_x_bits		0
-#define CCflag_x_mask		0x7
-#define CCflag_y_bits		3
-#define CCflag_y_mask		0x7
-#define CCflag_G_bits		6
-#define CCflag_G_mask		0x1
-#define CCflag_opc_bits		7
-#define CCflag_opc_mask		0x7
-#define CCflag_I_bits		10
-#define CCflag_I_mask		0x1
-#define CCflag_code_bits	11
-#define CCflag_code_mask	0x1f
-
-#define init_CCflag				\
-{						\
-  CCflag_opcode,				\
-  CCflag_x_bits,	CCflag_x_mask,		\
-  CCflag_y_bits,	CCflag_y_mask,		\
-  CCflag_G_bits,	CCflag_G_mask,		\
-  CCflag_opc_bits,	CCflag_opc_mask,	\
-  CCflag_I_bits,	CCflag_I_mask,		\
-  CCflag_code_bits,	CCflag_code_mask,	\
-};
-
-
-/*  CC2stat
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |.D.|.op....|.cbit..............|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_cbit;
-  int mask_cbit;
-  int bits_op;      
-  int mask_op;
-  int bits_D;      
-  int mask_D;
-  int bits_code;      
-  int mask_code;
-} CC2stat;
-
-#define CC2stat_opcode		0x0300
-#define CC2stat_cbit_bits	0
-#define CC2stat_cbit_mask	0x1f
-#define CC2stat_op_bits		5
-#define CC2stat_op_mask		0x3
-#define CC2stat_D_bits		7
-#define CC2stat_D_mask		0x1
-#define CC2stat_code_bits	8
-#define CC2stat_code_mask	0xff
-
-#define init_CC2stat				\
-{						\
-  CC2stat_opcode,				\
-  CC2stat_cbit_bits,	CC2stat_cbit_mask,	\
-  CC2stat_op_bits,	CC2stat_op_mask,	\
-  CC2stat_D_bits,	CC2stat_D_mask,		\
-  CC2stat_code_bits,	CC2stat_code_mask	\
-};
-
-
-/*  REGMV
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 1 | 1 |.gd........|.gs........|.dst.......|.src.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_src;
-  int mask_src;
-  int bits_dst;      
-  int mask_dst;
-  int bits_gs;      
-  int mask_gs;
-  int bits_gd;      
-  int mask_gd;
-  int bits_code;      
-  int mask_code;
-} RegMv;
-
-#define RegMv_opcode		0x3000
-#define RegMv_src_bits		0
-#define RegMv_src_mask		0x7
-#define RegMv_dst_bits		3
-#define RegMv_dst_mask		0x7
-#define RegMv_gs_bits		6
-#define RegMv_gs_mask		0x7
-#define RegMv_gd_bits		9
-#define RegMv_gd_mask		0x7
-#define RegMv_code_bits		12
-#define RegMv_code_mask		0xf
-
-#define init_RegMv			\
-{					\
-  RegMv_opcode,				\
-  RegMv_src_bits,	RegMv_src_mask,	\
-  RegMv_dst_bits,	RegMv_dst_mask,	\
-  RegMv_gs_bits,	RegMv_gs_mask,	\
-  RegMv_gd_bits,	RegMv_gd_mask,	\
-  RegMv_code_bits,	RegMv_code_mask	\
-};
-
-
-/*  COMPI2opD
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 1 | 1 | 0 | 0 |.op|.isrc......................|.dst.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_dst;
-  int mask_dst;
-  int bits_src;      
-  int mask_src;
-  int bits_op;      
-  int mask_op;
-  int bits_code;      
-  int mask_code;
-} COMPI2opD;
-
-#define COMPI2opD_opcode	0x6000
-#define COMPI2opD_dst_bits	0
-#define COMPI2opD_dst_mask	0x7
-#define COMPI2opD_src_bits	3
-#define COMPI2opD_src_mask	0x7f
-#define COMPI2opD_op_bits	10
-#define COMPI2opD_op_mask	0x1
-#define COMPI2opD_code_bits	11
-#define COMPI2opD_code_mask	0x1f
-
-#define init_COMPI2opD				\
-{						\
-  COMPI2opD_opcode,				\
-  COMPI2opD_dst_bits,	COMPI2opD_dst_mask,	\
-  COMPI2opD_src_bits,	COMPI2opD_src_mask,	\
-  COMPI2opD_op_bits,	COMPI2opD_op_mask,	\
-  COMPI2opD_code_bits,	COMPI2opD_code_mask	\
-};
-
-/*  COMPI2opP
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 1 | 1 | 0 | 1 |.op|.src.......................|.dst.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef COMPI2opD COMPI2opP;
-
-#define COMPI2opP_opcode 	0x6800
-#define COMPI2opP_dst_bits	0
-#define COMPI2opP_dst_mask	0x7
-#define COMPI2opP_src_bits	3
-#define COMPI2opP_src_mask	0x7f
-#define COMPI2opP_op_bits	10
-#define COMPI2opP_op_mask	0x1
-#define COMPI2opP_code_bits	11
-#define COMPI2opP_code_mask	0x1f
-
-#define init_COMPI2opP				\
-{						\
-  COMPI2opP_opcode,				\
-  COMPI2opP_dst_bits,	COMPI2opP_dst_mask,	\
-  COMPI2opP_src_bits,	COMPI2opP_src_mask,	\
-  COMPI2opP_op_bits,	COMPI2opP_op_mask,	\
-  COMPI2opP_code_bits,	COMPI2opP_code_mask	\
-};
-
-
-/*  dagMODim
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 |.br| 1 | 1 |.op|.m.....|.i.....|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_i;
-  int mask_i;
-  int bits_m;      
-  int mask_m;
-  int bits_op;      
-  int mask_op;
-  int bits_code2;      
-  int mask_code2;
-  int bits_br;      
-  int mask_br;
-  int bits_code;      
-  int mask_code;
-} DagMODim;
-
-#define DagMODim_opcode		0x9e60
-#define DagMODim_i_bits		0
-#define DagMODim_i_mask		0x3
-#define DagMODim_m_bits		2
-#define DagMODim_m_mask		0x3
-#define DagMODim_op_bits	4
-#define DagMODim_op_mask	0x1
-#define DagMODim_code2_bits	5
-#define DagMODim_code2_mask	0x3
-#define DagMODim_br_bits	7
-#define DagMODim_br_mask	0x1
-#define DagMODim_code_bits	8
-#define DagMODim_code_mask	0xff
-
-#define init_DagMODim				\
-{						\
-  DagMODim_opcode,				\
-  DagMODim_i_bits,	DagMODim_i_mask,	\
-  DagMODim_m_bits,	DagMODim_m_mask,	\
-  DagMODim_op_bits,	DagMODim_op_mask,	\
-  DagMODim_code2_bits,	DagMODim_code2_mask,	\
-  DagMODim_br_bits,	DagMODim_br_mask,	\
-  DagMODim_code_bits,	DagMODim_code_mask	\
-};
-
-/*  dagMODik
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 |.op....|.i.....|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
-  unsigned short opcode;
-  int bits_i;
-  int mask_i;
-  int bits_op;
-  int mask_op;
-  int bits_code;
-  int mask_code;
-} DagMODik;
-
-#define DagMODik_opcode		0x9f60
-#define DagMODik_i_bits		0
-#define DagMODik_i_mask		0x3
-#define DagMODik_op_bits	2
-#define DagMODik_op_mask	0x3
-#define DagMODik_code_bits	3
-#define DagMODik_code_mask	0xfff
-
-#define init_DagMODik				\
-{						\
-  DagMODik_opcode,				\
-  DagMODik_i_bits,	DagMODik_i_mask,	\
-  DagMODik_op_bits,	DagMODik_op_mask,	\
-  DagMODik_code_bits,	DagMODik_code_mask	\
-};
diff --git a/include/opcode/cgen-bitset.h b/include/opcode/cgen-bitset.h
deleted file mode 100644
index 1b6fbe3..0000000
--- a/include/opcode/cgen-bitset.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Header file the type CGEN_BITSET.
-
-Copyright 2002, 2005 Free Software Foundation, Inc.
-
-This file is part of GDB, the GNU debugger, and the GNU Binutils.
-
-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.,
-59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-#ifndef CGEN_BITSET_H
-#define CGEN_BITSET_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* A bitmask represented as a string.
-   Each member of the set is represented as a bit
-   in the string. Bytes are indexed from left to right in the string and
-   bits from most significant to least within each byte.
-
-   For example, the bit representing member number 6 is (set->bits[0] & 0x02).
-*/
-typedef struct cgen_bitset
-{
-  unsigned length;
-  char *bits;
-} CGEN_BITSET;
-
-extern CGEN_BITSET *cgen_bitset_create PARAMS ((unsigned));
-extern void cgen_bitset_init PARAMS ((CGEN_BITSET *, unsigned));
-extern void cgen_bitset_clear PARAMS ((CGEN_BITSET *));
-extern void cgen_bitset_add PARAMS ((CGEN_BITSET *, unsigned));
-extern void cgen_bitset_set PARAMS ((CGEN_BITSET *, unsigned));
-extern int cgen_bitset_compare PARAMS ((CGEN_BITSET *, CGEN_BITSET *));
-extern void cgen_bitset_union PARAMS ((CGEN_BITSET *, CGEN_BITSET *, CGEN_BITSET *));
-extern int cgen_bitset_intersect_p PARAMS ((CGEN_BITSET *, CGEN_BITSET *));
-extern int cgen_bitset_contains PARAMS ((CGEN_BITSET *, unsigned));
-extern CGEN_BITSET *cgen_bitset_copy PARAMS ((CGEN_BITSET *));
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif
diff --git a/include/opcode/cgen.h b/include/opcode/cgen.h
deleted file mode 100644
index e8fd5d3..0000000
--- a/include/opcode/cgen.h
+++ /dev/null
@@ -1,1473 +0,0 @@
-/* Header file for targets using CGEN: Cpu tools GENerator.
-
-Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
-Free Software Foundation, Inc.
-
-This file is part of GDB, the GNU debugger, and the GNU Binutils.
-
-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.,
-51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef CGEN_H
-#define CGEN_H
-
-#include "symcat.h"
-#include "cgen-bitset.h"
-/* ??? This file requires bfd.h but only to get bfd_vma.
-   Seems like an awful lot to require just to get such a fundamental type.
-   Perhaps the definition of bfd_vma can be moved outside of bfd.h.
-   Or perhaps one could duplicate its definition in another file.
-   Until such time, this file conditionally compiles definitions that require
-   bfd_vma using __BFD_H_SEEN__.  */
-
-/* Enums must be defined before they can be used.
-   Allow them to be used in struct definitions, even though the enum must
-   be defined elsewhere.
-   If CGEN_ARCH isn't defined, this file is being included by something other
-   than <arch>-desc.h.  */
-
-/* Prepend the arch name, defined in <arch>-desc.h, and _cgen_ to symbol S.
-   The lack of spaces in the arg list is important for non-stdc systems.
-   This file is included by <arch>-desc.h.
-   It can be included independently of <arch>-desc.h, in which case the arch
-   dependent portions will be declared as "unknown_cgen_foo".  */
-
-#ifndef CGEN_SYM
-#define CGEN_SYM(s) CONCAT3 (unknown,_cgen_,s)
-#endif
-
-/* This file contains the static (unchanging) pieces and as much other stuff
-   as we can reasonably put here.  It's generally cleaner to put stuff here
-   rather than having it machine generated if possible.  */
-
-/* The assembler syntax is made up of expressions (duh...).
-   At the lowest level the values are mnemonics, register names, numbers, etc.
-   Above that are subexpressions, if any (an example might be the
-   "effective address" in m68k cpus).  Subexpressions are wip.
-   At the second highest level are the insns themselves.  Above that are
-   pseudo-insns, synthetic insns, and macros, if any.  */
-
-/* Lots of cpu's have a fixed insn size, or one which rarely changes,
-   and it's generally easier to handle these by treating the insn as an
-   integer type, rather than an array of characters.  So we allow targets
-   to control this.  When an integer type the value is in host byte order,
-   when an array of characters the value is in target byte order.  */
-
-typedef unsigned int CGEN_INSN_INT;
-#if CGEN_INT_INSN_P
-typedef CGEN_INSN_INT CGEN_INSN_BYTES;
-typedef CGEN_INSN_INT *CGEN_INSN_BYTES_PTR;
-#else
-typedef unsigned char *CGEN_INSN_BYTES;
-typedef unsigned char *CGEN_INSN_BYTES_PTR;
-#endif
-
-#ifdef __GNUC__
-#define CGEN_INLINE __inline__
-#else
-#define CGEN_INLINE
-#endif
-
-enum cgen_endian
-{
-  CGEN_ENDIAN_UNKNOWN,
-  CGEN_ENDIAN_LITTLE,
-  CGEN_ENDIAN_BIG
-};
-
-/* Forward decl.  */
-
-typedef struct cgen_insn CGEN_INSN;
-
-/* Opaque pointer version for use by external world.  */
-
-typedef struct cgen_cpu_desc *CGEN_CPU_DESC;
-
-/* Attributes.
-   Attributes are used to describe various random things associated with
-   an object (ifield, hardware, operand, insn, whatever) and are specified
-   as name/value pairs.
-   Integer attributes computed at compile time are currently all that's
-   supported, though adding string attributes and run-time computation is
-   straightforward.  Integer attribute values are always host int's
-   (signed or unsigned).  For portability, this means 32 bits.
-   Integer attributes are further categorized as boolean, bitset, integer,
-   and enum types.  Boolean attributes appear frequently enough that they're
-   recorded in one host int.  This limits the maximum number of boolean
-   attributes to 32, though that's a *lot* of attributes.  */
-
-/* Type of attribute values.  */
-
-typedef CGEN_BITSET     CGEN_ATTR_VALUE_BITSET_TYPE;
-typedef int             CGEN_ATTR_VALUE_ENUM_TYPE;
-typedef union
-{
-  CGEN_ATTR_VALUE_BITSET_TYPE bitset;
-  CGEN_ATTR_VALUE_ENUM_TYPE   nonbitset;
-} CGEN_ATTR_VALUE_TYPE;
-
-/* Struct to record attribute information.  */
-
-typedef struct
-{
-  /* Boolean attributes.  */
-  unsigned int bool;
-  /* Non-boolean integer attributes.  */
-  CGEN_ATTR_VALUE_TYPE nonbool[1];
-} CGEN_ATTR;
-
-/* Define a structure member for attributes with N non-boolean entries.
-   There is no maximum number of non-boolean attributes.
-   There is a maximum of 32 boolean attributes (since they are all recorded
-   in one host int).  */
-
-#define CGEN_ATTR_TYPE(n) \
-struct { unsigned int bool; \
-	 CGEN_ATTR_VALUE_TYPE nonbool[(n) ? (n) : 1]; }
-
-/* Return the boolean attributes.  */
-
-#define CGEN_ATTR_BOOLS(a) ((a)->bool)
-
-/* Non-boolean attribute numbers are offset by this much.  */
-
-#define CGEN_ATTR_NBOOL_OFFSET 32
-
-/* Given a boolean attribute number, return its mask.  */
-
-#define CGEN_ATTR_MASK(attr) (1 << (attr))
-
-/* Return the value of boolean attribute ATTR in ATTRS.  */
-
-#define CGEN_BOOL_ATTR(attrs, attr) ((CGEN_ATTR_MASK (attr) & (attrs)) != 0)
-
-/* Return value of attribute ATTR in ATTR_TABLE for OBJ.
-   OBJ is a pointer to the entity that has the attributes
-   (??? not used at present but is reserved for future purposes - eventually
-   the goal is to allow recording attributes in source form and computing
-   them lazily at runtime, not sure of the details yet).  */
-
-#define CGEN_ATTR_VALUE(obj, attr_table, attr) \
-((unsigned int) (attr) < CGEN_ATTR_NBOOL_OFFSET \
- ? ((CGEN_ATTR_BOOLS (attr_table) & CGEN_ATTR_MASK (attr)) != 0) \
- : ((attr_table)->nonbool[(attr) - CGEN_ATTR_NBOOL_OFFSET].nonbitset))
-#define CGEN_BITSET_ATTR_VALUE(obj, attr_table, attr) \
- ((attr_table)->nonbool[(attr) - CGEN_ATTR_NBOOL_OFFSET].bitset)
-
-/* Attribute name/value tables.
-   These are used to assist parsing of descriptions at run-time.  */
-
-typedef struct
-{
-  const char * name;
-  unsigned value;
-} CGEN_ATTR_ENTRY;
-
-/* For each domain (ifld,hw,operand,insn), list of attributes.  */
-
-typedef struct
-{
-  const char * name;
-  const CGEN_ATTR_ENTRY * dfault;
-  const CGEN_ATTR_ENTRY * vals;
-} CGEN_ATTR_TABLE;
-
-/* Instruction set variants.  */
-
-typedef struct {
-  const char *name;
-
-  /* Default instruction size (in bits).
-     This is used by the assembler when it encounters an unknown insn.  */
-  unsigned int default_insn_bitsize;
-
-  /* Base instruction size (in bits).
-     For non-LIW cpus this is generally the length of the smallest insn.
-     For LIW cpus its wip (work-in-progress).  For the m32r its 32.  */
-  unsigned int base_insn_bitsize;
-
-  /* Minimum/maximum instruction size (in bits).  */
-  unsigned int min_insn_bitsize;
-  unsigned int max_insn_bitsize;
-} CGEN_ISA;
-
-/* Machine variants.  */
-
-typedef struct {
-  const char *name;
-  /* The argument to bfd_arch_info->scan.  */
-  const char *bfd_name;
-  /* one of enum mach_attr */
-  int num;
-  /* parameter from mach->cpu */
-  unsigned int insn_chunk_bitsize;
-} CGEN_MACH;
-
-/* Parse result (also extraction result).
-
-   The result of parsing an insn is stored here.
-   To generate the actual insn, this is passed to the insert handler.
-   When printing an insn, the result of extraction is stored here.
-   To print the insn, this is passed to the print handler.
-
-   It is machine generated so we don't define it here,
-   but we do need a forward decl for the handler fns.
-
-   There is one member for each possible field in the insn.
-   The type depends on the field.
-   Also recorded here is the computed length of the insn for architectures
-   where it varies.
-*/
-
-typedef struct cgen_fields CGEN_FIELDS;
-
-/* Total length of the insn, as recorded in the `fields' struct.  */
-/* ??? The field insert handler has lots of opportunities for optimization
-   if it ever gets inlined.  On architectures where insns all have the same
-   size, may wish to detect that and make this macro a constant - to allow
-   further optimizations.  */
-
-#define CGEN_FIELDS_BITSIZE(fields) ((fields)->length)
-
-/* Extraction support for variable length insn sets.  */
-
-/* When disassembling we don't know the number of bytes to read at the start.
-   So the first CGEN_BASE_INSN_SIZE bytes are read at the start and the rest
-   are read when needed.  This struct controls this.  It is basically the
-   disassemble_info stuff, except that we provide a cache for values already
-   read (since bytes can typically be read several times to fetch multiple
-   operands that may be in them), and that extraction of fields is needed
-   in contexts other than disassembly.  */
-
-typedef struct {
-  /* A pointer to the disassemble_info struct.
-     We don't require dis-asm.h so we use void * for the type here.
-     If NULL, BYTES is full of valid data (VALID == -1).  */
-  void *dis_info;
-  /* Points to a working buffer of sufficient size.  */
-  unsigned char *insn_bytes;
-  /* Mask of bytes that are valid in INSN_BYTES.  */
-  unsigned int valid;
-} CGEN_EXTRACT_INFO;
-
-/* Associated with each insn or expression is a set of "handlers" for
-   performing operations like parsing, printing, etc.  These require a bfd_vma
-   value to be passed around but we don't want all applications to need bfd.h.
-   So this stuff is only provided if bfd.h has been included.  */
-
-/* Parse handler.
-   CD is a cpu table descriptor.
-   INSN is a pointer to a struct describing the insn being parsed.
-   STRP is a pointer to a pointer to the text being parsed.
-   FIELDS is a pointer to a cgen_fields struct in which the results are placed.
-   If the expression is successfully parsed, *STRP is updated.
-   If not it is left alone.
-   The result is NULL if success or an error message.  */
-typedef const char * (cgen_parse_fn)
-  (CGEN_CPU_DESC, const CGEN_INSN *insn_,
-   const char **strp_, CGEN_FIELDS *fields_);
-
-/* Insert handler.
-   CD is a cpu table descriptor.
-   INSN is a pointer to a struct describing the insn being parsed.
-   FIELDS is a pointer to a cgen_fields struct from which the values
-   are fetched.
-   INSNP is a pointer to a buffer in which to place the insn.
-   PC is the pc value of the insn.
-   The result is an error message or NULL if success.  */
-
-#ifdef __BFD_H_SEEN__
-typedef const char * (cgen_insert_fn)
-  (CGEN_CPU_DESC, const CGEN_INSN *insn_,
-   CGEN_FIELDS *fields_, CGEN_INSN_BYTES_PTR insnp_,
-   bfd_vma pc_);
-#else
-typedef const char * (cgen_insert_fn) ();
-#endif
-
-/* Extract handler.
-   CD is a cpu table descriptor.
-   INSN is a pointer to a struct describing the insn being parsed.
-   The second argument is a pointer to a struct controlling extraction
-   (only used for variable length insns).
-   EX_INFO is a pointer to a struct for controlling reading of further
-   bytes for the insn.
-   BASE_INSN is the first CGEN_BASE_INSN_SIZE bytes (host order).
-   FIELDS is a pointer to a cgen_fields struct in which the results are placed.
-   PC is the pc value of the insn.
-   The result is the length of the insn in bits or zero if not recognized.  */
-
-#ifdef __BFD_H_SEEN__
-typedef int (cgen_extract_fn)
-  (CGEN_CPU_DESC, const CGEN_INSN *insn_,
-   CGEN_EXTRACT_INFO *ex_info_, CGEN_INSN_INT base_insn_,
-   CGEN_FIELDS *fields_, bfd_vma pc_);
-#else
-typedef int (cgen_extract_fn) ();
-#endif
-
-/* Print handler.
-   CD is a cpu table descriptor.
-   INFO is a pointer to the disassembly info.
-   Eg: disassemble_info.  It's defined as `PTR' so this file can be included
-   without dis-asm.h.
-   INSN is a pointer to a struct describing the insn being printed.
-   FIELDS is a pointer to a cgen_fields struct.
-   PC is the pc value of the insn.
-   LEN is the length of the insn, in bits.  */
-
-#ifdef __BFD_H_SEEN__
-typedef void (cgen_print_fn)
-  (CGEN_CPU_DESC, void * info_, const CGEN_INSN *insn_,
-   CGEN_FIELDS *fields_, bfd_vma pc_, int len_);
-#else
-typedef void (cgen_print_fn) ();
-#endif
-
-/* Parse/insert/extract/print handlers.
-
-   Indices into the handler tables.
-   We could use pointers here instead, but 90% of them are generally identical
-   and that's a lot of redundant data.  Making these unsigned char indices
-   into tables of pointers saves a bit of space.
-   Using indices also keeps assembler code out of the disassembler and
-   vice versa.  */
-
-struct cgen_opcode_handler
-{
-  unsigned char parse, insert, extract, print;
-};
-
-/* Assembler interface.
-
-   The interface to the assembler is intended to be clean in the sense that
-   libopcodes.a is a standalone entity and could be used with any assembler.
-   Not that one would necessarily want to do that but rather that it helps
-   keep a clean interface.  The interface will obviously be slanted towards
-   GAS, but at least it's a start.
-   ??? Note that one possible user of the assembler besides GAS is GDB.
-
-   Parsing is controlled by the assembler which calls
-   CGEN_SYM (assemble_insn).  If it can parse and build the entire insn
-   it doesn't call back to the assembler.  If it needs/wants to call back
-   to the assembler, cgen_parse_operand_fn is called which can either
-
-   - return a number to be inserted in the insn
-   - return a "register" value to be inserted
-     (the register might not be a register per pe)
-   - queue the argument and return a marker saying the expression has been
-     queued (eg: a fix-up)
-   - return an error message indicating the expression wasn't recognizable
-
-   The result is an error message or NULL for success.
-   The parsed value is stored in the bfd_vma *.  */
-
-/* Values for indicating what the caller wants.  */
-
-enum cgen_parse_operand_type
-{
-  CGEN_PARSE_OPERAND_INIT,
-  CGEN_PARSE_OPERAND_INTEGER,
-  CGEN_PARSE_OPERAND_ADDRESS,
-  CGEN_PARSE_OPERAND_SYMBOLIC
-};
-
-/* Values for indicating what was parsed.  */
-
-enum cgen_parse_operand_result
-{
-  CGEN_PARSE_OPERAND_RESULT_NUMBER,
-  CGEN_PARSE_OPERAND_RESULT_REGISTER,
-  CGEN_PARSE_OPERAND_RESULT_QUEUED,
-  CGEN_PARSE_OPERAND_RESULT_ERROR
-};
-
-#ifdef __BFD_H_SEEN__ /* Don't require bfd.h unnecessarily.  */
-typedef const char * (cgen_parse_operand_fn)
-  (CGEN_CPU_DESC,
-   enum cgen_parse_operand_type, const char **, int, int,
-   enum cgen_parse_operand_result *, bfd_vma *);
-#else
-typedef const char * (cgen_parse_operand_fn) ();
-#endif
-
-/* Set the cgen_parse_operand_fn callback.  */
-
-extern void cgen_set_parse_operand_fn
-  (CGEN_CPU_DESC, cgen_parse_operand_fn);
-
-/* Called before trying to match a table entry with the insn.  */
-
-extern void cgen_init_parse_operand (CGEN_CPU_DESC);
-
-/* Operand values (keywords, integers, symbols, etc.)  */
-
-/* Types of assembler elements.  */
-
-enum cgen_asm_type
-{
-  CGEN_ASM_NONE, CGEN_ASM_KEYWORD, CGEN_ASM_MAX
-};
-
-#ifndef CGEN_ARCH
-enum cgen_hw_type { CGEN_HW_MAX };
-#endif
-
-/* List of hardware elements.  */
-
-typedef struct
-{
-  char *name;
-  enum cgen_hw_type type;
-  /* There is currently no example where both index specs and value specs
-     are required, so for now both are clumped under "asm_data".  */
-  enum cgen_asm_type asm_type;
-  void *asm_data;
-#ifndef CGEN_HW_NBOOL_ATTRS
-#define CGEN_HW_NBOOL_ATTRS 1
-#endif
-  CGEN_ATTR_TYPE (CGEN_HW_NBOOL_ATTRS) attrs;
-#define CGEN_HW_ATTRS(hw) (&(hw)->attrs)
-} CGEN_HW_ENTRY;
-
-/* Return value of attribute ATTR in HW.  */
-
-#define CGEN_HW_ATTR_VALUE(hw, attr) \
-CGEN_ATTR_VALUE ((hw), CGEN_HW_ATTRS (hw), (attr))
-
-/* Table of hardware elements for selected mach, computed at runtime.
-   enum cgen_hw_type is an index into this table (specifically `entries').  */
-
-typedef struct {
-  /* Pointer to null terminated table of all compiled in entries.  */
-  const CGEN_HW_ENTRY *init_entries;
-  unsigned int entry_size; /* since the attribute member is variable sized */
-  /* Array of all entries, initial and run-time added.  */
-  const CGEN_HW_ENTRY **entries;
-  /* Number of elements in `entries'.  */
-  unsigned int num_entries;
-  /* For now, xrealloc is called each time a new entry is added at runtime.
-     ??? May wish to keep track of some slop to reduce the number of calls to
-     xrealloc, except that there's unlikely to be many and not expected to be
-     in speed critical code.  */
-} CGEN_HW_TABLE;
-
-extern const CGEN_HW_ENTRY * cgen_hw_lookup_by_name
-  (CGEN_CPU_DESC, const char *);
-extern const CGEN_HW_ENTRY * cgen_hw_lookup_by_num
-  (CGEN_CPU_DESC, unsigned int);
-
-/* This struct is used to describe things like register names, etc.  */
-
-typedef struct cgen_keyword_entry
-{
-  /* Name (as in register name).  */
-  char * name;
-
-  /* Value (as in register number).
-     The value cannot be -1 as that is used to indicate "not found".
-     IDEA: Have "FUNCTION" attribute? [function is called to fetch value].  */
-  int value;
-
-  /* Attributes.
-     This should, but technically needn't, appear last.  It is a variable sized
-     array in that one architecture may have 1 nonbool attribute and another
-     may have more.  Having this last means the non-architecture specific code
-     needn't care.  The goal is to eventually record
-     attributes in their raw form, evaluate them at run-time, and cache the
-     values, so this worry will go away anyway.  */
-  /* ??? Moving this last should be done by treating keywords like insn lists
-     and moving the `next' fields into a CGEN_KEYWORD_LIST struct.  */
-  /* FIXME: Not used yet.  */
-#ifndef CGEN_KEYWORD_NBOOL_ATTRS
-#define CGEN_KEYWORD_NBOOL_ATTRS 1
-#endif
-  CGEN_ATTR_TYPE (CGEN_KEYWORD_NBOOL_ATTRS) attrs;
-
-  /* ??? Putting these here means compiled in entries can't be const.
-     Not a really big deal, but something to consider.  */
-  /* Next name hash table entry.  */
-  struct cgen_keyword_entry *next_name;
-  /* Next value hash table entry.  */
-  struct cgen_keyword_entry *next_value;
-} CGEN_KEYWORD_ENTRY;
-
-/* Top level struct for describing a set of related keywords
-   (e.g. register names).
-
-   This struct supports run-time entry of new values, and hashed lookups.  */
-
-typedef struct cgen_keyword
-{
-  /* Pointer to initial [compiled in] values.  */
-  CGEN_KEYWORD_ENTRY *init_entries;
-  
-  /* Number of entries in `init_entries'.  */
-  unsigned int num_init_entries;
-  
-  /* Hash table used for name lookup.  */
-  CGEN_KEYWORD_ENTRY **name_hash_table;
-  
-  /* Hash table used for value lookup.  */
-  CGEN_KEYWORD_ENTRY **value_hash_table;
-  
-  /* Number of entries in the hash_tables.  */
-  unsigned int hash_table_size;
-  
-  /* Pointer to null keyword "" entry if present.  */
-  const CGEN_KEYWORD_ENTRY *null_entry;
-
-  /* String containing non-alphanumeric characters used
-     in keywords.  
-     At present, the highest number of entries used is 1.  */
-  char nonalpha_chars[8];
-} CGEN_KEYWORD;
-
-/* Structure used for searching.  */
-
-typedef struct
-{
-  /* Table being searched.  */
-  const CGEN_KEYWORD *table;
-  
-  /* Specification of what is being searched for.  */
-  const char *spec;
-  
-  /* Current index in hash table.  */
-  unsigned int current_hash;
-  
-  /* Current element in current hash chain.  */
-  CGEN_KEYWORD_ENTRY *current_entry;
-} CGEN_KEYWORD_SEARCH;
-
-/* Lookup a keyword from its name.  */
-
-const CGEN_KEYWORD_ENTRY *cgen_keyword_lookup_name
-  (CGEN_KEYWORD *, const char *);
-
-/* Lookup a keyword from its value.  */
-
-const CGEN_KEYWORD_ENTRY *cgen_keyword_lookup_value
-  (CGEN_KEYWORD *, int);
-
-/* Add a keyword.  */
-
-void cgen_keyword_add (CGEN_KEYWORD *, CGEN_KEYWORD_ENTRY *);
-
-/* Keyword searching.
-   This can be used to retrieve every keyword, or a subset.  */
-
-CGEN_KEYWORD_SEARCH cgen_keyword_search_init
-  (CGEN_KEYWORD *, const char *);
-const CGEN_KEYWORD_ENTRY *cgen_keyword_search_next
-  (CGEN_KEYWORD_SEARCH *);
-
-/* Operand value support routines.  */
-
-extern const char *cgen_parse_keyword
-  (CGEN_CPU_DESC, const char **, CGEN_KEYWORD *, long *);
-#ifdef __BFD_H_SEEN__ /* Don't require bfd.h unnecessarily.  */
-extern const char *cgen_parse_signed_integer
-  (CGEN_CPU_DESC, const char **, int, long *);
-extern const char *cgen_parse_unsigned_integer
-  (CGEN_CPU_DESC, const char **, int, unsigned long *);
-extern const char *cgen_parse_address
-  (CGEN_CPU_DESC, const char **, int, int,
-   enum cgen_parse_operand_result *, bfd_vma *);
-extern const char *cgen_validate_signed_integer
-  (long, long, long);
-extern const char *cgen_validate_unsigned_integer
-  (unsigned long, unsigned long, unsigned long);
-#endif
-
-/* Operand modes.  */
-
-/* ??? This duplicates the values in arch.h.  Revisit.
-   These however need the CGEN_ prefix [as does everything in this file].  */
-/* ??? Targets may need to add their own modes so we may wish to move this
-   to <arch>-opc.h, or add a hook.  */
-
-enum cgen_mode {
-  CGEN_MODE_VOID, /* ??? rename simulator's VM to VOID? */
-  CGEN_MODE_BI, CGEN_MODE_QI, CGEN_MODE_HI, CGEN_MODE_SI, CGEN_MODE_DI,
-  CGEN_MODE_UBI, CGEN_MODE_UQI, CGEN_MODE_UHI, CGEN_MODE_USI, CGEN_MODE_UDI,
-  CGEN_MODE_SF, CGEN_MODE_DF, CGEN_MODE_XF, CGEN_MODE_TF,
-  CGEN_MODE_TARGET_MAX,
-  CGEN_MODE_INT, CGEN_MODE_UINT,
-  CGEN_MODE_MAX
-};
-
-/* FIXME: Until simulator is updated.  */
-
-#define CGEN_MODE_VM CGEN_MODE_VOID
-
-/* Operands.  */
-
-#ifndef CGEN_ARCH
-enum cgen_operand_type { CGEN_OPERAND_MAX };
-#endif
-
-/* "nil" indicator for the operand instance table */
-#define CGEN_OPERAND_NIL CGEN_OPERAND_MAX
-
-/* A tree of these structs represents the multi-ifield
-   structure of an operand's hw-index value, if it exists.  */
-
-struct cgen_ifld;
-
-typedef struct cgen_maybe_multi_ifield
-{
-  int count; /* 0: indexed by single cgen_ifld (possibly null: dead entry);
-		n: indexed by array of more cgen_maybe_multi_ifields.  */
-  union
-  {
-    const void *p;
-    const struct cgen_maybe_multi_ifield * multi;
-    const struct cgen_ifld * leaf;
-  } val;
-}
-CGEN_MAYBE_MULTI_IFLD;
-
-/* This struct defines each entry in the operand table.  */
-
-typedef struct
-{
-  /* Name as it appears in the syntax string.  */
-  char *name;
-
-  /* Operand type.  */
-  enum cgen_operand_type type;
-
-  /* The hardware element associated with this operand.  */
-  enum cgen_hw_type hw_type;
-
-  /* FIXME: We don't yet record ifield definitions, which we should.
-     When we do it might make sense to delete start/length (since they will
-     be duplicated in the ifield's definition) and replace them with a
-     pointer to the ifield entry.  */
-
-  /* Bit position.
-     This is just a hint, and may be unused in more complex operands.
-     May be unused for a modifier.  */
-  unsigned char start;
-
-  /* The number of bits in the operand.
-     This is just a hint, and may be unused in more complex operands.
-     May be unused for a modifier.  */
-  unsigned char length;
-
-  /* The (possibly-multi) ifield used as an index for this operand, if it
-     is indexed by a field at all. This substitutes / extends the start and
-     length fields above, but unsure at this time whether they are used
-     anywhere.  */
-  CGEN_MAYBE_MULTI_IFLD index_fields;
-#if 0 /* ??? Interesting idea but relocs tend to get too complicated,
-	 and ABI dependent, for simple table lookups to work.  */
-  /* Ideally this would be the internal (external?) reloc type.  */
-  int reloc_type;
-#endif
-
-  /* Attributes.
-     This should, but technically needn't, appear last.  It is a variable sized
-     array in that one architecture may have 1 nonbool attribute and another
-     may have more.  Having this last means the non-architecture specific code
-     needn't care, now or tomorrow.  The goal is to eventually record
-     attributes in their raw form, evaluate them at run-time, and cache the
-     values, so this worry will go away anyway.  */
-#ifndef CGEN_OPERAND_NBOOL_ATTRS
-#define CGEN_OPERAND_NBOOL_ATTRS 1
-#endif
-  CGEN_ATTR_TYPE (CGEN_OPERAND_NBOOL_ATTRS) attrs;
-#define CGEN_OPERAND_ATTRS(operand) (&(operand)->attrs)
-} CGEN_OPERAND;
-
-/* Return value of attribute ATTR in OPERAND.  */
-
-#define CGEN_OPERAND_ATTR_VALUE(operand, attr) \
-CGEN_ATTR_VALUE ((operand), CGEN_OPERAND_ATTRS (operand), (attr))
-
-/* Table of operands for selected mach/isa, computed at runtime.
-   enum cgen_operand_type is an index into this table (specifically
-   `entries').  */
-
-typedef struct {
-  /* Pointer to null terminated table of all compiled in entries.  */
-  const CGEN_OPERAND *init_entries;
-  unsigned int entry_size; /* since the attribute member is variable sized */
-  /* Array of all entries, initial and run-time added.  */
-  const CGEN_OPERAND **entries;
-  /* Number of elements in `entries'.  */
-  unsigned int num_entries;
-  /* For now, xrealloc is called each time a new entry is added at runtime.
-     ??? May wish to keep track of some slop to reduce the number of calls to
-     xrealloc, except that there's unlikely to be many and not expected to be
-     in speed critical code.  */
-} CGEN_OPERAND_TABLE;
-
-extern const CGEN_OPERAND * cgen_operand_lookup_by_name
-  (CGEN_CPU_DESC, const char *);
-extern const CGEN_OPERAND * cgen_operand_lookup_by_num
-  (CGEN_CPU_DESC, int);
-
-/* Instruction operand instances.
-
-   For each instruction, a list of the hardware elements that are read and
-   written are recorded.  */
-
-/* The type of the instance.  */
-
-enum cgen_opinst_type {
-  /* End of table marker.  */
-  CGEN_OPINST_END = 0,
-  CGEN_OPINST_INPUT, CGEN_OPINST_OUTPUT
-};
-
-typedef struct
-{
-  /* Input or output indicator.  */
-  enum cgen_opinst_type type;
-
-  /* Name of operand.  */
-  const char *name;
-
-  /* The hardware element referenced.  */
-  enum cgen_hw_type hw_type;
-
-  /* The mode in which the operand is being used.  */
-  enum cgen_mode mode;
-
-  /* The operand table entry CGEN_OPERAND_NIL if there is none
-     (i.e. an explicit hardware reference).  */
-  enum cgen_operand_type op_type;
-
-  /* If `operand' is "nil", the index (e.g. into array of registers).  */
-  int index;
-
-  /* Attributes.
-     ??? This perhaps should be a real attribute struct but there's
-     no current need, so we save a bit of space and just have a set of
-     flags.  The interface is such that this can easily be made attributes
-     should it prove useful.  */
-  unsigned int attrs;
-#define CGEN_OPINST_ATTRS(opinst) ((opinst)->attrs)
-/* Return value of attribute ATTR in OPINST.  */
-#define CGEN_OPINST_ATTR(opinst, attr) \
-((CGEN_OPINST_ATTRS (opinst) & (attr)) != 0)
-/* Operand is conditionally referenced (read/written).  */
-#define CGEN_OPINST_COND_REF 1
-} CGEN_OPINST;
-
-/* Syntax string.
-
-   Each insn format and subexpression has one of these.
-
-   The syntax "string" consists of characters (n > 0 && n < 128), and operand
-   values (n >= 128), and is terminated by 0.  Operand values are 128 + index
-   into the operand table.  The operand table doesn't exist in C, per se, as
-   the data is recorded in the parse/insert/extract/print switch statements. */
-
-/* This should be at least as large as necessary for any target. */
-#define CGEN_MAX_SYNTAX_ELEMENTS 48
-
-/* A target may know its own precise maximum.  Assert that it falls below
-   the above limit. */
-#ifdef CGEN_ACTUAL_MAX_SYNTAX_ELEMENTS
-#if CGEN_ACTUAL_MAX_SYNTAX_ELEMENTS > CGEN_MAX_SYNTAX_ELEMENTS
-#error "CGEN_ACTUAL_MAX_SYNTAX_ELEMENTS too high - enlarge CGEN_MAX_SYNTAX_ELEMENTS"
-#endif
-#endif
-
-typedef unsigned short CGEN_SYNTAX_CHAR_TYPE;
-
-typedef struct
-{
-  CGEN_SYNTAX_CHAR_TYPE syntax[CGEN_MAX_SYNTAX_ELEMENTS];
-} CGEN_SYNTAX;
-
-#define CGEN_SYNTAX_STRING(syn) (syn->syntax)
-#define CGEN_SYNTAX_CHAR_P(c) ((c) < 128)
-#define CGEN_SYNTAX_CHAR(c) ((unsigned char)c)
-#define CGEN_SYNTAX_FIELD(c) ((c) - 128)
-#define CGEN_SYNTAX_MAKE_FIELD(c) ((c) + 128)
-
-/* ??? I can't currently think of any case where the mnemonic doesn't come
-   first [and if one ever doesn't building the hash tables will be tricky].
-   However, we treat mnemonics as just another operand of the instruction.
-   A value of 1 means "this is where the mnemonic appears".  1 isn't
-   special other than it's a non-printable ASCII char.  */
-
-#define CGEN_SYNTAX_MNEMONIC       1
-#define CGEN_SYNTAX_MNEMONIC_P(ch) ((ch) == CGEN_SYNTAX_MNEMONIC)
-
-/* Instruction fields.
-
-   ??? We currently don't allow adding fields at run-time.
-   Easy to fix when needed.  */
-
-typedef struct cgen_ifld {
-  /* Enum of ifield.  */
-  int num;
-#define CGEN_IFLD_NUM(f) ((f)->num)
-
-  /* Name of the field, distinguishes it from all other fields.  */
-  const char *name;
-#define CGEN_IFLD_NAME(f) ((f)->name)
-
-  /* Default offset, in bits, from the start of the insn to the word
-     containing the field.  */
-  int word_offset;
-#define CGEN_IFLD_WORD_OFFSET(f) ((f)->word_offset)
-
-  /* Default length of the word containing the field.  */
-  int word_size;
-#define CGEN_IFLD_WORD_SIZE(f) ((f)->word_size)
-
-  /* Default starting bit number.
-     Whether lsb=0 or msb=0 is determined by CGEN_INSN_LSB0_P.  */
-  int start;
-#define CGEN_IFLD_START(f) ((f)->start)
-
-  /* Length of the field, in bits.  */
-  int length;
-#define CGEN_IFLD_LENGTH(f) ((f)->length)
-
-#ifndef CGEN_IFLD_NBOOL_ATTRS
-#define CGEN_IFLD_NBOOL_ATTRS 1
-#endif
-  CGEN_ATTR_TYPE (CGEN_IFLD_NBOOL_ATTRS) attrs;
-#define CGEN_IFLD_ATTRS(f) (&(f)->attrs)
-} CGEN_IFLD;
-
-/* Return value of attribute ATTR in IFLD.  */
-#define CGEN_IFLD_ATTR_VALUE(ifld, attr) \
-CGEN_ATTR_VALUE ((ifld), CGEN_IFLD_ATTRS (ifld), (attr))
-
-/* Instruction data.  */
-
-/* Instruction formats.
-
-   Instructions are grouped by format.  Associated with an instruction is its
-   format.  Each insn's opcode table entry contains a format table entry.
-   ??? There is usually very few formats compared with the number of insns,
-   so one can reduce the size of the opcode table by recording the format table
-   as a separate entity.  Given that we currently don't, format table entries
-   are also distinguished by their operands.  This increases the size of the
-   table, but reduces the number of tables.  It's all minutiae anyway so it
-   doesn't really matter [at this point in time].
-
-   ??? Support for variable length ISA's is wip.  */
-
-/* Accompanying each iformat description is a list of its fields.  */
-
-typedef struct {
-  const CGEN_IFLD *ifld;
-#define CGEN_IFMT_IFLD_IFLD(ii) ((ii)->ifld)
-} CGEN_IFMT_IFLD;
-
-/* This should be at least as large as necessary for any target. */
-#define CGEN_MAX_IFMT_OPERANDS 16
-
-/* A target may know its own precise maximum.  Assert that it falls below
-   the above limit. */
-#ifdef CGEN_ACTUAL_MAX_IFMT_OPERANDS
-#if CGEN_ACTUAL_MAX_IFMT_OPERANDS > CGEN_MAX_IFMT_OPERANDS
-#error "CGEN_ACTUAL_MAX_IFMT_OPERANDS too high - enlarge CGEN_MAX_IFMT_OPERANDS"
-#endif
-#endif
-
-
-typedef struct
-{
-  /* Length that MASK and VALUE have been calculated to
-     [VALUE is recorded elsewhere].
-     Normally it is base_insn_bitsize.  On [V]LIW architectures where the base
-     insn size may be larger than the size of an insn, this field is less than
-     base_insn_bitsize.  */
-  unsigned char mask_length;
-#define CGEN_IFMT_MASK_LENGTH(ifmt) ((ifmt)->mask_length)
-
-  /* Total length of instruction, in bits.  */
-  unsigned char length;
-#define CGEN_IFMT_LENGTH(ifmt) ((ifmt)->length)
-
-  /* Mask to apply to the first MASK_LENGTH bits.
-     Each insn's value is stored with the insn.
-     The first step in recognizing an insn for disassembly is
-     (opcode & mask) == value.  */
-  CGEN_INSN_INT mask;
-#define CGEN_IFMT_MASK(ifmt) ((ifmt)->mask)
-
-  /* Instruction fields.
-     +1 for trailing NULL.  */
-  CGEN_IFMT_IFLD iflds[CGEN_MAX_IFMT_OPERANDS + 1];
-#define CGEN_IFMT_IFLDS(ifmt) ((ifmt)->iflds)
-} CGEN_IFMT;
-
-/* Instruction values.  */
-
-typedef struct
-{
-  /* The opcode portion of the base insn.  */
-  CGEN_INSN_INT base_value;
-
-#ifdef CGEN_MAX_EXTRA_OPCODE_OPERANDS
-  /* Extra opcode values beyond base_value.  */
-  unsigned long ifield_values[CGEN_MAX_EXTRA_OPCODE_OPERANDS];
-#endif
-} CGEN_IVALUE;
-
-/* Instruction opcode table.
-   This contains the syntax and format data of an instruction.  */
-
-/* ??? Some ports already have an opcode table yet still need to use the rest
-   of what cgen_insn has.  Plus keeping the opcode data with the operand
-   instance data can create a pretty big file.  So we keep them separately.
-   Not sure this is a good idea in the long run.  */
-
-typedef struct
-{
-  /* Indices into parse/insert/extract/print handler tables.  */
-  struct cgen_opcode_handler handlers;
-#define CGEN_OPCODE_HANDLERS(opc) (& (opc)->handlers)
-
-  /* Syntax string.  */
-  CGEN_SYNTAX syntax;
-#define CGEN_OPCODE_SYNTAX(opc) (& (opc)->syntax)
-
-  /* Format entry.  */
-  const CGEN_IFMT *format;
-#define CGEN_OPCODE_FORMAT(opc) ((opc)->format)
-#define CGEN_OPCODE_MASK_BITSIZE(opc) CGEN_IFMT_MASK_LENGTH (CGEN_OPCODE_FORMAT (opc))
-#define CGEN_OPCODE_BITSIZE(opc) CGEN_IFMT_LENGTH (CGEN_OPCODE_FORMAT (opc))
-#define CGEN_OPCODE_IFLDS(opc) CGEN_IFMT_IFLDS (CGEN_OPCODE_FORMAT (opc))
-
-  /* Instruction opcode value.  */
-  CGEN_IVALUE value;
-#define CGEN_OPCODE_VALUE(opc) (& (opc)->value)
-#define CGEN_OPCODE_BASE_VALUE(opc) (CGEN_OPCODE_VALUE (opc)->base_value)
-#define CGEN_OPCODE_BASE_MASK(opc) CGEN_IFMT_MASK (CGEN_OPCODE_FORMAT (opc))
-} CGEN_OPCODE;
-
-/* Instruction attributes.
-   This is made a published type as applications can cache a pointer to
-   the attributes for speed.  */
-
-#ifndef CGEN_INSN_NBOOL_ATTRS
-#define CGEN_INSN_NBOOL_ATTRS 1
-#endif
-typedef CGEN_ATTR_TYPE (CGEN_INSN_NBOOL_ATTRS) CGEN_INSN_ATTR_TYPE;
-
-/* Enum of architecture independent attributes.  */
-
-#ifndef CGEN_ARCH
-/* ??? Numbers here are recorded in two places.  */
-typedef enum cgen_insn_attr {
-  CGEN_INSN_ALIAS = 0
-} CGEN_INSN_ATTR;
-#define CGEN_ATTR_CGEN_INSN_ALIAS_VALUE(attrs) ((attrs)->bool & (1 << CGEN_INSN_ALIAS))
-#endif
-
-/* This struct defines each entry in the instruction table.  */
-
-typedef struct
-{
-  /* Each real instruction is enumerated.  */
-  /* ??? This may go away in time.  */
-  int num;
-#define CGEN_INSN_NUM(insn) ((insn)->base->num)
-
-  /* Name of entry (that distinguishes it from all other entries).  */
-  /* ??? If mnemonics have operands, try to print full mnemonic.  */
-  const char *name;
-#define CGEN_INSN_NAME(insn) ((insn)->base->name)
-
-  /* Mnemonic.  This is used when parsing and printing the insn.
-     In the case of insns that have operands on the mnemonics, this is
-     only the constant part.  E.g. for conditional execution of an `add' insn,
-     where the full mnemonic is addeq, addne, etc., and the condition is
-     treated as an operand, this is only "add".  */
-  const char *mnemonic;
-#define CGEN_INSN_MNEMONIC(insn) ((insn)->base->mnemonic)
-
-  /* Total length of instruction, in bits.  */
-  int bitsize;
-#define CGEN_INSN_BITSIZE(insn) ((insn)->base->bitsize)
-
-#if 0 /* ??? Disabled for now as there is a problem with embedded newlines
-	 and the table is already pretty big.  Should perhaps be moved
-	 to a file of its own.  */
-  /* Semantics, as RTL.  */
-  /* ??? Plain text or bytecodes?  */
-  /* ??? Note that the operand instance table could be computed at run-time
-     if we parse this and cache the results.  Something to eventually do.  */
-  const char *rtx;
-#define CGEN_INSN_RTX(insn) ((insn)->base->rtx)
-#endif
-
-  /* Attributes.
-     This must appear last.  It is a variable sized array in that one
-     architecture may have 1 nonbool attribute and another may have more.
-     Having this last means the non-architecture specific code needn't
-     care.  The goal is to eventually record attributes in their raw form,
-     evaluate them at run-time, and cache the values, so this worry will go
-     away anyway.  */
-  CGEN_INSN_ATTR_TYPE attrs;
-#define CGEN_INSN_ATTRS(insn) (&(insn)->base->attrs)
-/* Return value of attribute ATTR in INSN.  */
-#define CGEN_INSN_ATTR_VALUE(insn, attr) \
-CGEN_ATTR_VALUE ((insn), CGEN_INSN_ATTRS (insn), (attr))
-#define CGEN_INSN_BITSET_ATTR_VALUE(insn, attr) \
-  CGEN_BITSET_ATTR_VALUE ((insn), CGEN_INSN_ATTRS (insn), (attr))
-} CGEN_IBASE;
-
-/* Return non-zero if INSN is the "invalid" insn marker.  */
-
-#define CGEN_INSN_INVALID_P(insn) (CGEN_INSN_MNEMONIC (insn) == 0)
-
-/* Main struct contain instruction information.
-   BASE is always present, the rest is present only if asked for.  */
-
-struct cgen_insn
-{
-  /* ??? May be of use to put a type indicator here.
-     Then this struct could different info for different classes of insns.  */
-  /* ??? A speedup can be had by moving `base' into this struct.
-     Maybe later.  */
-  const CGEN_IBASE *base;
-  const CGEN_OPCODE *opcode;
-  const CGEN_OPINST *opinst;
-
-  /* Regex to disambiguate overloaded opcodes */
-  void *rx;
-#define CGEN_INSN_RX(insn) ((insn)->rx)
-#define CGEN_MAX_RX_ELEMENTS (CGEN_MAX_SYNTAX_ELEMENTS * 5)
-};
-
-/* Instruction lists.
-   This is used for adding new entries and for creating the hash lists.  */
-
-typedef struct cgen_insn_list
-{
-  struct cgen_insn_list *next;
-  const CGEN_INSN *insn;
-} CGEN_INSN_LIST;
-
-/* Table of instructions.  */
-
-typedef struct
-{
-  const CGEN_INSN *init_entries;
-  unsigned int entry_size; /* since the attribute member is variable sized */
-  unsigned int num_init_entries;
-  CGEN_INSN_LIST *new_entries;
-} CGEN_INSN_TABLE;
-
-/* Return number of instructions.  This includes any added at run-time.  */
-
-extern int cgen_insn_count (CGEN_CPU_DESC);
-extern int cgen_macro_insn_count (CGEN_CPU_DESC);
-
-/* Macros to access the other insn elements not recorded in CGEN_IBASE.  */
-
-/* Fetch INSN's operand instance table.  */
-/* ??? Doesn't handle insns added at runtime.  */
-#define CGEN_INSN_OPERANDS(insn) ((insn)->opinst)
-
-/* Return INSN's opcode table entry.  */
-#define CGEN_INSN_OPCODE(insn) ((insn)->opcode)
-
-/* Return INSN's handler data.  */
-#define CGEN_INSN_HANDLERS(insn) CGEN_OPCODE_HANDLERS (CGEN_INSN_OPCODE (insn))
-
-/* Return INSN's syntax.  */
-#define CGEN_INSN_SYNTAX(insn) CGEN_OPCODE_SYNTAX (CGEN_INSN_OPCODE (insn))
-
-/* Return size of base mask in bits.  */
-#define CGEN_INSN_MASK_BITSIZE(insn) \
-  CGEN_OPCODE_MASK_BITSIZE (CGEN_INSN_OPCODE (insn))
-
-/* Return mask of base part of INSN.  */
-#define CGEN_INSN_BASE_MASK(insn) \
-  CGEN_OPCODE_BASE_MASK (CGEN_INSN_OPCODE (insn))
-
-/* Return value of base part of INSN.  */
-#define CGEN_INSN_BASE_VALUE(insn) \
-  CGEN_OPCODE_BASE_VALUE (CGEN_INSN_OPCODE (insn))
-
-/* Standard way to test whether INSN is supported by MACH.
-   MACH is one of enum mach_attr.
-   The "|1" is because the base mach is always selected.  */
-#define CGEN_INSN_MACH_HAS_P(insn, mach) \
-((CGEN_INSN_ATTR_VALUE ((insn), CGEN_INSN_MACH) & ((1 << (mach)) | 1)) != 0)
-
-/* Macro instructions.
-   Macro insns aren't real insns, they map to one or more real insns.
-   E.g. An architecture's "nop" insn may actually be an "mv r0,r0" or
-   some such.
-
-   Macro insns can expand to nothing (e.g. a nop that is optimized away).
-   This is useful in multi-insn macros that build a constant in a register.
-   Of course this isn't the default behaviour and must be explicitly enabled.
-
-   Assembly of macro-insns is relatively straightforward.  Disassembly isn't.
-   However, disassembly of at least some kinds of macro insns is important
-   in order that the disassembled code preserve the readability of the original
-   insn.  What is attempted here is to disassemble all "simple" macro-insns,
-   where "simple" is currently defined to mean "expands to one real insn".
-
-   Simple macro-insns are handled specially.  They are emitted as ALIAS's
-   of real insns.  This simplifies their handling since there's usually more
-   of them than any other kind of macro-insn, and proper disassembly of them
-   falls out for free.  */
-
-/* For each macro-insn there may be multiple expansion possibilities,
-   depending on the arguments.  This structure is accessed via the `data'
-   member of CGEN_INSN.  */
-
-typedef struct cgen_minsn_expansion {
-  /* Function to do the expansion.
-     If the expansion fails (e.g. "no match") NULL is returned.
-     Space for the expansion is obtained with malloc.
-     It is up to the caller to free it.  */
-  const char * (* fn)
-     (const struct cgen_minsn_expansion *,
-      const char *, const char **, int *,
-      CGEN_OPERAND **);
-#define CGEN_MIEXPN_FN(ex) ((ex)->fn)
-
-  /* Instruction(s) the macro expands to.
-     The format of STR is defined by FN.
-     It is typically the assembly code of the real insn, but it could also be
-     the original Scheme expression or a tokenized form of it (with FN being
-     an appropriate interpreter).  */
-  const char * str;
-#define CGEN_MIEXPN_STR(ex) ((ex)->str)
-} CGEN_MINSN_EXPANSION;
-
-/* Normal expander.
-   When supported, this function will convert the input string to another
-   string and the parser will be invoked recursively.  The output string
-   may contain further macro invocations.  */
-
-extern const char * cgen_expand_macro_insn
-  (CGEN_CPU_DESC, const struct cgen_minsn_expansion *,
-   const char *, const char **, int *, CGEN_OPERAND **);
-
-/* The assembler insn table is hashed based on some function of the mnemonic
-   (the actually hashing done is up to the target, but we provide a few
-   examples like the first letter or a function of the entire mnemonic).  */
-
-extern CGEN_INSN_LIST * cgen_asm_lookup_insn
-  (CGEN_CPU_DESC, const char *);
-#define CGEN_ASM_LOOKUP_INSN(cd, string) cgen_asm_lookup_insn ((cd), (string))
-#define CGEN_ASM_NEXT_INSN(insn) ((insn)->next)
-
-/* The disassembler insn table is hashed based on some function of machine
-   instruction (the actually hashing done is up to the target).  */
-
-extern CGEN_INSN_LIST * cgen_dis_lookup_insn
-  (CGEN_CPU_DESC, const char *, CGEN_INSN_INT);
-/* FIXME: delete these two */
-#define CGEN_DIS_LOOKUP_INSN(cd, buf, value) cgen_dis_lookup_insn ((cd), (buf), (value))
-#define CGEN_DIS_NEXT_INSN(insn) ((insn)->next)
-
-/* The CPU description.
-   A copy of this is created when the cpu table is "opened".
-   All global state information is recorded here.
-   Access macros are provided for "public" members.  */
-
-typedef struct cgen_cpu_desc
-{
-  /* Bitmap of selected machine(s) (a la BFD machine number).  */
-  int machs;
-
-  /* Bitmap of selected isa(s).  */
-  CGEN_BITSET *isas;
-#define CGEN_CPU_ISAS(cd) ((cd)->isas)
-
-  /* Current endian.  */
-  enum cgen_endian endian;
-#define CGEN_CPU_ENDIAN(cd) ((cd)->endian)
-
-  /* Current insn endian.  */
-  enum cgen_endian insn_endian;
-#define CGEN_CPU_INSN_ENDIAN(cd) ((cd)->insn_endian)
-
-  /* Word size (in bits).  */
-  /* ??? Or maybe maximum word size - might we ever need to allow a cpu table
-     to be opened for both sparc32/sparc64?
-     ??? Another alternative is to create a table of selected machs and
-     lazily fetch the data from there.  */
-  unsigned int word_bitsize;
-
-  /* Instruction chunk size (in bits), for purposes of endianness
-     conversion.  */
-  unsigned int insn_chunk_bitsize;
-
-  /* Indicator if sizes are unknown.
-     This is used by default_insn_bitsize,base_insn_bitsize if there is a
-     difference between the selected isa's.  */
-#define CGEN_SIZE_UNKNOWN 65535
-
-  /* Default instruction size (in bits).
-     This is used by the assembler when it encounters an unknown insn.  */
-  unsigned int default_insn_bitsize;
-
-  /* Base instruction size (in bits).
-     For non-LIW cpus this is generally the length of the smallest insn.
-     For LIW cpus its wip (work-in-progress).  For the m32r its 32.  */
-  unsigned int base_insn_bitsize;
-
-  /* Minimum/maximum instruction size (in bits).  */
-  unsigned int min_insn_bitsize;
-  unsigned int max_insn_bitsize;
-
-  /* Instruction set variants.  */
-  const CGEN_ISA *isa_table;
-
-  /* Machine variants.  */
-  const CGEN_MACH *mach_table;
-
-  /* Hardware elements.  */
-  CGEN_HW_TABLE hw_table;
-
-  /* Instruction fields.  */
-  const CGEN_IFLD *ifld_table;
-
-  /* Operands.  */
-  CGEN_OPERAND_TABLE operand_table;
-
-  /* Main instruction table.  */
-  CGEN_INSN_TABLE insn_table;
-#define CGEN_CPU_INSN_TABLE(cd) (& (cd)->insn_table)
-
-  /* Macro instructions are defined separately and are combined with real
-     insns during hash table computation.  */
-  CGEN_INSN_TABLE macro_insn_table;
-
-  /* Copy of CGEN_INT_INSN_P.  */
-  int int_insn_p;
-
-  /* Called to rebuild the tables after something has changed.  */
-  void (*rebuild_tables) (CGEN_CPU_DESC);
-
-  /* Operand parser callback.  */
-  cgen_parse_operand_fn * parse_operand_fn;
-
-  /* Parse/insert/extract/print cover fns for operands.  */
-  const char * (*parse_operand)
-    (CGEN_CPU_DESC, int opindex_, const char **, CGEN_FIELDS *fields_);
-#ifdef __BFD_H_SEEN__
-  const char * (*insert_operand)
-    (CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_,
-     CGEN_INSN_BYTES_PTR, bfd_vma pc_);
-  int (*extract_operand)
-    (CGEN_CPU_DESC, int opindex_, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
-     CGEN_FIELDS *fields_, bfd_vma pc_);
-  void (*print_operand)
-    (CGEN_CPU_DESC, int opindex_, void * info_, CGEN_FIELDS * fields_,
-     void const *attrs_, bfd_vma pc_, int length_);
-#else
-  const char * (*insert_operand) ();
-  int (*extract_operand) ();
-  void (*print_operand) ();
-#endif
-#define CGEN_CPU_PARSE_OPERAND(cd) ((cd)->parse_operand)
-#define CGEN_CPU_INSERT_OPERAND(cd) ((cd)->insert_operand)
-#define CGEN_CPU_EXTRACT_OPERAND(cd) ((cd)->extract_operand)
-#define CGEN_CPU_PRINT_OPERAND(cd) ((cd)->print_operand)
-
-  /* Size of CGEN_FIELDS struct.  */
-  unsigned int sizeof_fields;
-#define CGEN_CPU_SIZEOF_FIELDS(cd) ((cd)->sizeof_fields)
-
-  /* Set the bitsize field.  */
-  void (*set_fields_bitsize) (CGEN_FIELDS *fields_, int size_);
-#define CGEN_CPU_SET_FIELDS_BITSIZE(cd) ((cd)->set_fields_bitsize)
-
-  /* CGEN_FIELDS accessors.  */
-  int (*get_int_operand)
-    (CGEN_CPU_DESC, int opindex_, const CGEN_FIELDS *fields_);
-  void (*set_int_operand)
-    (CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, int value_);
-#ifdef __BFD_H_SEEN__
-  bfd_vma (*get_vma_operand)
-    (CGEN_CPU_DESC, int opindex_, const CGEN_FIELDS *fields_);
-  void (*set_vma_operand)
-    (CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, bfd_vma value_);
-#else
-  long (*get_vma_operand) ();
-  void (*set_vma_operand) ();
-#endif
-#define CGEN_CPU_GET_INT_OPERAND(cd) ((cd)->get_int_operand)
-#define CGEN_CPU_SET_INT_OPERAND(cd) ((cd)->set_int_operand)
-#define CGEN_CPU_GET_VMA_OPERAND(cd) ((cd)->get_vma_operand)
-#define CGEN_CPU_SET_VMA_OPERAND(cd) ((cd)->set_vma_operand)
-
-  /* Instruction parse/insert/extract/print handlers.  */
-  /* FIXME: make these types uppercase.  */
-  cgen_parse_fn * const *parse_handlers;
-  cgen_insert_fn * const *insert_handlers;
-  cgen_extract_fn * const *extract_handlers;
-  cgen_print_fn * const *print_handlers;
-#define CGEN_PARSE_FN(cd, insn)   (cd->parse_handlers[(insn)->opcode->handlers.parse])
-#define CGEN_INSERT_FN(cd, insn)  (cd->insert_handlers[(insn)->opcode->handlers.insert])
-#define CGEN_EXTRACT_FN(cd, insn) (cd->extract_handlers[(insn)->opcode->handlers.extract])
-#define CGEN_PRINT_FN(cd, insn)   (cd->print_handlers[(insn)->opcode->handlers.print])
-
-  /* Return non-zero if insn should be added to hash table.  */
-  int (* asm_hash_p) (const CGEN_INSN *);
-
-  /* Assembler hash function.  */
-  unsigned int (* asm_hash) (const char *);
-
-  /* Number of entries in assembler hash table.  */
-  unsigned int asm_hash_size;
-
-  /* Return non-zero if insn should be added to hash table.  */
-  int (* dis_hash_p) (const CGEN_INSN *);
-
-  /* Disassembler hash function.  */
-  unsigned int (* dis_hash) (const char *, CGEN_INSN_INT);
-
-  /* Number of entries in disassembler hash table.  */
-  unsigned int dis_hash_size;
-
-  /* Assembler instruction hash table.  */
-  CGEN_INSN_LIST **asm_hash_table;
-  CGEN_INSN_LIST *asm_hash_table_entries;
-
-  /* Disassembler instruction hash table.  */
-  CGEN_INSN_LIST **dis_hash_table;
-  CGEN_INSN_LIST *dis_hash_table_entries;
-
-  /* This field could be turned into a bitfield if room for other flags is needed.  */
-  unsigned int signed_overflow_ok_p;
-       
-} CGEN_CPU_TABLE;
-
-/* wip */
-#ifndef CGEN_WORD_ENDIAN
-#define CGEN_WORD_ENDIAN(cd) CGEN_CPU_ENDIAN (cd)
-#endif
-#ifndef CGEN_INSN_WORD_ENDIAN
-#define CGEN_INSN_WORD_ENDIAN(cd) CGEN_CPU_INSN_ENDIAN (cd)
-#endif
-
-/* Prototypes of major functions.  */
-/* FIXME: Move more CGEN_SYM-defined functions into CGEN_CPU_DESC.
-   Not the init fns though, as that would drag in things that mightn't be
-   used and might not even exist.  */
-
-/* Argument types to cpu_open.  */
-
-enum cgen_cpu_open_arg {
-  CGEN_CPU_OPEN_END,
-  /* Select instruction set(s), arg is bitmap or 0 meaning "unspecified".  */
-  CGEN_CPU_OPEN_ISAS,
-  /* Select machine(s), arg is bitmap or 0 meaning "unspecified".  */
-  CGEN_CPU_OPEN_MACHS,
-  /* Select machine, arg is mach's bfd name.
-     Multiple machines can be specified by repeated use.  */
-  CGEN_CPU_OPEN_BFDMACH,
-  /* Select endian, arg is CGEN_ENDIAN_*.  */
-  CGEN_CPU_OPEN_ENDIAN
-};
-
-/* Open a cpu descriptor table for use.
-   ??? We only support ISO C stdargs here, not K&R.
-   Laziness, plus experiment to see if anything requires K&R - eventually
-   K&R will no longer be supported - e.g. GDB is currently trying this.  */
-
-extern CGEN_CPU_DESC CGEN_SYM (cpu_open) (enum cgen_cpu_open_arg, ...);
-
-/* Cover fn to handle simple case.  */
-
-extern CGEN_CPU_DESC CGEN_SYM (cpu_open_1)
-   (const char *mach_name_, enum cgen_endian endian_);
-
-/* Close it.  */
-
-extern void CGEN_SYM (cpu_close) (CGEN_CPU_DESC);
-
-/* Initialize the opcode table for use.
-   Called by init_asm/init_dis.  */
-
-extern void CGEN_SYM (init_opcode_table) (CGEN_CPU_DESC cd_);
-
-/* build the insn selection regex.
-   called by init_opcode_table */
-
-extern char * CGEN_SYM(build_insn_regex) (CGEN_INSN *insn_);
-
-/* Initialize the ibld table for use.
-   Called by init_asm/init_dis.  */
-
-extern void CGEN_SYM (init_ibld_table) (CGEN_CPU_DESC cd_);
-
-/* Initialize an cpu table for assembler or disassembler use.
-   These must be called immediately after cpu_open.  */
-
-extern void CGEN_SYM (init_asm) (CGEN_CPU_DESC);
-extern void CGEN_SYM (init_dis) (CGEN_CPU_DESC);
-
-/* Initialize the operand instance table for use.  */
-
-extern void CGEN_SYM (init_opinst_table) (CGEN_CPU_DESC cd_);
-
-/* Assemble an instruction.  */
-
-extern const CGEN_INSN * CGEN_SYM (assemble_insn)
-  (CGEN_CPU_DESC, const char *, CGEN_FIELDS *,
-   CGEN_INSN_BYTES_PTR, char **);
-
-extern const CGEN_KEYWORD CGEN_SYM (operand_mach);
-extern int CGEN_SYM (get_mach) (const char *);
-
-/* Operand index computation.  */
-extern const CGEN_INSN * cgen_lookup_insn
-  (CGEN_CPU_DESC, const CGEN_INSN * insn_,
-   CGEN_INSN_INT int_value_, unsigned char *bytes_value_,
-   int length_, CGEN_FIELDS *fields_, int alias_p_);
-extern void cgen_get_insn_operands
-  (CGEN_CPU_DESC, const CGEN_INSN * insn_,
-   const CGEN_FIELDS *fields_, int *indices_);
-extern const CGEN_INSN * cgen_lookup_get_insn_operands
-  (CGEN_CPU_DESC, const CGEN_INSN *insn_,
-   CGEN_INSN_INT int_value_, unsigned char *bytes_value_,
-   int length_, int *indices_, CGEN_FIELDS *fields_);
-
-/* Cover fns to bfd_get/set.  */
-
-extern CGEN_INSN_INT cgen_get_insn_value
-  (CGEN_CPU_DESC, unsigned char *, int);
-extern void cgen_put_insn_value
-  (CGEN_CPU_DESC, unsigned char *, int, CGEN_INSN_INT);
-
-/* Read in a cpu description file.
-   ??? For future concerns, including adding instructions to the assembler/
-   disassembler at run-time.  */
-
-extern const char * cgen_read_cpu_file (CGEN_CPU_DESC, const char * filename_);
-
-/* Allow signed overflow of instruction fields.  */
-extern void cgen_set_signed_overflow_ok (CGEN_CPU_DESC);
-
-/* Generate an error message if a signed field in an instruction overflows.  */
-extern void cgen_clear_signed_overflow_ok (CGEN_CPU_DESC);
-
-/* Will an error message be generated if a signed field in an instruction overflows ? */
-extern unsigned int cgen_signed_overflow_ok_p (CGEN_CPU_DESC);
-
-#endif /* CGEN_H */
diff --git a/include/opcode/convex.h b/include/opcode/convex.h
deleted file mode 100644
index 7843dce..0000000
--- a/include/opcode/convex.h
+++ /dev/null
@@ -1,1707 +0,0 @@
-/* Information for instruction disassembly on the Convex.
-   Copyright 1989, 1993, 2002 Free Software Foundation, Inc.
-
-This file is part of GDB.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#define xxx 0
-#define rrr 1
-#define rr 2
-#define rxr 3
-#define r 4
-#define nops 5
-#define nr 6
-#define pcrel 7
-#define lr 8
-#define rxl 9
-#define rlr 10
-#define rrl 11
-#define iml 12
-#define imr 13
-#define a1r 14
-#define a1l 15
-#define a2r 16
-#define a2l 17
-#define a3 18
-#define a4 19
-#define a5 20
-#define V 1
-#define S 2
-#define VM 3
-#define A 4
-#define VL 5
-#define VS 6
-#define VLS 7
-#define PSW 8
-/* Prevent an error during "make depend".  */
-#if !defined (PC)
-#define PC 9
-#endif
-#define ITR 10
-#define VV 11
-#define ITSR 12
-#define TOC 13
-#define CIR 14
-#define TTR 15
-#define VMU 16
-#define VML 17
-#define ICR 18
-#define TCPU 19
-#define CPUID 20
-#define TID 21
-
-const char *op[] = {
-  "",
-  "v0\0v1\0v2\0v3\0v4\0v5\0v6\0v7",
-  "s0\0s1\0s2\0s3\0s4\0s5\0s6\0s7",
-  "vm",
-  "sp\0a1\0a2\0a3\0a4\0a5\0ap\0fp",
-  "vl",
-  "vs",
-  "vls",
-  "psw",
-  "pc",
-  "itr",
-  "vv",
-  "itsr",
-  "toc",
-  "cir",
-  "ttr",
-  "vmu",
-  "vml",
-  "icr",
-  "tcpu",
-  "cpuid",
-  "tid",
-};
-
-const struct formstr format0[] = {
-  {0,0,rrr,V,S,S},	/* mov */
-  {0,0,rrr,S,S,V},	/* mov */
-  {1,1,rrr,V,V,V},	/* merg.t */
-  {2,1,rrr,V,V,V},	/* mask.t */
-  {1,2,rrr,V,S,V},	/* merg.f */
-  {2,2,rrr,V,S,V},	/* mask.f */
-  {1,1,rrr,V,S,V},	/* merg.t */
-  {2,1,rrr,V,S,V},	/* mask.t */
-  {3,3,rrr,V,V,V},	/* mul.s */
-  {3,4,rrr,V,V,V},	/* mul.d */
-  {4,3,rrr,V,V,V},	/* div.s */
-  {4,4,rrr,V,V,V},	/* div.d */
-  {3,3,rrr,V,S,V},	/* mul.s */
-  {3,4,rrr,V,S,V},	/* mul.d */
-  {4,3,rrr,V,S,V},	/* div.s */
-  {4,4,rrr,V,S,V},	/* div.d */
-  {5,0,rrr,V,V,V},	/* and */
-  {6,0,rrr,V,V,V},	/* or */
-  {7,0,rrr,V,V,V},	/* xor */
-  {8,0,rrr,V,V,V},	/* shf */
-  {5,0,rrr,V,S,V},	/* and */
-  {6,0,rrr,V,S,V},	/* or */
-  {7,0,rrr,V,S,V},	/* xor */
-  {8,0,rrr,V,S,V},	/* shf */
-  {9,3,rrr,V,V,V},	/* add.s */
-  {9,4,rrr,V,V,V},	/* add.d */
-  {10,3,rrr,V,V,V},	/* sub.s */
-  {10,4,rrr,V,V,V},	/* sub.d */
-  {9,3,rrr,V,S,V},	/* add.s */
-  {9,4,rrr,V,S,V},	/* add.d */
-  {10,3,rrr,V,S,V},	/* sub.s */
-  {10,4,rrr,V,S,V},	/* sub.d */
-  {9,5,rrr,V,V,V},	/* add.b */
-  {9,6,rrr,V,V,V},	/* add.h */
-  {9,7,rrr,V,V,V},	/* add.w */
-  {9,8,rrr,V,V,V},	/* add.l */
-  {9,5,rrr,V,S,V},	/* add.b */
-  {9,6,rrr,V,S,V},	/* add.h */
-  {9,7,rrr,V,S,V},	/* add.w */
-  {9,8,rrr,V,S,V},	/* add.l */
-  {10,5,rrr,V,V,V},	/* sub.b */
-  {10,6,rrr,V,V,V},	/* sub.h */
-  {10,7,rrr,V,V,V},	/* sub.w */
-  {10,8,rrr,V,V,V},	/* sub.l */
-  {10,5,rrr,V,S,V},	/* sub.b */
-  {10,6,rrr,V,S,V},	/* sub.h */
-  {10,7,rrr,V,S,V},	/* sub.w */
-  {10,8,rrr,V,S,V},	/* sub.l */
-  {3,5,rrr,V,V,V},	/* mul.b */
-  {3,6,rrr,V,V,V},	/* mul.h */
-  {3,7,rrr,V,V,V},	/* mul.w */
-  {3,8,rrr,V,V,V},	/* mul.l */
-  {3,5,rrr,V,S,V},	/* mul.b */
-  {3,6,rrr,V,S,V},	/* mul.h */
-  {3,7,rrr,V,S,V},	/* mul.w */
-  {3,8,rrr,V,S,V},	/* mul.l */
-  {4,5,rrr,V,V,V},	/* div.b */
-  {4,6,rrr,V,V,V},	/* div.h */
-  {4,7,rrr,V,V,V},	/* div.w */
-  {4,8,rrr,V,V,V},	/* div.l */
-  {4,5,rrr,V,S,V},	/* div.b */
-  {4,6,rrr,V,S,V},	/* div.h */
-  {4,7,rrr,V,S,V},	/* div.w */
-  {4,8,rrr,V,S,V},	/* div.l */
-};
-
-const struct formstr format1[] = {
-  {11,0,xxx,0,0,0},	/* exit */
-  {12,0,a3,0,0,0},	/* jmp */
-  {13,2,a3,0,0,0},	/* jmpi.f */
-  {13,1,a3,0,0,0},	/* jmpi.t */
-  {14,2,a3,0,0,0},	/* jmpa.f */
-  {14,1,a3,0,0,0},	/* jmpa.t */
-  {15,2,a3,0,0,0},	/* jmps.f */
-  {15,1,a3,0,0,0},	/* jmps.t */
-  {16,0,a3,0,0,0},	/* tac */
-  {17,0,a1r,A,0,0},	/* ldea */
-  {18,8,a1l,VLS,0,0},	/* ld.l */
-  {18,9,a1l,VM,0,0},	/* ld.x */
-  {19,0,a3,0,0,0},	/* tas */
-  {20,0,a3,0,0,0},	/* pshea */
-  {21,8,a2l,VLS,0,0},	/* st.l */
-  {21,9,a2l,VM,0,0},	/* st.x */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {22,0,a3,0,0,0},	/* call */
-  {23,0,a3,0,0,0},	/* calls */
-  {24,0,a3,0,0,0},	/* callq */
-  {25,0,a1r,A,0,0},	/* pfork */
-  {26,5,a2r,S,0,0},	/* ste.b */
-  {26,6,a2r,S,0,0},	/* ste.h */
-  {26,7,a2r,S,0,0},	/* ste.w */
-  {26,8,a2r,S,0,0},	/* ste.l */
-  {18,5,a1r,A,0,0},	/* ld.b */
-  {18,6,a1r,A,0,0},	/* ld.h */
-  {18,7,a1r,A,0,0},	/* ld.w */
-  {27,7,a1r,A,0,0},	/* incr.w */
-  {21,5,a2r,A,0,0},	/* st.b */
-  {21,6,a2r,A,0,0},	/* st.h */
-  {21,7,a2r,A,0,0},	/* st.w */
-  {27,8,a1r,S,0,0},	/* incr.l */
-  {18,5,a1r,S,0,0},	/* ld.b */
-  {18,6,a1r,S,0,0},	/* ld.h */
-  {18,7,a1r,S,0,0},	/* ld.w */
-  {18,8,a1r,S,0,0},	/* ld.l */
-  {21,5,a2r,S,0,0},	/* st.b */
-  {21,6,a2r,S,0,0},	/* st.h */
-  {21,7,a2r,S,0,0},	/* st.w */
-  {21,8,a2r,S,0,0},	/* st.l */
-  {18,5,a1r,V,0,0},	/* ld.b */
-  {18,6,a1r,V,0,0},	/* ld.h */
-  {18,7,a1r,V,0,0},	/* ld.w */
-  {18,8,a1r,V,0,0},	/* ld.l */
-  {21,5,a2r,V,0,0},	/* st.b */
-  {21,6,a2r,V,0,0},	/* st.h */
-  {21,7,a2r,V,0,0},	/* st.w */
-  {21,8,a2r,V,0,0},	/* st.l */
-};
-
-const struct formstr format2[] = {
-  {28,5,rr,A,A,0},	/* cvtw.b */
-  {28,6,rr,A,A,0},	/* cvtw.h */
-  {29,7,rr,A,A,0},	/* cvtb.w */
-  {30,7,rr,A,A,0},	/* cvth.w */
-  {28,5,rr,S,S,0},	/* cvtw.b */
-  {28,6,rr,S,S,0},	/* cvtw.h */
-  {29,7,rr,S,S,0},	/* cvtb.w */
-  {30,7,rr,S,S,0},	/* cvth.w */
-  {28,3,rr,S,S,0},	/* cvtw.s */
-  {31,7,rr,S,S,0},	/* cvts.w */
-  {32,3,rr,S,S,0},	/* cvtd.s */
-  {31,4,rr,S,S,0},	/* cvts.d */
-  {31,8,rr,S,S,0},	/* cvts.l */
-  {32,8,rr,S,S,0},	/* cvtd.l */
-  {33,3,rr,S,S,0},	/* cvtl.s */
-  {33,4,rr,S,S,0},	/* cvtl.d */
-  {34,0,rr,A,A,0},	/* ldpa */
-  {8,0,nr,A,0,0},	/* shf */
-  {18,6,nr,A,0,0},	/* ld.h */
-  {18,7,nr,A,0,0},	/* ld.w */
-  {33,7,rr,S,S,0},	/* cvtl.w */
-  {28,8,rr,S,S,0},	/* cvtw.l */
-  {35,1,rr,S,S,0},	/* plc.t */
-  {36,0,rr,S,S,0},	/* tzc */
-  {37,6,rr,A,A,0},	/* eq.h */
-  {37,7,rr,A,A,0},	/* eq.w */
-  {37,6,nr,A,0,0},	/* eq.h */
-  {37,7,nr,A,0,0},	/* eq.w */
-  {37,5,rr,S,S,0},	/* eq.b */
-  {37,6,rr,S,S,0},	/* eq.h */
-  {37,7,rr,S,S,0},	/* eq.w */
-  {37,8,rr,S,S,0},	/* eq.l */
-  {38,6,rr,A,A,0},	/* leu.h */
-  {38,7,rr,A,A,0},	/* leu.w */
-  {38,6,nr,A,0,0},	/* leu.h */
-  {38,7,nr,A,0,0},	/* leu.w */
-  {38,5,rr,S,S,0},	/* leu.b */
-  {38,6,rr,S,S,0},	/* leu.h */
-  {38,7,rr,S,S,0},	/* leu.w */
-  {38,8,rr,S,S,0},	/* leu.l */
-  {39,6,rr,A,A,0},	/* ltu.h */
-  {39,7,rr,A,A,0},	/* ltu.w */
-  {39,6,nr,A,0,0},	/* ltu.h */
-  {39,7,nr,A,0,0},	/* ltu.w */
-  {39,5,rr,S,S,0},	/* ltu.b */
-  {39,6,rr,S,S,0},	/* ltu.h */
-  {39,7,rr,S,S,0},	/* ltu.w */
-  {39,8,rr,S,S,0},	/* ltu.l */
-  {40,6,rr,A,A,0},	/* le.h */
-  {40,7,rr,A,A,0},	/* le.w */
-  {40,6,nr,A,0,0},	/* le.h */
-  {40,7,nr,A,0,0},	/* le.w */
-  {40,5,rr,S,S,0},	/* le.b */
-  {40,6,rr,S,S,0},	/* le.h */
-  {40,7,rr,S,S,0},	/* le.w */
-  {40,8,rr,S,S,0},	/* le.l */
-  {41,6,rr,A,A,0},	/* lt.h */
-  {41,7,rr,A,A,0},	/* lt.w */
-  {41,6,nr,A,0,0},	/* lt.h */
-  {41,7,nr,A,0,0},	/* lt.w */
-  {41,5,rr,S,S,0},	/* lt.b */
-  {41,6,rr,S,S,0},	/* lt.h */
-  {41,7,rr,S,S,0},	/* lt.w */
-  {41,8,rr,S,S,0},	/* lt.l */
-  {9,7,rr,S,A,0},	/* add.w */
-  {8,0,rr,A,A,0},	/* shf */
-  {0,0,rr,A,A,0},	/* mov */
-  {0,0,rr,S,A,0},	/* mov */
-  {0,7,rr,S,S,0},	/* mov.w */
-  {8,0,rr,S,S,0},	/* shf */
-  {0,0,rr,S,S,0},	/* mov */
-  {0,0,rr,A,S,0},	/* mov */
-  {5,0,rr,A,A,0},	/* and */
-  {6,0,rr,A,A,0},	/* or */
-  {7,0,rr,A,A,0},	/* xor */
-  {42,0,rr,A,A,0},	/* not */
-  {5,0,rr,S,S,0},	/* and */
-  {6,0,rr,S,S,0},	/* or */
-  {7,0,rr,S,S,0},	/* xor */
-  {42,0,rr,S,S,0},	/* not */
-  {40,3,rr,S,S,0},	/* le.s */
-  {40,4,rr,S,S,0},	/* le.d */
-  {41,3,rr,S,S,0},	/* lt.s */
-  {41,4,rr,S,S,0},	/* lt.d */
-  {9,3,rr,S,S,0},	/* add.s */
-  {9,4,rr,S,S,0},	/* add.d */
-  {10,3,rr,S,S,0},	/* sub.s */
-  {10,4,rr,S,S,0},	/* sub.d */
-  {37,3,rr,S,S,0},	/* eq.s */
-  {37,4,rr,S,S,0},	/* eq.d */
-  {43,6,rr,A,A,0},	/* neg.h */
-  {43,7,rr,A,A,0},	/* neg.w */
-  {3,3,rr,S,S,0},	/* mul.s */
-  {3,4,rr,S,S,0},	/* mul.d */
-  {4,3,rr,S,S,0},	/* div.s */
-  {4,4,rr,S,S,0},	/* div.d */
-  {9,6,rr,A,A,0},	/* add.h */
-  {9,7,rr,A,A,0},	/* add.w */
-  {9,6,nr,A,0,0},	/* add.h */
-  {9,7,nr,A,0,0},	/* add.w */
-  {9,5,rr,S,S,0},	/* add.b */
-  {9,6,rr,S,S,0},	/* add.h */
-  {9,7,rr,S,S,0},	/* add.w */
-  {9,8,rr,S,S,0},	/* add.l */
-  {10,6,rr,A,A,0},	/* sub.h */
-  {10,7,rr,A,A,0},	/* sub.w */
-  {10,6,nr,A,0,0},	/* sub.h */
-  {10,7,nr,A,0,0},	/* sub.w */
-  {10,5,rr,S,S,0},	/* sub.b */
-  {10,6,rr,S,S,0},	/* sub.h */
-  {10,7,rr,S,S,0},	/* sub.w */
-  {10,8,rr,S,S,0},	/* sub.l */
-  {3,6,rr,A,A,0},	/* mul.h */
-  {3,7,rr,A,A,0},	/* mul.w */
-  {3,6,nr,A,0,0},	/* mul.h */
-  {3,7,nr,A,0,0},	/* mul.w */
-  {3,5,rr,S,S,0},	/* mul.b */
-  {3,6,rr,S,S,0},	/* mul.h */
-  {3,7,rr,S,S,0},	/* mul.w */
-  {3,8,rr,S,S,0},	/* mul.l */
-  {4,6,rr,A,A,0},	/* div.h */
-  {4,7,rr,A,A,0},	/* div.w */
-  {4,6,nr,A,0,0},	/* div.h */
-  {4,7,nr,A,0,0},	/* div.w */
-  {4,5,rr,S,S,0},	/* div.b */
-  {4,6,rr,S,S,0},	/* div.h */
-  {4,7,rr,S,S,0},	/* div.w */
-  {4,8,rr,S,S,0},	/* div.l */
-};
-
-const struct formstr format3[] = {
-  {32,3,rr,V,V,0},	/* cvtd.s */
-  {31,4,rr,V,V,0},	/* cvts.d */
-  {33,4,rr,V,V,0},	/* cvtl.d */
-  {32,8,rr,V,V,0},	/* cvtd.l */
-  {0,0,rrl,S,S,VM},	/* mov */
-  {0,0,rlr,S,VM,S},	/* mov */
-  {0,0,0,0,0,0},
-  {44,0,rr,S,S,0},	/* lop */
-  {36,0,rr,V,V,0},	/* tzc */
-  {44,0,rr,V,V,0},	/* lop */
-  {0,0,0,0,0,0},
-  {42,0,rr,V,V,0},	/* not */
-  {8,0,rr,S,V,0},	/* shf */
-  {35,1,rr,V,V,0},	/* plc.t */
-  {45,2,rr,V,V,0},	/* cprs.f */
-  {45,1,rr,V,V,0},	/* cprs.t */
-  {37,3,rr,V,V,0},	/* eq.s */
-  {37,4,rr,V,V,0},	/* eq.d */
-  {43,3,rr,V,V,0},	/* neg.s */
-  {43,4,rr,V,V,0},	/* neg.d */
-  {37,3,rr,S,V,0},	/* eq.s */
-  {37,4,rr,S,V,0},	/* eq.d */
-  {43,3,rr,S,S,0},	/* neg.s */
-  {43,4,rr,S,S,0},	/* neg.d */
-  {40,3,rr,V,V,0},	/* le.s */
-  {40,4,rr,V,V,0},	/* le.d */
-  {41,3,rr,V,V,0},	/* lt.s */
-  {41,4,rr,V,V,0},	/* lt.d */
-  {40,3,rr,S,V,0},	/* le.s */
-  {40,4,rr,S,V,0},	/* le.d */
-  {41,3,rr,S,V,0},	/* lt.s */
-  {41,4,rr,S,V,0},	/* lt.d */
-  {37,5,rr,V,V,0},	/* eq.b */
-  {37,6,rr,V,V,0},	/* eq.h */
-  {37,7,rr,V,V,0},	/* eq.w */
-  {37,8,rr,V,V,0},	/* eq.l */
-  {37,5,rr,S,V,0},	/* eq.b */
-  {37,6,rr,S,V,0},	/* eq.h */
-  {37,7,rr,S,V,0},	/* eq.w */
-  {37,8,rr,S,V,0},	/* eq.l */
-  {40,5,rr,V,V,0},	/* le.b */
-  {40,6,rr,V,V,0},	/* le.h */
-  {40,7,rr,V,V,0},	/* le.w */
-  {40,8,rr,V,V,0},	/* le.l */
-  {40,5,rr,S,V,0},	/* le.b */
-  {40,6,rr,S,V,0},	/* le.h */
-  {40,7,rr,S,V,0},	/* le.w */
-  {40,8,rr,S,V,0},	/* le.l */
-  {41,5,rr,V,V,0},	/* lt.b */
-  {41,6,rr,V,V,0},	/* lt.h */
-  {41,7,rr,V,V,0},	/* lt.w */
-  {41,8,rr,V,V,0},	/* lt.l */
-  {41,5,rr,S,V,0},	/* lt.b */
-  {41,6,rr,S,V,0},	/* lt.h */
-  {41,7,rr,S,V,0},	/* lt.w */
-  {41,8,rr,S,V,0},	/* lt.l */
-  {43,5,rr,V,V,0},	/* neg.b */
-  {43,6,rr,V,V,0},	/* neg.h */
-  {43,7,rr,V,V,0},	/* neg.w */
-  {43,8,rr,V,V,0},	/* neg.l */
-  {43,5,rr,S,S,0},	/* neg.b */
-  {43,6,rr,S,S,0},	/* neg.h */
-  {43,7,rr,S,S,0},	/* neg.w */
-  {43,8,rr,S,S,0},	/* neg.l */
-};
-
-const struct formstr format4[] = {
-  {46,0,nops,0,0,0},	/* nop */
-  {47,0,pcrel,0,0,0},	/* br */
-  {48,2,pcrel,0,0,0},	/* bri.f */
-  {48,1,pcrel,0,0,0},	/* bri.t */
-  {49,2,pcrel,0,0,0},	/* bra.f */
-  {49,1,pcrel,0,0,0},	/* bra.t */
-  {50,2,pcrel,0,0,0},	/* brs.f */
-  {50,1,pcrel,0,0,0},	/* brs.t */
-};
-
-const struct formstr format5[] = {
-  {51,5,rr,V,V,0},	/* ldvi.b */
-  {51,6,rr,V,V,0},	/* ldvi.h */
-  {51,7,rr,V,V,0},	/* ldvi.w */
-  {51,8,rr,V,V,0},	/* ldvi.l */
-  {28,3,rr,V,V,0},	/* cvtw.s */
-  {31,7,rr,V,V,0},	/* cvts.w */
-  {28,8,rr,V,V,0},	/* cvtw.l */
-  {33,7,rr,V,V,0},	/* cvtl.w */
-  {52,5,rxr,V,V,0},	/* stvi.b */
-  {52,6,rxr,V,V,0},	/* stvi.h */
-  {52,7,rxr,V,V,0},	/* stvi.w */
-  {52,8,rxr,V,V,0},	/* stvi.l */
-  {52,5,rxr,S,V,0},	/* stvi.b */
-  {52,6,rxr,S,V,0},	/* stvi.h */
-  {52,7,rxr,S,V,0},	/* stvi.w */
-  {52,8,rxr,S,V,0},	/* stvi.l */
-};
-
-const struct formstr format6[] = {
-  {53,0,r,A,0,0},	/* ldsdr */
-  {54,0,r,A,0,0},	/* ldkdr */
-  {55,3,r,S,0,0},	/* ln.s */
-  {55,4,r,S,0,0},	/* ln.d */
-  {56,0,nops,0,0,0},	/* patu */
-  {57,0,r,A,0,0},	/* pate */
-  {58,0,nops,0,0,0},	/* pich */
-  {59,0,nops,0,0,0},	/* plch */
-  {0,0,lr,PSW,A,0},	/* mov */
-  {0,0,rxl,A,PSW,0},	/* mov */
-  {0,0,lr,PC,A,0},	/* mov */
-  {60,0,r,S,0,0},	/* idle */
-  {0,0,lr,ITR,S,0},	/* mov */
-  {0,0,rxl,S,ITR,0},	/* mov */
-  {0,0,0,0,0,0},
-  {0,0,rxl,S,ITSR,0},	/* mov */
-  {61,0,nops,0,0,0},	/* rtnq */
-  {62,0,nops,0,0,0},	/* cfork */
-  {63,0,nops,0,0,0},	/* rtn */
-  {64,0,nops,0,0,0},	/* wfork */
-  {65,0,nops,0,0,0},	/* join */
-  {66,0,nops,0,0,0},	/* rtnc */
-  {67,3,r,S,0,0},	/* exp.s */
-  {67,4,r,S,0,0},	/* exp.d */
-  {68,3,r,S,0,0},	/* sin.s */
-  {68,4,r,S,0,0},	/* sin.d */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {69,3,r,S,0,0},	/* cos.s */
-  {69,4,r,S,0,0},	/* cos.d */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {70,7,r,A,0,0},	/* psh.w */
-  {0,0,0,0,0,0},
-  {71,7,r,A,0,0},	/* pop.w */
-  {0,0,0,0,0,0},
-  {70,7,r,S,0,0},	/* psh.w */
-  {70,8,r,S,0,0},	/* psh.l */
-  {71,7,r,S,0,0},	/* pop.w */
-  {71,8,r,S,0,0},	/* pop.l */
-  {72,0,nops,0,0,0},	/* eni */
-  {73,0,nops,0,0,0},	/* dsi */
-  {74,0,nops,0,0,0},	/* bkpt */
-  {75,0,nops,0,0,0},	/* msync */
-  {76,0,r,S,0,0},	/* mski */
-  {77,0,r,S,0,0},	/* xmti */
-  {0,0,rxl,S,VV,0},	/* mov */
-  {78,0,nops,0,0,0},	/* tstvv */
-  {0,0,lr,VS,A,0},	/* mov */
-  {0,0,rxl,A,VS,0},	/* mov */
-  {0,0,lr,VL,A,0},	/* mov */
-  {0,0,rxl,A,VL,0},	/* mov */
-  {0,7,lr,VS,S,0},	/* mov.w */
-  {0,7,rxl,S,VS,0},	/* mov.w */
-  {0,7,lr,VL,S,0},	/* mov.w */
-  {0,7,rxl,S,VL,0},	/* mov.w */
-  {79,0,r,A,0,0},	/* diag */
-  {80,0,nops,0,0,0},	/* pbkpt */
-  {81,3,r,S,0,0},	/* sqrt.s */
-  {81,4,r,S,0,0},	/* sqrt.d */
-  {82,0,nops,0,0,0},	/* casr */
-  {0,0,0,0,0,0},
-  {83,3,r,S,0,0},	/* atan.s */
-  {83,4,r,S,0,0},	/* atan.d */
-};
-
-const struct formstr format7[] = {
-  {84,5,r,V,0,0},	/* sum.b */
-  {84,6,r,V,0,0},	/* sum.h */
-  {84,7,r,V,0,0},	/* sum.w */
-  {84,8,r,V,0,0},	/* sum.l */
-  {85,0,r,V,0,0},	/* all */
-  {86,0,r,V,0,0},	/* any */
-  {87,0,r,V,0,0},	/* parity */
-  {0,0,0,0,0,0},
-  {88,5,r,V,0,0},	/* max.b */
-  {88,6,r,V,0,0},	/* max.h */
-  {88,7,r,V,0,0},	/* max.w */
-  {88,8,r,V,0,0},	/* max.l */
-  {89,5,r,V,0,0},	/* min.b */
-  {89,6,r,V,0,0},	/* min.h */
-  {89,7,r,V,0,0},	/* min.w */
-  {89,8,r,V,0,0},	/* min.l */
-  {84,3,r,V,0,0},	/* sum.s */
-  {84,4,r,V,0,0},	/* sum.d */
-  {90,3,r,V,0,0},	/* prod.s */
-  {90,4,r,V,0,0},	/* prod.d */
-  {88,3,r,V,0,0},	/* max.s */
-  {88,4,r,V,0,0},	/* max.d */
-  {89,3,r,V,0,0},	/* min.s */
-  {89,4,r,V,0,0},	/* min.d */
-  {90,5,r,V,0,0},	/* prod.b */
-  {90,6,r,V,0,0},	/* prod.h */
-  {90,7,r,V,0,0},	/* prod.w */
-  {90,8,r,V,0,0},	/* prod.l */
-  {35,2,lr,VM,S,0},	/* plc.f */
-  {35,1,lr,VM,S,0},	/* plc.t */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-};
-
-const struct formstr formatx[] = {
-  {0,0,0,0,0,0},
-};
-
-const struct formstr format1a[] = {
-  {91,0,imr,A,0,0},	/* halt */
-  {92,0,a4,0,0,0},	/* sysc */
-  {18,6,imr,A,0,0},	/* ld.h */
-  {18,7,imr,A,0,0},	/* ld.w */
-  {5,0,imr,A,0,0},	/* and */
-  {6,0,imr,A,0,0},	/* or */
-  {7,0,imr,A,0,0},	/* xor */
-  {8,0,imr,A,0,0},	/* shf */
-  {9,6,imr,A,0,0},	/* add.h */
-  {9,7,imr,A,0,0},	/* add.w */
-  {10,6,imr,A,0,0},	/* sub.h */
-  {10,7,imr,A,0,0},	/* sub.w */
-  {3,6,imr,A,0,0},	/* mul.h */
-  {3,7,imr,A,0,0},	/* mul.w */
-  {4,6,imr,A,0,0},	/* div.h */
-  {4,7,imr,A,0,0},	/* div.w */
-  {18,7,iml,VL,0,0},	/* ld.w */
-  {18,7,iml,VS,0,0},	/* ld.w */
-  {0,0,0,0,0,0},
-  {8,7,imr,S,0,0},	/* shf.w */
-  {93,0,a5,0,0,0},	/* trap */
-  {0,0,0,0,0,0},
-  {37,6,imr,A,0,0},	/* eq.h */
-  {37,7,imr,A,0,0},	/* eq.w */
-  {38,6,imr,A,0,0},	/* leu.h */
-  {38,7,imr,A,0,0},	/* leu.w */
-  {39,6,imr,A,0,0},	/* ltu.h */
-  {39,7,imr,A,0,0},	/* ltu.w */
-  {40,6,imr,A,0,0},	/* le.h */
-  {40,7,imr,A,0,0},	/* le.w */
-  {41,6,imr,A,0,0},	/* lt.h */
-  {41,7,imr,A,0,0},	/* lt.w */
-};
-
-const struct formstr format1b[] = {
-  {18,4,imr,S,0,0},	/* ld.d */
-  {18,10,imr,S,0,0},	/* ld.u */
-  {18,8,imr,S,0,0},	/* ld.l */
-  {18,7,imr,S,0,0},	/* ld.w */
-  {5,0,imr,S,0,0},	/* and */
-  {6,0,imr,S,0,0},	/* or */
-  {7,0,imr,S,0,0},	/* xor */
-  {8,0,imr,S,0,0},	/* shf */
-  {9,6,imr,S,0,0},	/* add.h */
-  {9,7,imr,S,0,0},	/* add.w */
-  {10,6,imr,S,0,0},	/* sub.h */
-  {10,7,imr,S,0,0},	/* sub.w */
-  {3,6,imr,S,0,0},	/* mul.h */
-  {3,7,imr,S,0,0},	/* mul.w */
-  {4,6,imr,S,0,0},	/* div.h */
-  {4,7,imr,S,0,0},	/* div.w */
-  {9,3,imr,S,0,0},	/* add.s */
-  {10,3,imr,S,0,0},	/* sub.s */
-  {3,3,imr,S,0,0},	/* mul.s */
-  {4,3,imr,S,0,0},	/* div.s */
-  {40,3,imr,S,0,0},	/* le.s */
-  {41,3,imr,S,0,0},	/* lt.s */
-  {37,6,imr,S,0,0},	/* eq.h */
-  {37,7,imr,S,0,0},	/* eq.w */
-  {38,6,imr,S,0,0},	/* leu.h */
-  {38,7,imr,S,0,0},	/* leu.w */
-  {39,6,imr,S,0,0},	/* ltu.h */
-  {39,7,imr,S,0,0},	/* ltu.w */
-  {40,6,imr,S,0,0},	/* le.h */
-  {40,7,imr,S,0,0},	/* le.w */
-  {41,6,imr,S,0,0},	/* lt.h */
-  {41,7,imr,S,0,0},	/* lt.w */
-};
-
-const struct formstr e0_format0[] = {
-  {10,3,rrr,S,V,V},	/* sub.s */
-  {10,4,rrr,S,V,V},	/* sub.d */
-  {4,3,rrr,S,V,V},	/* div.s */
-  {4,4,rrr,S,V,V},	/* div.d */
-  {10,11,rrr,S,V,V},	/* sub.s.f */
-  {10,12,rrr,S,V,V},	/* sub.d.f */
-  {4,11,rrr,S,V,V},	/* div.s.f */
-  {4,12,rrr,S,V,V},	/* div.d.f */
-  {3,11,rrr,V,V,V},	/* mul.s.f */
-  {3,12,rrr,V,V,V},	/* mul.d.f */
-  {4,11,rrr,V,V,V},	/* div.s.f */
-  {4,12,rrr,V,V,V},	/* div.d.f */
-  {3,11,rrr,V,S,V},	/* mul.s.f */
-  {3,12,rrr,V,S,V},	/* mul.d.f */
-  {4,11,rrr,V,S,V},	/* div.s.f */
-  {4,12,rrr,V,S,V},	/* div.d.f */
-  {5,2,rrr,V,V,V},	/* and.f */
-  {6,2,rrr,V,V,V},	/* or.f */
-  {7,2,rrr,V,V,V},	/* xor.f */
-  {8,2,rrr,V,V,V},	/* shf.f */
-  {5,2,rrr,V,S,V},	/* and.f */
-  {6,2,rrr,V,S,V},	/* or.f */
-  {7,2,rrr,V,S,V},	/* xor.f */
-  {8,2,rrr,V,S,V},	/* shf.f */
-  {9,11,rrr,V,V,V},	/* add.s.f */
-  {9,12,rrr,V,V,V},	/* add.d.f */
-  {10,11,rrr,V,V,V},	/* sub.s.f */
-  {10,12,rrr,V,V,V},	/* sub.d.f */
-  {9,11,rrr,V,S,V},	/* add.s.f */
-  {9,12,rrr,V,S,V},	/* add.d.f */
-  {10,11,rrr,V,S,V},	/* sub.s.f */
-  {10,12,rrr,V,S,V},	/* sub.d.f */
-  {9,13,rrr,V,V,V},	/* add.b.f */
-  {9,14,rrr,V,V,V},	/* add.h.f */
-  {9,15,rrr,V,V,V},	/* add.w.f */
-  {9,16,rrr,V,V,V},	/* add.l.f */
-  {9,13,rrr,V,S,V},	/* add.b.f */
-  {9,14,rrr,V,S,V},	/* add.h.f */
-  {9,15,rrr,V,S,V},	/* add.w.f */
-  {9,16,rrr,V,S,V},	/* add.l.f */
-  {10,13,rrr,V,V,V},	/* sub.b.f */
-  {10,14,rrr,V,V,V},	/* sub.h.f */
-  {10,15,rrr,V,V,V},	/* sub.w.f */
-  {10,16,rrr,V,V,V},	/* sub.l.f */
-  {10,13,rrr,V,S,V},	/* sub.b.f */
-  {10,14,rrr,V,S,V},	/* sub.h.f */
-  {10,15,rrr,V,S,V},	/* sub.w.f */
-  {10,16,rrr,V,S,V},	/* sub.l.f */
-  {3,13,rrr,V,V,V},	/* mul.b.f */
-  {3,14,rrr,V,V,V},	/* mul.h.f */
-  {3,15,rrr,V,V,V},	/* mul.w.f */
-  {3,16,rrr,V,V,V},	/* mul.l.f */
-  {3,13,rrr,V,S,V},	/* mul.b.f */
-  {3,14,rrr,V,S,V},	/* mul.h.f */
-  {3,15,rrr,V,S,V},	/* mul.w.f */
-  {3,16,rrr,V,S,V},	/* mul.l.f */
-  {4,13,rrr,V,V,V},	/* div.b.f */
-  {4,14,rrr,V,V,V},	/* div.h.f */
-  {4,15,rrr,V,V,V},	/* div.w.f */
-  {4,16,rrr,V,V,V},	/* div.l.f */
-  {4,13,rrr,V,S,V},	/* div.b.f */
-  {4,14,rrr,V,S,V},	/* div.h.f */
-  {4,15,rrr,V,S,V},	/* div.w.f */
-  {4,16,rrr,V,S,V},	/* div.l.f */
-};
-
-const struct formstr e0_format1[] = {
-  {0,0,0,0,0,0},
-  {94,0,a3,0,0,0},	/* tst */
-  {95,0,a3,0,0,0},	/* lck */
-  {96,0,a3,0,0,0},	/* ulk */
-  {17,0,a1r,S,0,0},	/* ldea */
-  {97,0,a1r,A,0,0},	/* spawn */
-  {98,0,a1r,A,0,0},	/* ldcmr */
-  {99,0,a2r,A,0,0},	/* stcmr */
-  {100,0,a1r,A,0,0},	/* popr */
-  {101,0,a2r,A,0,0},	/* pshr */
-  {102,7,a1r,A,0,0},	/* rcvr.w */
-  {103,7,a2r,A,0,0},	/* matm.w */
-  {104,7,a2r,A,0,0},	/* sndr.w */
-  {104,8,a2r,S,0,0},	/* sndr.l */
-  {102,8,a1r,S,0,0},	/* rcvr.l */
-  {103,8,a2r,S,0,0},	/* matm.l */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {105,7,a2r,A,0,0},	/* putr.w */
-  {105,8,a2r,S,0,0},	/* putr.l */
-  {106,7,a1r,A,0,0},	/* getr.w */
-  {106,8,a1r,S,0,0},	/* getr.l */
-  {26,13,a2r,S,0,0},	/* ste.b.f */
-  {26,14,a2r,S,0,0},	/* ste.h.f */
-  {26,15,a2r,S,0,0},	/* ste.w.f */
-  {26,16,a2r,S,0,0},	/* ste.l.f */
-  {107,7,a2r,A,0,0},	/* matr.w */
-  {108,7,a2r,A,0,0},	/* mat.w */
-  {109,7,a1r,A,0,0},	/* get.w */
-  {110,7,a1r,A,0,0},	/* rcv.w */
-  {0,0,0,0,0,0},
-  {111,7,a1r,A,0,0},	/* inc.w */
-  {112,7,a2r,A,0,0},	/* put.w */
-  {113,7,a2r,A,0,0},	/* snd.w */
-  {107,8,a2r,S,0,0},	/* matr.l */
-  {108,8,a2r,S,0,0},	/* mat.l */
-  {109,8,a1r,S,0,0},	/* get.l */
-  {110,8,a1r,S,0,0},	/* rcv.l */
-  {0,0,0,0,0,0},
-  {111,8,a1r,S,0,0},	/* inc.l */
-  {112,8,a2r,S,0,0},	/* put.l */
-  {113,8,a2r,S,0,0},	/* snd.l */
-  {18,13,a1r,V,0,0},	/* ld.b.f */
-  {18,14,a1r,V,0,0},	/* ld.h.f */
-  {18,15,a1r,V,0,0},	/* ld.w.f */
-  {18,16,a1r,V,0,0},	/* ld.l.f */
-  {21,13,a2r,V,0,0},	/* st.b.f */
-  {21,14,a2r,V,0,0},	/* st.h.f */
-  {21,15,a2r,V,0,0},	/* st.w.f */
-  {21,16,a2r,V,0,0},	/* st.l.f */
-};
-
-const struct formstr e0_format2[] = {
-  {28,5,rr,V,V,0},	/* cvtw.b */
-  {28,6,rr,V,V,0},	/* cvtw.h */
-  {29,7,rr,V,V,0},	/* cvtb.w */
-  {30,7,rr,V,V,0},	/* cvth.w */
-  {28,13,rr,V,V,0},	/* cvtw.b.f */
-  {28,14,rr,V,V,0},	/* cvtw.h.f */
-  {29,15,rr,V,V,0},	/* cvtb.w.f */
-  {30,15,rr,V,V,0},	/* cvth.w.f */
-  {31,8,rr,V,V,0},	/* cvts.l */
-  {32,7,rr,V,V,0},	/* cvtd.w */
-  {33,3,rr,V,V,0},	/* cvtl.s */
-  {28,4,rr,V,V,0},	/* cvtw.d */
-  {31,16,rr,V,V,0},	/* cvts.l.f */
-  {32,15,rr,V,V,0},	/* cvtd.w.f */
-  {33,11,rr,V,V,0},	/* cvtl.s.f */
-  {28,12,rr,V,V,0},	/* cvtw.d.f */
-  {114,0,rr,S,S,0},	/* enal */
-  {8,7,rr,S,S,0},	/* shf.w */
-  {115,0,rr,S,S,0},	/* enag */
-  {0,0,0,0,0,0},
-  {28,4,rr,S,S,0},	/* cvtw.d */
-  {32,7,rr,S,S,0},	/* cvtd.w */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {116,3,rr,S,S,0},	/* frint.s */
-  {116,4,rr,S,S,0},	/* frint.d */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {116,3,rr,V,V,0},	/* frint.s */
-  {116,4,rr,V,V,0},	/* frint.d */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {116,11,rr,V,V,0},	/* frint.s.f */
-  {116,12,rr,V,V,0},	/* frint.d.f */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {81,3,rr,V,V,0},	/* sqrt.s */
-  {81,4,rr,V,V,0},	/* sqrt.d */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {81,11,rr,V,V,0},	/* sqrt.s.f */
-  {81,12,rr,V,V,0},	/* sqrt.d.f */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-};
-
-const struct formstr e0_format3[] = {
-  {32,11,rr,V,V,0},	/* cvtd.s.f */
-  {31,12,rr,V,V,0},	/* cvts.d.f */
-  {33,12,rr,V,V,0},	/* cvtl.d.f */
-  {32,16,rr,V,V,0},	/* cvtd.l.f */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {36,2,rr,V,V,0},	/* tzc.f */
-  {44,2,rr,V,V,0},	/* lop.f */
-  {117,2,rr,V,V,0},	/* xpnd.f */
-  {42,2,rr,V,V,0},	/* not.f */
-  {8,2,rr,S,V,0},	/* shf.f */
-  {35,17,rr,V,V,0},	/* plc.t.f */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {37,11,rr,V,V,0},	/* eq.s.f */
-  {37,12,rr,V,V,0},	/* eq.d.f */
-  {43,11,rr,V,V,0},	/* neg.s.f */
-  {43,12,rr,V,V,0},	/* neg.d.f */
-  {37,11,rr,S,V,0},	/* eq.s.f */
-  {37,12,rr,S,V,0},	/* eq.d.f */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {40,11,rr,V,V,0},	/* le.s.f */
-  {40,12,rr,V,V,0},	/* le.d.f */
-  {41,11,rr,V,V,0},	/* lt.s.f */
-  {41,12,rr,V,V,0},	/* lt.d.f */
-  {40,11,rr,S,V,0},	/* le.s.f */
-  {40,12,rr,S,V,0},	/* le.d.f */
-  {41,11,rr,S,V,0},	/* lt.s.f */
-  {41,12,rr,S,V,0},	/* lt.d.f */
-  {37,13,rr,V,V,0},	/* eq.b.f */
-  {37,14,rr,V,V,0},	/* eq.h.f */
-  {37,15,rr,V,V,0},	/* eq.w.f */
-  {37,16,rr,V,V,0},	/* eq.l.f */
-  {37,13,rr,S,V,0},	/* eq.b.f */
-  {37,14,rr,S,V,0},	/* eq.h.f */
-  {37,15,rr,S,V,0},	/* eq.w.f */
-  {37,16,rr,S,V,0},	/* eq.l.f */
-  {40,13,rr,V,V,0},	/* le.b.f */
-  {40,14,rr,V,V,0},	/* le.h.f */
-  {40,15,rr,V,V,0},	/* le.w.f */
-  {40,16,rr,V,V,0},	/* le.l.f */
-  {40,13,rr,S,V,0},	/* le.b.f */
-  {40,14,rr,S,V,0},	/* le.h.f */
-  {40,15,rr,S,V,0},	/* le.w.f */
-  {40,16,rr,S,V,0},	/* le.l.f */
-  {41,13,rr,V,V,0},	/* lt.b.f */
-  {41,14,rr,V,V,0},	/* lt.h.f */
-  {41,15,rr,V,V,0},	/* lt.w.f */
-  {41,16,rr,V,V,0},	/* lt.l.f */
-  {41,13,rr,S,V,0},	/* lt.b.f */
-  {41,14,rr,S,V,0},	/* lt.h.f */
-  {41,15,rr,S,V,0},	/* lt.w.f */
-  {41,16,rr,S,V,0},	/* lt.l.f */
-  {43,13,rr,V,V,0},	/* neg.b.f */
-  {43,14,rr,V,V,0},	/* neg.h.f */
-  {43,15,rr,V,V,0},	/* neg.w.f */
-  {43,16,rr,V,V,0},	/* neg.l.f */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-};
-
-const struct formstr e0_format4[] = {
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-};
-
-const struct formstr e0_format5[] = {
-  {51,13,rr,V,V,0},	/* ldvi.b.f */
-  {51,14,rr,V,V,0},	/* ldvi.h.f */
-  {51,15,rr,V,V,0},	/* ldvi.w.f */
-  {51,16,rr,V,V,0},	/* ldvi.l.f */
-  {28,11,rr,V,V,0},	/* cvtw.s.f */
-  {31,15,rr,V,V,0},	/* cvts.w.f */
-  {28,16,rr,V,V,0},	/* cvtw.l.f */
-  {33,15,rr,V,V,0},	/* cvtl.w.f */
-  {52,13,rxr,V,V,0},	/* stvi.b.f */
-  {52,14,rxr,V,V,0},	/* stvi.h.f */
-  {52,15,rxr,V,V,0},	/* stvi.w.f */
-  {52,16,rxr,V,V,0},	/* stvi.l.f */
-  {52,13,rxr,S,V,0},	/* stvi.b.f */
-  {52,14,rxr,S,V,0},	/* stvi.h.f */
-  {52,15,rxr,S,V,0},	/* stvi.w.f */
-  {52,16,rxr,S,V,0},	/* stvi.l.f */
-};
-
-const struct formstr e0_format6[] = {
-  {0,0,rxl,S,CIR,0},	/* mov */
-  {0,0,lr,CIR,S,0},	/* mov */
-  {0,0,lr,TOC,S,0},	/* mov */
-  {0,0,lr,CPUID,S,0},	/* mov */
-  {0,0,rxl,S,TTR,0},	/* mov */
-  {0,0,lr,TTR,S,0},	/* mov */
-  {118,0,nops,0,0,0},	/* ctrsl */
-  {119,0,nops,0,0,0},	/* ctrsg */
-  {0,0,rxl,S,VMU,0},	/* mov */
-  {0,0,lr,VMU,S,0},	/* mov */
-  {0,0,rxl,S,VML,0},	/* mov */
-  {0,0,lr,VML,S,0},	/* mov */
-  {0,0,rxl,S,ICR,0},	/* mov */
-  {0,0,lr,ICR,S,0},	/* mov */
-  {0,0,rxl,S,TCPU,0},	/* mov */
-  {0,0,lr,TCPU,S,0},	/* mov */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {120,0,nops,0,0,0},	/* stop */
-  {0,0,0,0,0,0},
-  {0,0,rxl,S,TID,0},	/* mov */
-  {0,0,lr,TID,S,0},	/* mov */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-};
-
-const struct formstr e0_format7[] = {
-  {84,13,r,V,0,0},	/* sum.b.f */
-  {84,14,r,V,0,0},	/* sum.h.f */
-  {84,15,r,V,0,0},	/* sum.w.f */
-  {84,16,r,V,0,0},	/* sum.l.f */
-  {85,2,r,V,0,0},	/* all.f */
-  {86,2,r,V,0,0},	/* any.f */
-  {87,2,r,V,0,0},	/* parity.f */
-  {0,0,0,0,0,0},
-  {88,13,r,V,0,0},	/* max.b.f */
-  {88,14,r,V,0,0},	/* max.h.f */
-  {88,15,r,V,0,0},	/* max.w.f */
-  {88,16,r,V,0,0},	/* max.l.f */
-  {89,13,r,V,0,0},	/* min.b.f */
-  {89,14,r,V,0,0},	/* min.h.f */
-  {89,15,r,V,0,0},	/* min.w.f */
-  {89,16,r,V,0,0},	/* min.l.f */
-  {84,11,r,V,0,0},	/* sum.s.f */
-  {84,12,r,V,0,0},	/* sum.d.f */
-  {90,11,r,V,0,0},	/* prod.s.f */
-  {90,12,r,V,0,0},	/* prod.d.f */
-  {88,11,r,V,0,0},	/* max.s.f */
-  {88,12,r,V,0,0},	/* max.d.f */
-  {89,11,r,V,0,0},	/* min.s.f */
-  {89,12,r,V,0,0},	/* min.d.f */
-  {90,13,r,V,0,0},	/* prod.b.f */
-  {90,14,r,V,0,0},	/* prod.h.f */
-  {90,15,r,V,0,0},	/* prod.w.f */
-  {90,16,r,V,0,0},	/* prod.l.f */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-};
-
-const struct formstr e1_format0[] = {
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {10,18,rrr,S,V,V},	/* sub.s.t */
-  {10,19,rrr,S,V,V},	/* sub.d.t */
-  {4,18,rrr,S,V,V},	/* div.s.t */
-  {4,19,rrr,S,V,V},	/* div.d.t */
-  {3,18,rrr,V,V,V},	/* mul.s.t */
-  {3,19,rrr,V,V,V},	/* mul.d.t */
-  {4,18,rrr,V,V,V},	/* div.s.t */
-  {4,19,rrr,V,V,V},	/* div.d.t */
-  {3,18,rrr,V,S,V},	/* mul.s.t */
-  {3,19,rrr,V,S,V},	/* mul.d.t */
-  {4,18,rrr,V,S,V},	/* div.s.t */
-  {4,19,rrr,V,S,V},	/* div.d.t */
-  {5,1,rrr,V,V,V},	/* and.t */
-  {6,1,rrr,V,V,V},	/* or.t */
-  {7,1,rrr,V,V,V},	/* xor.t */
-  {8,1,rrr,V,V,V},	/* shf.t */
-  {5,1,rrr,V,S,V},	/* and.t */
-  {6,1,rrr,V,S,V},	/* or.t */
-  {7,1,rrr,V,S,V},	/* xor.t */
-  {8,1,rrr,V,S,V},	/* shf.t */
-  {9,18,rrr,V,V,V},	/* add.s.t */
-  {9,19,rrr,V,V,V},	/* add.d.t */
-  {10,18,rrr,V,V,V},	/* sub.s.t */
-  {10,19,rrr,V,V,V},	/* sub.d.t */
-  {9,18,rrr,V,S,V},	/* add.s.t */
-  {9,19,rrr,V,S,V},	/* add.d.t */
-  {10,18,rrr,V,S,V},	/* sub.s.t */
-  {10,19,rrr,V,S,V},	/* sub.d.t */
-  {9,20,rrr,V,V,V},	/* add.b.t */
-  {9,21,rrr,V,V,V},	/* add.h.t */
-  {9,22,rrr,V,V,V},	/* add.w.t */
-  {9,23,rrr,V,V,V},	/* add.l.t */
-  {9,20,rrr,V,S,V},	/* add.b.t */
-  {9,21,rrr,V,S,V},	/* add.h.t */
-  {9,22,rrr,V,S,V},	/* add.w.t */
-  {9,23,rrr,V,S,V},	/* add.l.t */
-  {10,20,rrr,V,V,V},	/* sub.b.t */
-  {10,21,rrr,V,V,V},	/* sub.h.t */
-  {10,22,rrr,V,V,V},	/* sub.w.t */
-  {10,23,rrr,V,V,V},	/* sub.l.t */
-  {10,20,rrr,V,S,V},	/* sub.b.t */
-  {10,21,rrr,V,S,V},	/* sub.h.t */
-  {10,22,rrr,V,S,V},	/* sub.w.t */
-  {10,23,rrr,V,S,V},	/* sub.l.t */
-  {3,20,rrr,V,V,V},	/* mul.b.t */
-  {3,21,rrr,V,V,V},	/* mul.h.t */
-  {3,22,rrr,V,V,V},	/* mul.w.t */
-  {3,23,rrr,V,V,V},	/* mul.l.t */
-  {3,20,rrr,V,S,V},	/* mul.b.t */
-  {3,21,rrr,V,S,V},	/* mul.h.t */
-  {3,22,rrr,V,S,V},	/* mul.w.t */
-  {3,23,rrr,V,S,V},	/* mul.l.t */
-  {4,20,rrr,V,V,V},	/* div.b.t */
-  {4,21,rrr,V,V,V},	/* div.h.t */
-  {4,22,rrr,V,V,V},	/* div.w.t */
-  {4,23,rrr,V,V,V},	/* div.l.t */
-  {4,20,rrr,V,S,V},	/* div.b.t */
-  {4,21,rrr,V,S,V},	/* div.h.t */
-  {4,22,rrr,V,S,V},	/* div.w.t */
-  {4,23,rrr,V,S,V},	/* div.l.t */
-};
-
-const struct formstr e1_format1[] = {
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {26,20,a2r,S,0,0},	/* ste.b.t */
-  {26,21,a2r,S,0,0},	/* ste.h.t */
-  {26,22,a2r,S,0,0},	/* ste.w.t */
-  {26,23,a2r,S,0,0},	/* ste.l.t */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {18,20,a1r,V,0,0},	/* ld.b.t */
-  {18,21,a1r,V,0,0},	/* ld.h.t */
-  {18,22,a1r,V,0,0},	/* ld.w.t */
-  {18,23,a1r,V,0,0},	/* ld.l.t */
-  {21,20,a2r,V,0,0},	/* st.b.t */
-  {21,21,a2r,V,0,0},	/* st.h.t */
-  {21,22,a2r,V,0,0},	/* st.w.t */
-  {21,23,a2r,V,0,0},	/* st.l.t */
-};
-
-const struct formstr e1_format2[] = {
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {28,20,rr,V,V,0},	/* cvtw.b.t */
-  {28,21,rr,V,V,0},	/* cvtw.h.t */
-  {29,22,rr,V,V,0},	/* cvtb.w.t */
-  {30,22,rr,V,V,0},	/* cvth.w.t */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {31,23,rr,V,V,0},	/* cvts.l.t */
-  {32,22,rr,V,V,0},	/* cvtd.w.t */
-  {33,18,rr,V,V,0},	/* cvtl.s.t */
-  {28,19,rr,V,V,0},	/* cvtw.d.t */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {116,18,rr,V,V,0},	/* frint.s.t */
-  {116,19,rr,V,V,0},	/* frint.d.t */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {81,18,rr,V,V,0},	/* sqrt.s.t */
-  {81,19,rr,V,V,0},	/* sqrt.d.t */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-};
-
-const struct formstr e1_format3[] = {
-  {32,18,rr,V,V,0},	/* cvtd.s.t */
-  {31,19,rr,V,V,0},	/* cvts.d.t */
-  {33,19,rr,V,V,0},	/* cvtl.d.t */
-  {32,23,rr,V,V,0},	/* cvtd.l.t */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {36,1,rr,V,V,0},	/* tzc.t */
-  {44,1,rr,V,V,0},	/* lop.t */
-  {117,1,rr,V,V,0},	/* xpnd.t */
-  {42,1,rr,V,V,0},	/* not.t */
-  {8,1,rr,S,V,0},	/* shf.t */
-  {35,24,rr,V,V,0},	/* plc.t.t */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {37,18,rr,V,V,0},	/* eq.s.t */
-  {37,19,rr,V,V,0},	/* eq.d.t */
-  {43,18,rr,V,V,0},	/* neg.s.t */
-  {43,19,rr,V,V,0},	/* neg.d.t */
-  {37,18,rr,S,V,0},	/* eq.s.t */
-  {37,19,rr,S,V,0},	/* eq.d.t */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {40,18,rr,V,V,0},	/* le.s.t */
-  {40,19,rr,V,V,0},	/* le.d.t */
-  {41,18,rr,V,V,0},	/* lt.s.t */
-  {41,19,rr,V,V,0},	/* lt.d.t */
-  {40,18,rr,S,V,0},	/* le.s.t */
-  {40,19,rr,S,V,0},	/* le.d.t */
-  {41,18,rr,S,V,0},	/* lt.s.t */
-  {41,19,rr,S,V,0},	/* lt.d.t */
-  {37,20,rr,V,V,0},	/* eq.b.t */
-  {37,21,rr,V,V,0},	/* eq.h.t */
-  {37,22,rr,V,V,0},	/* eq.w.t */
-  {37,23,rr,V,V,0},	/* eq.l.t */
-  {37,20,rr,S,V,0},	/* eq.b.t */
-  {37,21,rr,S,V,0},	/* eq.h.t */
-  {37,22,rr,S,V,0},	/* eq.w.t */
-  {37,23,rr,S,V,0},	/* eq.l.t */
-  {40,20,rr,V,V,0},	/* le.b.t */
-  {40,21,rr,V,V,0},	/* le.h.t */
-  {40,22,rr,V,V,0},	/* le.w.t */
-  {40,23,rr,V,V,0},	/* le.l.t */
-  {40,20,rr,S,V,0},	/* le.b.t */
-  {40,21,rr,S,V,0},	/* le.h.t */
-  {40,22,rr,S,V,0},	/* le.w.t */
-  {40,23,rr,S,V,0},	/* le.l.t */
-  {41,20,rr,V,V,0},	/* lt.b.t */
-  {41,21,rr,V,V,0},	/* lt.h.t */
-  {41,22,rr,V,V,0},	/* lt.w.t */
-  {41,23,rr,V,V,0},	/* lt.l.t */
-  {41,20,rr,S,V,0},	/* lt.b.t */
-  {41,21,rr,S,V,0},	/* lt.h.t */
-  {41,22,rr,S,V,0},	/* lt.w.t */
-  {41,23,rr,S,V,0},	/* lt.l.t */
-  {43,20,rr,V,V,0},	/* neg.b.t */
-  {43,21,rr,V,V,0},	/* neg.h.t */
-  {43,22,rr,V,V,0},	/* neg.w.t */
-  {43,23,rr,V,V,0},	/* neg.l.t */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-};
-
-const struct formstr e1_format4[] = {
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-};
-
-const struct formstr e1_format5[] = {
-  {51,20,rr,V,V,0},	/* ldvi.b.t */
-  {51,21,rr,V,V,0},	/* ldvi.h.t */
-  {51,22,rr,V,V,0},	/* ldvi.w.t */
-  {51,23,rr,V,V,0},	/* ldvi.l.t */
-  {28,18,rr,V,V,0},	/* cvtw.s.t */
-  {31,22,rr,V,V,0},	/* cvts.w.t */
-  {28,23,rr,V,V,0},	/* cvtw.l.t */
-  {33,22,rr,V,V,0},	/* cvtl.w.t */
-  {52,20,rxr,V,V,0},	/* stvi.b.t */
-  {52,21,rxr,V,V,0},	/* stvi.h.t */
-  {52,22,rxr,V,V,0},	/* stvi.w.t */
-  {52,23,rxr,V,V,0},	/* stvi.l.t */
-  {52,20,rxr,S,V,0},	/* stvi.b.t */
-  {52,21,rxr,S,V,0},	/* stvi.h.t */
-  {52,22,rxr,S,V,0},	/* stvi.w.t */
-  {52,23,rxr,S,V,0},	/* stvi.l.t */
-};
-
-const struct formstr e1_format6[] = {
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-};
-
-const struct formstr e1_format7[] = {
-  {84,20,r,V,0,0},	/* sum.b.t */
-  {84,21,r,V,0,0},	/* sum.h.t */
-  {84,22,r,V,0,0},	/* sum.w.t */
-  {84,23,r,V,0,0},	/* sum.l.t */
-  {85,1,r,V,0,0},	/* all.t */
-  {86,1,r,V,0,0},	/* any.t */
-  {87,1,r,V,0,0},	/* parity.t */
-  {0,0,0,0,0,0},
-  {88,20,r,V,0,0},	/* max.b.t */
-  {88,21,r,V,0,0},	/* max.h.t */
-  {88,22,r,V,0,0},	/* max.w.t */
-  {88,23,r,V,0,0},	/* max.l.t */
-  {89,20,r,V,0,0},	/* min.b.t */
-  {89,21,r,V,0,0},	/* min.h.t */
-  {89,22,r,V,0,0},	/* min.w.t */
-  {89,23,r,V,0,0},	/* min.l.t */
-  {84,18,r,V,0,0},	/* sum.s.t */
-  {84,19,r,V,0,0},	/* sum.d.t */
-  {90,18,r,V,0,0},	/* prod.s.t */
-  {90,19,r,V,0,0},	/* prod.d.t */
-  {88,18,r,V,0,0},	/* max.s.t */
-  {88,19,r,V,0,0},	/* max.d.t */
-  {89,18,r,V,0,0},	/* min.s.t */
-  {89,19,r,V,0,0},	/* min.d.t */
-  {90,20,r,V,0,0},	/* prod.b.t */
-  {90,21,r,V,0,0},	/* prod.h.t */
-  {90,22,r,V,0,0},	/* prod.w.t */
-  {90,23,r,V,0,0},	/* prod.l.t */
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-  {0,0,0,0,0,0},
-};
-
-char *lop[] = {
-  "mov",	/* 0 */
-  "merg",	/* 1 */
-  "mask",	/* 2 */
-  "mul",	/* 3 */
-  "div",	/* 4 */
-  "and",	/* 5 */
-  "or",	/* 6 */
-  "xor",	/* 7 */
-  "shf",	/* 8 */
-  "add",	/* 9 */
-  "sub",	/* 10 */
-  "exit",	/* 11 */
-  "jmp",	/* 12 */
-  "jmpi",	/* 13 */
-  "jmpa",	/* 14 */
-  "jmps",	/* 15 */
-  "tac",	/* 16 */
-  "ldea",	/* 17 */
-  "ld",	/* 18 */
-  "tas",	/* 19 */
-  "pshea",	/* 20 */
-  "st",	/* 21 */
-  "call",	/* 22 */
-  "calls",	/* 23 */
-  "callq",	/* 24 */
-  "pfork",	/* 25 */
-  "ste",	/* 26 */
-  "incr",	/* 27 */
-  "cvtw",	/* 28 */
-  "cvtb",	/* 29 */
-  "cvth",	/* 30 */
-  "cvts",	/* 31 */
-  "cvtd",	/* 32 */
-  "cvtl",	/* 33 */
-  "ldpa",	/* 34 */
-  "plc",	/* 35 */
-  "tzc",	/* 36 */
-  "eq",	/* 37 */
-  "leu",	/* 38 */
-  "ltu",	/* 39 */
-  "le",	/* 40 */
-  "lt",	/* 41 */
-  "not",	/* 42 */
-  "neg",	/* 43 */
-  "lop",	/* 44 */
-  "cprs",	/* 45 */
-  "nop",	/* 46 */
-  "br",	/* 47 */
-  "bri",	/* 48 */
-  "bra",	/* 49 */
-  "brs",	/* 50 */
-  "ldvi",	/* 51 */
-  "stvi",	/* 52 */
-  "ldsdr",	/* 53 */
-  "ldkdr",	/* 54 */
-  "ln",	/* 55 */
-  "patu",	/* 56 */
-  "pate",	/* 57 */
-  "pich",	/* 58 */
-  "plch",	/* 59 */
-  "idle",	/* 60 */
-  "rtnq",	/* 61 */
-  "cfork",	/* 62 */
-  "rtn",	/* 63 */
-  "wfork",	/* 64 */
-  "join",	/* 65 */
-  "rtnc",	/* 66 */
-  "exp",	/* 67 */
-  "sin",	/* 68 */
-  "cos",	/* 69 */
-  "psh",	/* 70 */
-  "pop",	/* 71 */
-  "eni",	/* 72 */
-  "dsi",	/* 73 */
-  "bkpt",	/* 74 */
-  "msync",	/* 75 */
-  "mski",	/* 76 */
-  "xmti",	/* 77 */
-  "tstvv",	/* 78 */
-  "diag",	/* 79 */
-  "pbkpt",	/* 80 */
-  "sqrt",	/* 81 */
-  "casr",	/* 82 */
-  "atan",	/* 83 */
-  "sum",	/* 84 */
-  "all",	/* 85 */
-  "any",	/* 86 */
-  "parity",	/* 87 */
-  "max",	/* 88 */
-  "min",	/* 89 */
-  "prod",	/* 90 */
-  "halt",	/* 91 */
-  "sysc",	/* 92 */
-  "trap",	/* 93 */
-  "tst",	/* 94 */
-  "lck",	/* 95 */
-  "ulk",	/* 96 */
-  "spawn",	/* 97 */
-  "ldcmr",	/* 98 */
-  "stcmr",	/* 99 */
-  "popr",	/* 100 */
-  "pshr",	/* 101 */
-  "rcvr",	/* 102 */
-  "matm",	/* 103 */
-  "sndr",	/* 104 */
-  "putr",	/* 105 */
-  "getr",	/* 106 */
-  "matr",	/* 107 */
-  "mat",	/* 108 */
-  "get",	/* 109 */
-  "rcv",	/* 110 */
-  "inc",	/* 111 */
-  "put",	/* 112 */
-  "snd",	/* 113 */
-  "enal",	/* 114 */
-  "enag",	/* 115 */
-  "frint",	/* 116 */
-  "xpnd",	/* 117 */
-  "ctrsl",	/* 118 */
-  "ctrsg",	/* 119 */
-  "stop",	/* 120 */
-};
-
-char *rop[] = {
-  "",	/* 0 */
-  ".t",	/* 1 */
-  ".f",	/* 2 */
-  ".s",	/* 3 */
-  ".d",	/* 4 */
-  ".b",	/* 5 */
-  ".h",	/* 6 */
-  ".w",	/* 7 */
-  ".l",	/* 8 */
-  ".x",	/* 9 */
-  ".u",	/* 10 */
-  ".s.f",	/* 11 */
-  ".d.f",	/* 12 */
-  ".b.f",	/* 13 */
-  ".h.f",	/* 14 */
-  ".w.f",	/* 15 */
-  ".l.f",	/* 16 */
-  ".t.f",	/* 17 */
-  ".s.t",	/* 18 */
-  ".d.t",	/* 19 */
-  ".b.t",	/* 20 */
-  ".h.t",	/* 21 */
-  ".w.t",	/* 22 */
-  ".l.t",	/* 23 */
-  ".t.t",	/* 24 */
-};
diff --git a/include/opcode/cris.h b/include/opcode/cris.h
deleted file mode 100644
index 00ddde0..0000000
--- a/include/opcode/cris.h
+++ /dev/null
@@ -1,366 +0,0 @@
-/* cris.h -- Header file for CRIS opcode and register tables.
-   Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc.
-   Contributed by Axis Communications AB, Lund, Sweden.
-   Originally written for GAS 1.38.1 by Mikael Asker.
-   Updated, BFDized and GNUified by Hans-Peter Nilsson.
-
-This file is part of GAS, GDB and the GNU binutils.
-
-GAS, GDB, and GNU binutils 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.
-
-GAS, GDB, and GNU binutils are distributed in the hope that they 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef __CRIS_H_INCLUDED_
-#define __CRIS_H_INCLUDED_
-
-#if !defined(__STDC__) && !defined(const)
-#define const
-#endif
-
-
-/* Registers.  */
-#define MAX_REG (15)
-#define REG_SP (14)
-#define REG_PC (15)
-
-/* CPU version control of disassembly and assembly of instructions.
-   May affect how the instruction is assembled, at least the size of
-   immediate operands.  */
-enum cris_insn_version_usage
-{
-  /* Any version.  */
-  cris_ver_version_all=0,
-
-  /* Indeterminate (intended for disassembly only, or obsolete).  */
-  cris_ver_warning,
-
-  /* Only for v0..3 (Etrax 1..4).  */
-  cris_ver_v0_3,
-
-  /* Only for v3 or higher (ETRAX 4 and beyond).  */
-  cris_ver_v3p,
-
-  /* Only for v8 (Etrax 100).  */
-  cris_ver_v8,
-
-  /* Only for v8 or higher (ETRAX 100, ETRAX 100 LX).  */
-  cris_ver_v8p,
-
-  /* Only for v0..10.  FIXME: Not sure what to do with this.  */
-  cris_ver_sim_v0_10,
-
-  /* Only for v0..10.  */
-  cris_ver_v0_10,
-
-  /* Only for v3..10.  (ETRAX 4, ETRAX 100 and ETRAX 100 LX).  */
-  cris_ver_v3_10,
-
-  /* Only for v8..10 (ETRAX 100 and ETRAX 100 LX).  */
-  cris_ver_v8_10,
-
-  /* Only for v10 (ETRAX 100 LX) and same series.  */
-  cris_ver_v10,
-
-  /* Only for v10 (ETRAX 100 LX) and same series.  */
-  cris_ver_v10p,
-
-  /* Only for v32 or higher (codename GUINNESS).
-     Of course some or all these of may change to cris_ver_v32p if/when
-     there's a new revision. */
-  cris_ver_v32p
-};
-
-
-/* Special registers.  */
-struct cris_spec_reg
-{
-  const char *const name;
-  unsigned int number;
-
-  /* The size of the register.  */
-  unsigned int reg_size;
-
-  /* What CPU version the special register of that name is implemented
-     in.  If cris_ver_warning, emit an unimplemented-warning.  */
-  enum cris_insn_version_usage applicable_version;
-
-  /* There might be a specific warning for using a special register
-     here.  */
-  const char *const warning;
-};
-extern const struct cris_spec_reg cris_spec_regs[];
-
-
-/* Support registers (kind of special too, but not named as such).  */
-struct cris_support_reg
-{
-  const char *const name;
-  unsigned int number;
-};
-extern const struct cris_support_reg cris_support_regs[];
-
-struct cris_cond15
-{
-  /* The name of the condition.  */
-  const char *const name;
-
-  /* What CPU version this condition name applies to.  */
-  enum cris_insn_version_usage applicable_version;
-};
-extern const struct cris_cond15 cris_conds15[];
-
-/* Opcode-dependent constants.  */
-#define AUTOINCR_BIT (0x04)
-
-/* Prefixes.  */
-#define BDAP_QUICK_OPCODE (0x0100)
-#define BDAP_QUICK_Z_BITS (0x0e00)
-
-#define BIAP_OPCODE	  (0x0540)
-#define BIAP_Z_BITS	  (0x0a80)
-
-#define DIP_OPCODE	  (0x0970)
-#define DIP_Z_BITS	  (0xf280)
-
-#define BDAP_INDIR_LOW	  (0x40)
-#define BDAP_INDIR_LOW_Z  (0x80)
-#define BDAP_INDIR_HIGH	  (0x09)
-#define BDAP_INDIR_HIGH_Z (0x02)
-
-#define BDAP_INDIR_OPCODE (BDAP_INDIR_HIGH * 0x0100 + BDAP_INDIR_LOW)
-#define BDAP_INDIR_Z_BITS (BDAP_INDIR_HIGH_Z * 0x100 + BDAP_INDIR_LOW_Z)
-#define BDAP_PC_LOW	  (BDAP_INDIR_LOW + REG_PC)
-#define BDAP_INCR_HIGH	  (BDAP_INDIR_HIGH + AUTOINCR_BIT)
-
-/* No prefix must have this code for its "match" bits in the
-   opcode-table.  "BCC .+2" will do nicely.  */
-#define NO_CRIS_PREFIX 0
-
-/* Definitions for condition codes.  */
-#define CC_CC  0x0
-#define CC_HS  0x0
-#define CC_CS  0x1
-#define CC_LO  0x1
-#define CC_NE  0x2
-#define CC_EQ  0x3
-#define CC_VC  0x4
-#define CC_VS  0x5
-#define CC_PL  0x6
-#define CC_MI  0x7
-#define CC_LS  0x8
-#define CC_HI  0x9
-#define CC_GE  0xA
-#define CC_LT  0xB
-#define CC_GT  0xC
-#define CC_LE  0xD
-#define CC_A   0xE
-#define CC_EXT 0xF
-
-/* A table of strings "cc", "cs"... indexed with condition code
-   values as above.  */
-extern const char *const cris_cc_strings[];
-
-/* Bcc quick.  */
-#define BRANCH_QUICK_LOW  (0)
-#define BRANCH_QUICK_HIGH (0)
-#define BRANCH_QUICK_OPCODE (BRANCH_QUICK_HIGH * 0x0100 + BRANCH_QUICK_LOW)
-#define BRANCH_QUICK_Z_BITS (0x0F00)
-
-/* BA quick.  */
-#define BA_QUICK_HIGH (BRANCH_QUICK_HIGH + CC_A * 0x10)
-#define BA_QUICK_OPCODE (BA_QUICK_HIGH * 0x100 + BRANCH_QUICK_LOW)
-
-/* Bcc [PC+].  */
-#define BRANCH_PC_LOW	 (0xFF)
-#define BRANCH_INCR_HIGH (0x0D)
-#define BA_PC_INCR_OPCODE \
- ((BRANCH_INCR_HIGH + CC_A * 0x10) * 0x0100 + BRANCH_PC_LOW)
-
-/* Jump.  */
-/* Note that old versions generated special register 8 (in high bits)
-   and not-that-old versions recognized it as a jump-instruction.
-   That opcode now belongs to JUMPU.  */
-#define JUMP_INDIR_OPCODE (0x0930)
-#define JUMP_INDIR_Z_BITS (0xf2c0)
-#define JUMP_PC_INCR_OPCODE \
- (JUMP_INDIR_OPCODE + AUTOINCR_BIT * 0x0100 + REG_PC)
-
-#define MOVE_M_TO_PREG_OPCODE 0x0a30
-#define MOVE_M_TO_PREG_ZBITS 0x01c0
-
-/* BDAP.D N,PC.  */
-#define MOVE_PC_INCR_OPCODE_PREFIX \
- (((BDAP_INCR_HIGH | (REG_PC << 4)) << 8) | BDAP_PC_LOW | (2 << 4))
-#define MOVE_PC_INCR_OPCODE_SUFFIX \
- (MOVE_M_TO_PREG_OPCODE | REG_PC | (AUTOINCR_BIT << 8))
-
-#define JUMP_PC_INCR_OPCODE_V32 (0x0DBF)
-
-/* BA DWORD (V32).  */
-#define BA_DWORD_OPCODE (0x0EBF)
-
-/* Nop.  */
-#define NOP_OPCODE (0x050F)
-#define NOP_Z_BITS (0xFFFF ^ NOP_OPCODE)
-
-#define NOP_OPCODE_V32 (0x05B0)
-#define NOP_Z_BITS_V32 (0xFFFF ^ NOP_OPCODE_V32)
-
-/* For the compatibility mode, let's use "MOVE R0,P0".  Doesn't affect
-   registers or flags.  Unfortunately shuts off interrupts for one cycle
-   for < v32, but there doesn't seem to be any alternative without that
-   effect.  */
-#define NOP_OPCODE_COMMON (0x630)
-#define NOP_OPCODE_ZBITS_COMMON (0xffff & ~NOP_OPCODE_COMMON)
-
-/* LAPC.D  */
-#define LAPC_DWORD_OPCODE (0x0D7F)
-#define LAPC_DWORD_Z_BITS (0x0fff & ~LAPC_DWORD_OPCODE)
-
-/* Structure of an opcode table entry.  */
-enum cris_imm_oprnd_size_type
-{
-  /* No size is applicable.  */
-  SIZE_NONE,
-
-  /* Always 32 bits.  */
-  SIZE_FIX_32,
-
-  /* Indicated by size of special register.  */
-  SIZE_SPEC_REG,
-
-  /* Indicated by size field, signed.  */
-  SIZE_FIELD_SIGNED,
-
-  /* Indicated by size field, unsigned.  */
-  SIZE_FIELD_UNSIGNED,
-
-  /* Indicated by size field, no sign implied.  */
-  SIZE_FIELD
-};
-
-/* For GDB.  FIXME: Is this the best way to handle opcode
-   interpretation?  */
-enum cris_op_type
-{
-  cris_not_implemented_op = 0,
-  cris_abs_op,
-  cris_addi_op,
-  cris_asr_op,
-  cris_asrq_op,
-  cris_ax_ei_setf_op,
-  cris_bdap_prefix,
-  cris_biap_prefix,
-  cris_break_op,
-  cris_btst_nop_op,
-  cris_clearf_di_op,
-  cris_dip_prefix,
-  cris_dstep_logshift_mstep_neg_not_op,
-  cris_eight_bit_offset_branch_op,
-  cris_move_mem_to_reg_movem_op,
-  cris_move_reg_to_mem_movem_op,
-  cris_move_to_preg_op,
-  cris_muls_op,
-  cris_mulu_op,
-  cris_none_reg_mode_add_sub_cmp_and_or_move_op,
-  cris_none_reg_mode_clear_test_op,
-  cris_none_reg_mode_jump_op,
-  cris_none_reg_mode_move_from_preg_op,
-  cris_quick_mode_add_sub_op,
-  cris_quick_mode_and_cmp_move_or_op,
-  cris_quick_mode_bdap_prefix,
-  cris_reg_mode_add_sub_cmp_and_or_move_op,
-  cris_reg_mode_clear_op,
-  cris_reg_mode_jump_op,
-  cris_reg_mode_move_from_preg_op,
-  cris_reg_mode_test_op,
-  cris_scc_op,
-  cris_sixteen_bit_offset_branch_op,
-  cris_three_operand_add_sub_cmp_and_or_op,
-  cris_three_operand_bound_op,
-  cris_two_operand_bound_op,
-  cris_xor_op
-};
-
-struct cris_opcode
-{
-  /* The name of the insn.  */
-  const char *name;
-
-  /* Bits that must be 1 for a match.  */
-  unsigned int match;
-
-  /* Bits that must be 0 for a match.  */
-  unsigned int lose;
-
-  /* See the table in "opcodes/cris-opc.c".  */
-  const char *args;
-
-  /* Nonzero if this is a delayed branch instruction.  */
-  char delayed;
-
-  /* Size of immediate operands.  */
-  enum cris_imm_oprnd_size_type imm_oprnd_size;
-
-  /* Indicates which version this insn was first implemented in.  */
-  enum cris_insn_version_usage applicable_version;
-
-  /* What kind of operation this is.  */
-  enum cris_op_type op;
-};
-extern const struct cris_opcode cris_opcodes[];
-
-
-/* These macros are for the target-specific flags in disassemble_info
-   used at disassembly.  */
-
-/* This insn accesses memory.  This flag is more trustworthy than
-   checking insn_type for "dis_dref" which does not work for
-   e.g. "JSR [foo]".  */
-#define CRIS_DIS_FLAG_MEMREF (1 << 0)
-
-/* The "target" field holds a register number.  */
-#define CRIS_DIS_FLAG_MEM_TARGET_IS_REG (1 << 1)
-
-/* The "target2" field holds a register number; add it to "target".  */
-#define CRIS_DIS_FLAG_MEM_TARGET2_IS_REG (1 << 2)
-
-/* Yet another add-on: the register in "target2" must be multiplied
-   by 2 before adding to "target".  */
-#define CRIS_DIS_FLAG_MEM_TARGET2_MULT2 (1 << 3)
-
-/* Yet another add-on: the register in "target2" must be multiplied
-   by 4 (mutually exclusive with .._MULT2).  */ 
-#define CRIS_DIS_FLAG_MEM_TARGET2_MULT4 (1 << 4)
-
-/* The register in "target2" is an indirect memory reference (of the
-   register there), add to "target".  Assumed size is dword (mutually
-   exclusive with .._MULT[24]).  */
-#define CRIS_DIS_FLAG_MEM_TARGET2_MEM (1 << 5)
-
-/* Add-on to CRIS_DIS_FLAG_MEM_TARGET2_MEM; the memory access is "byte";
-   sign-extended before adding to "target".  */
-#define CRIS_DIS_FLAG_MEM_TARGET2_MEM_BYTE (1 << 6)
-
-/* Add-on to CRIS_DIS_FLAG_MEM_TARGET2_MEM; the memory access is "word";
-   sign-extended before adding to "target".  */
-#define CRIS_DIS_FLAG_MEM_TARGET2_MEM_WORD (1 << 7)
-
-#endif /* __CRIS_H_INCLUDED_ */
-
-/*
- * Local variables:
- * eval: (c-set-style "gnu")
- * indent-tabs-mode: t
- * End:
- */
diff --git a/include/opcode/crx.h b/include/opcode/crx.h
deleted file mode 100644
index 66def6b..0000000
--- a/include/opcode/crx.h
+++ /dev/null
@@ -1,418 +0,0 @@
-/* crx.h -- Header file for CRX opcode and register tables.
-   Copyright 2004 Free Software Foundation, Inc.
-   Contributed by Tomer Levi, NSC, Israel.
-   Originally written for GAS 2.12 by Tomer Levi, NSC, Israel.
-   Updates, BFDizing, GNUifying and ELF support by Tomer Levi.
-
-   This file is part of GAS, GDB and the GNU binutils.
-
-   GAS, GDB, and GNU binutils 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.
-
-   GAS, GDB, and GNU binutils are distributed in the hope that they 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _CRX_H_
-#define _CRX_H_
-
-/* CRX core/debug Registers :
-   The enums are used as indices to CRX registers table (crx_regtab).
-   Therefore, order MUST be preserved.  */
-
-typedef enum
-  {
-    /* 32-bit general purpose registers.  */
-    r0, r1, r2, r3, r4, r5, r6, r7, r8, r9,
-    r10, r11, r12, r13, r14, r15, ra, sp,
-    /* 32-bit user registers.  */
-    u0, u1, u2, u3, u4, u5, u6, u7, u8, u9,
-    u10, u11, u12, u13, u14, u15, ura, usp,
-    /* hi and lo registers.  */
-    hi, lo,
-    /* hi and lo user registers.  */
-    uhi, ulo,
-    /* Processor Status Register.  */
-    psr,
-    /* Interrupt Base Register.  */
-    intbase,
-    /* Interrupt Stack Pointer Register.  */
-    isp,
-    /* Configuration Register.  */
-    cfg,
-    /* Coprocessor Configuration Register.  */
-    cpcfg,
-    /* Coprocessor Enable Register.  */
-    cen,
-    /* Not a register.  */
-    nullregister,
-    MAX_REG
-  }
-reg;
-
-/* CRX Coprocessor registers and special registers :
-   The enums are used as indices to CRX coprocessor registers table
-   (crx_copregtab). Therefore, order MUST be preserved.  */
-
-typedef enum
-  {
-    /* Coprocessor registers.  */
-    c0 = MAX_REG, c1, c2, c3, c4, c5, c6, c7, c8,
-    c9, c10, c11, c12, c13, c14, c15,
-    /* Coprocessor special registers.  */
-    cs0, cs1 ,cs2, cs3, cs4, cs5, cs6, cs7, cs8,
-    cs9, cs10, cs11, cs12, cs13, cs14, cs15,
-    /* Not a Coprocessor register.  */
-    nullcopregister,
-    MAX_COPREG
-  }
-copreg;
-
-/* CRX Register types. */
-
-typedef enum
-  {
-    CRX_R_REGTYPE,    /*  r<N>	  */
-    CRX_U_REGTYPE,    /*  u<N>	  */
-    CRX_C_REGTYPE,    /*  c<N>	  */
-    CRX_CS_REGTYPE,   /*  cs<N>	  */
-    CRX_CFG_REGTYPE   /*  configuration register   */
-  }
-reg_type;
-
-/* CRX argument types :
-   The argument types correspond to instructions operands
-
-   Argument types :
-   r - register
-   c - constant
-   i - immediate
-   idxr - index register
-   rbase - register base
-   s - star ('*')
-   copr - coprocessor register
-   copsr - coprocessor special register.  */
-
-typedef enum
-  {
-    arg_r, arg_c, arg_cr, arg_ic, arg_icr, arg_sc,
-    arg_idxr, arg_rbase, arg_copr, arg_copsr,
-    /* Not an argument.  */
-    nullargs
-  }
-argtype;
-
-/* CRX operand types :
-   The operand types correspond to instructions operands.  */
-
-typedef enum
-  {
-    dummy,
-    /* 4-bit encoded constant.  */
-    cst4,
-    /* N-bit immediate.  */
-    i16, i32,
-    /* N-bit unsigned immediate.  */
-    ui3, ui4, ui5, ui16,
-    /* N-bit signed displacement.  */
-    disps9, disps17, disps25, disps32,
-    /* N-bit unsigned displacement.  */
-    dispu5, 
-    /* N-bit escaped displacement.  */
-    dispe9,
-    /* N-bit absolute address.  */
-    abs16, abs32,
-    /* Register relative.  */
-    rbase, rbase_dispu4,
-    rbase_disps12, rbase_disps16, rbase_disps28, rbase_disps32,
-    /* Register index.  */
-    rindex_disps6, rindex_disps22,
-    /* 4-bit genaral-purpose register specifier.  */
-    regr, 
-    /* 8-bit register address space.  */
-    regr8,
-    /* coprocessor register.  */
-    copregr, 
-    /* coprocessor special register.  */
-    copsregr,
-    /* Not an operand.  */
-    nulloperand,
-    /* Maximum supported operand.  */
-    MAX_OPRD
-  }
-operand_type;
-
-/* CRX instruction types.  */
-
-#define NO_TYPE_INS       0
-#define ARITH_INS         1
-#define LD_STOR_INS       2
-#define BRANCH_INS        3
-#define ARITH_BYTE_INS    4
-#define CMPBR_INS         5
-#define SHIFT_INS         6
-#define BRANCH_NEQ_INS    7
-#define LD_STOR_INS_INC   8
-#define STOR_IMM_INS	  9
-#define CSTBIT_INS       10
-#define COP_BRANCH_INS   11
-#define COP_REG_INS      12
-#define COPS_REG_INS     13
-#define DCR_BRANCH_INS   14
-
-/* Maximum value supported for instruction types.  */
-#define CRX_INS_MAX	(1 << 4)
-/* Mask to record an instruction type.  */
-#define CRX_INS_MASK	(CRX_INS_MAX - 1)
-/* Return instruction type, given instruction's attributes.  */
-#define CRX_INS_TYPE(attr) ((attr) & CRX_INS_MASK)
-
-/* Indicates whether this instruction has a register list as parameter.  */
-#define REG_LIST	CRX_INS_MAX
-/* The operands in binary and assembly are placed in reverse order.
-   load - (REVERSE_MATCH)/store - (! REVERSE_MATCH).  */
-#define REVERSE_MATCH  (1 << 5)
-
-/* Kind of displacement map used DISPU[BWD]4.  */
-#define DISPUB4	       (1 << 6)
-#define DISPUW4	       (1 << 7)
-#define DISPUD4	       (1 << 8)
-#define DISPU4MAP      (DISPUB4 | DISPUW4 | DISPUD4)
-
-/* Printing formats, where the instruction prefix isn't consecutive.  */
-#define FMT_1	       (1 << 9)   /* 0xF0F00000 */
-#define FMT_2	       (1 << 10)   /* 0xFFF0FF00 */
-#define FMT_3	       (1 << 11)   /* 0xFFF00F00 */
-#define FMT_4	       (1 << 12)   /* 0xFFF0F000 */
-#define FMT_5	       (1 << 13)   /* 0xFFF0FFF0 */
-#define FMT_CRX	       (FMT_1 | FMT_2 | FMT_3 | FMT_4 | FMT_5)
-
-/* Indicates whether this instruction can be relaxed.  */
-#define RELAXABLE      (1 << 14)
-
-/* Indicates that instruction uses user registers (and not 
-   general-purpose registers) as operands.  */
-#define USER_REG       (1 << 15)
-
-/* Indicates that instruction can perfom a cst4 mapping.  */
-#define CST4MAP	       (1 << 16)
-
-/* Instruction shouldn't allow 'sp' usage.  */
-#define NO_SP	       (1 << 17)
-
-/* Instruction shouldn't allow to push a register which is used as a rptr.  */
-#define NO_RPTR	       (1 << 18)
-
-/* Maximum operands per instruction.  */
-#define MAX_OPERANDS	  5
-/* Maximum register name length. */
-#define MAX_REGNAME_LEN	  10
-/* Maximum instruction length. */
-#define MAX_INST_LEN	  256
-
-
-/* Values defined for the flags field of a struct operand_entry.  */
-
-/* Operand must be an unsigned number.  */
-#define OP_UNSIGNED   (1 << 0)
-/* Operand must be a signed number.  */
-#define OP_SIGNED     (1 << 1)
-/* A special arithmetic 4-bit constant operand.  */
-#define OP_CST4	      (1 << 2)
-/* A special load/stor 4-bit unsigned displacement operand.  */
-#define OP_DISPU4     (1 << 3)
-/* Operand must be an even number.  */
-#define OP_EVEN	      (1 << 4)
-/* Operand is shifted right.  */
-#define OP_SHIFT      (1 << 5)
-/* Operand is shifted right and decremented.  */
-#define OP_SHIFT_DEC  (1 << 6)
-/* Operand has reserved escape sequences.  */
-#define OP_ESC	      (1 << 7)
-/* Operand is used only for the upper 64 KB (FFFF0000 to FFFFFFFF).  */
-#define OP_UPPER_64KB (1 << 8)
-
-/* Single operand description.  */
-
-typedef struct
-  {
-    /* Operand type.  */
-    operand_type op_type;
-    /* Operand location within the opcode.  */
-    unsigned int shift;
-  }
-operand_desc;
-
-/* Instruction data structure used in instruction table.  */
-
-typedef struct
-  {
-    /* Name.  */
-    const char *mnemonic;
-    /* Size (in words).  */
-    unsigned int size;
-    /* Constant prefix (matched by the disassembler).  */
-    unsigned long match;
-    /* Match size (in bits).  */
-    int match_bits;
-    /* Attributes.  */
-    unsigned int flags;
-    /* Operands (always last, so unreferenced operands are initialized).  */
-    operand_desc operands[MAX_OPERANDS];
-  }
-inst;
-
-/* Data structure for a single instruction's arguments (Operands).  */
-
-typedef struct
-  {
-    /* Register or base register.  */
-    reg r;
-    /* Index register.  */
-    reg i_r;
-    /* Coprocessor register.  */
-    copreg cr;
-    /* Constant/immediate/absolute value.  */
-    long constant;
-    /* Scaled index mode.  */
-    unsigned int scale;
-    /* Argument type.  */
-    argtype type;
-    /* Size of the argument (in bits) required to represent.  */
-    int size;
-  /* The type of the expression.  */
-    unsigned char X_op;
-  }
-argument;
-
-/* Internal structure to hold the various entities
-   corresponding to the current assembling instruction.  */
-
-typedef struct
-  {
-    /* Number of arguments.  */
-    int nargs;
-    /* The argument data structure for storing args (operands).  */
-    argument arg[MAX_OPERANDS];
-/* The following fields are required only by CRX-assembler.  */
-#ifdef TC_CRX
-    /* Expression used for setting the fixups (if any).  */
-    expressionS exp;
-    bfd_reloc_code_real_type rtype;
-#endif /* TC_CRX */
-    /* Instruction size (in bytes).  */
-    int size;
-  }
-ins;
-
-/* Structure to hold information about predefined operands.  */
-
-typedef struct
-  {
-    /* Size (in bits).  */
-    unsigned int bit_size;
-    /* Argument type.  */
-    argtype arg_type;
-    /* One bit syntax flags.  */
-    int flags;
-  }
-operand_entry;
-
-/* Structure to hold trap handler information.  */
-
-typedef struct
-  {
-    /* Trap name.  */
-    char *name;
-    /* Index in dispatch table.  */
-    unsigned int entry;
-  }
-trap_entry;
-
-/* Structure to hold information about predefined registers.  */
-
-typedef struct
-  {
-    /* Name (string representation).  */
-    char *name;
-    /* Value (enum representation).  */
-    union
-    {
-      /* Register.  */
-      reg reg_val;
-      /* Coprocessor register.  */
-      copreg copreg_val;
-    } value;
-    /* Register image.  */
-    int image;
-    /* Register type.  */
-    reg_type type;
-  }
-reg_entry;
-
-/* Structure to hold a cst4 operand mapping.  */
-
-/* CRX opcode table.  */
-extern const inst crx_instruction[];
-extern const int crx_num_opcodes;
-#define NUMOPCODES crx_num_opcodes
-
-/* CRX operands table.  */
-extern const operand_entry crx_optab[];
-
-/* CRX registers table.  */
-extern const reg_entry crx_regtab[];
-extern const int crx_num_regs;
-#define NUMREGS crx_num_regs
-
-/* CRX coprocessor registers table.  */
-extern const reg_entry crx_copregtab[];
-extern const int crx_num_copregs;
-#define NUMCOPREGS crx_num_copregs
-
-/* CRX trap/interrupt table.  */
-extern const trap_entry crx_traps[];
-extern const int crx_num_traps;
-#define NUMTRAPS crx_num_traps
-
-/* cst4 operand mapping.  */
-extern const long cst4_map[];
-extern const int cst4_maps;
-
-/* Table of instructions with no operands.  */
-extern const char* no_op_insn[];
-
-/* Current instruction we're assembling.  */
-extern const inst *instruction;
-
-/* A macro for representing the instruction "constant" opcode, that is,
-   the FIXED part of the instruction. The "constant" opcode is represented
-   as a 32-bit unsigned long, where OPC is expanded (by a left SHIFT)
-   over that range.  */
-#define BIN(OPC,SHIFT)	(OPC << SHIFT)
-
-/* Is the current instruction type is TYPE ?  */
-#define IS_INSN_TYPE(TYPE)	      \
-  (CRX_INS_TYPE(instruction->flags) == TYPE)
-
-/* Is the current instruction mnemonic is MNEMONIC ?  */
-#define IS_INSN_MNEMONIC(MNEMONIC)    \
-  (strcmp(instruction->mnemonic,MNEMONIC) == 0)
-
-/* Does the current instruction has register list ?  */
-#define INST_HAS_REG_LIST	      \
-  (instruction->flags & REG_LIST)
-
-/* Long long type handling.  */
-/* Replace all appearances of 'long long int' with LONGLONG.  */
-typedef long long int LONGLONG;
-typedef unsigned long long ULONGLONG;
-
-#endif /* _CRX_H_ */
diff --git a/include/opcode/d10v.h b/include/opcode/d10v.h
deleted file mode 100644
index c96ddeb..0000000
--- a/include/opcode/d10v.h
+++ /dev/null
@@ -1,208 +0,0 @@
-/* d10v.h -- Header file for D10V opcode table
-   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2003
-   Free Software Foundation, Inc.
-   Written by Martin Hunt (hunt@cygnus.com), Cygnus Support
-
-This file is part of GDB, GAS, and the GNU binutils.
-
-GDB, GAS, and the GNU binutils are free software; you can redistribute
-them and/or modify them 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.
-
-GDB, GAS, and the GNU binutils are distributed in the hope that they
-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 file; see the file COPYING.  If not, write to the Free
-Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef D10V_H
-#define D10V_H
-
-/* Format Specifier */
-#define FM00	0
-#define FM01	0x40000000
-#define FM10	0x80000000
-#define FM11	0xC0000000
-
-#define NOP 0x5e00
-#define OPCODE_DIVS	0x14002800
-
-/* The opcode table is an array of struct d10v_opcode.  */
-
-struct d10v_opcode
-{
-  /* The opcode name.  */
-  const char *name;
-
-  /* the opcode format */
-  int format;
-
-  /* These numbers were picked so we can do if( i & SHORT_OPCODE) */
-#define SHORT_OPCODE 1
-#define LONG_OPCODE  8
-#define SHORT_2	     1		/* short with 2 operands */
-#define SHORT_B	     3		/* short with 8-bit branch */
-#define LONG_B	     8		/* long with 16-bit branch */
-#define LONG_L       10		/* long with 3 operands */
-#define LONG_R       12		/* reserved */
-
-  /* just a placeholder for variable-length instructions */
-  /* for example, "bra" will be a fake for "bra.s" and bra.l" */
-  /* which will immediately follow in the opcode table.  */
-#define OPCODE_FAKE  32
-
-  /* the number of cycles */
-  int cycles;
-
-  /* the execution unit(s) used */
-  int unit;
-#define EITHER	0
-#define IU	1
-#define MU	2
-#define BOTH	3
-
-  /* execution type; parallel or sequential */
-  /* this field is used to decide if two instructions */
-  /* can be executed in parallel */
-  int exec_type;
-#define PARONLY 1	/* parallel only */
-#define SEQ	2	/* must be sequential */
-#define PAR	4	/* may be parallel */
-#define BRANCH_LINK 8	/* subroutine call.  must be aligned */
-#define RMEM     16	/* reads memory */
-#define WMEM     32	/* writes memory */
-#define RF0      64	/* reads f0 */
-#define WF0     128	/* modifies f0 */
-#define WCAR    256	/* write Carry */
-#define BRANCH  512	/* branch, no link */
-#define ALONE  1024	/* short but pack with a NOP if on asm line alone */
-
-  /* the opcode */
-  long opcode;
-
-  /* mask.  if( (i & mask) == opcode ) then match */
-  long mask;
-
-  /* An array of operand codes.  Each code is an index into the
-     operand table.  They appear in the order which the operands must
-     appear in assembly code, and are terminated by a zero.  */
-  unsigned char operands[6];
-};
-
-/* The table itself is sorted by major opcode number, and is otherwise
-   in the order in which the disassembler should consider
-   instructions.  */
-extern const struct d10v_opcode d10v_opcodes[];
-extern const int d10v_num_opcodes;
-
-/* The operands table is an array of struct d10v_operand.  */
-struct d10v_operand
-{
-  /* The number of bits in the operand.  */
-  int bits;
-
-  /* How far the operand is left shifted in the instruction.  */
-  int shift;
-
-  /* One bit syntax flags.  */
-  int flags;
-};
-
-/* Elements in the table are retrieved by indexing with values from
-   the operands field of the d10v_opcodes table.  */
-
-extern const struct d10v_operand d10v_operands[];
-
-/* Values defined for the flags field of a struct d10v_operand.  */
-
-/* the operand must be an even number */
-#define OPERAND_EVEN	(1)
-
-/* the operand must be an odd number */
-#define OPERAND_ODD	(2)	
-
-/* this is the destination register; it will be modified */
-/* this is used by the optimizer */
-#define OPERAND_DEST	(4)
-
-/* number or symbol */
-#define OPERAND_NUM	(8)
-
-/* address or label */
-#define OPERAND_ADDR	(0x10)
-
-/* register */
-#define OPERAND_REG	(0x20)
-
-/* postincrement +  */
-#define OPERAND_PLUS	(0x40)
-
-/* postdecrement -  */
-#define OPERAND_MINUS	(0x80)
-
-/* @  */
-#define OPERAND_ATSIGN	(0x100)
-
-/* @(  */
-#define OPERAND_ATPAR	(0x200)
-
-/* accumulator 0 */
-#define OPERAND_ACC0	(0x400)
-
-/* accumulator 1 */
-#define OPERAND_ACC1	(0x800)
-
-/* f0 / f1 flag register */
-#define OPERAND_FFLAG	(0x1000)
-
-/* c flag register */
-#define OPERAND_CFLAG	(0x2000)
-
-/* control register  */
-#define OPERAND_CONTROL	(0x4000)
-
-/* predecrement mode '@-sp'  */
-#define OPERAND_ATMINUS	(0x8000)
-
-/* signed number */
-#define OPERAND_SIGNED	(0x10000)
-
-/* special accumulator shifts need a 4-bit number */
-/* 1 <= x <= 16 */
-#define OPERAND_SHIFT	(0x20000)
-
-/* general purpose register */
-#define OPERAND_GPR	(0x40000)
-
-/* special imm3 values with range restricted to -2 <= imm3 <= 3 */
-/* needed for rac/rachi */
-#define RESTRICTED_NUM3	(0x80000)
-
-/* Pre-decrement is only supported for SP.  */
-#define OPERAND_SP      (0x100000)
-
-/* Post-decrement is not supported for SP.  Like OPERAND_EVEN, and
-   unlike OPERAND_SP, this flag doesn't prevent the instruction from
-   matching, it only fails validation later on.  */
-#define OPERAND_NOSP    (0x200000)
-
-/* Structure to hold information about predefined registers.  */
-struct pd_reg
-{
-  char *name;		/* name to recognize */
-  char *pname;		/* name to print for this register */
-  int value;
-};
-
-extern const struct pd_reg d10v_predefined_registers[];
-int d10v_reg_name_cnt (void);
-
-/* an expressionS only has one register type, so we fake it */
-/* by setting high bits to indicate type */
-#define REGISTER_MASK	0xFF
-
-#endif /* D10V_H */
diff --git a/include/opcode/d30v.h b/include/opcode/d30v.h
deleted file mode 100644
index 7aa5bb6..0000000
--- a/include/opcode/d30v.h
+++ /dev/null
@@ -1,286 +0,0 @@
-/* d30v.h -- Header file for D30V opcode table
-   Copyright 1997, 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
-   Written by Martin Hunt (hunt@cygnus.com), Cygnus Solutions
-
-This file is part of GDB, GAS, and the GNU binutils.
-
-GDB, GAS, and the GNU binutils are free software; you can redistribute
-them and/or modify them 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.
-
-GDB, GAS, and the GNU binutils are distributed in the hope that they
-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 file; see the file COPYING.  If not, write to the Free
-Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef D30V_H
-#define D30V_H
-
-#define NOP 0x00F00000
-
-/* Structure to hold information about predefined registers.  */
-struct pd_reg
-{
-  char *name;		/* name to recognize */
-  char *pname;		/* name to print for this register */
-  int value;
-};
-
-extern const struct pd_reg pre_defined_registers[];
-int reg_name_cnt (void);
-
-/* the number of control registers */
-#define MAX_CONTROL_REG	64
-
-/* define the format specifiers */
-#define FM00	0
-#define FM01	0x80000000
-#define FM10	0x8000000000000000LL
-#define FM11	0x8000000080000000LL
-
-/* define the opcode classes */
-#define BRA	0
-#define LOGIC	1
-#define IMEM	2
-#define IALU1	4
-#define IALU2	5
-
-/* define the execution condition codes */
-#define ECC_AL	0	/* ALways (default) */
-#define ECC_TX	1	/* F0=True, F1=Don't care */
-#define ECC_FX	2	/* F0=False, F1=Don't care */
-#define ECC_XT	3	/* F0=Don't care, F1=True */
-#define ECC_XF	4	/* F0=Don't care, F1=False */
-#define ECC_TT	5	/* F0=True, F1=True */
-#define ECC_TF	6	/* F0=True, F1=False */
-#define ECC_RESERVED	7	/* reserved */
-#define ECC_MAX	ECC_RESERVED
-
-extern const char *d30v_ecc_names[];
-
-/* condition code table for CMP and CMPU */
-extern const char *d30v_cc_names[];
-
-/* The opcode table is an array of struct d30v_opcode.  */
-struct d30v_opcode
-{
-  /* The opcode name.  */
-  const char *name;
-
-  /* the opcode */
-  int op1;	/* first part, "IALU1" for example */
-  int op2;	/* the rest of the opcode */
-
-  /* opcode format(s).  These numbers correspond to entries */
-  /* in the d30v_format_table */
-  unsigned char format[4];
-
-#define SHORT_M		1
-#define SHORT_M2	5	/* for ld2w and st2w */
-#define SHORT_A		9
-#define SHORT_B1	11
-#define SHORT_B2	12
-#define SHORT_B2r     13
-#define SHORT_B3      14
-#define SHORT_B3r     16
-#define SHORT_B3b     18
-#define SHORT_B3br    20
-#define SHORT_D1r     22
-#define SHORT_D2      24
-#define SHORT_D2r     26
-#define SHORT_D2Br    28
-#define SHORT_U       30      /* unary SHORT_A.  ABS for example */
-#define SHORT_F       31      /* SHORT_A with flag registers */
-#define SHORT_AF      33      /* SHORT_A with only the first register a flag register */
-#define SHORT_T       35      /* for trap instruction */
-#define SHORT_A5      36      /* SHORT_A with a 5-bit immediate instead of 6 */
-#define SHORT_CMP     38      /* special form for CMPcc */
-#define SHORT_CMPU    40      /* special form for CMPUcc */
-#define SHORT_A1      42      /* special form of SHORT_A for MACa opcodes where a=1 */
-#define SHORT_AA      44      /* SHORT_A with the first register an accumulator */
-#define SHORT_RA      46      /* SHORT_A with the second register an accumulator */
-#define SHORT_MODINC  48      
-#define SHORT_MODDEC  49
-#define SHORT_C1      50
-#define SHORT_C2      51
-#define SHORT_UF      52
-#define SHORT_A2      53
-#define SHORT_NONE    55      /* no operands */
-#define SHORT_AR      56      /* like SHORT_AA but only accept register as third parameter  */
-#define LONG          57
-#define LONG_U        58      /* unary LONG */
-#define LONG_Ur       59      /* LONG pc-relative */
-#define LONG_CMP      60      /* special form for CMPcc and CMPUcc */
-#define LONG_M        61      /* Memory long for ldb, stb */
-#define LONG_M2       62      /* Memory long for ld2w, st2w */
-#define LONG_2        63      /* LONG with 2 operands; jmptnz */
-#define LONG_2r       64      /* LONG with 2 operands; bratnz */
-#define LONG_2b       65      /* LONG_2 with modifier of 3 */
-#define LONG_2br      66      /* LONG_2r with modifier of 3 */
-#define LONG_D        67      /* for DJMPI */
-#define LONG_Dr       68      /* for DBRAI */
-#define LONG_Dbr      69      /* for repeati */
-
-  /* the execution unit(s) used */
-  int unit;
-#define EITHER	0
-#define IU	1
-#define MU	2
-#define EITHER_BUT_PREFER_MU 3
-
-  /* this field is used to decide if two instructions */
-  /* can be executed in parallel */
-  long flags_used;
-  long flags_set;
-#define FLAG_0		(1L<<0)
-#define FLAG_1		(1L<<1)
-#define FLAG_2		(1L<<2)
-#define FLAG_3		(1L<<3)
-#define FLAG_4		(1L<<4)		/* S (saturation) */
-#define FLAG_5		(1L<<5)		/* V (overflow) */
-#define FLAG_6		(1L<<6)		/* VA (accumulated overflow) */
-#define FLAG_7		(1L<<7)		/* C (carry/borrow) */
-#define FLAG_SM		(1L<<8)		/* SM (stack mode) */
-#define FLAG_RP		(1L<<9)		/* RP (repeat enable) */
-#define FLAG_CONTROL	(1L<<10)	/* control registers */
-#define FLAG_A0		(1L<<11)	/* A0 */
-#define FLAG_A1		(1L<<12)	/* A1 */
-#define FLAG_JMP	(1L<<13)	/* instruction is a branch */
-#define FLAG_JSR	(1L<<14)	/* subroutine call.  must be aligned */
-#define FLAG_MEM	(1L<<15)	/* reads/writes memory */
-#define FLAG_NOT_WITH_ADDSUBppp	 (1L<<16) /* Old meaning: a 2 word 4 byter operation
-					   New meaning: operation cannot be 
-					   combined in parallel with ADD/SUBppp. */
-#define FLAG_MUL16	(1L<<17)	/* 16 bit multiply */
-#define FLAG_MUL32	(1L<<18)	/* 32 bit multiply */
-#define FLAG_ADDSUBppp	(1L<<19)	/* ADDppp or SUBppp */
-#define FLAG_DELAY	(1L<<20)	/* This is a delayed branch or jump */
-#define FLAG_LKR	(1L<<21)	/* insn in left slot kills right slot */
-#define FLAG_CVVA	(FLAG_5|FLAG_6|FLAG_7)
-#define FLAG_C		FLAG_7
-#define FLAG_ALL	(FLAG_0 | \
-			 FLAG_1 | \
-			 FLAG_2 | \
-			 FLAG_3 | \
-			 FLAG_4 | \
-			 FLAG_5 | \
-			 FLAG_6 | \
-			 FLAG_7 | \
-			 FLAG_SM | \
-			 FLAG_RP | \
-			 FLAG_CONTROL)
-
-  int reloc_flag;
-#define RELOC_PCREL	1
-#define RELOC_ABS	2
-};
-
-extern const struct d30v_opcode d30v_opcode_table[];
-extern const int d30v_num_opcodes;
-
-/* The operands table is an array of struct d30v_operand.  */
-struct d30v_operand
-{
-  /* the length of the field */
-  int length;
-
-  /* The number of significant bits in the operand.  */
-  int bits;
-
-  /* position relative to Ra */
-  int position;
-
-  /* syntax flags.  */
-  long flags;
-};
-extern const struct d30v_operand d30v_operand_table[];
-
-/* Values defined for the flags field of a struct d30v_operand.  */
-
-/* this is the destination register; it will be modified */
-/* this is used by the optimizer */
-#define OPERAND_DEST	(1)
-
-/* number or symbol */
-#define OPERAND_NUM	(2)
-
-/* address or label */
-#define OPERAND_ADDR	(4)
-
-/* register */
-#define OPERAND_REG	(8)
-
-/* postincrement +  */
-#define OPERAND_PLUS	(0x10)
-
-/* postdecrement -  */
-#define OPERAND_MINUS	(0x20)
-
-/* signed number */
-#define OPERAND_SIGNED	(0x40)
-
-/* this operand must be shifted left by 3 */
-#define OPERAND_SHIFT	(0x80)
-
-/* flag register */
-#define OPERAND_FLAG	(0x100)
-
-/* control register  */
-#define OPERAND_CONTROL	(0x200)
-
-/* accumulator */
-#define OPERAND_ACC	(0x400)
-
-/* @  */
-#define OPERAND_ATSIGN	(0x800)
-
-/* @(  */
-#define OPERAND_ATPAR	(0x1000)
-
-/* predecrement mode '@-sp'  */
-#define OPERAND_ATMINUS	(0x2000)
-
-/* this operand changes the instruction name */
-/* for example, CPMcc, CMPUcc */
-#define OPERAND_NAME	(0x4000)
-
-/* fake operand for mvtsys and mvfsys */
-#define OPERAND_SPECIAL	(0x8000)
-
-/* let the optimizer know that two registers are affected */
-#define OPERAND_2REG	(0x10000)
-
-/* This operand is pc-relative.  Note that repeati can have two immediate
-   operands, one of which is pcrel, the other (the IMM6U one) is not.  */
-#define OPERAND_PCREL	(0x20000)
-
-/* The format table is an array of struct d30v_format.  */
-struct d30v_format
-{
-  int	form;		/* SHORT_A, LONG, etc */
-  int	modifier;	/* two bit modifier following opcode */
-  unsigned char operands[5];
-};
-extern const struct d30v_format d30v_format_table[];
-
-
-/* an instruction is defined by an opcode and a format */
-/* for example, "add" has one opcode, but three different */
-/* formats, 2 SHORT_A forms and a LONG form. */
-struct d30v_insn
-{
-  struct d30v_opcode *op;	/* pointer to an entry in the opcode table */
-  struct d30v_format *form;	/* pointer to an entry in the format table */
-  int ecc;			/* execution condition code */
-};
-
-/* an expressionS only has one register type, so we fake it */
-/* by setting high bits to indicate type */
-#define REGISTER_MASK	0xFF
-
-#endif /* D30V_H */
diff --git a/include/opcode/dlx.h b/include/opcode/dlx.h
deleted file mode 100644
index 278e936..0000000
--- a/include/opcode/dlx.h
+++ /dev/null
@@ -1,282 +0,0 @@
-/* Table of opcodes for the DLX microprocess.
-   Copyright 2002 Free Software Foundation, Inc.
-
-   This file is part of GDB and GAS.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-   Initially created by Kuang Hwa Lin, 2002.   */
-
-/* Following are the function codes for the Special OP (ALU).  */
-#define  ALUOP       0x00000000
-#define  SPECIALOP   0x00000000
-
-#define  NOPF        0x00000000
-#define  SLLF        0x00000004
-#define  SRLF        0x00000006
-#define  SRAF        0x00000007
-
-#define  SEQUF       0x00000010
-#define  SNEUF       0x00000011
-#define  SLTUF       0x00000012
-#define  SGTUF       0x00000013
-#define  SLEUF       0x00000014
-#define  SGEUF       0x00000015
-
-#define  ADDF        0x00000020
-#define  ADDUF       0x00000021
-#define  SUBF        0x00000022
-#define  SUBUF       0x00000023
-#define  ANDF        0x00000024
-#define  ORF         0x00000025
-#define  XORF        0x00000026
-
-#define  SEQF        0x00000028
-#define  SNEF        0x00000029
-#define  SLTF        0x0000002A
-#define  SGTF        0x0000002B
-#define  SLEF        0x0000002C
-#define  SGEF        0x0000002D
-  /* Following special functions was not mentioned in the
-     Hennessy's book but was implemented in the RTL.  */
-#define  MVTSF 	     0x00000030
-#define  MVFSF       0x00000031
-#define  BSWAPF      0x00000032
-#define  LUTF        0x00000033
-/* Following special functions was mentioned in the
-   Hennessy's book but was not implemented in the RTL.  */
-#define  MULTF       0x00000005
-#define  MULTUF      0x00000006
-#define  DIVF        0x00000007
-#define  DIVUF       0x00000008
-
-
-/* Following are the rest of the OPcodes:
-   JOP    = (0x002 << 26), JALOP  = (0x003 << 26), BEQOP = (0x004 << 26),   BNEOP  = (0x005 << 26)
-   ADDIOP = (0x008 << 26), ADDUIOP= (0x009 << 26), SUBIOP	= (0x00A << 26), SUBUIOP= (0x00B << 26)
-   ANDIOP = (0x00C << 26), ORIOP  = (0x00D << 26), XORIOP = (0x00E << 26),  LHIOP  = (0x00F << 26)
-   RFEOP  = (0x010 << 26), TRAPOP = (0x011 << 26), JROP	= (0x012 << 26), JALROP = (0x013 << 26)
-   BREAKOP= (0x014 << 26)
-   SEQIOP = (0x018 << 26), SNEIOP = (0x019 << 26), SLTIOP = (0x01A << 26),  SGTIOP = (0x01B << 26)
-   SLEIOP = (0x01C << 26), SGEIOP = (0x01D << 26)
-   LBOP   = (0x020 << 26), LHOP   = (0x021 << 26), LWOP   = (0x023 << 26),  LBUOP  = (0x024 << 26)
-   LHUOP  = (0x025 << 26), SBOP   = (0x028 << 26), SHOP   = (0x029 << 26),  SWOP   = (0x02B << 26)
-   LSBUOP = (0x026 << 26), LSHU   = (0x027 << 26), LSW    = (0x02C << 26),
-   SEQUIOP= (0x030 << 26), SNEUIOP= (0x031 << 26), SLTUIOP= (0x032 << 26),  SGTUIOP= (0x033 << 26)
-   SLEUIOP= (0x034 << 26), SGEUIOP= (0x035 << 26)
-   SLLIOP = (0x036 << 26), SRLIOP = (0x037 << 26), SRAIOP = (0x038 << 26).  */
-#define  JOP	     0x08000000
-#define  JALOP	     0x0c000000
-#define  BEQOP	     0x10000000
-#define  BNEOP	     0x14000000
-
-#define  ADDIOP	     0x20000000
-#define  ADDUIOP     0x24000000
-#define  SUBIOP	     0x28000000
-#define  SUBUIOP     0x2c000000
-#define  ANDIOP      0x30000000
-#define  ORIOP       0x34000000
-#define  XORIOP      0x38000000
-#define  LHIOP       0x3c000000
-#define  RFEOP	     0x40000000
-#define  TRAPOP      0x44000000
-#define  JROP	     0x48000000
-#define  JALROP      0x4c000000
-#define  BREAKOP     0x50000000
-
-#define  SEQIOP      0x60000000
-#define  SNEIOP      0x64000000
-#define  SLTIOP      0x68000000
-#define  SGTIOP      0x6c000000
-#define  SLEIOP      0x70000000
-#define  SGEIOP      0x74000000
-
-#define  LBOP        0x80000000
-#define  LHOP        0x84000000
-#define  LWOP        0x8c000000
-#define  LBUOP       0x90000000
-#define  LHUOP	     0x94000000
-#define  LDSTBU
-#define  LDSTHU
-#define  SBOP	     0xa0000000
-#define  SHOP        0xa4000000
-#define  SWOP        0xac000000
-#define  LDST
-
-#define  SEQUIOP     0xc0000000
-#define  SNEUIOP     0xc4000000
-#define  SLTUIOP     0xc8000000
-#define  SGTUIOP     0xcc000000
-#define  SLEUIOP     0xd0000000
-#define  SGEUIOP     0xd4000000
-
-#define  SLLIOP      0xd8000000
-#define  SRLIOP      0xdc000000
-#define  SRAIOP      0xe0000000
-
-/* Following 3 ops was added to provide the MP atonmic operation.  */
-#define  LSBUOP      0x98000000
-#define  LSHUOP      0x9c000000
-#define  LSWOP       0xb0000000
-
-/* Following opcode was defined in the Hennessy's book as
-   "normal" opcode but was implemented in the RTL as special
-   functions.  */
-#if 0
-#define  MVTSOP	     0x50000000
-#define  MVFSOP      0x54000000
-#endif
-
-struct dlx_opcode
-{
-  /* Name of the instruction.  */
-  char *name;
-
-  /* Opcode word.  */
-  unsigned long opcode;
-
-  /* A string of characters which describe the operands.
-     Valid characters are:
-     ,        Itself.  The character appears in the assembly code.
-     a        rs1      The register number is in bits 21-25 of the instruction.
-     b        rs2/rd   The register number is in bits 16-20 of the instruction.
-     c        rd.      The register number is in bits 11-15 of the instruction.
-     f        FUNC bits 0-10 of the instruction.
-     i        An immediate operand is in bits 0-16 of the instruction. 0 extended
-     I        An immediate operand is in bits 0-16 of the instruction. sign extended
-     d	      An 16 bit PC relative displacement.
-     D	      An immediate operand is in bits 0-25 of the instruction.
-     N	      No opperands needed, for nops.
-     P	      it can be a register or a 16 bit operand.  */
-  char *args;
-};
-
-static const struct dlx_opcode dlx_opcodes[] =
-  {
-  /* Arithmetic and Logic R-TYPE instructions.  */
-    { "nop",      (ALUOP|NOPF),   "N"     },  /* NOP                          */
-    { "add",      (ALUOP|ADDF),   "c,a,b" },  /* Add                          */
-    { "addu",     (ALUOP|ADDUF),  "c,a,b" },  /* Add Unsigned                 */
-    { "sub",      (ALUOP|SUBF),   "c,a,b" },  /* SUB                          */
-    { "subu",     (ALUOP|SUBUF),  "c,a,b" },  /* Sub Unsigned                 */
-    { "mult",     (ALUOP|MULTF),  "c,a,b" },  /* MULTIPLY                     */
-    { "multu",    (ALUOP|MULTUF), "c,a,b" },  /* MULTIPLY Unsigned            */
-    { "div",      (ALUOP|DIVF),   "c,a,b" },  /* DIVIDE                       */
-    { "divu",     (ALUOP|DIVUF),  "c,a,b" },  /* DIVIDE Unsigned              */
-    { "and",      (ALUOP|ANDF),   "c,a,b" },  /* AND                          */
-    { "or",       (ALUOP|ORF),    "c,a,b" },  /* OR                           */
-    { "xor",      (ALUOP|XORF),   "c,a,b" },  /* Exclusive OR                 */
-    { "sll",      (ALUOP|SLLF),   "c,a,b" },  /* SHIFT LEFT LOGICAL           */
-    { "sra",      (ALUOP|SRAF),   "c,a,b" },  /* SHIFT RIGHT ARITHMETIC       */
-    { "srl",      (ALUOP|SRLF),   "c,a,b" },  /* SHIFT RIGHT LOGICAL          */
-    { "seq",      (ALUOP|SEQF),   "c,a,b" },  /* Set if equal                 */
-    { "sne",      (ALUOP|SNEF),   "c,a,b" },  /* Set if not equal             */
-    { "slt",      (ALUOP|SLTF),   "c,a,b" },  /* Set if less                  */
-    { "sgt",      (ALUOP|SGTF),   "c,a,b" },  /* Set if greater               */
-    { "sle",      (ALUOP|SLEF),   "c,a,b" },  /* Set if less or equal         */
-    { "sge",      (ALUOP|SGEF),   "c,a,b" },  /* Set if greater or equal      */
-    { "sequ",     (ALUOP|SEQUF),  "c,a,b" },  /* Set if equal unsigned        */
-    { "sneu",     (ALUOP|SNEUF),  "c,a,b" },  /* Set if not equal unsigned    */
-    { "sltu",     (ALUOP|SLTUF),  "c,a,b" },  /* Set if less unsigned         */
-    { "sgtu",     (ALUOP|SGTUF),  "c,a,b" },  /* Set if greater unsigned      */
-    { "sleu",     (ALUOP|SLEUF),  "c,a,b" },  /* Set if less or equal unsigned*/
-    { "sgeu",     (ALUOP|SGEUF),  "c,a,b" },  /* Set if greater or equal      */
-    { "mvts",     (ALUOP|MVTSF),  "c,a"   },  /* Move to special register     */
-    { "mvfs",     (ALUOP|MVFSF),  "c,a"   },  /* Move from special register   */
-    { "bswap",    (ALUOP|BSWAPF), "c,a,b" },  /* ??? Was not documented       */
-    { "lut",      (ALUOP|LUTF),   "c,a,b" },  /* ????? same as above          */
-
-    /* Arithmetic and Logical Immediate I-TYPE instructions.  */
-    { "addi",     ADDIOP,         "b,a,I" },  /* Add Immediate                */
-    { "addui",    ADDUIOP,        "b,a,i" },  /* Add Usigned Immediate        */
-    { "subi",     SUBIOP,         "b,a,I" },  /* Sub Immediate                */
-    { "subui",    SUBUIOP,        "b,a,i" },  /* Sub Unsigned Immedated       */
-    { "andi",     ANDIOP,         "b,a,i" },  /* AND Immediate                */
-    { "ori",      ORIOP,          "b,a,i" },  /* OR  Immediate                */
-    { "xori",     XORIOP,         "b,a,i" },  /* Exclusive OR  Immediate      */
-    { "slli",     SLLIOP,         "b,a,i" },  /* SHIFT LEFT LOCICAL Immediate */
-    { "srai",     SRAIOP,         "b,a,i" },  /* SHIFT RIGHT ARITH. Immediate */
-    { "srli",     SRLIOP,         "b,a,i" },  /* SHIFT RIGHT LOGICAL Immediate*/
-    { "seqi",     SEQIOP,         "b,a,i" },  /* Set if equal                 */
-    { "snei",     SNEIOP,         "b,a,i" },  /* Set if not equal             */
-    { "slti",     SLTIOP,         "b,a,i" },  /* Set if less                  */
-    { "sgti",     SGTIOP,         "b,a,i" },  /* Set if greater               */
-    { "slei",     SLEIOP,         "b,a,i" },  /* Set if less or equal         */
-    { "sgei",     SGEIOP,         "b,a,i" },  /* Set if greater or equal      */
-    { "sequi",    SEQUIOP,        "b,a,i" },  /* Set if equal                 */
-    { "sneui",    SNEUIOP,        "b,a,i" },  /* Set if not equal             */
-    { "sltui",    SLTUIOP,        "b,a,i" },  /* Set if less                  */
-    { "sgtui",    SGTUIOP,        "b,a,i" },  /* Set if greater               */
-    { "sleui",    SLEUIOP,        "b,a,i" },  /* Set if less or equal         */
-    { "sgeui",    SGEUIOP,        "b,a,i" },  /* Set if greater or equal      */
-    /* Macros for I type instructions.  */
-    { "mov",      ADDIOP,         "b,P"   },  /* a move macro                 */
-    { "movu",     ADDUIOP,        "b,P"   },  /* a move macro, unsigned       */
-
-#if 0
-    /* Move special.  */
-    { "mvts",     MVTSOP,         "b,a"   },  /* Move From Integer to Special */
-    { "mvfs",     MVFSOP,         "b,a"   },  /* Move From Special to Integer */
-#endif
-
-    /* Load high Immediate I-TYPE instruction.  */
-    { "lhi",      LHIOP,          "b,i"   },  /* Load High Immediate          */
-    { "lui",      LHIOP,          "b,i"   },  /* Load High Immediate          */
-    { "sethi",    LHIOP,          "b,i"   },  /* Load High Immediate          */
-
-  /* LOAD/STORE BYTE 8 bits I-TYPE.  */
-    { "lb",       LBOP,           "b,a,I" },  /* Load Byte                    */
-    { "lbu",      LBUOP,          "b,a,I" },  /* Load Byte Unsigned           */
-    { "ldstbu",   LSBUOP,         "b,a,I" },  /* Load store Byte Unsigned     */
-    { "sb",       SBOP,           "b,a,I" },  /* Store Byte                   */
-
-    /* LOAD/STORE HALFWORD 16 bits.  */
-    { "lh",       LHOP,           "b,a,I" },  /* Load Halfword                */
-    { "lhu",      LHUOP,          "b,a,I" },  /* Load Halfword Unsigned       */
-    { "ldsthu",   LSHUOP,         "b,a,I" },  /* Load Store Halfword Unsigned */
-    { "sh",       SHOP,           "b,a,I" },  /* Store Halfword               */
-
-  /* LOAD/STORE WORD 32 bits.  */
-    { "lw",       LWOP,           "b,a,I" },  /* Load Word                    */
-    { "sw",       SWOP,           "b,a,I" },  /* Store Word                   */
-    { "ldstw",    LSWOP,          "b,a,I" },  /* Load Store Word              */
-
-  /* Branch PC-relative, 16 bits offset.  */
-    { "beqz",     BEQOP,          "a,d" },    /* Branch if a == 0             */
-    { "bnez",     BNEOP,          "a,d" },    /* Branch if a != 0             */
-    { "beq",      BEQOP,          "a,d" },    /* Branch if a == 0             */
-    { "bne",      BNEOP,          "a,d" },    /* Branch if a != 0             */
-
-    /* Jumps Trap and RFE J-TYPE.  */
-    { "j",        JOP,            "D" },      /* Jump, PC-relative 26 bits    */
-    { "jal",      JALOP,          "D" },      /* JAL, PC-relative 26 bits     */
-    { "break",    BREAKOP,        "D" },      /* break to OS                  */
-    { "trap" ,    TRAPOP,         "D" },      /* TRAP to OS                   */
-    { "rfe",      RFEOP,          "N" },      /* Return From Exception        */
-    /* Macros.  */
-    { "call",     JOP,            "D" },      /* Jump, PC-relative 26 bits    */
-
-    /* Jumps Trap and RFE I-TYPE.  */
-    { "jr",       JROP,           "a" },      /* Jump Register, Abs (32 bits) */
-    { "jalr",     JALROP,         "a" },      /* JALR, Abs (32 bits)          */
-    /* Macros.  */
-    { "retr",     JROP,           "a" },      /* Jump Register, Abs (32 bits) */
-
-    { "", 0x0, "" }		/* Dummy entry, not included in NUM_OPCODES.
-				   This lets code examine entry i + 1 without
-				   checking if we've run off the end of the table.  */
-  };
-
-const unsigned int num_dlx_opcodes = (((sizeof dlx_opcodes) / (sizeof dlx_opcodes[0])) - 1);
diff --git a/include/opcode/h8300.h b/include/opcode/h8300.h
deleted file mode 100644
index 10fdf52..0000000
--- a/include/opcode/h8300.h
+++ /dev/null
@@ -1,1893 +0,0 @@
-/* Opcode table for the H8/300
-   Copyright 1991, 1992, 1993, 1994, 1996, 1997, 1998, 2000, 2001, 2002,
-   2003, 2004
-   Free Software Foundation, Inc.
-   Written by Steve Chamberlain <sac@cygnus.com>.
-   
-   This file is part of GDB, the GNU Debugger and GAS, the GNU Assembler.
-   
-   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., 51 Franklin Street - Fifth Floor, Boston, MA
-   02110-1301, USA.  */
-
-/* Instructions are stored as a sequence of nibbles.
-   If the nibble has value 15 or less than the representation is complete.
-   Otherwise, we record what it contains with several flags.  */
-
-typedef int op_type;
-
-enum h8_flags
-{
-  L_2  =	0x10,
-  L_3  =	0x20,
-  /* 3 bit constant, zero not accepted.  */
-  L_3NZ =	0x30,
-  L_4  =	0x40,
-  L_5  =	0x50,
-  L_8  =	0x60,
-  L_8U =	0x70,
-  L_16 =	0x80,
-  L_16U =	0x90,
-  L_24 =	0xA0,
-  L_32 =	0xB0,
-  L_P  =	0xC0,
-
-  /* Mask to isolate the L_x size bits.  */
-  SIZE =	0xF0,
-
-  REG =		0x0100,
-  ABS =		0x0200,
-  MEMIND =	0x0300,
-  IMM =		0x0400,
-  DISP =	0x0500,
-  IND =		0x0600,
-  POSTINC =	0x0700,
-  POSTDEC =	0x0800,
-  PREINC =	0x0900,
-  PREDEC =	0x0A00,
-  PCREL =	0x0B00,
-  KBIT =	0x0C00,
-  DBIT =	0x0D00,
-  CONST_2 =     0x0E00,
-  CONST_4 =     0x0F00,
-  CONST_8 =     0x1000,
-  CONST_16 =    0x1100,
-  INDEXB =      0x1200,
-  INDEXW =      0x1300,
-  INDEXL =      0x1400,
-  PCIDXB =      0x1500,
-  PCIDXW =      0x1600,
-  PCIDXL =      0x1700,
-  VECIND =      0x1800,
-  LOWREG =      0x1900,
-  DATA   =      0x2000,
-
-  /* Synonyms.  */
-  INC =		POSTINC,
-  DEC =		PREDEC,
-  /* Control Registers.  */
-  CCR =		0x4000,
-  EXR =		0x4100,
-  MACH = 	0x4200,
-  MACL = 	0x4300,
-  RESERV1 = 	0x4400,
-  RESERV2 = 	0x4500,
-  VBR = 	0x4600,
-  SBR = 	0x4700,
-  MACREG =	0x4800,
-  CCR_EXR = 	0x4900,
-  VBR_SBR = 	0x4A00,
-  CC_EX_VB_SB =	0x4B00,
-  RESERV3 =	0x4C00,
-  RESERV4 = 	0x4D00,
-  RESERV5 = 	0x4E00,
-  RESERV6 = 	0x4F00,
-
-  /* Mask to isolate the addressing mode bits (REG .. PREDEC).  */
-  MODE =	0x7F00,
-
-  CTRL = 	0x4000,
-
-  NO_SYMBOLS =  0x8000,
-  SRC =		0x10000,
-  DST =		0x20000,
-  OP3 =		0x40000,
-  MEMRELAX = 	0x80000,		/* Move insn which may relax.  */
-
-  DISPREG =	0x100000,
-  IGNORE =	0x200000,
-  ABSJMP =	0x400000,
-
-  B00 =         0x800000, 		/* Bit 0 must be low.   */
-  B01 =         0x1000000, 		/* Bit 0 must be high.  */
-  B10 = 	0x2000000, 		/* Bit 1 must be low.   */
-  B11 = 	0x4000000, 		/* Bit 1 must be high.  */
-  B20 = 	0x8000000, 		/* Bit 2 must be low.   */
-  B21 = 	0x10000000, 		/* Bit 2 must be high.  */
-  B30 =		0x20000000, 		/* Bit 3 must be low.   */
-  B31 =		0x40000000,		/* Bit 3 must be high.  */
-  E =  		0x80000000,		/* End of nibble sequence.  */
-
-  /* Immediates smaller than 8 bits are always unsigned.  */
-  IMM3 =	IMM | L_3,
-  IMM4 =	IMM | L_4,
-  IMM5 =	IMM | L_5,
-  IMM3NZ =	IMM | L_3NZ,
-  IMM2 =	IMM | L_2,
-
-  IMM8 =	IMM | SRC | L_8,
-  IMM8U =	IMM | SRC | L_8U,
-  IMM16 =	IMM | SRC | L_16,
-  IMM16U =	IMM | SRC | L_16U,
-  IMM32 =	IMM | SRC | L_32,
-
-  IMM3NZ_NS =   IMM3NZ | NO_SYMBOLS,
-  IMM4_NS =	IMM4 | NO_SYMBOLS,
-  IMM8U_NS =	IMM8U | NO_SYMBOLS,
-  IMM16U_NS =   IMM16U | NO_SYMBOLS,
-
-  RD8  =	DST | L_8  | REG,
-  RD16 =	DST | L_16 | REG,
-  RD32 =	DST | L_32 | REG,
-  R3_8  =       OP3 | L_8  | REG,
-  R3_16 =       OP3 | L_16 | REG,
-  R3_32 =       OP3 | L_32 | REG,
-  RS8  =	SRC | L_8  | REG,
-  RS16 =	SRC | L_16 | REG,
-  RS32 =	SRC | L_32 | REG,
-
-  RSP =		SRC | L_P | REG,
-  RDP =		DST | L_P | REG,
-
-  PCREL8 =	PCREL | L_8,
-  PCREL16 =	PCREL | L_16,
-
-  OP3PCREL8 =	OP3 | PCREL | L_8,
-  OP3PCREL16 =	OP3 | PCREL | L_16,
-
-  INDEXB16  =	INDEXB | L_16,
-  INDEXW16  =	INDEXW | L_16,
-  INDEXL16  =	INDEXL | L_16,
-  INDEXB16D =	INDEXB | L_16 | DST,
-  INDEXW16D =	INDEXW | L_16 | DST,
-  INDEXL16D =	INDEXL | L_16 | DST,
-
-  INDEXB32  =	INDEXB | L_32,
-  INDEXW32  =	INDEXW | L_32,
-  INDEXL32  =	INDEXL | L_32,
-  INDEXB32D =	INDEXB | L_32 | DST,
-  INDEXW32D =	INDEXW | L_32 | DST,
-  INDEXL32D =	INDEXL | L_32 | DST,
-
-  DISP2SRC =	DISP | L_2  | SRC,
-  DISP16SRC =	DISP | L_16 | SRC,
-  DISP32SRC =	DISP | L_32 | SRC,
-
-  DISP2DST =	DISP | L_2  | DST,
-  DISP16DST =	DISP | L_16 | DST,
-  DISP32DST =	DISP | L_32 | DST,
-
-  DSTDISPREG =  DST | DISPREG,
-  SRCDISPREG =  SRC | DISPREG,
-
-  ABS8SRC  = 	SRC | ABS | L_8,
-  ABS16SRC = 	SRC | ABS | L_16U,
-  ABS24SRC = 	SRC | ABS | L_24,
-  ABS32SRC = 	SRC | ABS | L_32,
-
-  ABS8DST  =	DST | ABS | L_8,
-  ABS16DST = 	DST | ABS | L_16U,
-  ABS24DST = 	DST | ABS | L_24,
-  ABS32DST = 	DST | ABS | L_32,
-
-  ABS8OP3  =	OP3 | ABS | L_8,
-  ABS16OP3 = 	OP3 | ABS | L_16U,
-  ABS24OP3 = 	OP3 | ABS | L_24,
-  ABS32OP3 = 	OP3 | ABS | L_32,
-
-  RDDEC =	DST | DEC,
-  RSINC =	SRC | INC,
-  RDINC =	DST | INC,
-
-  RSPOSTINC =	SRC | POSTINC,
-  RDPOSTINC =	DST | POSTINC,
-  RSPREINC =	SRC | PREINC,
-  RDPREINC =	DST | PREINC,
-  RSPOSTDEC =	SRC | POSTDEC,
-  RDPOSTDEC =	DST | POSTDEC,
-  RSPREDEC =	SRC | PREDEC,
-  RDPREDEC =	DST | PREDEC,
-
-  RSIND =	SRC | IND,
-  RDIND =	DST | IND,
-  R3_IND = 	OP3 | IND,
-
-#define MS32	(SRC | L_32 | MACREG)
-#define MD32	(DST | L_32 | MACREG)
-
-#if 1
-  OR8  =	RS8,		/* ??? OR as in One Register.  */
-  OR16 =	RS16,
-  OR32 =	RS32,
-#else
-  OR8  =	RD8,
-  OR16 =	RD16,
-  OR32 =	RD32
-#endif
-};
-
-enum ctrlreg
-{
-  C_CCR  = 0, 
-  C_EXR  = 1, 
-  C_MACH = 2, 
-  C_MACL = 3, 
-  C_VBR  = 6, 
-  C_SBR  = 7
-};
-
-enum {MAX_CODE_NIBBLES = 33};
-
-struct code 
-{
-  op_type nib[MAX_CODE_NIBBLES];
-};
-
-struct arg 
-{
-  op_type nib[3];
-};
-
-/* Availability of instructions on processor models.  */
-enum h8_model
-{
-  AV_H8,
-  AV_H8H,
-  AV_H8S,
-  AV_H8SX
-};
-
-struct h8_opcode 
-{
-  int how;
-  enum h8_model available;
-  int time;
-  char *name;
-  struct arg args;
-  struct code data;
-};
-
-#ifdef DEFINE_TABLE
-
-#define DATA2   DATA, DATA
-#define DATA3   DATA, DATA, DATA
-#define DATA5   DATA, DATA, DATA, DATA, DATA
-#define DATA7   DATA, DATA, DATA, DATA, DATA, DATA, DATA
-
-#define IMM8LIST	IMM8,   DATA
-#define IMM16LIST	IMM16,  DATA3
-#define IMM16ULIST	IMM16U, DATA3
-#define IMM24LIST	IMM24,  DATA5
-#define IMM32LIST	IMM32,  DATA7
-
-#define DISP16LIST DISP | L_16, DATA3
-#define DISP24LIST DISP | L_24, DATA5
-#define DISP32LIST DISP | L_32, DATA7
-
-#define ABS8LIST   ABS  | L_8,   DATA
-#define ABS16LIST  ABS  | L_16U, DATA3
-#define ABS24LIST  ABS  | L_24,  DATA5
-#define ABS32LIST  ABS  | L_32,  DATA7
-
-#define DSTABS8LIST  DST | ABS | L_8,   DATA
-#define DSTABS16LIST DST | ABS | L_16U, DATA3
-#define DSTABS24LIST DST | ABS | L_24,  DATA5
-#define DSTABS32LIST DST | ABS | L_32,  DATA7
-
-#define OP3ABS8LIST  OP3 | ABS | L_8,  DATA
-#define OP3ABS16LIST OP3 | ABS | L_16, DATA3
-#define OP3ABS24LIST OP3 | ABS | L_24, DATA5
-#define OP3ABS32LIST OP3 | ABS | L_32, DATA7
-
-#define DSTDISP16LIST DST | DISP | L_16, DATA3
-#define DSTDISP24LIST DST | DISP | L_24, DATA5
-#define DSTDISP32LIST DST | DISP | L_32, DATA7
-
-#define A16LIST   L_16,  DATA3
-#define A24LIST   L_24,  DATA5
-#define A32LIST   L_32,  DATA7
-
-/* Extended Operand Prefixes:  */
-
-#define PREFIX_010	0x0, 0x1, 0x0
-#define PREFIX_015	0x0, 0x1, 0x5
-#define PREFIX_017	0x0, 0x1, 0x7
-
-#define PREFIX_0100	0x0, 0x1, 0x0, 0x0
-#define PREFIX_010_D2	0x0, 0x1, 0x0, B30 | B21 | DISP2SRC
-#define PREFIX_0101	0x0, 0x1, 0x0, 0x1
-#define PREFIX_0102	0x0, 0x1, 0x0, 0x2
-#define PREFIX_0103	0x0, 0x1, 0x0, 0x3
-#define PREFIX_0104	0x0, 0x1, 0x0, 0x4
-#define PREFIX_0105	0x0, 0x1, 0x0, 0x5
-#define PREFIX_0106	0x0, 0x1, 0x0, 0x6
-#define PREFIX_0107	0x0, 0x1, 0x0, 0x7
-#define PREFIX_0108	0x0, 0x1, 0x0, 0x8
-#define PREFIX_0109	0x0, 0x1, 0x0, 0x9
-#define PREFIX_010A	0x0, 0x1, 0x0, 0xa
-#define PREFIX_010D	0x0, 0x1, 0x0, 0xd
-#define PREFIX_010E	0x0, 0x1, 0x0, 0xe
-
-#define PREFIX_0150	0x0, 0x1, 0x5, 0x0
-#define PREFIX_015_D2	0x0, 0x1, 0x5, B30 | B21 | DISP2SRC
-#define PREFIX_0151	0x0, 0x1, 0x5, 0x1
-#define PREFIX_0152	0x0, 0x1, 0x5, 0x2
-#define PREFIX_0153	0x0, 0x1, 0x5, 0x3
-#define PREFIX_0154	0x0, 0x1, 0x5, 0x4
-#define PREFIX_0155	0x0, 0x1, 0x5, 0x5
-#define PREFIX_0156	0x0, 0x1, 0x5, 0x6
-#define PREFIX_0157	0x0, 0x1, 0x5, 0x7
-#define PREFIX_0158	0x0, 0x1, 0x5, 0x8
-#define PREFIX_0159	0x0, 0x1, 0x5, 0x9
-#define PREFIX_015A	0x0, 0x1, 0x5, 0xa
-#define PREFIX_015D	0x0, 0x1, 0x5, 0xd
-#define PREFIX_015E	0x0, 0x1, 0x5, 0xe
-#define PREFIX_015F	0x0, 0x1, 0x5, 0xf
-
-#define PREFIX_0170	0x0, 0x1, 0x7, 0x0
-#define PREFIX_017_D2S	0x0, 0x1, 0x7, B30 | B21 | DISP2SRC
-#define PREFIX_017_D2D	0x0, 0x1, 0x7, B30 | B21 | DISP2DST
-#define PREFIX_0171	0x0, 0x1, 0x7, 0x1
-#define PREFIX_0172	0x0, 0x1, 0x7, 0x2
-#define PREFIX_0173	0x0, 0x1, 0x7, 0x3
-#define PREFIX_0174	0x0, 0x1, 0x7, 0x4
-#define PREFIX_0175	0x0, 0x1, 0x7, 0x5
-#define PREFIX_0176	0x0, 0x1, 0x7, 0x6
-#define PREFIX_0177	0x0, 0x1, 0x7, 0x7
-#define PREFIX_0178	0x0, 0x1, 0x7, 0x8
-#define PREFIX_0179	0x0, 0x1, 0x7, 0x9
-#define PREFIX_017A	0x0, 0x1, 0x7, 0xa
-#define PREFIX_017D	0x0, 0x1, 0x7, 0xd
-#define PREFIX_017E	0x0, 0x1, 0x7, 0xe
-#define PREFIX_017F	0x0, 0x1, 0x7, 0xf
-
-#define PREFIX_6A15	0x6, 0xa, 0x1, 0x5
-#define PREFIX_6A35	0x6, 0xa, 0x3, 0x5
-#define PREFIX_6B15	0x6, 0xb, 0x1, 0x5
-#define PREFIX_6B35	0x6, 0xb, 0x3, 0x5
-
-#define PREFIX_78R4	0x7, 0x8, B31 | DISPREG, 0x4
-#define PREFIX_78R5	0x7, 0x8, B31 | DISPREG, 0x5
-#define PREFIX_78R6	0x7, 0x8, B31 | DISPREG, 0x6
-#define PREFIX_78R7	0x7, 0x8, B31 | DISPREG, 0x7
-
-#define PREFIX_78R4W	0x7, 0x8, B30 | DISPREG, 0x4
-#define PREFIX_78R5W	0x7, 0x8, B30 | DISPREG, 0x5
-#define PREFIX_78R6W	0x7, 0x8, B30 | DISPREG, 0x6
-#define PREFIX_78R7W	0x7, 0x8, B30 | DISPREG, 0x7
-
-#define PREFIX_78R4WD	0x7, 0x8, B30 | DSTDISPREG, 0x4
-#define PREFIX_78R5WD	0x7, 0x8, B30 | DSTDISPREG, 0x5
-#define PREFIX_78R6WD	0x7, 0x8, B30 | DSTDISPREG, 0x6
-#define PREFIX_78R7WD	0x7, 0x8, B30 | DSTDISPREG, 0x7
-
-#define PREFIX_7974	0x7, 0x9, 0x7, 0x4
-#define PREFIX_7A74	0x7, 0xa, 0x7, 0x4
-#define PREFIX_7A7C	0x7, 0xa, 0x7, 0xc
-
-
-/* Source standard fragment:  */
-#define FROM_IND	 0, RSIND
-#define FROM_POSTINC	 8, RSPOSTINC
-#define FROM_POSTDEC	10, RSPOSTDEC
-#define FROM_PREINC	 9, RSPREINC
-#define FROM_PREDEC	11, RSPREDEC
-#define FROM_DISP2	B30 | B20 | DISP2SRC, DISPREG 
-#define FROM_DISP16	12, B30 | DISPREG
-#define FROM_DISP32	12, B31 | DISPREG
-#define FROM_DISP16B	13, B30 | DISPREG
-#define FROM_DISP16W	14, B30 | DISPREG
-#define FROM_DISP16L	15, B30 | DISPREG
-#define FROM_DISP32B	13, B31 | DISPREG
-#define FROM_DISP32W	14, B31 | DISPREG
-#define FROM_DISP32L	15, B31 | DISPREG
-#define FROM_ABS16	 4, B30 | IGNORE
-#define FROM_ABS32	 4, B31 | IGNORE
-
-/* Destination standard fragment:  */
-#define TO_IND		 0, RDIND
-#define TO_IND_MOV	 0, RDIND | B30
-#define TO_POSTINC	 8, RDPOSTINC
-#define TO_POSTINC_MOV	 8, RDPOSTINC | B30
-#define TO_POSTDEC	10, RDPOSTDEC
-#define TO_POSTDEC_MOV	10, RDPOSTDEC | B30
-#define TO_PREINC	 9, RDPREINC
-#define TO_PREINC_MOV	 9, RDPREINC  | B30
-#define TO_PREDEC	11, RDPREDEC
-#define TO_PREDEC_MOV	11, RDPREDEC  | B30
-#define TO_DISP2	B30 | B20 | DISP2DST, DSTDISPREG
-#define TO_DISP2_MOV	B30 | B20 | DISP2DST, DSTDISPREG | B30
-#define TO_DISP16	12, B30 | DSTDISPREG
-#define TO_DISP32	12, B31 | DSTDISPREG
-#define TO_DISP16B	13, B30 | DSTDISPREG
-#define TO_DISP16W	14, B30 | DSTDISPREG
-#define TO_DISP16L	15, B30 | DSTDISPREG
-#define TO_DISP32B	13, B31 | DSTDISPREG
-#define TO_DISP32W	14, B31 | DSTDISPREG
-#define TO_DISP32L	15, B31 | DSTDISPREG
-#define TO_ABS16	 4, B30 | IGNORE
-#define TO_ABS32	 4, B31 | IGNORE
-
-/* Source fragment for three-word instruction:  */
-#define TFROM_IND	6,  9, B30 | RSIND, 12
-#define TFROM_DISP2	6,  9, B30 | DISPREG, 12
-#define TFROM_ABS16	6, 11, B30 | B20 | B10 | IGNORE, 12, ABS16LIST
-#define TFROM_ABS32	6, 11, B30 | B20 | B11 | IGNORE, 12, ABS32LIST
-#define TFROM_POSTINC	6, 13, B30 | RSPOSTINC, 12
-#define TFROM_PREINC	6, 13, B30 | RSPREINC, 12
-#define TFROM_POSTDEC	6, 13, B30 | RSPOSTDEC, 12
-#define TFROM_PREDEC	6, 13, B30 | RSPREDEC, 12
-#define TFROM_DISP16	6, 15, B30 | DISPREG, 12, DISP16LIST
-#define TFROM_DISP32	6, 11, 2, 12, DISP32LIST
-#define TFROM_DISP16B	6, 15, B30 | DISPREG, 12, DISP16LIST
-#define TFROM_DISP16W	6, 15, B30 | DISPREG, 12, DISP16LIST
-#define TFROM_DISP16L	6, 15, B30 | DISPREG, 12, DISP16LIST
-#define TFROM_DISP32B	6, 11, 2, 12, DISP32LIST
-#define TFROM_DISP32W	6, 11, 2, 12, DISP32LIST
-#define TFROM_DISP32L	6, 11, 2, 12, DISP32LIST
-#define TFROM_ABS16W	6, 11, 1, 12, ABS16LIST
-#define TFROM_ABS32W	6, 11, 3, 12, ABS32LIST
-
-/* Source fragment for three-word instruction:  */
-#define TFROM_IND_B	6,  8, B30 | RSIND, 12
-#define TFROM_ABS16_B	6, 10, B30 | B20 | B10 | IGNORE, 12, ABS16LIST
-#define TFROM_ABS32_B	6, 10, B30 | B20 | B11 | IGNORE, 12, ABS32LIST
-
-#define TFROM_DISP2_B	6,  8, B30 | DISPREG, 12
-#define TFROM_POSTINC_B	6, 12, B30 | RSPOSTINC, 12
-#define TFROM_PREINC_B	6, 12, B30 | RSPREINC, 12
-#define TFROM_POSTDEC_B	6, 12, B30 | RSPOSTDEC, 12
-#define TFROM_PREDEC_B	6, 12, B30 | RSPREDEC, 12
-#define TFROM_DISP16_B	6, 14, B30 | DISPREG, 12, DISP16LIST
-#define TFROM_DISP32_B	6, 10, 2, 12, DISP32LIST
-#define TFROM_DISP16B_B	6, 14, B30 | DISPREG, 12, DISP16LIST
-#define TFROM_DISP16W_B	6, 14, B30 | DISPREG, 12, DISP16LIST
-#define TFROM_DISP16L_B	6, 14, B30 | DISPREG, 12, DISP16LIST
-#define TFROM_DISP32B_B	6, 10, 2, 12, DISP32LIST
-#define TFROM_DISP32W_B	6, 10, 2, 12, DISP32LIST
-#define TFROM_DISP32L_B	6, 10, 2, 12, DISP32LIST
-
-#define TFROM_ABS16W_B	6, 10, 1, 12, ABS16LIST
-#define TFROM_ABS32W_B	6, 10, 3, 12, ABS32LIST
-
-/* Extended Operand Class Expanders:  */
-
-#define MOVFROM_STD(CODE, PREFIX, NAME, SRC, SRC_INFIX) \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDIND,     E}},  {{PREFIX, SRC_INFIX, TO_IND_MOV,     E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}},  {{PREFIX, SRC_INFIX, TO_POSTINC_MOV, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}},  {{PREFIX, SRC_INFIX, TO_POSTDEC_MOV, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC,  E}},  {{PREFIX, SRC_INFIX, TO_PREINC_MOV,  E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC,  E}},  {{PREFIX, SRC_INFIX, TO_PREDEC_MOV,  E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST,  E}},  {{PREFIX, SRC_INFIX, TO_DISP2_MOV,   E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}},  {{PREFIX, SRC_INFIX, TO_DISP16,  DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}},  {{PREFIX, SRC_INFIX, TO_DISP32,  DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}},  {{PREFIX, SRC_INFIX, TO_DISP16B, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}},  {{PREFIX, SRC_INFIX, TO_DISP16W, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}},  {{PREFIX, SRC_INFIX, TO_DISP16L, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}},  {{PREFIX, SRC_INFIX, TO_DISP32B, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}},  {{PREFIX, SRC_INFIX, TO_DISP32W, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}},  {{PREFIX, SRC_INFIX, TO_DISP32L, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, ABS16DST,  E}},  {{PREFIX, SRC_INFIX, TO_ABS16,   DSTABS16LIST,  E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, ABS32DST,  E}},  {{PREFIX, SRC_INFIX, TO_ABS32,   DSTABS32LIST,  E}}}
-
-#define MOVFROM_AD(CODE, PREFIX, NAME, SRC, SRC_INFIX, SRC_SUFFIX) \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDIND,     E}},  {{PREFIX, SRC_INFIX, TO_IND_MOV,     SRC_SUFFIX, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}},  {{PREFIX, SRC_INFIX, TO_POSTINC_MOV, SRC_SUFFIX, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}},  {{PREFIX, SRC_INFIX, TO_POSTDEC_MOV, SRC_SUFFIX, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC,  E}},  {{PREFIX, SRC_INFIX, TO_PREINC_MOV,  SRC_SUFFIX, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC,  E}},  {{PREFIX, SRC_INFIX, TO_PREDEC_MOV,  SRC_SUFFIX, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST,  E}},  {{PREFIX, SRC_INFIX, TO_DISP2_MOV,   SRC_SUFFIX, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}},  {{PREFIX, SRC_INFIX, TO_DISP16,  SRC_SUFFIX, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}},  {{PREFIX, SRC_INFIX, TO_DISP32,  SRC_SUFFIX, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}},  {{PREFIX, SRC_INFIX, TO_DISP16B, SRC_SUFFIX, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}},  {{PREFIX, SRC_INFIX, TO_DISP16W, SRC_SUFFIX, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}},  {{PREFIX, SRC_INFIX, TO_DISP16L, SRC_SUFFIX, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}},  {{PREFIX, SRC_INFIX, TO_DISP32B, SRC_SUFFIX, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}},  {{PREFIX, SRC_INFIX, TO_DISP32W, SRC_SUFFIX, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}},  {{PREFIX, SRC_INFIX, TO_DISP32L, SRC_SUFFIX, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, ABS16DST,  E}},  {{PREFIX, SRC_INFIX, TO_ABS16,   SRC_SUFFIX, DSTABS16LIST,  E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, ABS32DST,  E}},  {{PREFIX, SRC_INFIX, TO_ABS32,   SRC_SUFFIX, DSTABS32LIST,  E}}}
-
-#define MOVFROM_IMM8(CODE, PREFIX, NAME, SRC) \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDIND,     E}},  {{PREFIX,  0, RDIND,     IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}},  {{PREFIX,  8, RDPOSTINC, IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}},  {{PREFIX, 10, RDPOSTDEC, IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC,  E}},  {{PREFIX,  9, RDPREINC,  IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC,  E}},  {{PREFIX, 11, RDPREDEC,  IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST,  E}},  {{PREFIX, B30 | B20 | DISP2DST, DSTDISPREG, IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}},  {{PREFIX, 12, B30 | DSTDISPREG, IMM8LIST, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}},  {{PREFIX, 12, B31 | DSTDISPREG, IMM8LIST, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}},  {{PREFIX, 13, B30 | DSTDISPREG, IMM8LIST, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}},  {{PREFIX, 14, B30 | DSTDISPREG, IMM8LIST, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}},  {{PREFIX, 15, B30 | DSTDISPREG, IMM8LIST, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}},  {{PREFIX, 13, B31 | DSTDISPREG, IMM8LIST, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}},  {{PREFIX, 14, B31 | DSTDISPREG, IMM8LIST, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}},  {{PREFIX, 15, B31 | DSTDISPREG, IMM8LIST, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, ABS16DST,  E}},  {{PREFIX,  4, B30 | IGNORE,     IMM8LIST, DSTABS16LIST,  E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, ABS32DST,  E}},  {{PREFIX,  4, B31 | IGNORE,     IMM8LIST, DSTABS32LIST,  E}}}
-
-#define MOVFROM_IMM(CODE, PREFIX, NAME, SRC, LIST) \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDIND,     E}},  {{PREFIX, LIST,  0, RDIND,     DATA2, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}},  {{PREFIX, LIST,  8, RDPOSTINC, DATA2, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}},  {{PREFIX, LIST, 10, RDPOSTDEC, DATA2, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC,  E}},  {{PREFIX, LIST,  9, RDPREINC,  DATA2, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC,  E}},  {{PREFIX, LIST, 11, RDPREDEC,  DATA2, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST,  E}},  {{PREFIX, LIST, B30 | B20 | DISP2DST, DSTDISPREG, DATA2, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}},  {{PREFIX, LIST, 12, B30 | DSTDISPREG, DATA2, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}},  {{PREFIX, LIST, 12, B31 | DSTDISPREG, DATA2, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}},  {{PREFIX, LIST, 13, B30 | DSTDISPREG, DATA2, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}},  {{PREFIX, LIST, 14, B30 | DSTDISPREG, DATA2, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}},  {{PREFIX, LIST, 15, B30 | DSTDISPREG, DATA2, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}},  {{PREFIX, LIST, 13, B31 | DSTDISPREG, DATA2, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}},  {{PREFIX, LIST, 14, B31 | DSTDISPREG, DATA2, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}},  {{PREFIX, LIST, 15, B31 | DSTDISPREG, DATA2, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, ABS16DST,  E}},  {{PREFIX, LIST,  4, B30 | IGNORE,     DATA2, DSTABS16LIST,  E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, ABS32DST,  E}},  {{PREFIX, LIST,  4, B31 | IGNORE,     DATA2, DSTABS32LIST,  E}}}
-
-#define MOVFROM_REG_BW(CODE, NAME, SRC, PREFIX, OP1, OP2, OP3, OP4, RELAX16) \
-  {CODE, AV_H8,   4, NAME, {{SRC, RDIND,     E}}, {{                              6, OP1, B31 | RDIND,      SRC,                E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, 3,                    6, OP3, B31 | RDPOSTINC,  SRC,                E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, 1,                    6, OP3, B31 | RDPOSTDEC,  SRC,                E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC,  E}}, {{PREFIX, 2,                    6, OP3, B31 | RDPREINC,   SRC,                E}}}, \
-  {CODE, AV_H8,   6, NAME, {{SRC, RDPREDEC,  E}}, {{                              6, OP3, B31 | RDPREDEC,   SRC,                E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST,  E}}, {{PREFIX, B30 | B20 | DISP2DST, 6, OP1, B31 | DSTDISPREG, SRC,                E}}}, \
-  {CODE, AV_H8,   6, NAME, {{SRC, DISP16DST, E}}, {{                              6, OP4, B31 | DSTDISPREG, SRC, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8,   6, NAME, {{SRC, DISP32DST, E}}, {{7, 8, B30 | DSTDISPREG, 0,    6, OP2, 10,               SRC, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, 1,                    6, OP4, B31 | DSTDISPREG, SRC, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, 2,                    6, OP4, B31 | DSTDISPREG, SRC, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, 3,                    6, OP4, B31 | DSTDISPREG, SRC, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{7, 8, B30 | DSTDISPREG, 1,    6, OP2, 10,               SRC, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{7, 8, B30 | DSTDISPREG, 2,    6, OP2, 10,               SRC, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{7, 8, B30 | DSTDISPREG, 3,    6, OP2, 10,               SRC, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8,   4, NAME, {{SRC, ABS16DST,  E}}, {{                              6, OP2, 8,                SRC, RELAX16  | DSTABS16LIST, E}}}, \
-  {CODE, AV_H8,   6, NAME, {{SRC, ABS32DST,  E}}, {{                              6, OP2, 10,               SRC, MEMRELAX | DSTABS32LIST, E}}}
-
-#define MOVTO_REG_BW(CODE, NAME, DST, PREFIX, OP1, OP2, OP3, OP4, RELAX16) \
-  {CODE, AV_H8,   4, NAME, {{RSIND,     DST, E}}, {{                              6, OP1, B30 | RSIND,     DST,             E}}}, \
-  {CODE, AV_H8,   6, NAME, {{RSPOSTINC, DST, E}}, {{                              6, OP3, B30 | RSPOSTINC, DST,             E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSPOSTDEC, DST, E}}, {{PREFIX, 2,                    6, OP3, B30 | RSPOSTDEC, DST,             E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSPREINC,  DST, E}}, {{PREFIX, 1,                    6, OP3, B30 | RSPREINC,  DST,             E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSPREDEC,  DST, E}}, {{PREFIX, 3,                    6, OP3, B30 | RSPREDEC,  DST,             E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{DISP2SRC,  DST, E}}, {{PREFIX, B30 | B20 | DISP2SRC, 6, OP1, B30 | DISPREG,   DST,             E}}}, \
-  {CODE, AV_H8,   6, NAME, {{DISP16SRC, DST, E}}, {{                              6, OP4, B30 | DISPREG,   DST, DISP16LIST, E}}}, \
-  {CODE, AV_H8,   6, NAME, {{DISP32SRC, DST, E}}, {{7, 8, B30 | DISPREG, 0,       6, OP2, 2,               DST, DISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXB16,  DST, E}}, {{PREFIX, 1,                    6, OP4, B30 | DISPREG,   DST, DISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXW16,  DST, E}}, {{PREFIX, 2,                    6, OP4, B30 | DISPREG,   DST, DISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXL16,  DST, E}}, {{PREFIX, 3,                    6, OP4, B30 | DISPREG,   DST, DISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXB32,  DST, E}}, {{7, 8, B30 | DISPREG, 1,       6, OP2, 2,               DST, DISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXW32,  DST, E}}, {{7, 8, B30 | DISPREG, 2,       6, OP2, 2,               DST, DISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXL32,  DST, E}}, {{7, 8, B30 | DISPREG, 3,       6, OP2, 2,               DST, DISP32LIST, E}}}, \
-  {CODE, AV_H8,   4, NAME, {{ABS16SRC,  DST, E}}, {{                              6, OP2, 0,               DST, RELAX16  | ABS16LIST, E}}}, \
-  {CODE, AV_H8,   6, NAME, {{ABS32SRC,  DST, E}}, {{                              6, OP2, 2,               DST, MEMRELAX | ABS32LIST, E}}}
-
-/* Expansion macros for two-word (plus data) instructions.  */
-
-/* Expansion from one source to "standard" destinations.  */
-#define EXPAND2_STD_SRC(CODE, WEIGHT, NAME, SRC, PREFIX, NIB1, NIB2) \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, TO_POSTINC, NIB1, NIB2, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, TO_POSTDEC, NIB1, NIB2, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC,  E}}, {{PREFIX, TO_PREINC,  NIB1, NIB2, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC,  E}}, {{PREFIX, TO_PREDEC,  NIB1, NIB2, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST,  E}}, {{PREFIX, TO_DISP2,   NIB1, NIB2, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, TO_DISP16,  NIB1, NIB2, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, TO_DISP32,  NIB1, NIB2, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, TO_DISP16B, NIB1, NIB2, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, TO_DISP16W, NIB1, NIB2, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, TO_DISP16L, NIB1, NIB2, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, TO_DISP32B, NIB1, NIB2, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, TO_DISP32W, NIB1, NIB2, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, TO_DISP32L, NIB1, NIB2, DSTDISP32LIST, E}}}
-
-/* Expansion from one destination to "standard" sources.  */
-#define EXPAND2_STD_DST(CODE, WEIGHT, NAME, DST, PREFIX, NIB1, NIB2) \
-  {CODE, AV_H8SX, 0, NAME, {{RSPOSTINC, DST, E}}, {{PREFIX, FROM_POSTINC, NIB1, NIB2, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSPOSTDEC, DST, E}}, {{PREFIX, FROM_POSTDEC, NIB1, NIB2, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSPREINC,  DST, E}}, {{PREFIX, FROM_PREINC,  NIB1, NIB2, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSPREDEC,  DST, E}}, {{PREFIX, FROM_PREDEC,  NIB1, NIB2, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{DISP2SRC,  DST, E}}, {{PREFIX, FROM_DISP2,   NIB1, NIB2, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{DISP16SRC, DST, E}}, {{PREFIX, FROM_DISP16,  NIB1, NIB2, DISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{DISP32SRC, DST, E}}, {{PREFIX, FROM_DISP32,  NIB1, NIB2, DISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXB16,  DST, E}}, {{PREFIX, FROM_DISP16B, NIB1, NIB2, DISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXW16,  DST, E}}, {{PREFIX, FROM_DISP16W, NIB1, NIB2, DISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXL16,  DST, E}}, {{PREFIX, FROM_DISP16L, NIB1, NIB2, DISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXB32,  DST, E}}, {{PREFIX, FROM_DISP32B, NIB1, NIB2, DISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXW32,  DST, E}}, {{PREFIX, FROM_DISP32W, NIB1, NIB2, DISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXL32,  DST, E}}, {{PREFIX, FROM_DISP32L, NIB1, NIB2, DISP32LIST, E}}}
-
-/* Expansion from immediate source to "standard" destinations.  */
-#define EXPAND2_STD_IMM(CODE, WEIGHT, NAME, SRC, PREFIX, OPCODE, IGN, IMMLIST) \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, TO_POSTINC, OPCODE, IGN, IMMLIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, TO_POSTDEC, OPCODE, IGN, IMMLIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC,  E}}, {{PREFIX, TO_PREINC,  OPCODE, IGN, IMMLIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC,  E}}, {{PREFIX, TO_PREDEC,  OPCODE, IGN, IMMLIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST,  E}}, {{PREFIX, TO_DISP2,   OPCODE, IGN, IMMLIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, TO_DISP16,  OPCODE, IGN, DSTDISP16LIST, IMMLIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, TO_DISP32,  OPCODE, IGN, DSTDISP32LIST, IMMLIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, TO_DISP16B, OPCODE, IGN, DSTDISP16LIST, IMMLIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, TO_DISP16W, OPCODE, IGN, DSTDISP16LIST, IMMLIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, TO_DISP16L, OPCODE, IGN, DSTDISP16LIST, IMMLIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, TO_DISP32B, OPCODE, IGN, DSTDISP32LIST, IMMLIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, TO_DISP32W, OPCODE, IGN, DSTDISP32LIST, IMMLIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, TO_DISP32L, OPCODE, IGN, DSTDISP32LIST, IMMLIST, E}}}
-
-/* Expansion from abs/disp source to "standard" destinations.  */
-#define EXPAND2_STD_ABSDISP(CODE, WEIGHT, NAME, SRC, PREFIX, DSTLIST, NIB1, NIB2) \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, DSTLIST, TO_POSTINC, NIB1, NIB2, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, DSTLIST, TO_POSTDEC, NIB1, NIB2, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC,  E}}, {{PREFIX, DSTLIST, TO_PREINC,  NIB1, NIB2, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC,  E}}, {{PREFIX, DSTLIST, TO_PREDEC,  NIB1, NIB2, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST,  E}}, {{PREFIX, DSTLIST, TO_DISP2,   NIB1, NIB2, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, DSTLIST, TO_DISP16,  NIB1, NIB2, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, DSTLIST, TO_DISP32,  NIB1, NIB2, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, DSTLIST, TO_DISP16B, NIB1, NIB2, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, DSTLIST, TO_DISP16W, NIB1, NIB2, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, DSTLIST, TO_DISP16L, NIB1, NIB2, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, DSTLIST, TO_DISP32B, NIB1, NIB2, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, DSTLIST, TO_DISP32W, NIB1, NIB2, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, DSTLIST, TO_DISP32L, NIB1, NIB2, DSTDISP32LIST, E}}}
-
-/* Expansion from ind source to "standard" destinations.  */
-#define EXPAND2_STD_IND(CODE, WEIGHT, NAME, OPCODE, BIT) \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, RDPOSTINC, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_POSTINC, OPCODE, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, RDPOSTDEC, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_POSTDEC, OPCODE, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, RDPREINC,  E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_PREINC,  OPCODE, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, RDPREDEC,  E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_PREDEC,  OPCODE, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, DISP2DST,  E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP2,   OPCODE, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, DISP16DST, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP16,  OPCODE, IGNORE, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, DISP32DST, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP32,  OPCODE, IGNORE, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXB16D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP16B, OPCODE, IGNORE, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXW16D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP16W, OPCODE, IGNORE, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXL16D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP16L, OPCODE, IGNORE, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXB32D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP32B, OPCODE, IGNORE, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXW32D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP32W, OPCODE, IGNORE, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXL32D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP32L, OPCODE, IGNORE, DSTDISP32LIST, E}}}
-
-/* Expansion macros for three word (plus data) instructions.  */
-
-#define EXPAND3_STD_SRC(CODE, WEIGHT, NAME, SRC, PREFIX, INFIX, OPCODE)  \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, INFIX,  8, RDPOSTINC, OPCODE, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, INFIX, 10, RDPOSTDEC, OPCODE, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC,  E}}, {{PREFIX, INFIX,  9, RDPREINC,  OPCODE, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC,  E}}, {{PREFIX, INFIX, 11, RDPREDEC,  OPCODE, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST,  E}}, {{PREFIX, INFIX, B30 | B20 | DISP2DST, DSTDISPREG, OPCODE, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, INFIX, 12, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, INFIX, 12, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, INFIX, 13, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, INFIX, 14, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, INFIX, 15, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, INFIX, 13, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, INFIX, 14, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, INFIX, 15, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}
-
-#define EXPAND3_L_SRC(CODE, WEIGHT, NAME, SRC, PREFIX, INFIX, OPCODE)  \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDIND,     E}}, {{PREFIX, INFIX,  0, RDIND,     OPCODE, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, INFIX,  8, RDPOSTINC, OPCODE, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, INFIX, 10, RDPOSTDEC, OPCODE, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC,  E}}, {{PREFIX, INFIX,  9, RDPREINC,  OPCODE, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC,  E}}, {{PREFIX, INFIX, 11, RDPREDEC,  OPCODE, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST,  E}}, {{PREFIX, INFIX, B30 | B20 | DISP2DST, DSTDISPREG, OPCODE, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, INFIX, 12, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, INFIX, 12, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, INFIX, 13, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, INFIX, 14, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, INFIX, 15, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, INFIX, 13, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, INFIX, 14, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, INFIX, 15, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, ABS16DST,  E}}, {{PREFIX, INFIX,  4, B30 | IGNORE,     OPCODE, B30 | IGNORE, DSTABS16LIST,  E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{SRC, ABS32DST,  E}}, {{PREFIX, INFIX,  4, B31 | IGNORE,     OPCODE, B30 | IGNORE, DSTABS32LIST,  E}}}
-
-
-#define EXPAND_STD_MATRIX_L(CODE, NAME, OPCODE) \
-  EXPAND3_L_SRC (CODE, 6, NAME, RSIND,     PREFIX_0104,   TFROM_IND,     OPCODE), \
-  EXPAND3_L_SRC (CODE, 6, NAME, RSPOSTINC, PREFIX_0104,   TFROM_POSTINC, OPCODE), \
-  EXPAND3_L_SRC (CODE, 6, NAME, RSPOSTDEC, PREFIX_0106,   TFROM_POSTDEC, OPCODE), \
-  EXPAND3_L_SRC (CODE, 6, NAME, RSPREINC,  PREFIX_0105,   TFROM_PREINC,  OPCODE), \
-  EXPAND3_L_SRC (CODE, 6, NAME, RSPREDEC,  PREFIX_0107,   TFROM_PREDEC,  OPCODE), \
-  EXPAND3_L_SRC (CODE, 6, NAME, DISP2SRC,  PREFIX_010_D2, TFROM_DISP2,   OPCODE), \
-  EXPAND3_L_SRC (CODE, 6, NAME, DISP16SRC, PREFIX_0104,   TFROM_DISP16,  OPCODE), \
-  EXPAND3_L_SRC (CODE, 6, NAME, DISP32SRC, PREFIX_78R4,   TFROM_DISP32,  OPCODE), \
-  EXPAND3_L_SRC (CODE, 6, NAME, INDEXB16,  PREFIX_0105,   TFROM_DISP16B, OPCODE), \
-  EXPAND3_L_SRC (CODE, 6, NAME, INDEXW16,  PREFIX_0106,   TFROM_DISP16W, OPCODE), \
-  EXPAND3_L_SRC (CODE, 6, NAME, INDEXL16,  PREFIX_0107,   TFROM_DISP16L, OPCODE), \
-  EXPAND3_L_SRC (CODE, 6, NAME, INDEXB32,  PREFIX_78R5,   TFROM_DISP32B, OPCODE), \
-  EXPAND3_L_SRC (CODE, 6, NAME, INDEXW32,  PREFIX_78R6,   TFROM_DISP32W, OPCODE), \
-  EXPAND3_L_SRC (CODE, 6, NAME, INDEXL32,  PREFIX_78R7,   TFROM_DISP32L, OPCODE), \
-  EXPAND3_L_SRC (CODE, 6, NAME, ABS16SRC,  PREFIX_0104,   TFROM_ABS16,   OPCODE), \
-  EXPAND3_L_SRC (CODE, 6, NAME, ABS32SRC,  PREFIX_0104,   TFROM_ABS32,   OPCODE)
-
-
-#define EXPAND_STD_MATRIX_W(CODE, NAME, OPCODE) \
-  EXPAND3_L_SRC (CODE, 4, NAME, RSPOSTINC, PREFIX_0154,   TFROM_POSTINC, OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, RSPOSTDEC, PREFIX_0156,   TFROM_POSTDEC, OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, RSPREINC,  PREFIX_0155,   TFROM_PREINC,  OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, RSPREDEC,  PREFIX_0157,   TFROM_PREDEC,  OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, DISP2SRC,  PREFIX_015_D2, TFROM_DISP2,   OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, DISP16SRC, PREFIX_0154,   TFROM_DISP16,  OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, DISP32SRC, PREFIX_78R4W,  TFROM_DISP32,  OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, INDEXB16,  PREFIX_0155,   TFROM_DISP16B, OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, INDEXW16,  PREFIX_0156,   TFROM_DISP16W, OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, INDEXL16,  PREFIX_0157,   TFROM_DISP16L, OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, INDEXB32,  PREFIX_78R5W,  TFROM_DISP32B, OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, INDEXW32,  PREFIX_78R6W,  TFROM_DISP32W, OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, INDEXL32,  PREFIX_78R7W,  TFROM_DISP32L, OPCODE)
-
-#define EXPAND_STD_MATRIX_B(CODE, NAME, OPCODE) \
-  EXPAND3_L_SRC (CODE, 4, NAME, RSPOSTINC, PREFIX_0174,    TFROM_POSTINC_B, OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, RSPOSTDEC, PREFIX_0176,    TFROM_POSTDEC_B, OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, RSPREINC,  PREFIX_0175,    TFROM_PREINC_B,  OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, RSPREDEC,  PREFIX_0177,    TFROM_PREDEC_B,  OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, DISP2SRC,  PREFIX_017_D2S, TFROM_DISP2_B,   OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, DISP16SRC, PREFIX_0174,    TFROM_DISP16_B,  OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, DISP32SRC, PREFIX_78R4W,   TFROM_DISP32_B,  OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, INDEXB16,  PREFIX_0175,    TFROM_DISP16B_B, OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, INDEXW16,  PREFIX_0176,    TFROM_DISP16W_B, OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, INDEXL16,  PREFIX_0177,    TFROM_DISP16L_B, OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, INDEXB32,  PREFIX_78R5W,   TFROM_DISP32B_B, OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, INDEXW32,  PREFIX_78R6W,   TFROM_DISP32W_B, OPCODE), \
-  EXPAND3_L_SRC (CODE, 4, NAME, INDEXL32,  PREFIX_78R7W,   TFROM_DISP32L_B, OPCODE)
-
-
-/* Use the expansion macros to fill out the opcode table.  */
-
-#define EXPAND_FROM_REG8(CODE, NAME, OP1, OP2, OP3) \
-  {CODE, AV_H8SX, 0, NAME, {{RS8, RDIND,     E}}, {{0x7, 0xd, B30 | RDIND, IGNORE,             OP1, OP2, RS8, IGNORE, E}}}, \
-  EXPAND2_STD_SRC (CODE, 2, NAME, RS8, PREFIX_0179, OP3, RS8), \
-  {CODE, AV_H8SX, 0, NAME, {{RS8, ABS8DST,   E}}, {{0x7, 0xf, DSTABS8LIST,                     OP1, OP2, RS8, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RS8, ABS16DST,  E}}, {{0x6, 0xa, 0x1, B31 | IGNORE, DSTABS16LIST, OP1, OP2, RS8, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RS8, ABS32DST,  E}}, {{0x6, 0xa, 0x3, B31 | IGNORE, DSTABS32LIST, OP1, OP2, RS8, IGNORE, E}}}
-
-#define EXPAND_TO_REG8(CODE, NAME, OP1, OP2, OP3) \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, RD8,     E}}, {{0x7, 0xc, B30 | RSIND, IGNORE,          OP1, OP2, IGNORE, RD8, E}}}, \
-  EXPAND2_STD_DST (CODE, 2, NAME, RD8, PREFIX_017A, OP3, RD8), \
-  {CODE, AV_H8SX, 0, NAME, {{ABS8SRC,  RD8,  E}}, {{0x7, 0xe, ABS8LIST,                     OP1, OP2, IGNORE, RD8, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, RD8,  E}}, {{0x6, 0xa, 0x1, B30 | IGNORE, ABS16LIST, OP1, OP2, IGNORE, RD8, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, RD8,  E}}, {{0x6, 0xa, 0x3, B30 | IGNORE, ABS32LIST, OP1, OP2, IGNORE, RD8, E}}}
-
-#define EXPAND_FROM_IND8(CODE, NAME, OPCODE) \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, RDIND,    E}}, {{0x7, 0xc, B30 | RSIND, 0x5, TO_IND,   OPCODE, IGNORE, E}}}, \
-  EXPAND2_STD_IND (CODE, 2, NAME, OPCODE, B30), \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, ABS16DST, E}}, {{0x7, 0xc, B30 | RSIND, 0x5, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, ABS32DST, E}}, {{0x7, 0xc, B30 | RSIND, 0x5, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}}
-
-#define EXPAND_FROM_ABS16_B(CODE, NAME, OPCODE) \
-  {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, RDIND,    E}}, {{PREFIX_6A15, ABS16LIST, TO_IND,   OPCODE, IGNORE, E}}}, \
-  EXPAND2_STD_ABSDISP (CODE, 2, NAME, ABS16SRC, PREFIX_6A15, ABS16LIST, OPCODE, IGNORE), \
-  {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, ABS16DST, E}}, {{PREFIX_6A15, ABS16LIST, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, ABS32DST, E}}, {{PREFIX_6A15, ABS16LIST, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}}
-
-#define EXPAND_FROM_ABS32_B(CODE, NAME, OPCODE) \
-  {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, RDIND,    E}}, {{PREFIX_6A35, ABS32LIST, TO_IND,   OPCODE, IGNORE, E}}}, \
-  EXPAND2_STD_ABSDISP (CODE, 2, NAME, ABS32SRC, PREFIX_6A35, ABS32LIST, OPCODE, IGNORE), \
-  {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, ABS16DST, E}}, {{PREFIX_6A35, ABS32LIST, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, ABS32DST, E}}, {{PREFIX_6A35, ABS32LIST, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}}
-
-#define EXPAND_FROM_IMM16_W(CODE, NAME, OPCODE) \
-  {CODE, AV_H8SX, 0, NAME, {{IMM16, RDIND,    E}}, {{PREFIX_015E, TO_IND, OPCODE, IGNORE, IMM16LIST, E}}}, \
-  EXPAND2_STD_IMM (CODE, 2, NAME, IMM16, PREFIX_015E, OPCODE, IGNORE, IMM16LIST), \
-  {CODE, AV_H8SX, 0, NAME, {{IMM16, ABS16DST, E}}, {{PREFIX_015E, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, IMM16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{IMM16, ABS32DST, E}}, {{PREFIX_015E, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, IMM16LIST, E}}}
-
-#define EXPAND_FROM_REG16(CODE, NAME, OP1, OP2, OP3) \
-  {CODE, AV_H8,   2, NAME, {{RS16, RDIND,    E}}, {{0x7, 0xd, B31 | RDIND, IGNORE,             OP1, OP2, RS16, IGNORE, E}}}, \
-  EXPAND2_STD_SRC (CODE, 2, NAME, RS16, PREFIX_0159, OP3, RS16), \
-  {CODE, AV_H8SX, 0, NAME, {{RS16, ABS16DST, E}}, {{0x6, 0xb, 0x1, B31 | IGNORE, DSTABS16LIST, OP1, OP2, RS16, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RS16, ABS32DST, E}}, {{0x6, 0xb, 0x3, B31 | IGNORE, DSTABS32LIST, OP1, OP2, RS16, IGNORE, E}}}
-
-#define EXPAND_TO_REG16(CODE, NAME, OP1, OP2, OP3) \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, RD16,    E}}, {{0x7, 0xc, B31 | RSIND, IGNORE,          OP1, OP2, IGNORE, RD16, E}}}, \
-  EXPAND2_STD_DST (CODE, 2, NAME, RD16, PREFIX_015A, OP3, RD16), \
-  {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, RD16, E}}, {{0x6, 0xb, 0x1, B30 | IGNORE, ABS16LIST, OP1, OP2, IGNORE, RD16, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, RD16, E}}, {{0x6, 0xb, 0x3, B30 | IGNORE, ABS32LIST, OP1, OP2, IGNORE, RD16, E}}}
-
-#define EXPAND_FROM_IND16(CODE, NAME, OPCODE) \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, RDIND,    E}}, {{0x7, 0xc, B31 | RSIND, 0x5, TO_IND, OPCODE, IGNORE, E}}}, \
-  EXPAND2_STD_IND (CODE, 2, NAME, OPCODE, B31), \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, ABS16DST, E}}, {{0x7, 0xc, B31 | RSIND, 0x5, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, ABS32DST, E}}, {{0x7, 0xc, B31 | RSIND, 0x5, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}}
-
-#define EXPAND_FROM_ABS16_W(CODE, NAME, OPCODE) \
-  {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, RDIND,    E}}, {{PREFIX_6B15, ABS16LIST, TO_IND,   OPCODE, IGNORE, E}}}, \
-  EXPAND2_STD_ABSDISP (CODE, 2, NAME, ABS16SRC, PREFIX_6B15, ABS16LIST, OPCODE, IGNORE), \
-  {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, ABS16DST, E}}, {{PREFIX_6B15, ABS16LIST, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, ABS32DST, E}}, {{PREFIX_6B15, ABS16LIST, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}}
-
-#define EXPAND_FROM_ABS32_W(CODE, NAME, OPCODE) \
-  {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, RDIND,    E}}, {{PREFIX_6B35, ABS32LIST, TO_IND,   OPCODE, IGNORE, E}}}, \
-  EXPAND2_STD_ABSDISP (CODE, 2, NAME, ABS32SRC, PREFIX_6B35, ABS32LIST, OPCODE, IGNORE), \
-  {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, ABS16DST, E}}, {{PREFIX_6B35, ABS32LIST, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, ABS32DST, E}}, {{PREFIX_6B35, ABS32LIST, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}}
-
-#define EXPAND_FROM_IMM16_L(CODE, NAME, OPCODE) \
-  {CODE, AV_H8SX, 0, NAME, {{IMM16U_NS, RDIND,    E}}, {{PREFIX_010E, TO_IND, OPCODE, B30 | IGNORE, IMM16ULIST, E}}}, \
-  EXPAND2_STD_IMM (CODE, 2, NAME, IMM16U_NS, PREFIX_010E, OPCODE, B30 | IGNORE, IMM16ULIST), \
-  {CODE, AV_H8SX, 0, NAME, {{IMM16U_NS, ABS16DST, E}}, {{PREFIX_010E, TO_ABS16, OPCODE, B30 | IGNORE, DSTABS16LIST, IMM16ULIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{IMM16U_NS, ABS32DST, E}}, {{PREFIX_010E, TO_ABS32, OPCODE, B30 | IGNORE, DSTABS32LIST, IMM16ULIST, E}}}
-
-#define EXPAND_FROM_IMM32_L(CODE, NAME, OPCODE) \
-  {CODE, AV_H8SX, 0, NAME, {{IMM32, RDIND,    E}}, {{PREFIX_010E, TO_IND, OPCODE, B31 | IGNORE, IMM32LIST, E}}}, \
-  EXPAND2_STD_IMM (CODE, 2, NAME, IMM32, PREFIX_010E, OPCODE, B31 | IGNORE, IMM32LIST), \
-  {CODE, AV_H8SX, 0, NAME, {{IMM32, ABS16DST, E}}, {{PREFIX_010E, TO_ABS16, OPCODE, B31 | IGNORE, DSTABS16LIST, IMM32LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{IMM32, ABS32DST, E}}, {{PREFIX_010E, TO_ABS32, OPCODE, B31 | IGNORE, DSTABS32LIST, IMM32LIST, E}}}
-
-#define EXPAND_FROM_REG32(CODE, NAME, OPCODE) \
-  {CODE, AV_H8SX, 0, NAME, {{RS32, RDIND,    E}}, {{PREFIX_0109, TO_IND,   OPCODE, B30 | RS32, E}}}, \
-  EXPAND2_STD_SRC (CODE, 2, NAME, RS32, PREFIX_0109, OPCODE, B30 | RS32), \
-  {CODE, AV_H8SX, 0, NAME, {{RS32, ABS16DST, E}}, {{PREFIX_0109, TO_ABS16, OPCODE, B30 | RS32, DSTABS16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RS32, ABS32DST, E}}, {{PREFIX_0109, TO_ABS32, OPCODE, B30 | RS32, DSTABS32LIST, E}}}
-
-#define EXPAND_TO_REG32(CODE, NAME, OPCODE) \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND, RD32,    E}}, {{PREFIX_010A, FROM_IND,   OPCODE, B30 | RD32, E}}}, \
-  EXPAND2_STD_DST (CODE, 2, NAME, RD32, PREFIX_010A, OPCODE, B30 | RD32), \
-  {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, RD32, E}}, {{PREFIX_010A, FROM_ABS16, OPCODE, B30 | RD32, ABS16LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, RD32, E}}, {{PREFIX_010A, FROM_ABS32, OPCODE, B30 | RD32, ABS32LIST, E}}}
-
-
-#define EXPAND_TWOOP_B(CODE, NAME, OP1, OP2, OP3, OP4, BIT) \
-  {CODE, AV_H8SX, 0, NAME, {{IMM8, RDIND,     E}}, {{0x7, 0xd,                 B30 | RDIND,            IGNORE,                      OP1, BIT | IGNORE, IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{IMM8, RDPOSTINC, E}}, {{PREFIX_0174,    0x6, 0xc, B30 | RDPOSTINC,  B31 | B20 | IGNORE,                OP1, BIT | IGNORE, IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{IMM8, RDPOSTDEC, E}}, {{PREFIX_0176,    0x6, 0xc, B30 | RDPOSTDEC,  B31 | B20 | IGNORE,                OP1, BIT | IGNORE, IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{IMM8, RDPREINC,  E}}, {{PREFIX_0175,    0x6, 0xc, B30 | RDPREINC,   B31 | B20 | IGNORE,                OP1, BIT | IGNORE, IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{IMM8, RDPREDEC,  E}}, {{PREFIX_0177,    0x6, 0xc, B30 | RDPREDEC,   B31 | B20 | IGNORE,                OP1, BIT | IGNORE, IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{IMM8, DISP2DST,  E}}, {{PREFIX_017_D2D, 0x6, 0x8, B30 | DSTDISPREG, B31 | B20 | IGNORE,                OP1, BIT | IGNORE, IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{IMM8, DISP16DST, E}}, {{PREFIX_0174,    0x6, 0xe, B30 | DSTDISPREG, B31 | B20 | IGNORE, DSTDISP16LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{IMM8, DISP32DST, E}}, {{PREFIX_78R4WD,  0x6, 0xa, 2,                B31 | B20 | IGNORE, DSTDISP32LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXB16D, E}}, {{PREFIX_0175,    0x6, 0xe, B30 | DSTDISPREG, B31 | B20 | IGNORE, DSTDISP16LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXW16D, E}}, {{PREFIX_0176,    0x6, 0xe, B30 | DSTDISPREG, B31 | B20 | IGNORE, DSTDISP16LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXL16D, E}}, {{PREFIX_0177,    0x6, 0xe, B30 | DSTDISPREG, B31 | B20 | IGNORE, DSTDISP16LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXB32D, E}}, {{PREFIX_78R5WD,  0x6, 0xa, 2,                B31 | B20 | IGNORE, DSTDISP32LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXW32D, E}}, {{PREFIX_78R6WD,  0x6, 0xa, 2,                B31 | B20 | IGNORE, DSTDISP32LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXL32D, E}}, {{PREFIX_78R7WD,  0x6, 0xa, 2,                B31 | B20 | IGNORE, DSTDISP32LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{IMM8, ABS8DST,   E}}, {{0x7, 0xf,                                                       DSTABS8LIST,   OP1, BIT | IGNORE, IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{IMM8, ABS16DST,  E}}, {{0x6, 0xa, 0x1,                              B31 | B20 | IGNORE, DSTABS16LIST,  OP1, BIT | IGNORE, IMM8LIST, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{IMM8, ABS32DST,  E}}, {{0x6, 0xa, 0x3,                              B31 | B20 | IGNORE, DSTABS32LIST,  OP1, BIT | IGNORE, IMM8LIST, E}}}, \
-  {CODE, AV_H8,   2, NAME, {{RS8,  RD8,       E}}, {{OP2, OP3, RS8, RD8, E}}}, \
-  EXPAND_FROM_REG8      (CODE, NAME, OP2, OP3, OP4), \
-  EXPAND_TO_REG8        (CODE, NAME, OP2, OP3, OP4), \
-  EXPAND_FROM_IND8      (CODE, NAME, OP4), \
-  EXPAND_STD_MATRIX_B   (CODE, NAME, OP4), \
-  EXPAND_FROM_ABS16_B   (CODE, NAME, OP4), \
-  EXPAND_FROM_ABS32_B   (CODE, NAME, OP4)
-
-#define EXPAND_TWOOP_W(CODE, NAME, OP1, OP2, OP3) \
-  {CODE, AV_H8H,  6, NAME, {{IMM16, RD16, E}}, {{0x7, 0x9, OP3, RD16, IMM16LIST, E}}}, \
-  EXPAND_FROM_IMM16_W   (CODE, NAME, OP3), \
-  EXPAND_FROM_REG16     (CODE, NAME, OP1, OP2, OP3), \
-  EXPAND_TO_REG16       (CODE, NAME, OP1, OP2, OP3), \
-  EXPAND_FROM_IND16     (CODE, NAME, OP3), \
-  EXPAND_STD_MATRIX_W   (CODE, NAME, OP3), \
-  EXPAND_FROM_ABS16_W   (CODE, NAME, OP3), \
-  EXPAND_FROM_ABS32_W   (CODE, NAME, OP3)
-
-#define EXPAND_TWOOP_L(CODE, NAME, OP1)  \
-  {CODE, AV_H8SX, 0, NAME, {{IMM16U_NS, RD32, E}}, {{0x7, 0xa, OP1, B31 | RD32, IMM16ULIST, E}}}, \
-  {CODE, AV_H8H,  6, NAME, {{IMM32,     RD32, E}}, {{0x7, 0xa, OP1, B30 | RD32, IMM32LIST,  E}}}, \
-  EXPAND_FROM_IMM16_L   (CODE, NAME, OP1), \
-  EXPAND_FROM_IMM32_L   (CODE, NAME, OP1), \
-  EXPAND_FROM_REG32     (CODE, NAME, OP1), \
-  EXPAND_TO_REG32       (CODE, NAME, OP1), \
-  EXPAND_STD_MATRIX_L   (CODE, NAME, OP1)
-
-
-/* Old expanders:  */
-
-#define BITOP(code, imm, name, op00, op01, op10,  op11, op20, op21, op30, op4) \
-  {code, AV_H8,  2, name, {{imm, RD8,      E}}, {{op00, op01, imm,  RD8,   E}}}, \
-  {code, AV_H8,  6, name, {{imm, RDIND,    E}}, {{op10, op11, B30 | RDIND, 0,  op00, op01, imm, 0, E}}}, \
-  {code, AV_H8,  6, name, {{imm, ABS8DST,  E}}, {{op20, op21, DSTABS8LIST,     op00, op01, imm, 0, E}}}, \
-  {code, AV_H8S, 6, name, {{imm, ABS16DST, E}}, {{0x6,  0xa,  0x1,  op30, DST | MEMRELAX | ABS16LIST , op00, op01, imm, op4, E}}}, \
-  {code, AV_H8S, 6, name, {{imm, ABS32DST, E}}, {{0x6,  0xa,  0x3,  op30, DST | MEMRELAX | ABS32LIST , op00, op01, imm, op4, E}}}
-
-#define BITOP_B(code, imm, name, op00, op01, op10, op11, op20, op21, op30, op4) \
-  {code, AV_H8SX, 0, name, {{imm, RDIND,    E}}, {{op10, op11, B30 | RDIND, 0,  op00, op01, imm, op4, E}}}, \
-  {code, AV_H8SX, 0, name, {{imm, ABS8DST,  E}}, {{op20, op21, DSTABS8LIST,     op00, op01, imm, op4, E}}}, \
-  {code, AV_H8SX, 0, name, {{imm, ABS16DST, E}}, {{0x6,  0xa,  0x1,  op30, DST | ABS16LIST, op00, op01, imm, op4, E}}}, \
-  {code, AV_H8SX, 0, name, {{imm, ABS32DST, E}}, {{0x6,  0xa,  0x3,  op30, DST | ABS32LIST, op00, op01, imm, op4, E}}}
-
-#define EBITOP(code, imm, name, op00, op01, op10, op11, op20, op21, op30, op4) \
-  BITOP(code, imm, name, op00+1, op01, op10, op11, op20, op21, op30, op4), \
-  BITOP(code, RS8, name, op00,   op01, op10, op11, op20, op21, op30, op4)
-
-#define EBITOP_B(code, imm, name, op00, op01, op10, op11, op20, op21, op30, op4) \
-  BITOP_B(code, imm, name, op00+1, op01, op10, op11, op20, op21, op30, op4), \
-  BITOP_B(code, RS8, name, op00,   op01, op10, op11, op20, op21, op30, op4)
-
-#define WTWOP(code, name, op1, op2) \
-  {code, AV_H8, 2, name, {{RS16, RD16, E}}, {{op1, op2, RS16, RD16, E}}}
-
-#define BRANCH(code, name, op) \
-  {code, AV_H8H, 6, name, {{PCREL16, E}}, {{0x5, 0x8, op, 0x0, PCREL16, DATA3 | B00, E}}}, \
-  {code, AV_H8,  4, name, {{PCREL8,  E}}, {{0x4, op,           PCREL8,  DATA  | B00, E}}}
-
-
-#define UNOP(code, name, op1, op2) \
-  {code, AV_H8, 2, name, {{OR8, E}}, {{op1, op2, 0, OR8, E}}}
-
-#define EXPAND_UNOP_STD_B(CODE, NAME, PREFIX, OP1, OP2, OP3) \
-  {CODE, AV_H8,   2, NAME, {{OR8,       E}}, {{                                                                  OP1, OP2, OP3, OR8,    E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND,     E}}, {{           7, 13, B30 | RSIND,             IGNORE,                OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSPOSTINC, E}}, {{PREFIX, 4, 6, 12, B30 | RSPOSTINC,   B31 | IGNORE,                OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSPOSTDEC, E}}, {{PREFIX, 6, 6, 12, B30 | RSPOSTDEC,   B31 | IGNORE,                OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSPREINC,  E}}, {{PREFIX, 5, 6, 12, B30 | RSPREINC,    B31 | IGNORE,                OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSPREDEC,  E}}, {{PREFIX, 7, 6, 12, B30 | RSPREDEC,    B31 | IGNORE,                OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{DISP2SRC,  E}}, {{PREFIX, B30 | B21 | DISP2SRC, 6,  8, B30 | DISPREG, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{DISP16SRC, E}}, {{PREFIX, 4, 6, 14, B30 | DISPREG,     B31 | IGNORE,  DISP16LIST,   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{DISP32SRC, E}}, {{7, 8, B30 | DISPREG, 4,    6, 10, 2, B31 | IGNORE,  DISP32LIST,   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXB16,  E}}, {{PREFIX, 5, 6, 14, B30 | DISPREG,     B31 | IGNORE,  DISP16LIST,   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXW16,  E}}, {{PREFIX, 6, 6, 14, B30 | DISPREG,     B31 | IGNORE,  DISP16LIST,   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXL16,  E}}, {{PREFIX, 7, 6, 14, B30 | DISPREG,     B31 | IGNORE,  DISP16LIST,   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXB32,  E}}, {{7, 8, B30 | DISPREG, 5,    6, 10, 2, B31 | IGNORE,  DISP32LIST,   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXW32,  E}}, {{7, 8, B30 | DISPREG, 6,    6, 10, 2, B31 | IGNORE,  DISP32LIST,   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXL32,  E}}, {{7, 8, B30 | DISPREG, 7,    6, 10, 2, B31 | IGNORE,  DISP32LIST,   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{ABS8SRC,   E}}, {{                           7, 15,                   ABS8LIST,     OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{ABS16SRC,  E}}, {{                           6, 10, 1, B31 | IGNORE,  ABS16LIST,    OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{ABS32SRC,  E}}, {{                           6, 10, 3, B31 | IGNORE,  ABS32LIST,    OP1, OP2, OP3, IGNORE, E}}}
-
-#define EXPAND_UNOP_STD_W(CODE, NAME, PREFIX, OP1, OP2, OP3) \
-  {CODE, AV_H8H,  2, NAME, {{OR16,      E}}, {{                                                                  OP1, OP2, OP3, OR16,   E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND,     E}}, {{           7, 13, B31 | RSIND,             IGNORE,                OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSPOSTINC, E}}, {{PREFIX, 4, 6, 13, B30 | RSPOSTINC,   B31 | IGNORE,                OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSPOSTDEC, E}}, {{PREFIX, 6, 6, 13, B30 | RSPOSTDEC,   B31 | IGNORE,                OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSPREINC,  E}}, {{PREFIX, 5, 6, 13, B30 | RSPREINC,    B31 | IGNORE,                OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSPREDEC,  E}}, {{PREFIX, 7, 6, 13, B30 | RSPREDEC,    B31 | IGNORE,                OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{DISP2SRC,  E}}, {{PREFIX, B30 | B21 | DISP2SRC, 6,  9, B30 | DISPREG, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{DISP16SRC, E}}, {{PREFIX, 4, 6, 15, B30 | DISPREG,     B31 | IGNORE,  DISP16LIST,   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{DISP32SRC, E}}, {{7, 8, B30 | DISPREG, 4,    6, 11, 2, B31 | IGNORE,  DISP32LIST,   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXB16,  E}}, {{PREFIX, 5, 6, 15, B30 | DISPREG,     B31 | IGNORE,  DISP16LIST,   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXW16,  E}}, {{PREFIX, 6, 6, 15, B30 | DISPREG,     B31 | IGNORE,  DISP16LIST,   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXL16,  E}}, {{PREFIX, 7, 6, 15, B30 | DISPREG,     B31 | IGNORE,  DISP16LIST,   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXB32,  E}}, {{7, 8, B30 | DISPREG, 5,    6, 11, 2, B31 | IGNORE,  DISP32LIST,   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXW32,  E}}, {{7, 8, B30 | DISPREG, 6,    6, 11, 2, B31 | IGNORE,  DISP32LIST,   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXL32,  E}}, {{7, 8, B30 | DISPREG, 7,    6, 11, 2, B31 | IGNORE,  DISP32LIST,   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{ABS16SRC,  E}}, {{                           6, 11, 1, B31 | IGNORE,  ABS16LIST,    OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{ABS32SRC,  E}}, {{                           6, 11, 3, B31 | IGNORE,  ABS32LIST,    OP1, OP2, OP3, IGNORE, E}}}
-
-#define EXPAND_UNOP_STD_L(CODE, NAME, PREFIX, OP1, OP2, OP3) \
-  {CODE, AV_H8H,  2, NAME, {{OR32,      E}}, {{                                                                  OP1, OP2, OP3, B30 | OR32,   E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSIND,     E}}, {{PREFIX, 4, 6,  9, B30 | RSIND,       B31 | IGNORE,                OP1, OP2, OP3, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSPOSTINC, E}}, {{PREFIX, 4, 6, 13, B30 | RSPOSTINC,   B31 | IGNORE,                OP1, OP2, OP3, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSPOSTDEC, E}}, {{PREFIX, 6, 6, 13, B30 | RSPOSTDEC,   B31 | IGNORE,                OP1, OP2, OP3, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSPREINC,  E}}, {{PREFIX, 5, 6, 13, B30 | RSPREINC,    B31 | IGNORE,                OP1, OP2, OP3, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{RSPREDEC,  E}}, {{PREFIX, 7, 6, 13, B30 | RSPREDEC,    B31 | IGNORE,                OP1, OP2, OP3, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{DISP2SRC,  E}}, {{PREFIX, B30 | B21 | DISP2SRC, 6,  9, B30 | DISPREG, B31 | IGNORE, OP1, OP2, OP3, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{DISP16SRC, E}}, {{PREFIX, 4, 6, 15, B30 | DISPREG,     B31 | IGNORE,  DISP16LIST,   OP1, OP2, OP3, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{DISP32SRC, E}}, {{7, 8, B31 | DISPREG, 4,    6, 11, 2, B31 | IGNORE,  DISP32LIST,   OP1, OP2, OP3, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXB16,  E}}, {{PREFIX, 5, 6, 15, B30 | DISPREG,     B31 | IGNORE,  DISP16LIST,   OP1, OP2, OP3, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXW16,  E}}, {{PREFIX, 6, 6, 15, B30 | DISPREG,     B31 | IGNORE,  DISP16LIST,   OP1, OP2, OP3, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXL16,  E}}, {{PREFIX, 7, 6, 15, B30 | DISPREG,     B31 | IGNORE,  DISP16LIST,   OP1, OP2, OP3, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXB32,  E}}, {{7, 8, B31 | DISPREG, 5,    6, 11, 2, B31 | IGNORE,  DISP32LIST,   OP1, OP2, OP3, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXW32,  E}}, {{7, 8, B31 | DISPREG, 6,    6, 11, 2, B31 | IGNORE,  DISP32LIST,   OP1, OP2, OP3, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{INDEXL32,  E}}, {{7, 8, B31 | DISPREG, 7,    6, 11, 2, B31 | IGNORE,  DISP32LIST,   OP1, OP2, OP3, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{ABS16SRC,  E}}, {{PREFIX, 4,                 6, 11, 0, B31 | IGNORE,  ABS16LIST,    OP1, OP2, OP3, B30 | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{ABS32SRC,  E}}, {{PREFIX, 4,                 6, 11, 2, B31 | IGNORE,  ABS32LIST,    OP1, OP2, OP3, B30 | IGNORE, E}}}
-
-#define EXPAND_UNOP_EXTENDED_B(CODE, NAME, CONST, PREFIX, OP1, OP2, OP3) \
-  {CODE, AV_H8,   2, NAME, {{CONST, RD8,       E}}, {{                                                                     OP1, OP2, OP3, RD8,    E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, RDIND,     E}}, {{           7, 13, B30 | RDIND,             IGNORE,                   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTINC, E}}, {{PREFIX, 4, 6, 12, B30 | RDPOSTINC,   B31 | IGNORE,                   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTDEC, E}}, {{PREFIX, 6, 6, 12, B30 | RDPOSTDEC,   B31 | IGNORE,                   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREINC,  E}}, {{PREFIX, 5, 6, 12, B30 | RDPREINC,    B31 | IGNORE,                   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREDEC,  E}}, {{PREFIX, 7, 6, 12, B30 | RDPREDEC,    B31 | IGNORE,                   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, DISP2DST,  E}}, {{PREFIX, B30 | B21 | DISP2DST, 6,  8, B30 | DSTDISPREG, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, DISP16DST, E}}, {{PREFIX, 4, 6, 14, B30 | DSTDISPREG,  B31 | IGNORE, DSTDISP16LIST,    OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, DISP32DST, E}}, {{7, 8, B30 | DSTDISPREG, 4, 6, 10, 2, B31 | IGNORE, DSTDISP32LIST,    OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB16D, E}}, {{PREFIX, 5, 6, 14, B30 | DSTDISPREG,  B31 | IGNORE, DSTDISP16LIST,    OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW16D, E}}, {{PREFIX, 6, 6, 14, B30 | DSTDISPREG,  B31 | IGNORE, DSTDISP16LIST,    OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL16D, E}}, {{PREFIX, 7, 6, 14, B30 | DSTDISPREG,  B31 | IGNORE, DSTDISP16LIST,    OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB32D, E}}, {{7, 8, B30 | DSTDISPREG, 5, 6, 10, 2, B31 | IGNORE, DSTDISP32LIST,    OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW32D, E}}, {{7, 8, B30 | DSTDISPREG, 6, 6, 10, 2, B31 | IGNORE, DSTDISP32LIST,    OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL32D, E}}, {{7, 8, B30 | DSTDISPREG, 7, 6, 10, 2, B31 | IGNORE, DSTDISP32LIST,    OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, ABS8DST,   E}}, {{                           7, 15,                  DSTABS8LIST,      OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, ABS16DST,  E}}, {{                           6, 10, 1, B31 | IGNORE, DSTABS16LIST,     OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, ABS32DST,  E}}, {{                           6, 10, 3, B31 | IGNORE, DSTABS32LIST,     OP1, OP2, OP3, IGNORE, E}}}
-
-#define EXPAND_UNOP_EXTENDED_W(CODE, NAME, CONST, PREFIX, OP1, OP2, OP3) \
-  {CODE, AV_H8,   2, NAME, {{CONST, RD16,      E}}, {{                                                                     OP1, OP2, OP3, RD16,   E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, RDIND,     E}}, {{           7, 13, B31 | RDIND,             IGNORE,                   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTINC, E}}, {{PREFIX, 4, 6, 13, B30 | RDPOSTINC,   B31 | IGNORE,                   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTDEC, E}}, {{PREFIX, 6, 6, 13, B30 | RDPOSTDEC,   B31 | IGNORE,                   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREINC,  E}}, {{PREFIX, 5, 6, 13, B30 | RDPREINC,    B31 | IGNORE,                   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREDEC,  E}}, {{PREFIX, 7, 6, 13, B30 | RDPREDEC,    B31 | IGNORE,                   OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, DISP2DST,  E}}, {{PREFIX, B30 | B21 | DISP2DST, 6,  9, B30 | DSTDISPREG, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, DISP16DST, E}}, {{PREFIX, 4, 6, 15, B30 | DSTDISPREG,  B31 | IGNORE, DSTDISP16LIST,    OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, DISP32DST, E}}, {{7, 8, B30 | DSTDISPREG, 4, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST,    OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB16D, E}}, {{PREFIX, 5, 6, 15, B30 | DSTDISPREG,  B31 | IGNORE, DSTDISP16LIST,    OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW16D, E}}, {{PREFIX, 6, 6, 15, B30 | DSTDISPREG,  B31 | IGNORE, DSTDISP16LIST,    OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL16D, E}}, {{PREFIX, 7, 6, 15, B30 | DSTDISPREG,  B31 | IGNORE, DSTDISP16LIST,    OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB32D, E}}, {{7, 8, B30 | DSTDISPREG, 5, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST,    OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW32D, E}}, {{7, 8, B30 | DSTDISPREG, 6, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST,    OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL32D, E}}, {{7, 8, B30 | DSTDISPREG, 7, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST,    OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, ABS16DST,  E}}, {{                           6, 11, 1, B31 | IGNORE, DSTABS16LIST,     OP1, OP2, OP3, IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, ABS32DST,  E}}, {{                           6, 11, 3, B31 | IGNORE, DSTABS32LIST,     OP1, OP2, OP3, IGNORE, E}}}
-
-#define EXPAND_UNOP_EXTENDED_L(CODE, NAME, CONST, PREFIX, OP1, OP2, OP3, BIT) \
-  {CODE, AV_H8,   2, NAME, {{CONST, RD32,      E}}, {{                                                                     OP1, OP2, OP3, BIT | RD32,   E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, RDIND,     E}}, {{PREFIX, 4, 6,  9, B30 | RDIND,       B31 | IGNORE,                   OP1, OP2, OP3, BIT | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTINC, E}}, {{PREFIX, 4, 6, 13, B30 | RDPOSTINC,   B31 | IGNORE,                   OP1, OP2, OP3, BIT | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTDEC, E}}, {{PREFIX, 6, 6, 13, B30 | RDPOSTDEC,   B31 | IGNORE,                   OP1, OP2, OP3, BIT | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREINC,  E}}, {{PREFIX, 5, 6, 13, B30 | RDPREINC,    B31 | IGNORE,                   OP1, OP2, OP3, BIT | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREDEC,  E}}, {{PREFIX, 7, 6, 13, B30 | RDPREDEC,    B31 | IGNORE,                   OP1, OP2, OP3, BIT | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, DISP2DST,  E}}, {{PREFIX, B30 | B21 | DISP2DST, 6,  9, B30 | DSTDISPREG, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, DISP16DST, E}}, {{PREFIX, 4, 6, 15, B30 | DSTDISPREG,  B31 | IGNORE, DSTDISP16LIST,    OP1, OP2, OP3, BIT | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, DISP32DST, E}}, {{7, 8, B31 | DSTDISPREG, 4, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST,    OP1, OP2, OP3, BIT | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB16D, E}}, {{PREFIX, 5, 6, 15, B30 | DSTDISPREG,  B31 | IGNORE, DSTDISP16LIST,    OP1, OP2, OP3, BIT | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW16D, E}}, {{PREFIX, 6, 6, 15, B30 | DSTDISPREG,  B31 | IGNORE, DSTDISP16LIST,    OP1, OP2, OP3, BIT | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL16D, E}}, {{PREFIX, 7, 6, 15, B30 | DSTDISPREG,  B31 | IGNORE, DSTDISP16LIST,    OP1, OP2, OP3, BIT | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB32D, E}}, {{7, 8, B31 | DSTDISPREG, 5, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST,    OP1, OP2, OP3, BIT | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW32D, E}}, {{7, 8, B31 | DSTDISPREG, 6, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST,    OP1, OP2, OP3, BIT | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL32D, E}}, {{7, 8, B31 | DSTDISPREG, 7, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST,    OP1, OP2, OP3, BIT | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, ABS16DST,  E}}, {{PREFIX, 4,                 6, 11, 0, B31 | IGNORE, DSTABS16LIST,     OP1, OP2, OP3, BIT | IGNORE, E}}}, \
-  {CODE, AV_H8SX, 0, NAME, {{CONST, ABS32DST,  E}}, {{PREFIX, 4,                 6, 11, 2, B31 | IGNORE, DSTABS32LIST,     OP1, OP2, OP3, BIT | IGNORE, E}}}
-
-#define PREFIXLDC 0x0, 0x1, 0x4, B30 | CCR_EXR | DST
-#define PREFIXSTC 0x0, 0x1, 0x4, B30 | CCR_EXR | SRC
-
-#define O(op, size)  (op * 4 + size)
-#define OP_SIZE(HOW) (HOW % 4)
-#define OP_KIND(HOW) (HOW / 4)
-
-enum h8_asm_codes
-{
-  O_RECOMPILE =	 0,
-  O_ADD,
-  O_ADDX,
-  O_AND,
-  O_BAND,
-  O_BRA,
-  O_BRAB,
-  O_BRAW,
-  O_BRAL,
-  O_BRAS,
-  O_BRABC,
-  O_BRABS,
-  O_BSRBC,
-  O_BSRBS,
-  O_BRN,
-  O_BHI,
-  O_BLS,
-  O_BCC,
-  O_BCS,
-  O_BNE,
-  O_BVC,
-  O_BVS,
-  O_BPL,
-  O_BMI,
-  O_BGE,
-  O_BLT,
-  O_BGT,
-  O_BLE,
-  O_ANDC,
-  O_BEQ,
-  O_BCLR,
-  O_BCLREQ,
-  O_BCLRNE,
-  O_BSETEQ,
-  O_BSETNE,
-  O_BFLD,
-  O_BFST,
-  O_BIAND,
-  O_BILD,
-  O_BIOR,
-  O_BIXOR,
-  O_BIST,
-  O_BISTZ,
-  O_BLD,
-  O_BNOT,
-  O_BOR,
-  O_BSET,
-  O_BSR,
-  O_BXOR,
-  O_CMP,
-  O_DAA,
-  O_DAS,
-  O_DEC,
-  O_DIVU,
-  O_DIVS,
-  O_DIVXU,
-  O_DIVXS,
-  O_INC,
-  O_LDC,
-  O_MOV,
-  O_MOVAB,
-  O_MOVAW,
-  O_MOVAL,
-  O_MOVMD,
-  O_MOVSD,
-  O_OR,
-  O_ROTL,
-  O_ROTR,
-  O_ROTXL,
-  O_ROTXR,
-  O_BPT,
-  O_SHAL,
-  O_SHAR,
-  O_SHLL,
-  O_SHLR,
-  O_SUB,
-  O_SUBS,
-  O_TRAPA,
-  O_XOR,
-  O_XORC,
-  O_BST,
-  O_BSTZ,
-  O_BTST,
-  O_EEPMOV,
-  O_EXTS,
-  O_EXTU,
-  O_JMP,
-  O_JSR,
-  O_MULU,
-  O_MULUU,
-  O_MULS,
-  O_MULSU,
-  O_MULXU,
-  O_MULXS,
-  O_NOP,
-  O_NOT,
-  O_ORC,
-  O_RTE,
-  O_RTEL,
-  O_STC,
-  O_SUBX,
-  O_NEG,
-  O_RTS,
-  O_RTSL,
-  O_SLEEP,
-  O_ILL,
-  O_ADDS,
-  O_SYSCALL,
-  O_TAS,
-  O_CLRMAC,
-  O_LDMAC,
-  O_MAC,
-  O_LDM,
-  O_STM,
-  O_STMAC,
-  O_LAST,
-  /* Change made for System Call processing.  */
-  O_SYS_CREAT,
-  O_SYS_OPEN,
-  O_SYS_READ,
-  O_SYS_WRITE,
-  O_SYS_LSEEK,
-  O_SYS_CLOSE,
-  O_SYS_STAT,
-  O_SYS_FSTAT,
-/* Space reserved for future file I/O system calls.  */
- O_SYS_CMDLINE
-  /* End of System Call specific Changes.  */
-};
-
-enum h8_size
-{
-  SB =	 0,
-  SW =	 1,
-  SL =	 2,
-  SN =	 3
-};
-
-
-/* FIXME: Lots of insns have "E, 0, 0, 0, 0" in the nibble code sequences.
-   Methinks the zeroes aren't necessary.  Once confirmed, nuke 'em.  */
-
-struct h8_opcode h8_opcodes[] = 
-{
-  {O (O_ADD, SB), AV_H8,   2, "add.b", {{IMM8,      RD8,      E}}, {{0x8, RD8, IMM8LIST, E}}}, 
-  EXPAND_TWOOP_B (O (O_ADD, SB), "add.b", 0x8, 0x0, 0x8, 0x1, 0), 
-
-  {O (O_ADD, SW), AV_H8,   6, "add.w", {{RS16,      RD16,     E}}, {{0x0, 0x9, RS16,         RD16,   E}}}, 
-  {O (O_ADD, SW), AV_H8SX, 0, "add.w", {{IMM3NZ_NS, RD16,     E}}, {{0x0, 0xa, B30 | IMM3NZ, RD16,   E}}}, 
-  {O (O_ADD, SW), AV_H8SX, 0, "add.w", {{IMM3NZ_NS, RDIND,    E}}, {{0x7, 0xd,      B31 | RDIND,  IGNORE,       0x0, 0xa, B30 | IMM3NZ, IGNORE, E}}}, 
-  {O (O_ADD, SW), AV_H8SX, 0, "add.w", {{IMM3NZ_NS, ABS16DST, E}}, {{0x6, 0xb, 0x1, B31 | IGNORE, DSTABS16LIST, 0x0, 0xa, B30 | IMM3NZ, IGNORE, E}}}, 
-  {O (O_ADD, SW), AV_H8SX, 0, "add.w", {{IMM3NZ_NS, ABS32DST, E}}, {{0x6, 0xb, 0x3, B31 | IGNORE, DSTABS32LIST, 0x0, 0xa, B30 | IMM3NZ, IGNORE, E}}}, 
-  EXPAND_TWOOP_W (O (O_ADD, SW), "add.w", 0x0, 0x9, 0x1), 
-
-  {O (O_ADD, SL), AV_H8H,  6, "add.l", {{RS32,      RD32,     E}}, {{0x0, 0xa, B31 | RS32,   B30 | RD32, E}}}, 
-  {O (O_ADD, SL), AV_H8SX, 0, "add.l", {{IMM3NZ_NS, RD32,     E}}, {{0x0, 0xa, B31 | IMM3NZ, B31 | RD32, E}}}, 
-  EXPAND_TWOOP_L (O (O_ADD, SL), "add.l", 0x1), 
-
-  {O (O_ADDS, SL), AV_H8,  2, "adds",  {{KBIT,  RDP,  E}}, {{0x0, 0xB,KBIT, RDP, E}}},
-
-  {O (O_ADDX, SB), AV_H8,   2, "addx",   {{IMM8,      RD8,       E}}, {{0x9, RD8, IMM8LIST, E}}},
-  {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{IMM8,      RDIND,     E}}, {{0x7, 0xd, B30 | RDIND, IGNORE,                        0x9, IGNORE, IMM8LIST, E}}},
-  {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{IMM8,      RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RDPOSTDEC, B31 | IGNORE, 0x9, IGNORE, IMM8LIST, E}}},
-  {O (O_ADDX, SB), AV_H8,   2, "addx",   {{RS8,       RD8,       E}}, {{0x0, 0xe, RS8,  RD8,    E}}},
-  {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RS8,       RDIND,     E}}, {{0x7, 0xd, B30 | RDIND, IGNORE,                              0x0, 0xe, RS8, IGNORE, E}}},
-  {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RS8,       RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RDPOSTDEC, B31       | IGNORE, 0x0, 0xe, RS8, IGNORE, E}}},
-  {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RSIND,     RD8,       E}}, {{0x7, 0xc, B30 | RSIND, IGNORE,                              0x0, 0xe, IGNORE, RD8, E}}},
-  {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RSPOSTDEC, RD8,       E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RSPOSTDEC, B30 | B20 | IGNORE, 0x0, 0xe, IGNORE, RD8, E}}},
-  {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RSIND,     RDIND,     E}}, {{PREFIX_0174, 0x6, 0x8, B30 | RSIND,     0xd, 0x0, RDIND,     0x1, IGNORE, E}}},
-  {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x1, IGNORE, E}}},
-
-  {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{IMM16,     RD16,      E}}, {{PREFIX_0151,                         0x7, 0x9, 0x1, RD16,   IMM16LIST, E}}}, 
-  {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{IMM16,     RDIND,     E}}, {{0x7, 0xd, B31 | RDIND, B01 | IGNORE, 0x7, 0x9, 0x1, IGNORE, IMM16LIST, E}}}, 
-  {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{IMM16,     RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x7, 0x9, 0x1, IGNORE, IMM16LIST, E}}}, 
-  {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RS16,      RD16,      E}}, {{PREFIX_0151, 0x0, 0x9, RS16,  RD16,    E}}},
-  {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RS16,      RDIND,     E}}, {{0x7, 0xd, B31 | RDIND, B01 | IGNORE, 0x0, 0x9, RS16, IGNORE, E}}},
-  {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RS16,      RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x0, 0x9, RS16, IGNORE, E}}},
-  {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RSIND,     RD16,      E}}, {{0x7, 0xc, B31 | RSIND, B01 | IGNORE, 0x0, 0x9, IGNORE, RD16, E}}},
-  {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RSPOSTDEC, RD16,      E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RSPOSTDEC, B30 | B20 | B01 | IGNORE, 0x0, 0x9, IGNORE, RD16, E}}},
-  {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RSIND,     RDIND,     E}}, {{PREFIX_0154, 0x6, 0x9, B30 | RSIND,     0xd, 0x0, RDIND,     0x1, IGNORE, E}}},
-  {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x1, IGNORE, E}}},
-
-  {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{IMM32,     RD32,      E}}, {{PREFIX_0101, 0x7, 0xa, 0x1,  RD32, IMM32LIST, E}}},
-  {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{IMM32,     RDIND,     E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RDIND,     B31 | B20 | B01 | IGNORE, 0x7, 0xa, 0x1, IGNORE, IMM32LIST, E}}},
-  {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{IMM32,     RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x7, 0xa, 0x1, IGNORE, IMM32LIST, E}}},
-  {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RS32,      RD32,      E}}, {{PREFIX_0101, 0x0, 0xa, B31 | RS32,  B30 | RD32,    E}}},
-  {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RS32,      RDIND,     E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RDIND,     B31 | B20 | B01 | IGNORE, 0x0, 0xa, B31 | RS32, B30 | IGNORE, E}}},
-  {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RS32,      RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x0, 0xa, B31 | RS32, B30 | IGNORE, E}}},
-  {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RSIND,     RD32,      E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RSIND,     B30 | B20 | B01 | IGNORE, 0x0, 0xa, B31 | IGNORE, B30 | RD32, E}}},
-  {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RSPOSTDEC, RD32,      E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RSPOSTDEC, B30 | B20 | B01 | IGNORE, 0x0, 0xa, B31 | IGNORE, B30 | RD32, E}}},
-  {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RSIND,     RDIND,     E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RSIND,     0xd, 0x0, RDIND,     0x1, IGNORE, E}}},
-  {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x1, IGNORE, E}}},
-
-  {O (O_AND, SB), AV_H8,   2, "and.b", {{IMM8, RD8,  E}}, {{0xe, RD8, IMM8LIST, E}}}, 
-  EXPAND_TWOOP_B (O (O_AND, SB), "and.b", 0xe, 0x1, 0x6, 0x6, 0), 
-
-  {O (O_AND, SW), AV_H8,   2, "and.w", {{RS16, RD16, E}}, {{0x6, 0x6, RS16, RD16,   E}}}, 
-  EXPAND_TWOOP_W (O (O_AND, SW), "and.w", 0x6, 0x6, 0x6), 
-
-  {O (O_AND, SL), AV_H8H,  2, "and.l", {{RS32,  RD32, E}}, {{0x0, 0x1, 0xF, 0x0, 0x6, 0x6, B30 | RS32, B30 | RD32, E}}},
-  EXPAND_TWOOP_L (O (O_AND, SL), "and.l", 0x6), 
-
-  {O (O_ANDC, SB), AV_H8,  2, "andc", {{IMM8,  CCR | DST, E}}, {{0x0, 0x6, IMM8LIST, E}}},
-  {O (O_ANDC, SB), AV_H8S, 2, "andc", {{IMM8,  EXR | DST, E}}, {{0x0, 0x1, 0x4, EXR | DST, 0x0, 0x6, IMM8LIST, E}}},
-
-  BRANCH (O (O_BRA, SB), "bra", 0x0),
-
-  {O (O_BRAB, SB), AV_H8SX, 0, "bra", {{LOWREG | L_8,  E}}, {{0x5, 0x9, LOWREG | L_8  | B30, 0x5, E}}},
-  {O (O_BRAW, SW), AV_H8SX, 0, "bra", {{LOWREG | L_16, E}}, {{0x5, 0x9, LOWREG | L_16 | B30, 0x6, E}}},
-  {O (O_BRAL, SL), AV_H8SX, 0, "bra", {{RS32, E}}, {{0x5, 0x9, RS32 | B30, 0x7, E}}},
-
-  {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, RDIND,    OP3PCREL8}},  {{0x7, 0xC, B30 | RDIND, 0x0,            0x4, B30 | IMM3,      OP3PCREL8,  DATA,  E}}},
-  {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS8DST,  OP3PCREL8}},  {{0x7, 0xE, DSTABS8LIST,                 0x4, B30 | IMM3,      OP3PCREL8,  DATA,  E}}},
-  {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS16DST, OP3PCREL8}},  {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST,      0x4, B30 | IMM3,      OP3PCREL8,  DATA,  E}}},
-  {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS32DST, OP3PCREL8}},  {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST,      0x4, B30 | IMM3,      OP3PCREL8,  DATA,  E}}},
-  {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, RDIND,    OP3PCREL8}},  {{0x7, 0xC, B30 | RDIND, 0x0,            0x4, B31 | IMM3,      OP3PCREL8,  DATA,  E}}},
-  {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS8DST,  OP3PCREL8}},  {{0x7, 0xE, DSTABS8LIST,                 0x4, B31 | IMM3,      OP3PCREL8,  DATA,  E}}},
-  {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS16DST, OP3PCREL8}},  {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST,      0x4, B31 | IMM3,      OP3PCREL8,  DATA,  E}}},
-  {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS32DST, OP3PCREL8}},  {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST,      0x4, B31 | IMM3,      OP3PCREL8,  DATA,  E}}},
-  {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, RDIND,    OP3PCREL16}}, {{0x7, 0xC, B30 | RDIND, 0x0,       0x5, 0x8, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
-  {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS8DST,  OP3PCREL16}}, {{0x7, 0xE, DSTABS8LIST,            0x5, 0x8, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
-  {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS16DST, OP3PCREL16}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x5, 0x8, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
-  {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS32DST, OP3PCREL16}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x5, 0x8, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
-  {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, RDIND,    OP3PCREL16}}, {{0x7, 0xC, B30 | RDIND, 0x0,       0x5, 0x8, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
-  {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS8DST,  OP3PCREL16}}, {{0x7, 0xE, DSTABS8LIST,            0x5, 0x8, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
-  {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS16DST, OP3PCREL16}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x5, 0x8, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
-  {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS32DST, OP3PCREL16}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x5, 0x8, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
-  
-  {O (O_BRAS,  SB), AV_H8SX, 0, "bra/s",  {{PCREL8, E}}, {{0x4, 0x0, PCREL8, DATA | B01, E}}},
-
-  {O (O_BSRBC, SB), AV_H8SX, 0, "bsr/bc", {{IMM3, RDIND,    OP3PCREL16}}, {{0x7, 0xC, B30 | RDIND, 0x0,       0x5, 0xC, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
-  {O (O_BSRBC, SB), AV_H8SX, 0, "bsr/bc", {{IMM3, ABS8DST,  OP3PCREL16}}, {{0x7, 0xE, DSTABS8LIST,            0x5, 0xC, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
-  {O (O_BSRBC, SB), AV_H8SX, 0, "bsr/bc", {{IMM3, ABS16DST, OP3PCREL16}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x5, 0xC, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
-  {O (O_BSRBC, SB), AV_H8SX, 0, "bsr/bc", {{IMM3, ABS32DST, OP3PCREL16}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x5, 0xC, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
-  {O (O_BSRBS, SB), AV_H8SX, 0, "bsr/bs", {{IMM3, RDIND,    OP3PCREL16}}, {{0x7, 0xC, B30 | RDIND, 0x0,       0x5, 0xC, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
-  {O (O_BSRBS, SB), AV_H8SX, 0, "bsr/bs", {{IMM3, ABS8DST,  OP3PCREL16}}, {{0x7, 0xE, DSTABS8LIST,            0x5, 0xC, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
-  {O (O_BSRBS, SB), AV_H8SX, 0, "bsr/bs", {{IMM3, ABS16DST, OP3PCREL16}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x5, 0xC, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
-  {O (O_BSRBS, SB), AV_H8SX, 0, "bsr/bs", {{IMM3, ABS32DST, OP3PCREL16}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x5, 0xC, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
-
-  BRANCH (O (O_BRA, SB), "bt",  0x0),
-  BRANCH (O (O_BRN, SB), "brn", 0x1),
-  BRANCH (O (O_BRN, SB), "bf",  0x1),
-  BRANCH (O (O_BHI, SB), "bhi", 0x2),
-  BRANCH (O (O_BLS, SB), "bls", 0x3),
-  BRANCH (O (O_BCC, SB), "bcc", 0x4),
-  BRANCH (O (O_BCC, SB), "bhs", 0x4),
-  BRANCH (O (O_BCS, SB), "bcs", 0x5),
-  BRANCH (O (O_BCS, SB), "blo", 0x5),
-  BRANCH (O (O_BNE, SB), "bne", 0x6),
-  BRANCH (O (O_BEQ, SB), "beq", 0x7),
-  BRANCH (O (O_BVC, SB), "bvc", 0x8),
-  BRANCH (O (O_BVS, SB), "bvs", 0x9),
-  BRANCH (O (O_BPL, SB), "bpl", 0xA),
-  BRANCH (O (O_BMI, SB), "bmi", 0xB),
-  BRANCH (O (O_BGE, SB), "bge", 0xC),
-  BRANCH (O (O_BLT, SB), "blt", 0xD),
-  BRANCH (O (O_BGT, SB), "bgt", 0xE),
-  BRANCH (O (O_BLE, SB), "ble", 0xF),
-
-  EBITOP (O (O_BCLR,  SB), IMM3 | B30, "bclr",  0x6, 0x2, 0x7, 0xD, 0x7, 0xF, 0x8, 0),
-  BITOP  (O (O_BAND,  SB), IMM3 | B30, "band",  0x7, 0x6, 0x7, 0xC, 0x7, 0xE, 0x0, 0),
-  BITOP  (O (O_BIAND, SB), IMM3 | B31, "biand", 0x7, 0x6, 0x7, 0xC, 0x7, 0xE, 0x0, 0),
-  BITOP  (O (O_BILD,  SB), IMM3 | B31, "bild",  0x7, 0x7, 0x7, 0xC, 0x7, 0xE, 0x0, 0),
-  BITOP  (O (O_BIOR,  SB), IMM3 | B31, "bior",  0x7, 0x4, 0x7, 0xC, 0x7, 0xE, 0x0, 0),
-  BITOP  (O (O_BIST,  SB), IMM3 | B31, "bist",  0x6, 0x7, 0x7, 0xD, 0x7, 0xF, 0x8, 0),
-  BITOP  (O (O_BIXOR, SB), IMM3 | B31, "bixor", 0x7, 0x5, 0x7, 0xC, 0x7, 0xE, 0x0, 0),
-  BITOP  (O (O_BLD,   SB), IMM3 | B30, "bld",   0x7, 0x7, 0x7, 0xC, 0x7, 0xE, 0x0, 0),
-  EBITOP (O (O_BNOT,  SB), IMM3 | B30, "bnot",  0x6, 0x1, 0x7, 0xD, 0x7, 0xF, 0x8, 0),
-  BITOP  (O (O_BOR,   SB), IMM3 | B30, "bor",   0x7, 0x4, 0x7, 0xC, 0x7, 0xE, 0x0, 0),
-  EBITOP (O (O_BSET,  SB), IMM3 | B30, "bset",  0x6, 0x0, 0x7, 0xD, 0x7, 0xF, 0x8, 0),
-  BITOP  (O (O_BST,   SB), IMM3 | B30, "bst",   0x6, 0x7, 0x7, 0xD, 0x7, 0xF, 0x8, 0),
-  EBITOP (O (O_BTST,  SB), IMM3 | B30, "btst",  0x6, 0x3, 0x7, 0xC, 0x7, 0xE, 0x0, 0),
-  BITOP  (O (O_BXOR,  SB), IMM3 | B30, "bxor",  0x7, 0x5, 0x7, 0xC, 0x7, 0xE, 0x0, 0),
-
-  EBITOP_B (O (O_BCLREQ,  SB), IMM3 | B30, "bclr/eq",  0x6, 0x2, 0x7, 0xD, 0x7, 0xF, 0x8, 0x7),
-  EBITOP_B (O (O_BCLRNE,  SB), IMM3 | B30, "bclr/ne",  0x6, 0x2, 0x7, 0xD, 0x7, 0xF, 0x8, 0x6),
-  EBITOP_B (O (O_BSETEQ,  SB), IMM3 | B30, "bset/eq",  0x6, 0x0, 0x7, 0xD, 0x7, 0xF, 0x8, 0x7),
-  EBITOP_B (O (O_BSETNE,  SB), IMM3 | B30, "bset/ne",  0x6, 0x0, 0x7, 0xD, 0x7, 0xF, 0x8, 0x6),
-  BITOP_B  (O (O_BISTZ,   SB), IMM3 | B31, "bistz",    0x6, 0x7, 0x7, 0xD, 0x7, 0xF, 0x8, 0x7),
-  BITOP_B  (O (O_BSTZ,    SB), IMM3 | B30, "bstz",     0x6, 0x7, 0x7, 0xD, 0x7, 0xF, 0x8, 0x7),
-
-  {O (O_BFLD, SB), AV_H8SX, 0, "bfld", {{IMM8, RDIND,    R3_8}},  {{0x7, 0xC,           B30 | RDIND, 0x0, 0xF, R3_8, IMM8LIST, E}}},
-  {O (O_BFLD, SB), AV_H8SX, 0, "bfld", {{IMM8, ABS8DST,  R3_8}},  {{0x7, 0xE,           DSTABS8LIST,      0xF, R3_8, IMM8LIST, E}}},
-  {O (O_BFLD, SB), AV_H8SX, 0, "bfld", {{IMM8, ABS16DST, R3_8}},  {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST,     0xF, R3_8, IMM8LIST, E}}},
-  {O (O_BFLD, SB), AV_H8SX, 0, "bfld", {{IMM8, ABS32DST, R3_8}},  {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST,     0xF, R3_8, IMM8LIST, E}}},
-
-  /* Because the assembler treats SRC, DST and OP3 as ordinals, 
-     I must designate the second argument, an immediate value, as DST.
-     May God have mercy on my soul.  */
-  {O (O_BFST, SB), AV_H8SX, 0, "bfst", {{RS8, DST | IMM8, R3_IND}},   {{0x7, 0xD,           B30 | R3_IND, 0x0, 0xF, RS8, DST | IMM8LIST, E}}},
-  {O (O_BFST, SB), AV_H8SX, 0, "bfst", {{RS8, DST | IMM8, ABS8OP3}},  {{0x7, 0xF,           OP3ABS8LIST,       0xF, RS8, DST | IMM8LIST, E}}},
-  {O (O_BFST, SB), AV_H8SX, 0, "bfst", {{RS8, DST | IMM8, ABS16OP3}}, {{0x6, 0xA, 0x1, 0x8, OP3ABS16LIST,      0xF, RS8, DST | IMM8LIST, E}}},
-  {O (O_BFST, SB), AV_H8SX, 0, "bfst", {{RS8, DST | IMM8, ABS32OP3}}, {{0x6, 0xA, 0x3, 0x8, OP3ABS32LIST,      0xF, RS8, DST | IMM8LIST, E}}},
-
-  {O (O_BSR, SB), AV_H8,   6, "bsr", {{PCREL8,  E}}, {{0x5, 0x5,           PCREL8,  DATA,  E}}},
-  {O (O_BSR, SB), AV_H8,   6, "bsr", {{PCREL16, E}}, {{0x5, 0xC, 0x0, 0x0, PCREL16, DATA3, E}}},
-  {O (O_BSR, SB), AV_H8SX, 0, "bsr", {{LOWREG | L_8,    E}}, {{0x5, 0xd, B30 | LOWREG | L_8,  0x5, E}}},
-  {O (O_BSR, SW), AV_H8SX, 0, "bsr", {{LOWREG | L_16,   E}}, {{0x5, 0xd, B30 | LOWREG | L_16, 0x6, E}}},
-  {O (O_BSR, SL), AV_H8SX, 0, "bsr", {{OR32,   E}}, {{0x5, 0xd, B30 | OR32, 0x7, E}}},
-
-  {O (O_CMP, SB), AV_H8,   2, "cmp.b", {{IMM8, RD8, E}}, {{0xa, RD8, IMM8LIST, E}}}, 
-  EXPAND_TWOOP_B (O (O_CMP, SB), "cmp.b", 0xa, 0x1, 0xc, 0x2, B00), 
-
-  {O (O_CMP, SW), AV_H8,   2, "cmp.w", {{RS16,      RD16,     E}}, {{0x1, 0xd, RS16,         RD16,   E}}}, 
-  {O (O_CMP, SW), AV_H8SX, 0, "cmp.w", {{IMM3NZ_NS, RD16,     E}}, {{0x1, 0xf, B30 | IMM3NZ, RD16,   E}}}, 
-  {O (O_CMP, SW), AV_H8SX, 0, "cmp.w", {{IMM3NZ_NS, RDIND,    E}}, {{0x7, 0xd,      B31 | RDIND,  IGNORE,       0x1, 0xf, B30 | IMM3NZ, IGNORE, E}}}, 
-  {O (O_CMP, SW), AV_H8SX, 0, "cmp.w", {{IMM3NZ_NS, ABS16DST, E}}, {{0x6, 0xb, 0x1, B31 | IGNORE, DSTABS16LIST, 0x1, 0xf, B30 | IMM3NZ, IGNORE, E}}}, 
-  {O (O_CMP, SW), AV_H8SX, 0, "cmp.w", {{IMM3NZ_NS, ABS32DST, E}}, {{0x6, 0xb, 0x3, B31 | IGNORE, DSTABS32LIST, 0x1, 0xf, B30 | IMM3NZ, IGNORE, E}}}, 
-  EXPAND_TWOOP_W (O (O_CMP, SW), "cmp.w", 0x1, 0xd, 0x2), 
-
-  {O (O_CMP, SL), AV_H8H,  6, "cmp.l", {{RS32,      RD32,     E}}, {{0x1, 0xf, B31 | RS32,   B30 | RD32, E}}}, 
-  {O (O_CMP, SL), AV_H8SX, 0, "cmp.l", {{IMM3NZ_NS, RD32,     E}}, {{0x1, 0xf, B31 | IMM3NZ, B31 | RD32, E}}}, 
-  EXPAND_TWOOP_L (O (O_CMP, SL), "cmp.l", 0x2), 
-
-  UNOP (O (O_DAA, SB), "daa",   0x0, 0xF),
-  UNOP (O (O_DAS, SB), "das",   0x1, 0xF),
-  UNOP (O (O_DEC, SB), "dec.b", 0x1, 0xA),
-
-  {O (O_DEC, SW), AV_H8H, 2, "dec.w", {{DBIT, RD16, E}}, {{0x1, 0xB, 0x5 | DBIT, RD16,       E}}},
-  {O (O_DEC, SL), AV_H8H, 2, "dec.l", {{DBIT, RD32, E}}, {{0x1, 0xB, 0x7 | DBIT, RD32 | B30, E}}},
-
-  {O (O_DIVS, SW), AV_H8SX, 0, "divs.w", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xd, 0x6, 0x5, 0x1, IMM4, RD16, E}}},
-  {O (O_DIVS, SW), AV_H8SX, 0, "divs.w", {{RS16, RD16, E}}, {{0x0, 0x1, 0xd, 0x2, 0x5, 0x1, RS16, RD16, E}}},
-  {O (O_DIVS, SL), AV_H8SX, 0, "divs.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xd, 0x6, 0x5, 0x3, IMM4,       B30 | RD32, E}}},
-  {O (O_DIVS, SL), AV_H8SX, 0, "divs.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xd, 0x2, 0x5, 0x3, B30 | RS32, B30 | RD32, E}}},
-
-  {O (O_DIVU, SW), AV_H8SX, 0, "divu.w", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xd, 0xe, 0x5, 0x1, IMM4, RD16, E}}},
-  {O (O_DIVU, SW), AV_H8SX, 0, "divu.w", {{RS16, RD16, E}}, {{0x0, 0x1, 0xd, 0xa, 0x5, 0x1, RS16, RD16, E}}},
-  {O (O_DIVU, SL), AV_H8SX, 0, "divu.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xd, 0xe, 0x5, 0x3, IMM4,       B30 | RD32, E}}},
-  {O (O_DIVU, SL), AV_H8SX, 0, "divu.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xd, 0xa, 0x5, 0x3, B30 | RS32, B30 | RD32, E}}},
-
-  {O (O_DIVXS, SB), AV_H8SX, 0,  "divxs.b", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xD, 0x4, 0x5, 0x1, IMM4, RD16, E}}},
-  {O (O_DIVXS, SB), AV_H8H,  13, "divxs.b", {{RS8,  RD16, E}}, {{0x0, 0x1, 0xD, 0x0, 0x5, 0x1, RS8,  RD16, E}}},
-  {O (O_DIVXS, SW), AV_H8SX, 0,  "divxs.w", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xD, 0x4, 0x5, 0x3, IMM4, B30 | RD32, E}}},
-  {O (O_DIVXS, SW), AV_H8H,  21, "divxs.w", {{RS16, RD32, E}}, {{0x0, 0x1, 0xD, 0x0, 0x5, 0x3, RS16, B30 | RD32, E}}},
-
-  {O (O_DIVXU, SB), AV_H8SX, 0,  "divxu.b", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xD, 0xC, 0x5, 0x1, IMM4, RD16, E}}},
-  {O (O_DIVXU, SB), AV_H8,   13, "divxu.b", {{RS8,  RD16, E}}, {{0x5, 0x1,                     RS8,  RD16, E}}},
-  {O (O_DIVXU, SW), AV_H8SX, 0,  "divxu.w", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xD, 0xC, 0x5, 0x3, IMM4, B30 | RD32, E}}},
-  {O (O_DIVXU, SW), AV_H8H,  21, "divxu.w", {{RS16, RD32, E}}, {{0x5, 0x3,                     RS16, B30 | RD32, E}}},
-
-  {O (O_EEPMOV, SB), AV_H8,  4, "eepmov.b", {{E}}, {{0x7, 0xB, 0x5, 0xC, 0x5, 0x9, 0x8, 0xF, E}}},
-  {O (O_EEPMOV, SW), AV_H8H, 4, "eepmov.w", {{E}}, {{0x7, 0xB, 0xD, 0x4, 0x5, 0x9, 0x8, 0xF, E}}},
-
-  EXPAND_UNOP_STD_W      (O (O_EXTS, SW), "exts.w",          PREFIX_015, 0x1, 0x7, 0xd),
-  EXPAND_UNOP_STD_L      (O (O_EXTS, SL), "exts.l",          PREFIX_010, 0x1, 0x7, 0xf),
-  EXPAND_UNOP_EXTENDED_L (O (O_EXTS, SL), "exts.l", CONST_2, PREFIX_010, 0x1, 0x7, 0xe, 0),
-  EXPAND_UNOP_STD_W      (O (O_EXTU, SW), "extu.w",          PREFIX_015, 0x1, 0x7, 0x5),
-  EXPAND_UNOP_STD_L      (O (O_EXTU, SL), "extu.l",          PREFIX_010, 0x1, 0x7, 0x7),
-  EXPAND_UNOP_EXTENDED_L (O (O_EXTU, SL), "extu.l", CONST_2, PREFIX_010, 0x1, 0x7, 0x6, 0),
-
-  UNOP (O (O_INC, SB), "inc", 0x0, 0xA),
-
-  {O (O_INC, SW), AV_H8H,  2, "inc.w", {{DBIT, RD16, E}},    {{0x0, 0xB, 0x5 | DBIT, RD16,       E}}},
-  {O (O_INC, SL), AV_H8H,  2, "inc.l", {{DBIT, RD32, E}},    {{0x0, 0xB, 0x7 | DBIT, RD32 | B30, E}}},
-
-  {O (O_JMP, SN), AV_H8,   4, "jmp", {{RSIND, E}},         {{0x5, 0x9, B30 | RSIND, 0x0, E}}},
-  {O (O_JMP, SN), AV_H8,   6, "jmp", {{ABSJMP | L_24, E}}, {{0x5, 0xA, SRC | ABSJMP | L_24, DATA5, E}}},
-
-  {O (O_JMP, SN), AV_H8SX, 0, "jmp", {{ABSJMP | L_32, E}}, {{0x5, 0x9, 0x0, 0x8, ABSJMP | L_32, DATA7, E}}},
-
-  {O (O_JMP, SN), AV_H8,   8, "jmp", {{MEMIND, E}}, {{0x5, 0xB, SRC | MEMIND, DATA, E}}},
-  {O (O_JMP, SN), AV_H8SX, 0, "jmp", {{VECIND, E}}, {{0x5, 0x9, B31 | SRC | VECIND, DATA, E}}},
-
-  {O (O_JSR, SN), AV_H8,   6, "jsr", {{RSIND, E}},         {{0x5, 0xD, B30 | RSIND, 0x0, E}}},
-  {O (O_JSR, SN), AV_H8,   8, "jsr", {{ABSJMP | L_24, E}}, {{0x5, 0xE, SRC | ABSJMP | L_24, DATA5, E}}},
-
-  {O (O_JSR, SN), AV_H8SX, 0, "jsr", {{ABSJMP | L_32, E}}, {{0x5, 0xD, 0x0, 0x8, ABSJMP | L_32, DATA7, E}}},
-
-  {O (O_JSR, SN), AV_H8,   8, "jsr", {{MEMIND, E}}, {{0x5, 0xF, SRC | MEMIND, DATA, E}}},
-  {O (O_JSR, SN), AV_H8SX, 8, "jsr", {{VECIND, E}}, {{0x5, 0xD, SRC | VECIND, DATA, E}}},
-
-  {O (O_LDC, SB), AV_H8,   2, "ldc", {{IMM8,       CCR     | DST, E}}, {{                           0x0, 0x7, IMM8LIST, E}}},
-  {O (O_LDC, SB), AV_H8S,  2, "ldc", {{IMM8,       EXR     | DST, E}}, {{0x0, 0x1, 0x4,  EXR | DST, 0x0, 0x7, IMM8LIST, E}}},
-  {O (O_LDC, SB), AV_H8,   2, "ldc", {{RS8,        CCR     | DST, E}}, {{0x0, 0x3, B30 | CCR | DST, RS8, E}}},
-  {O (O_LDC, SB), AV_H8S,  2, "ldc", {{RS8,        EXR     | DST, E}}, {{0x0, 0x3, B30 | EXR | DST, RS8, E}}},
-  {O (O_LDC, SW), AV_H8H,  2, "ldc", {{RSIND,      CCR     | DST, E}}, {{PREFIXLDC, 0x6, 0x9, B30 | RSIND,     IGNORE, E}}},
-  {O (O_LDC, SW), AV_H8S,  2, "ldc", {{RSIND,      EXR     | DST, E}}, {{PREFIXLDC, 0x6, 0x9, B30 | RSIND,     IGNORE, E}}},
-  {O (O_LDC, SW), AV_H8H,  2, "ldc", {{RSPOSTINC,  CCR     | DST, E}}, {{PREFIXLDC, 0x6, 0xD, B30 | RSPOSTINC, IGNORE, E}}},
-  {O (O_LDC, SW), AV_H8S,  2, "ldc", {{RSPOSTINC,  EXR     | DST, E}}, {{PREFIXLDC, 0x6, 0xD, B30 | RSPOSTINC, IGNORE, E}}},
-  {O (O_LDC, SW), AV_H8H,  2, "ldc", {{DISP16SRC,  CCR     | DST, E}}, {{PREFIXLDC, 0x6, 0xF, B30 | DISPREG,                     IGNORE, SRC | DISP16LIST, E}}},
-  {O (O_LDC, SW), AV_H8S,  2, "ldc", {{DISP16SRC,  EXR     | DST, E}}, {{PREFIXLDC, 0x6, 0xF, B30 | DISPREG,                     IGNORE, SRC | DISP16LIST, E}}},
-  {O (O_LDC, SW), AV_H8H,  2, "ldc", {{DISP32SRC,  CCR     | DST, E}}, {{PREFIXLDC, 0x7, 0x8, B30 | DISPREG, 0x0, 0x6, 0xB, 0x2, IGNORE, SRC | DISP32LIST, E}}},
-  {O (O_LDC, SW), AV_H8S,  2, "ldc", {{DISP32SRC,  EXR     | DST, E}}, {{PREFIXLDC, 0x7, 0x8, B30 | DISPREG, 0x0, 0x6, 0xB, 0x2, IGNORE, SRC | DISP32LIST, E}}},
-  {O (O_LDC, SW), AV_H8H,  2, "ldc", {{ABS16SRC,   CCR     | DST, E}}, {{PREFIXLDC, 0x6, 0xB, 0x0, IGNORE, SRC | ABS16LIST, E}}},
-  {O (O_LDC, SW), AV_H8S,  2, "ldc", {{ABS16SRC,   EXR     | DST, E}}, {{PREFIXLDC, 0x6, 0xB, 0x0, IGNORE, SRC | ABS16LIST, E}}},
-  {O (O_LDC, SW), AV_H8H,  2, "ldc", {{ABS32SRC,   CCR     | DST, E}}, {{PREFIXLDC, 0x6, 0xB, 0x2, IGNORE, SRC | MEMRELAX | ABS32LIST, E}}},
-  {O (O_LDC, SW), AV_H8S,  2, "ldc", {{ABS32SRC,   EXR     | DST, E}}, {{PREFIXLDC, 0x6, 0xB, 0x2, IGNORE, SRC | MEMRELAX | ABS32LIST, E}}},
-
-  {O (O_LDC, SL), AV_H8SX, 0, "ldc", {{RS32, B30 | VBR_SBR | DST, E}}, {{0x0, 0x3, B30 | VBR_SBR | DST, RS32, E}}},
-
-
-  {O (O_MOV, SB), AV_H8,   2, "mov.b", {{IMM8, RD8,      E}}, {{0xF, RD8,            IMM8LIST,     E}}},
-  {O (O_MOV, SB), AV_H8SX, 0, "mov.b", {{IMM4_NS, ABS16DST, E}}, {{0x6, 0xa, 0xd, IMM4, DSTABS16LIST, E}}},
-  {O (O_MOV, SB), AV_H8SX, 0, "mov.b", {{IMM4_NS, ABS32DST, E}}, {{0x6, 0xa, 0xf, IMM4, DSTABS32LIST, E}}},
-  MOVFROM_IMM8 (O (O_MOV, SB), PREFIX_017D, "mov.b", IMM8),
-
-  {O (O_MOV, SB), AV_H8,   2,    "mov.b", {{RS8, RD8,     E}}, {{0x0, 0xC, RS8, RD8,    E}}},
-  MOVFROM_REG_BW (O (O_MOV, SB), "mov.b", RS8, PREFIX_017, 8, 10, 12, 14, MEMRELAX),
-  {O (O_MOV, SB), AV_H8,   4,    "mov.b", {{RS8, ABS8DST, E}}, {{0x3, RS8, DSTABS8LIST, E}}},
-  MOVTO_REG_BW (O (O_MOV, SB),   "mov.b", RD8, PREFIX_017, 8, 10, 12, 14, MEMRELAX),
-  {O (O_MOV, SB), AV_H8,   4,    "mov.b", {{ABS8SRC, RD8, E}}, {{0x2, RD8, ABS8LIST,    E}}},
-
-  MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", RSIND,     FROM_IND), 
-  MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", RSPOSTINC, FROM_POSTINC), 
-  MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", RSPOSTDEC, FROM_POSTDEC), 
-  MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", RSPREINC,  FROM_PREINC), 
-  MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", RSPREDEC,  FROM_PREDEC), 
-  MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", DISP2SRC,  FROM_DISP2), 
-  MOVFROM_AD  (O (O_MOV, SB), PREFIX_0178, "mov.b", DISP16SRC, FROM_DISP16,  DISP16LIST), 
-  MOVFROM_AD  (O (O_MOV, SB), PREFIX_0178, "mov.b", DISP32SRC, FROM_DISP32,  DISP32LIST), 
-  MOVFROM_AD  (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXB16,  FROM_DISP16B, DISP16LIST), 
-  MOVFROM_AD  (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXW16,  FROM_DISP16W, DISP16LIST), 
-  MOVFROM_AD  (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXL16,  FROM_DISP16L, DISP16LIST), 
-  MOVFROM_AD  (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXB32,  FROM_DISP32B, DISP32LIST), 
-  MOVFROM_AD  (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXW32,  FROM_DISP32W, DISP32LIST), 
-  MOVFROM_AD  (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXL32,  FROM_DISP32L, DISP32LIST), 
-  MOVFROM_AD  (O (O_MOV, SB), PREFIX_0178, "mov.b", ABS16SRC,  FROM_ABS16,   ABS16LIST), 
-  MOVFROM_AD  (O (O_MOV, SB), PREFIX_0178, "mov.b", ABS32SRC,  FROM_ABS32,   ABS32LIST), 
-
-  {O (O_MOV, SW), AV_H8SX, 0, "mov.w", {{IMM3NZ_NS, RD16, E}}, {{0x0, 0xf, B30 | IMM3NZ, RD16,   E}}},
-  {O (O_MOV, SW), AV_H8,   4, "mov.w", {{IMM16,     RD16, E}}, {{0x7, 0x9, 0x0, RD16, IMM16LIST, E}}},
-  {O (O_MOV, SW), AV_H8SX, 0, "mov.w", {{IMM4_NS,  ABS16DST, E}}, {{0x6, 0xb, 0xd, IMM4, DSTABS16LIST, E}}},
-  {O (O_MOV, SW), AV_H8SX, 0, "mov.w", {{IMM4_NS,  ABS32DST, E}}, {{0x6, 0xb, 0xf, IMM4, DSTABS32LIST, E}}},
-
-  MOVFROM_IMM8 (O (O_MOV, SW), PREFIX_015D,   "mov.w", IMM8U_NS),
-  MOVFROM_IMM  (O (O_MOV, SW), PREFIX_7974,   "mov.w", IMM16, IMM16LIST),
-
-  {O (O_MOV, SW), AV_H8,   2, "mov.w", {{RS16, RD16,      E}}, {{0x0, 0xD, RS16, RD16, E}}},
-  MOVFROM_REG_BW (O (O_MOV, SW), "mov.w", RS16, PREFIX_015, 9, 11, 13, 15, 0),
-  MOVTO_REG_BW   (O (O_MOV, SW), "mov.w", RD16, PREFIX_015, 9, 11, 13, 15, 0),
-
-  MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", RSIND,     FROM_IND), 
-  MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", RSPOSTINC, FROM_POSTINC), 
-  MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", RSPOSTDEC, FROM_POSTDEC), 
-  MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", RSPREINC,  FROM_PREINC), 
-  MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", RSPREDEC,  FROM_PREDEC), 
-  MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", DISP2SRC,  FROM_DISP2), 
-  MOVFROM_AD  (O (O_MOV, SW), PREFIX_0158, "mov.w", DISP16SRC, FROM_DISP16,  DISP16LIST), 
-  MOVFROM_AD  (O (O_MOV, SW), PREFIX_0158, "mov.w", DISP32SRC, FROM_DISP32,  DISP32LIST), 
-  MOVFROM_AD  (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXB16,  FROM_DISP16B, DISP16LIST), 
-  MOVFROM_AD  (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXW16,  FROM_DISP16W, DISP16LIST), 
-  MOVFROM_AD  (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXL16,  FROM_DISP16L, DISP16LIST), 
-  MOVFROM_AD  (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXB32,  FROM_DISP32B, DISP32LIST), 
-  MOVFROM_AD  (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXW32,  FROM_DISP32W, DISP32LIST), 
-  MOVFROM_AD  (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXL32,  FROM_DISP32L, DISP32LIST), 
-  MOVFROM_AD  (O (O_MOV, SW), PREFIX_0158, "mov.w", ABS16SRC,  FROM_ABS16,   ABS16LIST), 
-  MOVFROM_AD  (O (O_MOV, SW), PREFIX_0158, "mov.w", ABS32SRC,  FROM_ABS32,   ABS32LIST), 
-
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{IMM3NZ_NS, RD32, E}}, {{0x0, 0xf, B31 | IMM3NZ, B31 | RD32, E}}},
-
-  MOVFROM_IMM8 (O (O_MOV, SL), PREFIX_010D, "mov.l", IMM8U_NS),
-  MOVFROM_IMM  (O (O_MOV, SL), PREFIX_7A7C, "mov.l", IMM16U_NS, IMM16ULIST),
-
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{IMM16U_NS, RD32, E}}, {{0x7, 0xa, 0x0, B31 | RD32, IMM16ULIST, E}}},
-  {O (O_MOV, SL), AV_H8H,  4, "mov.l", {{IMM32,     RD32, E}}, {{0x7, 0xa, 0x0, B30 | RD32, IMM32LIST,  E}}},
-
-  MOVFROM_IMM (O (O_MOV, SL), PREFIX_7A74, "mov.l", IMM32, IMM32LIST),
-
-  {O (O_MOV, SL), AV_H8H,  2, "mov.l", {{RS32, RD32,      E}}, {{0x0, 0xf, B31 | RS32, B30 | RD32, E}}},
-
-  {O (O_MOV, SL), AV_H8H,  6, "mov.l", {{RS32, RDIND,     E}}, {{PREFIX_0100,                       0x6, 0x9, B31 | RDIND, B30 | RS32, E}}}, 
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, RDPOSTINC, E}}, {{PREFIX_0103,                       0x6, 0xd, B31 | RDPOSTINC,   RS32, E}}}, 
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, RDPOSTDEC, E}}, {{PREFIX_0101,                       0x6, 0xd, B31 | RDPOSTDEC,   RS32, E}}}, 
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, RDPREINC,  E}}, {{PREFIX_0102,                       0x6, 0xd, B31 | RDPREINC,    RS32, E}}}, 
-  {O (O_MOV, SL), AV_H8H,  6, "mov.l", {{RS32, RDPREDEC,  E}}, {{PREFIX_0100,                       0x6, 0xd, B31 | RDPREDEC,    RS32, E}}}, 
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, DISP2DST,  E}}, {{PREFIX_010,  B30 | B20 | DISP2DST, 0x6, 0x9, B31 | DSTDISPREG,  RS32, E}}}, 
-  {O (O_MOV, SL), AV_H8H,  6, "mov.l", {{RS32, DISP16DST, E}}, {{PREFIX_0100,                       0x6, 0xf, B31 | DSTDISPREG,  RS32, DSTDISP16LIST, E}}}, 
-  {O (O_MOV, SL), AV_H8SX, 6, "mov.l", {{RS32, DISP32DST, E}}, {{0x7, 0x8, B31 | DSTDISPREG, 0x0,   0x6, 0xb, 0xa,               RS32, DSTDISP32LIST, E}}},
-  {O (O_MOV, SL), AV_H8H,  6, "mov.l", {{RS32, DISP32DST, E}}, {{PREFIX_0100,                       0x7, 0x8, B31 | DSTDISPREG, 0x0,   0x6, 0xb, 0xa,               RS32, DSTDISP32LIST, E}}},
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXB16D, E}}, {{PREFIX_0101,                       0x6, 0xf, B31 | DSTDISPREG,  RS32, DSTDISP16LIST, E}}}, 
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXW16D, E}}, {{PREFIX_0102,                       0x6, 0xf, B31 | DSTDISPREG,  RS32, DSTDISP16LIST, E}}}, 
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXL16D, E}}, {{PREFIX_0103,                       0x6, 0xf, B31 | DSTDISPREG,  RS32, DSTDISP16LIST, E}}}, 
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXB32D, E}}, {{0x7, 0x8, B31 | DSTDISPREG, 0x1,   0x6, 0xb, 0xa,               RS32, DSTDISP32LIST, E}}}, 
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXW32D, E}}, {{0x7, 0x8, B31 | DSTDISPREG, 0x2,   0x6, 0xb, 0xa,               RS32, DSTDISP32LIST, E}}}, 
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXL32D, E}}, {{0x7, 0x8, B31 | DSTDISPREG, 0x3,   0x6, 0xb, 0xa,               RS32, DSTDISP32LIST, E}}}, 
-  {O (O_MOV, SL), AV_H8H,  6, "mov.l", {{RS32, ABS16DST,  E}}, {{PREFIX_0100,                       0x6, 0xb, 0x8,            RS32, DSTABS16LIST,            E}}},
-  {O (O_MOV, SL), AV_H8H,  6, "mov.l", {{RS32, ABS32DST,  E}}, {{PREFIX_0100,                       0x6, 0xb, 0xa,            RS32, MEMRELAX | DSTABS32LIST, E}}},
-
-  {O (O_MOV, SL), AV_H8H,  4, "mov.l", {{RSIND,     RD32, E}}, {{PREFIX_0100,                       0x6, 0x9, B30 | RSIND,     RD32, E}}}, 
-  {O (O_MOV, SL), AV_H8H,  6, "mov.l", {{RSPOSTINC, RD32, E}}, {{PREFIX_0100,                       0x6, 0xd, B30 | RSPOSTINC, RD32, E}}}, 
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RSPOSTDEC, RD32, E}}, {{PREFIX_0102,                       0x6, 0xd, B30 | RSPOSTDEC, RD32, E}}}, 
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RSPREINC,  RD32, E}}, {{PREFIX_0101,                       0x6, 0xd, B30 | RSPREINC,  RD32, E}}}, 
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RSPREDEC,  RD32, E}}, {{PREFIX_0103,                       0x6, 0xd, B30 | RSPREDEC,  RD32, E}}}, 
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{DISP2SRC,  RD32, E}}, {{PREFIX_010,  B30 | B20 | DISP2SRC, 0x6, 0x9, B30 | DISPREG,   RD32, E}}}, 
-  {O (O_MOV, SL), AV_H8H,  6, "mov.l", {{DISP16SRC, RD32, E}}, {{PREFIX_0100,                       0x6, 0xf, B30 | DISPREG,   RD32, SRC | DISP16LIST, E}}}, 
-  {O (O_MOV, SL), AV_H8SX, 6, "mov.l", {{DISP32SRC, RD32, E}}, {{0x7, 0x8, B31 | DISPREG, 0x0,      0x6, 0xb, 0x2,             RD32, SRC | DISP32LIST, E}}},
-  {O (O_MOV, SL), AV_H8H,  6, "mov.l", {{DISP32SRC, RD32, E}}, {{PREFIX_0100,                       0x7, 0x8, B30 | DISPREG, 0x0, 0x6, 0xb, 0x2,             RD32, SRC | DISP32LIST, E}}},
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXB16,  RD32, E}}, {{PREFIX_0101,                       0x6, 0xf, B30 | DISPREG,   RD32, SRC | DISP16LIST, E}}}, 
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXW16,  RD32, E}}, {{PREFIX_0102,                       0x6, 0xf, B30 | DISPREG,   RD32, SRC | DISP16LIST, E}}}, 
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXL16,  RD32, E}}, {{PREFIX_0103,                       0x6, 0xf, B30 | DISPREG,   RD32, SRC | DISP16LIST, E}}}, 
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXB32,  RD32, E}}, {{0x7, 0x8, B31 | DISPREG, 0x1,      0x6, 0xb, 0x2,             RD32, SRC | DISP32LIST, E}}}, 
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXW32,  RD32, E}}, {{0x7, 0x8, B31 | DISPREG, 0x2,      0x6, 0xb, 0x2,             RD32, SRC | DISP32LIST, E}}}, 
-  {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXL32,  RD32, E}}, {{0x7, 0x8, B31 | DISPREG, 0x3,      0x6, 0xb, 0x2,             RD32, SRC | DISP32LIST, E}}}, 
-  {O (O_MOV, SL), AV_H8H,  6, "mov.l", {{ABS16SRC,  RD32, E}}, {{PREFIX_0100,                       0x6, 0xb, 0x0,             RD32, SRC | ABS16LIST,  E}}}, 
-  {O (O_MOV, SL), AV_H8H,  6, "mov.l", {{ABS32SRC,  RD32, E}}, {{PREFIX_0100,                       0x6, 0xb, 0x2,             RD32, SRC | MEMRELAX | ABS32LIST, E}}}, 
-
-  MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", RSIND,     FROM_IND), 
-  MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", RSPOSTINC, FROM_POSTINC), 
-  MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", RSPOSTDEC, FROM_POSTDEC), 
-  MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", RSPREINC,  FROM_PREINC), 
-  MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", RSPREDEC,  FROM_PREDEC), 
-  MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", DISP2SRC,  FROM_DISP2), 
-  MOVFROM_AD  (O (O_MOV, SL), PREFIX_0108, "mov.l", DISP16SRC, FROM_DISP16,  DISP16LIST), 
-  MOVFROM_AD  (O (O_MOV, SL), PREFIX_0108, "mov.l", DISP32SRC, FROM_DISP32,  DISP32LIST), 
-  MOVFROM_AD  (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXB16,  FROM_DISP16B, DISP16LIST), 
-  MOVFROM_AD  (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXW16,  FROM_DISP16W, DISP16LIST), 
-  MOVFROM_AD  (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXL16,  FROM_DISP16L, DISP16LIST), 
-  MOVFROM_AD  (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXB32,  FROM_DISP32B, DISP32LIST), 
-  MOVFROM_AD  (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXW32,  FROM_DISP32W, DISP32LIST), 
-  MOVFROM_AD  (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXL32,  FROM_DISP32L, DISP32LIST), 
-  MOVFROM_AD  (O (O_MOV, SL), PREFIX_0108, "mov.l", ABS16SRC,  FROM_ABS16,   ABS16LIST), 
-  MOVFROM_AD  (O (O_MOV, SL), PREFIX_0108, "mov.l", ABS32SRC,  FROM_ABS32,   ABS32LIST), 
-
-#define DO_MOVA1(TYPE, OP0, OP1) \
-  {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0x8, B30 | R3_32, DISP16LIST, E}}}, \
-  {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0x9, B30 | R3_32, DISP16LIST, E}}}, \
-  {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xA, B30 | R3_32, DISP16LIST, E}}}, \
-  {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xB, B30 | R3_32, DISP16LIST, E}}}, \
-  {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xC, B30 | R3_32, DISP16LIST, E}}}, \
-  {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xD, B30 | R3_32, DISP16LIST, E}}}, \
-\
-  {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0x8, B31 | R3_32, DISP32LIST, E}}}, \
-  {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0x9, B31 | R3_32, DISP32LIST, E}}}, \
-  {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xA, B31 | R3_32, DISP32LIST, E}}}, \
-  {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xB, B31 | R3_32, DISP32LIST, E}}}, \
-  {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xC, B31 | R3_32, DISP32LIST, E}}}, \
-  {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xD, B31 | R3_32, DISP32LIST, E}}}
-
-#define DO_MOVA2(TYPE, OP0, OP1, OP2) \
-  {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0x8, B30 | R3_32, OP2, DISP16LIST, E}}}, \
-  {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0x9, B30 | R3_32, OP2, DISP16LIST, E}}}, \
-  {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xA, B30 | R3_32, OP2, DISP16LIST, E}}}, \
-  {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xB, B30 | R3_32, OP2, DISP16LIST, E}}}, \
-  {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xC, B30 | R3_32, OP2, DISP16LIST, E}}}, \
-  {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xD, B30 | R3_32, OP2, DISP16LIST, E}}}, \
-\
-  {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0x8, B31 | R3_32, OP2, DISP32LIST, E}}}, \
-  {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0x9, B31 | R3_32, OP2, DISP32LIST, E}}}, \
-  {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xA, B31 | R3_32, OP2, DISP32LIST, E}}}, \
-  {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xB, B31 | R3_32, OP2, DISP32LIST, E}}}, \
-  {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xC, B31 | R3_32, OP2, DISP32LIST, E}}}, \
-  {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xD, B31 | R3_32, OP2, DISP32LIST, E}}}
-
-  {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB16, E}}, {{0x7, 0xA, 0x8, B31 | DISPREG, DISP16LIST, E}}},
-  {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW16, E}}, {{0x7, 0xA, 0x9, B31 | DISPREG, DISP16LIST, E}}},
-  {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB16, E}}, {{0x7, 0xA, 0xA, B31 | DISPREG, DISP16LIST, E}}},
-  {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW16, E}}, {{0x7, 0xA, 0xB, B31 | DISPREG, DISP16LIST, E}}},
-  {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB16, E}}, {{0x7, 0xA, 0xC, B31 | DISPREG, DISP16LIST, E}}},
-  {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW16, E}}, {{0x7, 0xA, 0xD, B31 | DISPREG, DISP16LIST, E}}},
-
-  {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB32, E}}, {{0x7, 0xA, 0x8, B30 | DISPREG, DISP32LIST, E}}},
-  {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW32, E}}, {{0x7, 0xA, 0x9, B30 | DISPREG, DISP32LIST, E}}},
-  {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB32, E}}, {{0x7, 0xA, 0xA, B30 | DISPREG, DISP32LIST, E}}},
-  {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW32, E}}, {{0x7, 0xA, 0xB, B30 | DISPREG, DISP32LIST, E}}},
-  {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB32, E}}, {{0x7, 0xA, 0xC, B30 | DISPREG, DISP32LIST, E}}},
-  {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW32, E}}, {{0x7, 0xA, 0xD, B30 | DISPREG, DISP32LIST, E}}},
-
-  {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB16, RD8,  R3_32}}, {{0x7, 0x8, RD8,  0x8, 0x7, 0xA, 0x8, B31 | R3_32, DISP16LIST, E}}},
-  {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW16, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0x9, B31 | R3_32, DISP16LIST, E}}},
-  {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB16, RD8,  R3_32}}, {{0x7, 0x8, RD8,  0x8, 0x7, 0xA, 0xA, B31 | R3_32, DISP16LIST, E}}},
-  {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW16, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0xB, B31 | R3_32, DISP16LIST, E}}},
-  {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB16, RD8,  R3_32}}, {{0x7, 0x8, RD8,  0x8, 0x7, 0xA, 0xC, B31 | R3_32, DISP16LIST, E}}},
-  {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW16, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0xD, B31 | R3_32, DISP16LIST, E}}},
-
-  {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB32, RD8,  R3_32}}, {{0x7, 0x8, RD8,  0x8, 0x7, 0xA, 0x8, B30 | R3_32, DISP32LIST, E}}},
-  {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW32, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0x9, B30 | R3_32, DISP32LIST, E}}},
-  {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB32, RD8,  R3_32}}, {{0x7, 0x8, RD8,  0x8, 0x7, 0xA, 0xA, B30 | R3_32, DISP32LIST, E}}},
-  {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW32, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0xB, B30 | R3_32, DISP32LIST, E}}},
-  {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB32, RD8,  R3_32}}, {{0x7, 0x8, RD8,  0x8, 0x7, 0xA, 0xC, B30 | R3_32, DISP32LIST, E}}},
-  {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW32, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0xD, B30 | R3_32, DISP32LIST, E}}},
-
-  DO_MOVA1 (RDIND,     0x0, B30 | RDIND),
-  DO_MOVA1 (RDPOSTINC, 0x8, B30 | RDPOSTINC),
-  DO_MOVA1 (RDPOSTDEC, 0xA, B30 | RDPOSTDEC),
-  DO_MOVA1 (RDPREINC,  0x9, B30 | RDPREINC),
-  DO_MOVA1 (RDPREDEC,  0xB, B30 | RDPREDEC),
-  DO_MOVA1 (DISP2DST,  B30 | B20 | DISP2DST,  B30 | DSTDISPREG),
-  DO_MOVA2 (DISP16DST, 0xC, B30 | DSTDISPREG, DSTDISP16LIST),
-  DO_MOVA2 (DISP32DST, 0xC, B31 | DSTDISPREG, DSTDISP32LIST),
-  DO_MOVA2 (INDEXB16D, 0xD, B30 | DSTDISPREG, DSTDISP16LIST),
-  DO_MOVA2 (INDEXW16D, 0xE, B30 | DSTDISPREG, DSTDISP16LIST),
-  DO_MOVA2 (INDEXL16D, 0xF, B30 | DSTDISPREG, DSTDISP16LIST),
-  DO_MOVA2 (INDEXB32D, 0xD, B31 | DSTDISPREG, DSTDISP32LIST),
-  DO_MOVA2 (INDEXW32D, 0xE, B31 | DSTDISPREG, DSTDISP32LIST),
-  DO_MOVA2 (INDEXL32D, 0xF, B31 | DSTDISPREG, DSTDISP32LIST),
-  DO_MOVA2 (ABS16DST,  0x4, 0x0,              DSTABS16LIST),
-  DO_MOVA2 (ABS32DST,  0x4, 0x8,              DSTABS32LIST),
-
-  {O (O_MOV, SB), AV_H8, 10, "movfpe", {{ABS16SRC, RD8, E}}, {{0x6, 0xA, 0x4, RD8, ABS16SRC, DATA3, E}}},
-  {O (O_MOV, SB), AV_H8, 10, "movtpe", {{RS8, ABS16DST, E}}, {{0x6, 0xA, 0xC, RS8, ABS16DST, DATA3, E}}},
-
-  {O (O_MOVMD, SB), AV_H8SX, 0, "movmd.b", {{E}},         {{0x7, 0xb, 0x9, 0x4, E}}},
-  {O (O_MOVMD, SW), AV_H8SX, 0, "movmd.w", {{E}},         {{0x7, 0xb, 0xa, 0x4, E}}},
-  {O (O_MOVMD, SL), AV_H8SX, 0, "movmd.l", {{E}},         {{0x7, 0xb, 0xb, 0x4, E}}},
-  {O (O_MOVSD, SB), AV_H8SX, 0, "movsd.b", {{PCREL16, E}}, {{0x7, 0xb, 0x8, 0x4, PCREL16, DATA3, E}}},
-
-  {O (O_MULS, SW), AV_H8SX, 0, "muls.w", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xc, 0x6, 0x5, 0x0, IMM4, RD16, E}}},
-  {O (O_MULS, SW), AV_H8SX, 0, "muls.w", {{RS16, RD16, E}}, {{0x0, 0x1, 0xc, 0x2, 0x5, 0x0, RS16, RD16, E}}},
-  {O (O_MULS, SL), AV_H8SX, 0, "muls.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0x6, 0x5, 0x2, IMM4,       B30 | RD32, E}}},
-  {O (O_MULS, SL), AV_H8SX, 0, "muls.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xc, 0x2, 0x5, 0x2, B30 | RS32, B30 | RD32, E}}},
-
-  {O (O_MULU, SW), AV_H8SX, 0, "mulu.w", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xc, 0xe, 0x5, 0x0, IMM4, RD16, E}}},
-  {O (O_MULU, SW), AV_H8SX, 0, "mulu.w", {{RS16, RD16, E}}, {{0x0, 0x1, 0xc, 0xa, 0x5, 0x0, RS16, RD16, E}}},
-  {O (O_MULU, SL), AV_H8SX, 0, "mulu.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0xe, 0x5, 0x2, IMM4,       B30 | RD32, E}}},
-  {O (O_MULU, SL), AV_H8SX, 0, "mulu.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xc, 0xa, 0x5, 0x2, B30 | RS32, B30 | RD32, E}}},
-
-  {O (O_MULSU, SL), AV_H8SX, 0, "muls/u.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0x7, 0x5, 0x2, IMM4,       B30 | RD32, E}}},
-  {O (O_MULSU, SL), AV_H8SX, 0, "muls/u.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xc, 0x3, 0x5, 0x2, B30 | RS32, B30 | RD32, E}}},
-  {O (O_MULUU, SL), AV_H8SX, 0, "mulu/u.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0xf, 0x5, 0x2, IMM4,       B30 | RD32, E}}},
-  {O (O_MULUU, SL), AV_H8SX, 0, "mulu/u.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xc, 0xb, 0x5, 0x2, B30 | RS32, B30 | RD32, E}}},
-
-  {O (O_MULXS, SB), AV_H8SX, 0,  "mulxs.b", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xc, 0x4, 0x5, 0x0, IMM4, RD16,       E}}},
-  {O (O_MULXS, SB), AV_H8H,  20, "mulxs.b", {{RS8,  RD16, E}}, {{0x0, 0x1, 0xc, 0x0, 0x5, 0x0, RS8,  RD16,       E}}},
-  {O (O_MULXS, SW), AV_H8SX, 0,  "mulxs.w", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0x4, 0x5, 0x2, IMM4, B30 | RD32, E}}},
-  {O (O_MULXS, SW), AV_H8H,  20, "mulxs.w", {{RS16, RD32, E}}, {{0x0, 0x1, 0xc, 0x0, 0x5, 0x2, RS16, B30 | RD32, E}}},
-
-  {O (O_MULXU, SB), AV_H8SX, 0,  "mulxu.b", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xc, 0xc, 0x5, 0x0, IMM4, RD16, E}}},
-  {O (O_MULXU, SB), AV_H8,   14, "mulxu.b", {{RS8,  RD16, E}}, {{0x5, 0x0,                     RS8,  RD16, E}}},
-  {O (O_MULXU, SW), AV_H8SX, 0,  "mulxu.w", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0xc, 0x5, 0x2, IMM4, B30 | RD32, E}}},
-  {O (O_MULXU, SW), AV_H8H,  14, "mulxu.w", {{RS16, RD32, E}}, {{0x5, 0x2,                     RS16, B30 | RD32, E}}},
-
-  EXPAND_UNOP_STD_B (O (O_NEG,  SB), "neg.b", PREFIX_017, 0x1, 0x7, 0x8),
-  EXPAND_UNOP_STD_W (O (O_NEG,  SW), "neg.w", PREFIX_015, 0x1, 0x7, 0x9),
-  EXPAND_UNOP_STD_L (O (O_NEG,  SL), "neg.l", PREFIX_010, 0x1, 0x7, 0xb),
-
-  {O (O_NOP, SN), AV_H8,  2, "nop",   {{E}},  {{0x0, 0x0, 0x0, 0x0, E}}},
-
-  EXPAND_UNOP_STD_B (O (O_NOT,  SB), "not.b", PREFIX_017, 0x1, 0x7, 0x0),
-  EXPAND_UNOP_STD_W (O (O_NOT,  SW), "not.w", PREFIX_015, 0x1, 0x7, 0x1),
-  EXPAND_UNOP_STD_L (O (O_NOT,  SL), "not.l", PREFIX_010, 0x1, 0x7, 0x3),
-
-  {O (O_OR,  SB), AV_H8,  2, "or.b",  {{IMM8, RD8,  E}}, {{0xc, RD8, IMM8LIST, E}}}, 
-  EXPAND_TWOOP_B (O (O_OR, SB), "or.b", 0xc, 0x1, 0x4, 0x4, 0), 
-
-  {O (O_OR,  SW), AV_H8,  2, "or.w",  {{RS16, RD16, E}}, {{0x6, 0x4, RS16, RD16, E}}}, 
-  EXPAND_TWOOP_W (O (O_OR, SW), "or.w", 0x6, 0x4, 0x4), 
-
-  {O (O_OR,  SL), AV_H8H, 2, "or.l",  {{RS32, RD32, E}}, {{0x0, 0x1, 0xF, 0x0, 0x6, 0x4, B30 | RS32, B30 | RD32, E}}},
-  EXPAND_TWOOP_L (O (O_OR, SL), "or.l", 0x4), 
-
-  {O (O_ORC, SB), AV_H8,  2, "orc", {{IMM8, CCR | DST, E}}, {{0x0, 0x4, IMM8LIST, E}}},
-  {O (O_ORC, SB), AV_H8S, 2, "orc", {{IMM8, EXR | DST, E}}, {{0x0, 0x1, 0x4, EXR | DST, 0x0, 0x4, IMM8LIST, E}}},
-
-  {O (O_MOV, SW), AV_H8,  6, "pop.w",  {{OR16, E}}, {{0x6, 0xD, 0x7, OR16, E}}},
-  {O (O_MOV, SL), AV_H8H, 6, "pop.l",  {{OR32, E}}, {{PREFIX_0100, 0x6, 0xD, 0x7, OR32 | B30, E}}},
-  {O (O_MOV, SW), AV_H8,  6, "push.w", {{OR16, E}}, {{0x6, 0xD, 0xF, OR16, E}}},
-  {O (O_MOV, SL), AV_H8H, 6, "push.l", {{OR32, E}}, {{PREFIX_0100, 0x6, 0xD, 0xF, OR32 | B30, E}}},
-
-  EXPAND_UNOP_STD_B      (O (O_ROTL,  SB), "rotl.b",           PREFIX_017, 0x1, 0x2, 0x8),
-  EXPAND_UNOP_EXTENDED_B (O (O_ROTL,  SB), "rotl.b",  CONST_2, PREFIX_017, 0x1, 0x2, 0xc),
-  EXPAND_UNOP_STD_W      (O (O_ROTL,  SW), "rotl.w",           PREFIX_015, 0x1, 0x2, 0x9),
-  EXPAND_UNOP_EXTENDED_W (O (O_ROTL,  SW), "rotl.w",  CONST_2, PREFIX_015, 0x1, 0x2, 0xd),
-  EXPAND_UNOP_STD_L      (O (O_ROTL,  SL), "rotl.l",           PREFIX_010, 0x1, 0x2, 0xb),
-  EXPAND_UNOP_EXTENDED_L (O (O_ROTL,  SL), "rotl.l",  CONST_2, PREFIX_010, 0x1, 0x2, 0xf, B30),
-  EXPAND_UNOP_STD_B      (O (O_ROTR,  SB), "rotr.b",           PREFIX_017, 0x1, 0x3, 0x8),
-  EXPAND_UNOP_EXTENDED_B (O (O_ROTR,  SB), "rotr.b",  CONST_2, PREFIX_017, 0x1, 0x3, 0xc),
-  EXPAND_UNOP_STD_W      (O (O_ROTR,  SW), "rotr.w",           PREFIX_015, 0x1, 0x3, 0x9),
-  EXPAND_UNOP_EXTENDED_W (O (O_ROTR,  SW), "rotr.w",  CONST_2, PREFIX_015, 0x1, 0x3, 0xd),
-  EXPAND_UNOP_STD_L      (O (O_ROTR,  SL), "rotr.l",           PREFIX_010, 0x1, 0x3, 0xb),
-  EXPAND_UNOP_EXTENDED_L (O (O_ROTR,  SL), "rotr.l",  CONST_2, PREFIX_010, 0x1, 0x3, 0xf, B30),
-  EXPAND_UNOP_STD_B      (O (O_ROTXL, SB), "rotxl.b",          PREFIX_017, 0x1, 0x2, 0x0),
-  EXPAND_UNOP_EXTENDED_B (O (O_ROTXL, SB), "rotxl.b", CONST_2, PREFIX_017, 0x1, 0x2, 0x4),
-  EXPAND_UNOP_STD_W      (O (O_ROTXL, SW), "rotxl.w",          PREFIX_015, 0x1, 0x2, 0x1),
-  EXPAND_UNOP_EXTENDED_W (O (O_ROTXL, SW), "rotxl.w", CONST_2, PREFIX_015, 0x1, 0x2, 0x5),
-  EXPAND_UNOP_STD_L      (O (O_ROTXL, SL), "rotxl.l",          PREFIX_010, 0x1, 0x2, 0x3),
-  EXPAND_UNOP_EXTENDED_L (O (O_ROTXL, SL), "rotxl.l", CONST_2, PREFIX_010, 0x1, 0x2, 0x7, B30),
-  EXPAND_UNOP_STD_B      (O (O_ROTXR, SB), "rotxr.b",          PREFIX_017, 0x1, 0x3, 0x0),
-  EXPAND_UNOP_EXTENDED_B (O (O_ROTXR, SB), "rotxr.b", CONST_2, PREFIX_017, 0x1, 0x3, 0x4),
-  EXPAND_UNOP_STD_W      (O (O_ROTXR, SW), "rotxr.w",          PREFIX_015, 0x1, 0x3, 0x1),
-  EXPAND_UNOP_EXTENDED_W (O (O_ROTXR, SW), "rotxr.w", CONST_2, PREFIX_015, 0x1, 0x3, 0x5),
-  EXPAND_UNOP_STD_L      (O (O_ROTXR, SL), "rotxr.l",          PREFIX_010, 0x1, 0x3, 0x3),
-  EXPAND_UNOP_EXTENDED_L (O (O_ROTXR, SL), "rotxr.l", CONST_2, PREFIX_010, 0x1, 0x3, 0x7, B30),
-
-
-  {O (O_BPT,  SN), AV_H8,  10, "bpt",   {{E}}, {{0x7, 0xA, 0xF, 0xF, E}}},
-  {O (O_RTE,  SN), AV_H8,  10, "rte",   {{E}}, {{0x5, 0x6, 0x7, 0x0, E}}},
-  {O (O_RTS,  SN), AV_H8,   8, "rts",   {{E}}, {{0x5, 0x4, 0x7, 0x0, E}}},
-  {O (O_RTEL, SN), AV_H8SX, 0, "rte/l", {{RS32, RD32, E}}, {{0x5, 0x6, RS32 | B30, RD32 | B30, E}}},
-  {O (O_RTSL, SN), AV_H8SX, 0, "rts/l", {{RS32, RD32, E}}, {{0x5, 0x4, RS32 | B30, RD32 | B30, E}}},
-
-  EXPAND_UNOP_STD_B      (O (O_SHAL, SB), "shal.b",          PREFIX_017, 0x1, 0x0, 0x8),
-  EXPAND_UNOP_EXTENDED_B (O (O_SHAL, SB), "shal.b", CONST_2, PREFIX_017, 0x1, 0x0, 0xc),
-  EXPAND_UNOP_STD_W      (O (O_SHAL, SW), "shal.w",          PREFIX_015, 0x1, 0x0, 0x9),
-  EXPAND_UNOP_EXTENDED_W (O (O_SHAL, SW), "shal.w", CONST_2, PREFIX_015, 0x1, 0x0, 0xd),
-  EXPAND_UNOP_STD_L      (O (O_SHAL, SL), "shal.l",          PREFIX_010, 0x1, 0x0, 0xb),
-  EXPAND_UNOP_EXTENDED_L (O (O_SHAL, SL), "shal.l", CONST_2, PREFIX_010, 0x1, 0x0, 0xf, B30),
-  EXPAND_UNOP_STD_B      (O (O_SHAR, SB), "shar.b",          PREFIX_017, 0x1, 0x1, 0x8),
-  EXPAND_UNOP_EXTENDED_B (O (O_SHAR, SB), "shar.b", CONST_2, PREFIX_017, 0x1, 0x1, 0xc),
-  EXPAND_UNOP_STD_W      (O (O_SHAR, SW), "shar.w",          PREFIX_015, 0x1, 0x1, 0x9),
-  EXPAND_UNOP_EXTENDED_W (O (O_SHAR, SW), "shar.w", CONST_2, PREFIX_015, 0x1, 0x1, 0xd),
-  EXPAND_UNOP_STD_L      (O (O_SHAR, SL), "shar.l",          PREFIX_010, 0x1, 0x1, 0xb),
-  EXPAND_UNOP_EXTENDED_L (O (O_SHAR, SL), "shar.l", CONST_2, PREFIX_010, 0x1, 0x1, 0xf, B30),
-
-  EXPAND_UNOP_STD_B      (O (O_SHLL, SB), "shll.b",          PREFIX_017, 0x1, 0x0, 0x0),
-
-  {O (O_SHLL, SB), AV_H8SX, 0, "shll.b", {{RS8,  RD8,  E}}, {{0x7, 0x8, RS8,        0x8,  0x1, 0x0, 0x0, RD8,  E}}},
-
-  EXPAND_UNOP_EXTENDED_B (O (O_SHLL, SB), "shll.b", CONST_2, PREFIX_017, 0x1, 0x0, 0x4),
-  EXPAND_UNOP_EXTENDED_B (O (O_SHLL, SB), "shll.b", CONST_4, PREFIX_017, 0x1, 0x0, 0xa),
-  {O (O_SHLL, SB), AV_H8SX, 0, "shll.b", {{IMM5, RD8,  E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x0, 0x0, RD8,  E}}},
-
-  EXPAND_UNOP_STD_W      (O (O_SHLL, SW), "shll.w",          PREFIX_015, 0x1, 0x0, 0x1),
-
-  {O (O_SHLL, SW), AV_H8SX, 0, "shll.w", {{RS8,  RD16, E}}, {{0x7, 0x8, RS8,        0x8,  0x1, 0x0, 0x1, RD16, E}}},
-
-  EXPAND_UNOP_EXTENDED_W (O (O_SHLL, SW), "shll.w", CONST_2, PREFIX_015, 0x1, 0x0, 0x5),
-  EXPAND_UNOP_EXTENDED_W (O (O_SHLL, SW), "shll.w", CONST_4, PREFIX_015, 0x1, 0x0, 0x2),
-  EXPAND_UNOP_EXTENDED_W (O (O_SHLL, SW), "shll.w", CONST_8, PREFIX_015, 0x1, 0x0, 0x6),
-  {O (O_SHLL, SW), AV_H8SX, 0, "shll.w", {{IMM5, RD16, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x0, 0x1, RD16, E}}},
-
-  EXPAND_UNOP_STD_L      (O (O_SHLL, SL), "shll.l",           PREFIX_010, 0x1, 0x0, 0x3),
-
-  {O (O_SHLL, SL), AV_H8SX, 0, "shll.l", {{RS8,  RD32, E}}, {{0x7, 0x8, RS8,        0x8,  0x1, 0x0, 0x3, B30 | RD32, E}}},
-
-  EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), "shll.l", CONST_2,  PREFIX_010, 0x1, 0x0, 0x7, B30),
-  EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), "shll.l", CONST_4,  PREFIX_010, 0x1, 0x0, 0x3, B31),
-  EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), "shll.l", CONST_8,  PREFIX_010, 0x1, 0x0, 0x7, B31),
-  EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), "shll.l", CONST_16, PREFIX_010, 0x1, 0x0, 0xf, B31),
-  {O (O_SHLL, SL), AV_H8SX, 0, "shll.l", {{IMM5, RD32, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x0, 0x3, B30 | RD32, E}}},
-
-  EXPAND_UNOP_STD_B      (O (O_SHLR, SB), "shlr.b",          PREFIX_017, 0x1, 0x1, 0x0),
-
-  {O (O_SHLR, SB), AV_H8SX, 0, "shlr.b", {{RS8,  RD8,  E}}, {{0x7, 0x8, RS8,        0x8,  0x1, 0x1, 0x0, RD8,  E}}},
-
-  EXPAND_UNOP_EXTENDED_B (O (O_SHLR, SB), "shlr.b", CONST_2, PREFIX_017, 0x1, 0x1, 0x4),
-  EXPAND_UNOP_EXTENDED_B (O (O_SHLR, SB), "shlr.b", CONST_4, PREFIX_017, 0x1, 0x1, 0xa),
-  {O (O_SHLR, SB), AV_H8SX, 0, "shlr.b", {{IMM5, RD8,  E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x1, 0x0, RD8,  E}}},
-
-  EXPAND_UNOP_STD_W      (O (O_SHLR, SW), "shlr.w",          PREFIX_015, 0x1, 0x1, 0x1),
-
-  {O (O_SHLR, SW), AV_H8SX, 0, "shlr.w", {{RS8,  RD16, E}}, {{0x7, 0x8, RS8,        0x8,  0x1, 0x1, 0x1, RD16, E}}},
-
-  EXPAND_UNOP_EXTENDED_W (O (O_SHLR, SW), "shlr.w", CONST_2, PREFIX_015, 0x1, 0x1, 0x5),
-  EXPAND_UNOP_EXTENDED_W (O (O_SHLR, SW), "shlr.w", CONST_4, PREFIX_015, 0x1, 0x1, 0x2),
-  EXPAND_UNOP_EXTENDED_W (O (O_SHLR, SW), "shlr.w", CONST_8, PREFIX_015, 0x1, 0x1, 0x6),
-  {O (O_SHLR, SW), AV_H8SX, 0, "shlr.w", {{IMM5, RD16, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x1, 0x1, RD16, E}}},
-
-  EXPAND_UNOP_STD_L      (O (O_SHLR, SL), "shlr.l",           PREFIX_010, 0x1, 0x1, 0x3),
-
-  {O (O_SHLR, SL), AV_H8SX, 0, "shlr.l", {{RS8,  RD32, E}}, {{0x7, 0x8, RS8,        0x8,  0x1, 0x1, 0x3, B30 | RD32, E}}},
-
-  EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), "shlr.l", CONST_2,  PREFIX_010, 0x1, 0x1, 0x7, B30),
-  EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), "shlr.l", CONST_4,  PREFIX_010, 0x1, 0x1, 0x3, B31),
-  EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), "shlr.l", CONST_8,  PREFIX_010, 0x1, 0x1, 0x7, B31),
-  EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), "shlr.l", CONST_16, PREFIX_010, 0x1, 0x1, 0xf, B31),
-  {O (O_SHLR, SL), AV_H8SX, 0, "shlr.l", {{IMM5, RD32, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x1, 0x3, B30 | RD32, E}}},
-
-  {O (O_SLEEP, SN), AV_H8, 2, "sleep", {{E}}, {{0x0, 0x1, 0x8, 0x0, E}}},
-
-  {O (O_STC, SB), AV_H8,   2, "stc", {{CCR | SRC, RD8,            E}}, {{0x0, 0x2, B30 | CCR | SRC,           RD8,    E}}},
-  {O (O_STC, SB), AV_H8S,  2, "stc", {{EXR | SRC, RD8,            E}}, {{0x0, 0x2, B30 | EXR | SRC,           RD8,    E}}},
-  {O (O_STC, SW), AV_H8H,  2, "stc", {{CCR | SRC, RDIND,          E}}, {{PREFIXSTC, 0x6, 0x9, B31 | RDIND,    IGNORE, E}}},
-  {O (O_STC, SW), AV_H8S,  2, "stc", {{EXR | SRC, RDIND,          E}}, {{PREFIXSTC, 0x6, 0x9, B31 | RDIND,    IGNORE, E}}},
-  {O (O_STC, SW), AV_H8H,  2, "stc", {{CCR | SRC, RDPREDEC,       E}}, {{PREFIXSTC, 0x6, 0xD, B31 | RDPREDEC, IGNORE, E}}},
-  {O (O_STC, SW), AV_H8S,  2, "stc", {{EXR | SRC, RDPREDEC,       E}}, {{PREFIXSTC, 0x6, 0xD, B31 | RDPREDEC, IGNORE, E}}},
-  {O (O_STC, SW), AV_H8H,  2, "stc", {{CCR | SRC, DISP16DST,      E}}, {{PREFIXSTC, 0x6, 0xF, B31 | DSTDISPREG,                   IGNORE, DSTDISP16LIST, E}}},
-  {O (O_STC, SW), AV_H8S,  2, "stc", {{EXR | SRC, DISP16DST,      E}}, {{PREFIXSTC, 0x6, 0xF, B31 | DSTDISPREG,                   IGNORE, DSTDISP16LIST, E}}},
-  {O (O_STC, SW), AV_H8H,  2, "stc", {{CCR | SRC, DISP32DST,      E}}, {{PREFIXSTC, 0x7, 0x8, B30 | DSTDISPREG, 0, 0x6, 0xB, 0xA, IGNORE, DSTDISP32LIST, E}}},
-  {O (O_STC, SW), AV_H8S,  2, "stc", {{EXR | SRC, DISP32DST,      E}}, {{PREFIXSTC, 0x7, 0x8, B30 | DSTDISPREG, 0, 0x6, 0xB, 0xA, IGNORE, DSTDISP32LIST, E}}},
-  {O (O_STC, SW), AV_H8H,  2, "stc", {{CCR | SRC, ABS16DST,       E}}, {{PREFIXSTC, 0x6, 0xB, 0x8, IGNORE, DST | ABS16LIST, E}}},
-  {O (O_STC, SW), AV_H8S,  2, "stc", {{EXR | SRC, ABS16DST,       E}}, {{PREFIXSTC, 0x6, 0xB, 0x8, IGNORE, DST | ABS16LIST, E}}},
-  {O (O_STC, SW), AV_H8H,  2, "stc", {{CCR | SRC, ABS32DST,       E}}, {{PREFIXSTC, 0x6, 0xB, 0xA, IGNORE, DST | MEMRELAX | ABS32LIST, E}}},
-  {O (O_STC, SW), AV_H8S,  2, "stc", {{EXR | SRC, ABS32DST,       E}}, {{PREFIXSTC, 0x6, 0xB, 0xA, IGNORE, DST | MEMRELAX | ABS32LIST, E}}},
-  {O (O_STC, SL), AV_H8SX, 0, "stc", {{B30 | VBR_SBR | SRC, RD32, E}}, {{0x0, 0x2, B30 | VBR_SBR | SRC, RD32, E}}},
-
-
-  EXPAND_TWOOP_B (O (O_SUB, SB), "sub.b", 0xa, 0x1, 0x8, 0x3, B01), 
-
-  {O (O_SUB, SW), AV_H8,   2, "sub.w", {{RS16,      RD16,     E}}, {{0x1, 0x9, RS16,         RD16,   E}}}, 
-  {O (O_SUB, SW), AV_H8SX, 0, "sub.w", {{IMM3NZ_NS, RD16,     E}}, {{0x1, 0xa, B30 | IMM3NZ, RD16,   E}}}, 
-  {O (O_SUB, SW), AV_H8SX, 0, "sub.w", {{IMM3NZ_NS, RDIND,    E}}, {{0x7, 0xd,      B31 | RDIND,  IGNORE,       0x1, 0xa, B30 | IMM3NZ, IGNORE, E}}}, 
-  {O (O_SUB, SW), AV_H8SX, 0, "sub.w", {{IMM3NZ_NS, ABS16DST, E}}, {{0x6, 0xb, 0x1, B31 | IGNORE, DSTABS16LIST, 0x1, 0xa, B30 | IMM3NZ, IGNORE, E}}}, 
-  {O (O_SUB, SW), AV_H8SX, 0, "sub.w", {{IMM3NZ_NS, ABS32DST, E}}, {{0x6, 0xb, 0x3, B31 | IGNORE, DSTABS32LIST, 0x1, 0xa, B30 | IMM3NZ, IGNORE, E}}}, 
-  EXPAND_TWOOP_W (O (O_SUB, SW), "sub.w", 0x1, 0x9, 0x3), 
-
-  {O (O_SUB, SL), AV_H8H,  6, "sub.l", {{RS32,      RD32,     E}}, {{0x1, 0xa, B31 | RS32,   B30 | RD32, E}}}, 
-  {O (O_SUB, SL), AV_H8SX, 0, "sub.l", {{IMM3NZ_NS, RD32,     E}}, {{0x1, 0xa, B31 | IMM3NZ, B31 | RD32, E}}}, 
-  EXPAND_TWOOP_L (O (O_SUB, SL), "sub.l", 0x3), 
-
-  {O (O_SUBS, SL), AV_H8, 2, "subs", {{KBIT, RDP, E}}, {{0x1, 0xB,KBIT, RDP, E}}},
-
-  {O (O_SUBX, SB), AV_H8,   2, "subx",   {{IMM8,      RD8,       E}}, {{0xb, RD8, IMM8LIST, E}}},
-  {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{IMM8,      RDIND,     E}}, {{0x7, 0xd, B30 | RDIND, IGNORE,                        0xb, IGNORE, IMM8LIST, E}}},
-  {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{IMM8,      RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RDPOSTDEC, B31 | IGNORE, 0xb, IGNORE, IMM8LIST, E}}},
-  {O (O_SUBX, SB), AV_H8,   2, "subx",   {{RS8,       RD8,       E}}, {{0x1, 0xe, RS8,  RD8,    E}}},
-  {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RS8,       RDIND,     E}}, {{0x7, 0xd, B30 | RDIND, IGNORE,                              0x1, 0xe, RS8, IGNORE, E}}},
-  {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RS8,       RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RDPOSTDEC, B31       | IGNORE, 0x1, 0xe, RS8, IGNORE, E}}},
-  {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RSIND,     RD8,       E}}, {{0x7, 0xc, B30 | RSIND, IGNORE,                              0x1, 0xe, IGNORE, RD8, E}}},
-  {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RSPOSTDEC, RD8,       E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RSPOSTDEC, B30 | B20 | IGNORE, 0x1, 0xe, IGNORE, RD8, E}}},
-  {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RSIND,     RDIND,     E}}, {{PREFIX_0174, 0x6, 0x8, B30 | RSIND,     0xd, 0x0, RDIND,     0x3, IGNORE, E}}},
-  {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x3, IGNORE, E}}},
-
-  {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{IMM16,     RD16,      E}}, {{PREFIX_0151,                         0x7, 0x9, 0x3, RD16,   IMM16LIST, E}}}, 
-  {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{IMM16,     RDIND,     E}}, {{0x7, 0xd, B31 | RDIND, B01 | IGNORE, 0x7, 0x9, 0x3, IGNORE, IMM16LIST, E}}}, 
-  {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{IMM16,     RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x7, 0x9, 0x3, IGNORE, IMM16LIST, E}}}, 
-  {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RS16,      RD16,      E}}, {{PREFIX_0151, 0x1, 0x9, RS16,  RD16,    E}}},
-  {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RS16,      RDIND,     E}}, {{0x7, 0xd, B31 | RDIND, B01 | IGNORE, 0x1, 0x9, RS16, IGNORE, E}}},
-  {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RS16,      RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x1, 0x9, RS16, IGNORE, E}}}, 
-  {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RSIND,     RD16,      E}}, {{0x7, 0xc, B31 | RSIND, B01 | IGNORE, 0x1, 0x9, IGNORE, RD16, E}}},
-  {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RSPOSTDEC, RD16,      E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RSPOSTDEC, B30 | B20 | B01 | IGNORE, 0x1, 0x9, IGNORE, RD16, E}}},
-  {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RSIND,     RDIND,     E}}, {{PREFIX_0154, 0x6, 0x9, B30 | RSIND,     0xd, 0x0, RDIND,     0x3, IGNORE, E}}},
-  {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x3, IGNORE, E}}},
-
-  {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{IMM32,     RD32,      E}}, {{PREFIX_0101, 0x7, 0xa, 0x3,  RD32, IMM32LIST, E}}},
-  {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{IMM32,     RDIND,     E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RDIND,     B31 | B20 | B01 | IGNORE, 0x7, 0xa, 0x3, IGNORE, IMM32LIST, E}}},
-  {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{IMM32,     RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x7, 0xa, 0x3, IGNORE, IMM32LIST, E}}},
-  {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RS32,      RD32,      E}}, {{PREFIX_0101, 0x1, 0xa, B31 | RS32,  B30 | RD32,    E}}},
-  {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RS32,      RDIND,     E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RDIND,     B31 | B20 | B01 | IGNORE, 0x1, 0xa, B31 | RS32, B30 | IGNORE, E}}},
-  {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RS32,      RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x1, 0xa, B31 | RS32, B30 | IGNORE, E}}},
-  {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RSIND,     RD32,      E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RSIND,     B30 | B20 | B01 | IGNORE, 0x1, 0xa, B31 | IGNORE, B30 | RD32, E}}},
-  {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RSPOSTDEC, RD32,      E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RSPOSTDEC, B30 | B20 | B01 | IGNORE, 0x1, 0xa, B31 | IGNORE, B30 | RD32, E}}},
-  {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RSIND,     RDIND,     E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RSIND,     0xd, 0x0, RDIND,     0x3, IGNORE, E}}},
-  {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x3, IGNORE, E}}},
-
-  {O (O_TRAPA, SB), AV_H8H, 2, "trapa", {{IMM2,  E}}, {{0x5, 0x7, IMM2, IGNORE, E}}},
-  {O (O_TAS,   SB), AV_H8H, 2, "tas",   {{RSIND, E}}, {{0x0, 0x1, 0xe, 0x0, 0x7, 0xb, B30 | RSIND, 0xc, E}}},
-
-  {O (O_XOR,   SB), AV_H8,  2, "xor.b", {{IMM8, RD8,  E}}, {{0xd, RD8, IMM8LIST, E}}}, 
-  EXPAND_TWOOP_B (O (O_XOR, SB), "xor.b", 0xd, 0x1, 0x5, 0x5, 0), 
-
-  {O (O_XOR,   SW), AV_H8,  2, "xor.w", {{RS16, RD16, E}}, {{0x6, 0x5, RS16, RD16, E}}}, 
-  EXPAND_TWOOP_W (O (O_XOR, SW), "xor.w", 0x6, 0x5, 0x5), 
-
-  {O (O_XOR,   SL), AV_H8H, 2, "xor.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xF, 0x0, 0x6, 0x5, B30 | RS32, B30 | RD32, E}}},
-  EXPAND_TWOOP_L (O (O_XOR, SL), "xor.l", 0x5), 
-
-  {O (O_XORC, SB), AV_H8,  2, "xorc", {{IMM8, CCR | DST, E}}, {{0x0, 0x5, IMM8LIST, E}}},
-  {O (O_XORC, SB), AV_H8S, 2, "xorc", {{IMM8, EXR | DST, E}}, {{0x0, 0x1, 0x4, EXR | DST, 0x0, 0x5, IMM8LIST, E}}},
-
-  {O (O_CLRMAC, SN), AV_H8S, 2, "clrmac", {{E}}, {{0x0, 0x1, 0xa, 0x0, E}}},
-  {O (O_MAC,    SW), AV_H8S, 2, "mac",    {{RSPOSTINC, RDPOSTINC, E}}, {{0x0, 0x1, 0x6, 0x0, 0x6, 0xd, B30 | RSPOSTINC, B30 | RDPOSTINC, E}}},
-  {O (O_LDMAC,  SL), AV_H8S, 2, "ldmac",  {{RS32, MD32, E}}, {{0x0, 0x3, MD32, RS32, E}}},
-  {O (O_STMAC,  SL), AV_H8S, 2, "stmac",  {{MS32, RD32, E}}, {{0x0, 0x2, MS32, RD32, E}}},
-  {O (O_LDM,    SL), AV_H8H, 6, "ldm.l",  {{RSPOSTINC, RD32, E}}, {{0x0, 0x1, DATA, 0x0, 0x6, 0xD, 0x7, B30 | RD32, E}}},
-  {O (O_STM,    SL), AV_H8H, 6, "stm.l",  {{RS32, RDPREDEC,  E}}, {{0x0, 0x1, DATA, 0x0, 0x6, 0xD, 0xF, B30 | RS32, E}}},
-  {0, 0, 0, NULL, {{0, 0, 0}}, {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}}
-};
-#else
-extern const struct h8_opcode h8_opcodes[];
-#endif
-
diff --git a/include/opcode/hppa.h b/include/opcode/hppa.h
deleted file mode 100644
index d1c0e83..0000000
--- a/include/opcode/hppa.h
+++ /dev/null
@@ -1,1090 +0,0 @@
-/* Table of opcodes for the PA-RISC.
-   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000,
-   2001, 2002, 2003, 2004, 2005
-   Free Software Foundation, Inc.
-
-   Contributed by the Center for Software Science at the
-   University of Utah (pa-gdb-bugs@cs.utah.edu).
-
-This file is part of GAS, the GNU Assembler, and GDB, the GNU disassembler.
-
-GAS/GDB 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.
-
-GAS/GDB 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 GAS or GDB; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#if !defined(__STDC__) && !defined(const)
-#define const
-#endif
-
-/*
- * Structure of an opcode table entry.
- */
-
-/* There are two kinds of delay slot nullification: normal which is
- * controled by the nullification bit, and conditional, which depends
- * on the direction of the branch and its success or failure.
- *
- * NONE is unfortunately #defined in the hiux system include files.  
- * #undef it away.
- */
-#undef NONE
-struct pa_opcode
-{
-    const char *name;
-    unsigned long int match;	/* Bits that must be set...  */
-    unsigned long int mask;	/* ... in these bits. */
-    char *args;
-    enum pa_arch arch;
-    char flags;
-};
-
-/* Enables strict matching.  Opcodes with match errors are skipped
-   when this bit is set.  */
-#define FLAG_STRICT 0x1
-
-/*
-   All hppa opcodes are 32 bits.
-
-   The match component is a mask saying which bits must match a
-   particular opcode in order for an instruction to be an instance
-   of that opcode.
-
-   The args component is a string containing one character for each operand of
-   the instruction.  Characters used as a prefix allow any second character to
-   be used without conflicting with the main operand characters.
-
-   Bit positions in this description follow HP usage of lsb = 31,
-   "at" is lsb of field.
-
-   In the args field, the following characters must match exactly:
-
-	'+,() '
-
-   In the args field, the following characters are unused:
-
-	'  "         -  /   34 6789:;    '
-	'@  C         M             [\]  '
-	'`    e g                     }  '
-
-   Here are all the characters:
-
-	' !"#$%&'()*+-,./0123456789:;<=>?'
-	'@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_'
-	'`abcdefghijklmnopqrstuvwxyz{|}~ '
-
-Kinds of operands:
-   x    integer register field at 15.
-   b    integer register field at 10.
-   t    integer register field at 31.
-   a	integer register field at 10 and 15 (for PERMH)
-   5    5 bit immediate at 15.
-   s    2 bit space specifier at 17.
-   S    3 bit space specifier at 18.
-   V    5 bit immediate value at 31
-   i    11 bit immediate value at 31
-   j    14 bit immediate value at 31
-   k    21 bit immediate value at 31
-   l    16 bit immediate value at 31 (wide mode only, unusual encoding).
-   n	nullification for branch instructions
-   N	nullification for spop and copr instructions
-   w    12 bit branch displacement
-   W    17 bit branch displacement (PC relative)
-   X    22 bit branch displacement (PC relative)
-   z    17 bit branch displacement (just a number, not an address)
-
-Also these:
-
-   .    2 bit shift amount at 25
-   *    4 bit shift amount at 25
-   p    5 bit shift count at 26 (to support the SHD instruction) encoded as
-        31-p
-   ~    6 bit shift count at 20,22:26 encoded as 63-~.
-   P    5 bit bit position at 26
-   q    6 bit bit position at 20,22:26
-   T    5 bit field length at 31 (encoded as 32-T)
-   %	6 bit field length at 23,27:31 (variable extract/deposit)
-   |	6 bit field length at 19,27:31 (fixed extract/deposit)
-   A    13 bit immediate at 18 (to support the BREAK instruction)
-   ^	like b, but describes a control register
-   !    sar (cr11) register
-   D    26 bit immediate at 31 (to support the DIAG instruction)
-   $    9 bit immediate at 28 (to support POPBTS)
-
-   v    3 bit Special Function Unit identifier at 25
-   O    20 bit Special Function Unit operation split between 15 bits at 20
-        and 5 bits at 31
-   o    15 bit Special Function Unit operation at 20
-   2    22 bit Special Function Unit operation split between 17 bits at 20
-        and 5 bits at 31
-   1    15 bit Special Function Unit operation split between 10 bits at 20
-        and 5 bits at 31
-   0    10 bit Special Function Unit operation split between 5 bits at 20
-        and 5 bits at 31
-   u    3 bit coprocessor unit identifier at 25
-   F    Source Floating Point Operand Format Completer encoded 2 bits at 20
-   I    Source Floating Point Operand Format Completer encoded 1 bits at 20
-	(for 0xe format FP instructions)
-   G    Destination Floating Point Operand Format Completer encoded 2 bits at 18
-   H    Floating Point Operand Format at 26 for 'fmpyadd' and 'fmpysub'
-        (very similar to 'F')
-
-   r	5 bit immediate value at 31 (for the break instruction)
-	(very similar to V above, except the value is unsigned instead of
-	low_sign_ext)
-   R	5 bit immediate value at 15 (for the ssm, rsm, probei instructions)
-	(same as r above, except the value is in a different location)
-   U	10 bit immediate value at 15 (for SSM, RSM on pa2.0)
-   Q	5 bit immediate value at 10 (a bit position specified in
-	the bb instruction. It's the same as r above, except the
-        value is in a different location)
-   B	5 bit immediate value at 10 (a bit position specified in
-	the bb instruction. Similar to Q, but 64 bit handling is
-	different.
-   Z    %r1 -- implicit target of addil instruction.
-   L    ,%r2 completer for new syntax branch
-   {    Source format completer for fcnv
-   _    Destination format completer for fcnv
-   h    cbit for fcmp
-   =    gfx tests for ftest
-   d    14 bit offset for single precision FP long load/store.
-   #    14 bit offset for double precision FP load long/store.
-   J    Yet another 14 bit offset for load/store with ma,mb completers.
-   K    Yet another 14 bit offset for load/store with ma,mb completers.
-   y    16 bit offset for word aligned load/store (PA2.0 wide).
-   &    16 bit offset for dword aligned load/store (PA2.0 wide).
-   <    16 bit offset for load/store with ma,mb completers (PA2.0 wide).
-   >    16 bit offset for load/store with ma,mb completers (PA2.0 wide).
-   Y    %sr0,%r31 -- implicit target of be,l instruction.
-   @	implicit immediate value of 0
-
-Completer operands all have 'c' as the prefix:
-
-   cx   indexed load and store completer.
-   cX   indexed load and store completer.  Like cx, but emits a space
-	after in disassembler.
-   cm   short load and store completer.
-   cM   short load and store completer.  Like cm, but emits a space
-        after in disassembler.
-   cq   long load and store completer (like cm, but inserted into a
-	different location in the target instruction).
-   cs   store bytes short completer.
-   cA   store bytes short completer.  Like cs, but emits a space
-        after in disassembler.
-   ce   long load/store completer for LDW/STW with a different encoding
-	than the others
-   cc   load cache control hint
-   cd   load and clear cache control hint
-   cC   store cache control hint
-   co	ordered access
-
-   cp	branch link and push completer
-   cP	branch pop completer
-   cl	branch link completer
-   cg	branch gate completer
-
-   cw	read/write completer for PROBE
-   cW	wide completer for MFCTL
-   cL	local processor completer for cache control
-   cZ   System Control Completer (to support LPA, LHA, etc.)
-
-   ci	correction completer for DCOR
-   ca	add completer
-   cy	32 bit add carry completer
-   cY	64 bit add carry completer
-   cv	signed overflow trap completer
-   ct	trap on condition completer for ADDI, SUB
-   cT	trap on condition completer for UADDCM
-   cb	32 bit borrow completer for SUB
-   cB	64 bit borrow completer for SUB
-
-   ch	left/right half completer
-   cH	signed/unsigned saturation completer
-   cS	signed/unsigned completer at 21
-   cz	zero/sign extension completer.
-   c*	permutation completer
-
-Condition operands all have '?' as the prefix:
-
-   ?f   Floating point compare conditions (encoded as 5 bits at 31)
-
-   ?a	add conditions
-   ?A	64 bit add conditions
-   ?@   add branch conditions followed by nullify
-   ?d	non-negated add branch conditions
-   ?D	negated add branch conditions
-   ?w	wide mode non-negated add branch conditions
-   ?W	wide mode negated add branch conditions
-
-   ?s   compare/subtract conditions
-   ?S	64 bit compare/subtract conditions
-   ?t   non-negated compare and branch conditions
-   ?n   32 bit compare and branch conditions followed by nullify
-   ?N   64 bit compare and branch conditions followed by nullify
-   ?Q	64 bit compare and branch conditions for CMPIB instruction
-
-   ?l   logical conditions
-   ?L	64 bit logical conditions
-
-   ?b   branch on bit conditions
-   ?B	64 bit branch on bit conditions
-
-   ?x   shift/extract/deposit conditions
-   ?X	64 bit shift/extract/deposit conditions
-   ?y   shift/extract/deposit conditions followed by nullify for conditional
-        branches
-
-   ?u   unit conditions
-   ?U   64 bit unit conditions
-
-Floating point registers all have 'f' as a prefix:
-
-   ft	target register at 31
-   fT	target register with L/R halves at 31
-   fa	operand 1 register at 10
-   fA   operand 1 register with L/R halves at 10
-   fX   Same as fA, except prints a space before register during disasm
-   fb	operand 2 register at 15
-   fB   operand 2 register with L/R halves at 15
-   fC   operand 3 register with L/R halves at 16:18,21:23
-   fe   Like fT, but encoding is different.
-   fE   Same as fe, except prints a space before register during disasm.
-   fx	target register at 15 (only for PA 2.0 long format FLDD/FSTD). 
-
-Float registers for fmpyadd and fmpysub:
-
-   fi	mult operand 1 register at 10
-   fj	mult operand 2 register at 15
-   fk	mult target register at 20
-   fl	add/sub operand register at 25
-   fm	add/sub target register at 31
-
-*/
-
-
-#if 0
-/* List of characters not to put a space after.  Note that
-   "," is included, as the "spopN" operations use literal
-   commas in their completer sections.  */
-static const char *const completer_chars = ",CcY<>?!@+&U~FfGHINnOoZMadu|/=0123%e$m}";
-#endif
-
-/* The order of the opcodes in this table is significant:
-
-   * The assembler requires that all instances of the same mnemonic be
-     consecutive.  If they aren't, the assembler will bomb at runtime.
-
-   * Immediate fields use pa_get_absolute_expression to parse the
-     string.  It will generate a "bad expression" error if passed
-     a register name.  Thus, register index variants of an opcode
-     need to precede immediate variants.
-
-   * The disassembler does not care about the order of the opcodes
-     except in cases where implicit addressing is used.
-
-   Here are the rules for ordering the opcodes of a mnemonic:
-
-   1) Opcodes with FLAG_STRICT should precede opcodes without
-      FLAG_STRICT.
-
-   2) Opcodes with FLAG_STRICT should be ordered as follows:
-      register index opcodes, short immediate opcodes, and finally
-      long immediate opcodes.  When both pa10 and pa11 variants
-      of the same opcode are available, the pa10 opcode should
-      come first for correct architectural promotion.
-
-   3) When implicit addressing is available for an opcode, the
-      implicit opcode should precede the explicit opcode.
-
-   4) Opcodes without FLAG_STRICT should be ordered as follows:
-      register index opcodes, long immediate opcodes, and finally
-      short immediate opcodes.  */
-	
-static const struct pa_opcode pa_opcodes[] =
-{
-
-/* Pseudo-instructions.  */
-
-{ "ldi",	0x34000000, 0xffe00000, "l,x", pa20w, 0},/* ldo val(r0),r */
-{ "ldi",	0x34000000, 0xffe0c000, "j,x", pa10, 0},/* ldo val(r0),r */
-
-{ "cmpib",	0xec000000, 0xfc000000, "?Qn5,b,w", pa20, FLAG_STRICT},
-{ "cmpib", 	0x84000000, 0xf4000000, "?nn5,b,w", pa10, FLAG_STRICT},
-{ "comib", 	0x84000000, 0xfc000000, "?nn5,b,w", pa10, 0}, /* comib{tf}*/
-/* This entry is for the disassembler only.  It will never be used by
-   assembler.  */
-{ "comib", 	0x8c000000, 0xfc000000, "?nn5,b,w", pa10, 0}, /* comib{tf}*/
-{ "cmpb",	0x9c000000, 0xdc000000, "?Nnx,b,w", pa20, FLAG_STRICT},
-{ "cmpb",	0x80000000, 0xf4000000, "?nnx,b,w", pa10, FLAG_STRICT},
-{ "comb",	0x80000000, 0xfc000000, "?nnx,b,w", pa10, 0}, /* comb{tf} */
-/* This entry is for the disassembler only.  It will never be used by
-   assembler.  */
-{ "comb",	0x88000000, 0xfc000000, "?nnx,b,w", pa10, 0}, /* comb{tf} */
-{ "addb",	0xa0000000, 0xf4000000, "?Wnx,b,w", pa20w, FLAG_STRICT},
-{ "addb",	0xa0000000, 0xfc000000, "?@nx,b,w", pa10, 0}, /* addb{tf} */
-/* This entry is for the disassembler only.  It will never be used by
-   assembler.  */
-{ "addb",	0xa8000000, 0xfc000000, "?@nx,b,w", pa10, 0},
-{ "addib",	0xa4000000, 0xf4000000, "?Wn5,b,w", pa20w, FLAG_STRICT},
-{ "addib",	0xa4000000, 0xfc000000, "?@n5,b,w", pa10, 0}, /* addib{tf}*/
-/* This entry is for the disassembler only.  It will never be used by
-   assembler.  */
-{ "addib",	0xac000000, 0xfc000000, "?@n5,b,w", pa10, 0}, /* addib{tf}*/
-{ "nop",	0x08000240, 0xffffffff, "", pa10, 0},      /* or 0,0,0 */
-{ "copy",	0x08000240, 0xffe0ffe0, "x,t", pa10, 0},   /* or r,0,t */
-{ "mtsar",	0x01601840, 0xffe0ffff, "x", pa10, 0}, /* mtctl r,cr11 */
-
-/* Loads and Stores for integer registers.  */
-
-{ "ldd",	0x0c0000c0, 0xfc00d3c0, "cxccx(b),t", pa20, FLAG_STRICT},
-{ "ldd",	0x0c0000c0, 0xfc0013c0, "cxccx(s,b),t", pa20, FLAG_STRICT},
-{ "ldd",	0x0c0010e0, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT},
-{ "ldd",	0x0c0010e0, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
-{ "ldd",	0x0c0010c0, 0xfc00d3c0, "cmcc5(b),t", pa20, FLAG_STRICT},
-{ "ldd",	0x0c0010c0, 0xfc0013c0, "cmcc5(s,b),t", pa20, FLAG_STRICT},
-{ "ldd",	0x50000000, 0xfc000002, "cq&(b),x", pa20w, FLAG_STRICT},
-{ "ldd",	0x50000000, 0xfc00c002, "cq#(b),x", pa20, FLAG_STRICT},
-{ "ldd",	0x50000000, 0xfc000002, "cq#(s,b),x", pa20, FLAG_STRICT},
-{ "ldw",	0x0c000080, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT},
-{ "ldw",	0x0c000080, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT},
-{ "ldw",	0x0c000080, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT},
-{ "ldw",	0x0c000080, 0xfc0013c0, "cxccx(s,b),t", pa11, FLAG_STRICT},
-{ "ldw",	0x0c0010a0, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT},
-{ "ldw",	0x0c0010a0, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
-{ "ldw",	0x0c001080, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT},
-{ "ldw",	0x0c001080, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT},
-{ "ldw",	0x0c001080, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT},
-{ "ldw",	0x0c001080, 0xfc0013c0, "cmcc5(s,b),t", pa11, FLAG_STRICT},
-{ "ldw",	0x4c000000, 0xfc000000, "ce<(b),x", pa20w, FLAG_STRICT},
-{ "ldw",	0x5c000004, 0xfc000006, "ce>(b),x", pa20w, FLAG_STRICT},
-{ "ldw",	0x48000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT},
-{ "ldw",	0x5c000004, 0xfc00c006, "ceK(b),x", pa20, FLAG_STRICT},
-{ "ldw",	0x5c000004, 0xfc000006, "ceK(s,b),x", pa20, FLAG_STRICT},
-{ "ldw",	0x4c000000, 0xfc00c000, "ceJ(b),x", pa10, FLAG_STRICT},
-{ "ldw",	0x4c000000, 0xfc000000, "ceJ(s,b),x", pa10, FLAG_STRICT},
-{ "ldw",	0x48000000, 0xfc00c000, "j(b),x", pa10, 0},
-{ "ldw",	0x48000000, 0xfc000000, "j(s,b),x", pa10, 0},
-{ "ldh",	0x0c000040, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT},
-{ "ldh",	0x0c000040, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT},
-{ "ldh",	0x0c000040, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT},
-{ "ldh",	0x0c000040, 0xfc0013c0, "cxccx(s,b),t", pa11, FLAG_STRICT},
-{ "ldh",	0x0c001060, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT},
-{ "ldh",	0x0c001060, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
-{ "ldh",	0x0c001040, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT},
-{ "ldh",	0x0c001040, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT},
-{ "ldh",	0x0c001040, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT},
-{ "ldh",	0x0c001040, 0xfc0013c0, "cmcc5(s,b),t", pa11, FLAG_STRICT},
-{ "ldh",	0x44000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT},
-{ "ldh",	0x44000000, 0xfc00c000, "j(b),x", pa10, 0},
-{ "ldh",	0x44000000, 0xfc000000, "j(s,b),x", pa10, 0},
-{ "ldb",	0x0c000000, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT},
-{ "ldb",	0x0c000000, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT},
-{ "ldb",	0x0c000000, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT},
-{ "ldb",	0x0c000000, 0xfc0013c0, "cxccx(s,b),t", pa11, FLAG_STRICT},
-{ "ldb",	0x0c001020, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT},
-{ "ldb",	0x0c001020, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
-{ "ldb",	0x0c001000, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT},
-{ "ldb",	0x0c001000, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT},
-{ "ldb",	0x0c001000, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT},
-{ "ldb",	0x0c001000, 0xfc0013c0, "cmcc5(s,b),t", pa11, FLAG_STRICT},
-{ "ldb",	0x40000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT},
-{ "ldb",	0x40000000, 0xfc00c000, "j(b),x", pa10, 0},
-{ "ldb",	0x40000000, 0xfc000000, "j(s,b),x", pa10, 0},
-{ "std",	0x0c0012e0, 0xfc00f3ff, "cocCx,@(b)", pa20, FLAG_STRICT},
-{ "std",	0x0c0012e0, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
-{ "std",	0x0c0012c0, 0xfc00d3c0, "cmcCx,V(b)", pa20, FLAG_STRICT},
-{ "std",	0x0c0012c0, 0xfc0013c0, "cmcCx,V(s,b)", pa20, FLAG_STRICT},
-{ "std",	0x70000000, 0xfc000002, "cqx,&(b)", pa20w, FLAG_STRICT},
-{ "std",	0x70000000, 0xfc00c002, "cqx,#(b)", pa20, FLAG_STRICT},
-{ "std",	0x70000000, 0xfc000002, "cqx,#(s,b)", pa20, FLAG_STRICT},
-{ "stw",	0x0c0012a0, 0xfc00f3ff, "cocCx,@(b)", pa20, FLAG_STRICT},
-{ "stw",	0x0c0012a0, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
-{ "stw",	0x0c001280, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT},
-{ "stw",	0x0c001280, 0xfc001fc0, "cMx,V(s,b)", pa10, FLAG_STRICT},
-{ "stw",	0x0c001280, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT},
-{ "stw",	0x0c001280, 0xfc0013c0, "cmcCx,V(s,b)", pa11, FLAG_STRICT},
-{ "stw",	0x6c000000, 0xfc000000, "cex,<(b)", pa20w, FLAG_STRICT},
-{ "stw",	0x7c000004, 0xfc000006, "cex,>(b)", pa20w, FLAG_STRICT},
-{ "stw",	0x68000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT},
-{ "stw",	0x7c000004, 0xfc00c006, "cex,K(b)", pa20, FLAG_STRICT},
-{ "stw",	0x7c000004, 0xfc000006, "cex,K(s,b)", pa20, FLAG_STRICT},
-{ "stw",	0x6c000000, 0xfc00c000, "cex,J(b)", pa10, FLAG_STRICT},
-{ "stw",	0x6c000000, 0xfc000000, "cex,J(s,b)", pa10, FLAG_STRICT},
-{ "stw",	0x68000000, 0xfc00c000, "x,j(b)", pa10, 0},
-{ "stw",	0x68000000, 0xfc000000, "x,j(s,b)", pa10, 0},
-{ "sth",	0x0c001260, 0xfc00f3ff, "cocCx,@(b)", pa20, FLAG_STRICT},
-{ "sth",	0x0c001260, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
-{ "sth",	0x0c001240, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT},
-{ "sth",	0x0c001240, 0xfc001fc0, "cMx,V(s,b)", pa10, FLAG_STRICT},
-{ "sth",	0x0c001240, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT},
-{ "sth",	0x0c001240, 0xfc0013c0, "cmcCx,V(s,b)", pa11, FLAG_STRICT},
-{ "sth",	0x64000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT},
-{ "sth",	0x64000000, 0xfc00c000, "x,j(b)", pa10, 0},
-{ "sth",	0x64000000, 0xfc000000, "x,j(s,b)", pa10, 0},
-{ "stb",	0x0c001220, 0xfc00f3ff, "cocCx,@(b)", pa20, FLAG_STRICT},
-{ "stb",	0x0c001220, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
-{ "stb",	0x0c001200, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT},
-{ "stb",	0x0c001200, 0xfc001fc0, "cMx,V(s,b)", pa10, FLAG_STRICT},
-{ "stb",	0x0c001200, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT},
-{ "stb",	0x0c001200, 0xfc0013c0, "cmcCx,V(s,b)", pa11, FLAG_STRICT},
-{ "stb",	0x60000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT},
-{ "stb",	0x60000000, 0xfc00c000, "x,j(b)", pa10, 0},
-{ "stb",	0x60000000, 0xfc000000, "x,j(s,b)", pa10, 0},
-{ "ldwm",	0x4c000000, 0xfc00c000, "j(b),x", pa10, 0},
-{ "ldwm",	0x4c000000, 0xfc000000, "j(s,b),x", pa10, 0},
-{ "stwm",	0x6c000000, 0xfc00c000, "x,j(b)", pa10, 0},
-{ "stwm",	0x6c000000, 0xfc000000, "x,j(s,b)", pa10, 0},
-{ "ldwx",	0x0c000080, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT},
-{ "ldwx",	0x0c000080, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT},
-{ "ldwx",	0x0c000080, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT},
-{ "ldwx",	0x0c000080, 0xfc0013c0, "cxccx(s,b),t", pa11, FLAG_STRICT},
-{ "ldwx",	0x0c000080, 0xfc00dfc0, "cXx(b),t", pa10, 0},
-{ "ldwx",	0x0c000080, 0xfc001fc0, "cXx(s,b),t", pa10, 0},
-{ "ldhx",	0x0c000040, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT},
-{ "ldhx",	0x0c000040, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT},
-{ "ldhx",	0x0c000040, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT},
-{ "ldhx",	0x0c000040, 0xfc0013c0, "cxccx(s,b),t", pa11, FLAG_STRICT},
-{ "ldhx",	0x0c000040, 0xfc00dfc0, "cXx(b),t", pa10, 0},
-{ "ldhx",	0x0c000040, 0xfc001fc0, "cXx(s,b),t", pa10, 0},
-{ "ldbx",	0x0c000000, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT},
-{ "ldbx",	0x0c000000, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT},
-{ "ldbx",	0x0c000000, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT},
-{ "ldbx",	0x0c000000, 0xfc0013c0, "cxccx(s,b),t", pa11, FLAG_STRICT},
-{ "ldbx",	0x0c000000, 0xfc00dfc0, "cXx(b),t", pa10, 0},
-{ "ldbx",	0x0c000000, 0xfc001fc0, "cXx(s,b),t", pa10, 0},
-{ "ldwa",	0x0c000180, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT},
-{ "ldwa",	0x0c000180, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT},
-{ "ldwa",	0x0c0011a0, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT},
-{ "ldwa",	0x0c001180, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT},
-{ "ldwa",	0x0c001180, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT},
-{ "ldcw",	0x0c0001c0, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT},
-{ "ldcw",	0x0c0001c0, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT},
-{ "ldcw",	0x0c0001c0, 0xfc00d3c0, "cxcdx(b),t", pa11, FLAG_STRICT},
-{ "ldcw",	0x0c0001c0, 0xfc0013c0, "cxcdx(s,b),t", pa11, FLAG_STRICT},
-{ "ldcw",	0x0c0011c0, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT},
-{ "ldcw",	0x0c0011c0, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT},
-{ "ldcw",	0x0c0011c0, 0xfc00d3c0, "cmcd5(b),t", pa11, FLAG_STRICT},
-{ "ldcw",	0x0c0011c0, 0xfc0013c0, "cmcd5(s,b),t", pa11, FLAG_STRICT},
-{ "stwa",	0x0c0013a0, 0xfc00d3ff, "cocCx,@(b)", pa20, FLAG_STRICT},
-{ "stwa",	0x0c001380, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT},
-{ "stwa",	0x0c001380, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT},
-{ "stby",	0x0c001300, 0xfc00dfc0, "cAx,V(b)", pa10, FLAG_STRICT},
-{ "stby",	0x0c001300, 0xfc001fc0, "cAx,V(s,b)", pa10, FLAG_STRICT},
-{ "stby",	0x0c001300, 0xfc00d3c0, "cscCx,V(b)", pa11, FLAG_STRICT},
-{ "stby",	0x0c001300, 0xfc0013c0, "cscCx,V(s,b)", pa11, FLAG_STRICT},
-{ "ldda",	0x0c000100, 0xfc00d3c0, "cxccx(b),t", pa20, FLAG_STRICT},
-{ "ldda",	0x0c001120, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT},
-{ "ldda",	0x0c001100, 0xfc00d3c0, "cmcc5(b),t", pa20, FLAG_STRICT},
-{ "ldcd",	0x0c000140, 0xfc00d3c0, "cxcdx(b),t", pa20, FLAG_STRICT},
-{ "ldcd",	0x0c000140, 0xfc0013c0, "cxcdx(s,b),t", pa20, FLAG_STRICT},
-{ "ldcd",	0x0c001140, 0xfc00d3c0, "cmcd5(b),t", pa20, FLAG_STRICT},
-{ "ldcd",	0x0c001140, 0xfc0013c0, "cmcd5(s,b),t", pa20, FLAG_STRICT},
-{ "stda",	0x0c0013e0, 0xfc00f3ff, "cocCx,@(b)", pa20, FLAG_STRICT},
-{ "stda",	0x0c0013c0, 0xfc00d3c0, "cmcCx,V(b)", pa20, FLAG_STRICT},
-{ "ldwax",	0x0c000180, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT},
-{ "ldwax",	0x0c000180, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT},
-{ "ldwax",	0x0c000180, 0xfc00dfc0, "cXx(b),t", pa10, 0},
-{ "ldcwx",	0x0c0001c0, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT},
-{ "ldcwx",	0x0c0001c0, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT},
-{ "ldcwx",	0x0c0001c0, 0xfc00d3c0, "cxcdx(b),t", pa11, FLAG_STRICT},
-{ "ldcwx",	0x0c0001c0, 0xfc0013c0, "cxcdx(s,b),t", pa11, FLAG_STRICT},
-{ "ldcwx",	0x0c0001c0, 0xfc00dfc0, "cXx(b),t", pa10, 0},
-{ "ldcwx",	0x0c0001c0, 0xfc001fc0, "cXx(s,b),t", pa10, 0},
-{ "ldws",	0x0c001080, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT},
-{ "ldws",	0x0c001080, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT},
-{ "ldws",	0x0c001080, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT},
-{ "ldws",	0x0c001080, 0xfc0013c0, "cmcc5(s,b),t", pa11, FLAG_STRICT},
-{ "ldws",	0x0c001080, 0xfc00dfc0, "cM5(b),t", pa10, 0},
-{ "ldws",	0x0c001080, 0xfc001fc0, "cM5(s,b),t", pa10, 0},
-{ "ldhs",	0x0c001040, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT},
-{ "ldhs",	0x0c001040, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT},
-{ "ldhs",	0x0c001040, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT},
-{ "ldhs",	0x0c001040, 0xfc0013c0, "cmcc5(s,b),t", pa11, FLAG_STRICT},
-{ "ldhs",	0x0c001040, 0xfc00dfc0, "cM5(b),t", pa10, 0},
-{ "ldhs",	0x0c001040, 0xfc001fc0, "cM5(s,b),t", pa10, 0},
-{ "ldbs",	0x0c001000, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT},
-{ "ldbs",	0x0c001000, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT},
-{ "ldbs",	0x0c001000, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT},
-{ "ldbs",	0x0c001000, 0xfc0013c0, "cmcc5(s,b),t", pa11, FLAG_STRICT},
-{ "ldbs",	0x0c001000, 0xfc00dfc0, "cM5(b),t", pa10, 0},
-{ "ldbs",	0x0c001000, 0xfc001fc0, "cM5(s,b),t", pa10, 0},
-{ "ldwas",	0x0c001180, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT},
-{ "ldwas",	0x0c001180, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT},
-{ "ldwas",	0x0c001180, 0xfc00dfc0, "cM5(b),t", pa10, 0},
-{ "ldcws",	0x0c0011c0, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT},
-{ "ldcws",	0x0c0011c0, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT},
-{ "ldcws",	0x0c0011c0, 0xfc00d3c0, "cmcd5(b),t", pa11, FLAG_STRICT},
-{ "ldcws",	0x0c0011c0, 0xfc0013c0, "cmcd5(s,b),t", pa11, FLAG_STRICT},
-{ "ldcws",	0x0c0011c0, 0xfc00dfc0, "cM5(b),t", pa10, 0},
-{ "ldcws",	0x0c0011c0, 0xfc001fc0, "cM5(s,b),t", pa10, 0},
-{ "stws",	0x0c001280, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT},
-{ "stws",	0x0c001280, 0xfc001fc0, "cMx,V(s,b)", pa10, FLAG_STRICT},
-{ "stws",	0x0c001280, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT},
-{ "stws",	0x0c001280, 0xfc0013c0, "cmcCx,V(s,b)", pa11, FLAG_STRICT},
-{ "stws",	0x0c001280, 0xfc00dfc0, "cMx,V(b)", pa10, 0},
-{ "stws",	0x0c001280, 0xfc001fc0, "cMx,V(s,b)", pa10, 0},
-{ "sths",	0x0c001240, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT},
-{ "sths",	0x0c001240, 0xfc001fc0, "cMx,V(s,b)", pa10, FLAG_STRICT},
-{ "sths",	0x0c001240, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT},
-{ "sths",	0x0c001240, 0xfc0013c0, "cmcCx,V(s,b)", pa11, FLAG_STRICT},
-{ "sths",	0x0c001240, 0xfc00dfc0, "cMx,V(b)", pa10, 0},
-{ "sths",	0x0c001240, 0xfc001fc0, "cMx,V(s,b)", pa10, 0},
-{ "stbs",	0x0c001200, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT},
-{ "stbs",	0x0c001200, 0xfc001fc0, "cMx,V(s,b)", pa10, FLAG_STRICT},
-{ "stbs",	0x0c001200, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT},
-{ "stbs",	0x0c001200, 0xfc0013c0, "cmcCx,V(s,b)", pa11, FLAG_STRICT},
-{ "stbs",	0x0c001200, 0xfc00dfc0, "cMx,V(b)", pa10, 0},
-{ "stbs",	0x0c001200, 0xfc001fc0, "cMx,V(s,b)", pa10, 0},
-{ "stwas",	0x0c001380, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT},
-{ "stwas",	0x0c001380, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT},
-{ "stwas",	0x0c001380, 0xfc00dfc0, "cMx,V(b)", pa10, 0},
-{ "stdby",	0x0c001340, 0xfc00d3c0, "cscCx,V(b)", pa20, FLAG_STRICT},
-{ "stdby",	0x0c001340, 0xfc0013c0, "cscCx,V(s,b)", pa20, FLAG_STRICT},
-{ "stbys",	0x0c001300, 0xfc00dfc0, "cAx,V(b)", pa10, FLAG_STRICT},
-{ "stbys",	0x0c001300, 0xfc001fc0, "cAx,V(s,b)", pa10, FLAG_STRICT},
-{ "stbys",	0x0c001300, 0xfc00d3c0, "cscCx,V(b)", pa11, FLAG_STRICT},
-{ "stbys",	0x0c001300, 0xfc0013c0, "cscCx,V(s,b)", pa11, FLAG_STRICT},
-{ "stbys",	0x0c001300, 0xfc00dfc0, "cAx,V(b)", pa10, 0},
-{ "stbys",	0x0c001300, 0xfc001fc0, "cAx,V(s,b)", pa10, 0},
-
-/* Immediate instructions.  */
-{ "ldo",	0x34000000, 0xfc000000, "l(b),x", pa20w, 0},
-{ "ldo",	0x34000000, 0xfc00c000, "j(b),x", pa10, 0},
-{ "ldil",	0x20000000, 0xfc000000, "k,b", pa10, 0},
-{ "addil",	0x28000000, 0xfc000000, "k,b,Z", pa10, 0},
-{ "addil",	0x28000000, 0xfc000000, "k,b", pa10, 0},
-
-/* Branching instructions.  */
-{ "b",		0xe8008000, 0xfc00e000, "cpnXL", pa20, FLAG_STRICT},
-{ "b",		0xe800a000, 0xfc00e000, "clnXL", pa20, FLAG_STRICT},
-{ "b",		0xe8000000, 0xfc00e000, "clnW,b", pa10, FLAG_STRICT},
-{ "b",		0xe8002000, 0xfc00e000, "cgnW,b", pa10, FLAG_STRICT},
-{ "b",		0xe8000000, 0xffe0e000, "nW", pa10, 0},  /* b,l foo,r0 */
-{ "bl",		0xe8000000, 0xfc00e000, "nW,b", pa10, 0},
-{ "gate",	0xe8002000, 0xfc00e000, "nW,b", pa10, 0},
-{ "blr",	0xe8004000, 0xfc00e001, "nx,b", pa10, 0},
-{ "bv",		0xe800c000, 0xfc00fffd, "nx(b)", pa10, 0},
-{ "bv",		0xe800c000, 0xfc00fffd, "n(b)", pa10, 0},
-{ "bve",	0xe800f001, 0xfc1ffffd, "cpn(b)L", pa20, FLAG_STRICT},
-{ "bve",	0xe800f000, 0xfc1ffffd, "cln(b)L", pa20, FLAG_STRICT},
-{ "bve",	0xe800d001, 0xfc1ffffd, "cPn(b)", pa20, FLAG_STRICT},
-{ "bve",	0xe800d000, 0xfc1ffffd, "n(b)", pa20, FLAG_STRICT},
-{ "be",		0xe4000000, 0xfc000000, "clnz(S,b),Y", pa10, FLAG_STRICT},
-{ "be",		0xe4000000, 0xfc000000, "clnz(b),Y", pa10, FLAG_STRICT},
-{ "be",		0xe0000000, 0xfc000000, "nz(S,b)", pa10, 0},
-{ "be",		0xe0000000, 0xfc000000, "nz(b)", pa10, 0},
-{ "ble",	0xe4000000, 0xfc000000, "nz(S,b)", pa10, 0},
-{ "movb",	0xc8000000, 0xfc000000, "?ynx,b,w", pa10, 0},
-{ "movib",	0xcc000000, 0xfc000000, "?yn5,b,w", pa10, 0},
-{ "combt",	0x80000000, 0xfc000000, "?tnx,b,w", pa10, 0},
-{ "combf",	0x88000000, 0xfc000000, "?tnx,b,w", pa10, 0},
-{ "comibt",	0x84000000, 0xfc000000, "?tn5,b,w", pa10, 0},
-{ "comibf",	0x8c000000, 0xfc000000, "?tn5,b,w", pa10, 0},
-{ "addbt",	0xa0000000, 0xfc000000, "?dnx,b,w", pa10, 0},
-{ "addbf",	0xa8000000, 0xfc000000, "?dnx,b,w", pa10, 0},
-{ "addibt",	0xa4000000, 0xfc000000, "?dn5,b,w", pa10, 0},
-{ "addibf",	0xac000000, 0xfc000000, "?dn5,b,w", pa10, 0},
-{ "bb",		0xc0004000, 0xffe06000, "?bnx,!,w", pa10, FLAG_STRICT}, 
-{ "bb",		0xc0006000, 0xffe06000, "?Bnx,!,w", pa20, FLAG_STRICT}, 
-{ "bb",		0xc4004000, 0xfc006000, "?bnx,Q,w", pa10, FLAG_STRICT}, 
-{ "bb",		0xc4004000, 0xfc004000, "?Bnx,B,w", pa20, FLAG_STRICT}, 
-{ "bvb",	0xc0004000, 0xffe04000, "?bnx,w", pa10, 0},
-{ "clrbts",	0xe8004005, 0xffffffff, "", pa20, FLAG_STRICT},
-{ "popbts",	0xe8004005, 0xfffff007, "$", pa20, FLAG_STRICT},
-{ "pushnom",	0xe8004001, 0xffffffff, "", pa20, FLAG_STRICT},
-{ "pushbts",	0xe8004001, 0xffe0ffff, "x", pa20, FLAG_STRICT},
-
-/* Computation Instructions.  */
-
-{ "cmpclr",	0x080008a0, 0xfc000fe0, "?Sx,b,t", pa20, FLAG_STRICT},
-{ "cmpclr",	0x08000880, 0xfc000fe0, "?sx,b,t", pa10, FLAG_STRICT},
-{ "comclr",	0x08000880, 0xfc000fe0, "?sx,b,t", pa10, 0},
-{ "or",		0x08000260, 0xfc000fe0, "?Lx,b,t", pa20, FLAG_STRICT},
-{ "or",		0x08000240, 0xfc000fe0, "?lx,b,t", pa10, 0},
-{ "xor",	0x080002a0, 0xfc000fe0, "?Lx,b,t", pa20, FLAG_STRICT},
-{ "xor",	0x08000280, 0xfc000fe0, "?lx,b,t", pa10, 0},
-{ "and",	0x08000220, 0xfc000fe0, "?Lx,b,t", pa20, FLAG_STRICT},
-{ "and",	0x08000200, 0xfc000fe0, "?lx,b,t", pa10, 0},
-{ "andcm",	0x08000020, 0xfc000fe0, "?Lx,b,t", pa20, FLAG_STRICT},
-{ "andcm",	0x08000000, 0xfc000fe0, "?lx,b,t", pa10, 0},
-{ "uxor",	0x080003a0, 0xfc000fe0, "?Ux,b,t", pa20, FLAG_STRICT},
-{ "uxor",	0x08000380, 0xfc000fe0, "?ux,b,t", pa10, 0},
-{ "uaddcm",	0x080009a0, 0xfc000fa0, "cT?Ux,b,t", pa20, FLAG_STRICT},
-{ "uaddcm",	0x08000980, 0xfc000fa0, "cT?ux,b,t", pa10, FLAG_STRICT},
-{ "uaddcm",	0x08000980, 0xfc000fe0, "?ux,b,t", pa10, 0},
-{ "uaddcmt",	0x080009c0, 0xfc000fe0, "?ux,b,t", pa10, 0},
-{ "dcor",	0x08000ba0, 0xfc1f0fa0, "ci?Ub,t", pa20, FLAG_STRICT},
-{ "dcor",	0x08000b80, 0xfc1f0fa0, "ci?ub,t", pa10, FLAG_STRICT},
-{ "dcor",	0x08000b80, 0xfc1f0fe0, "?ub,t",   pa10, 0},
-{ "idcor",	0x08000bc0, 0xfc1f0fe0, "?ub,t",   pa10, 0},
-{ "addi",	0xb0000000, 0xfc000000, "ct?ai,b,x", pa10, FLAG_STRICT},
-{ "addi",	0xb4000000, 0xfc000000, "cv?ai,b,x", pa10, FLAG_STRICT},
-{ "addi",	0xb4000000, 0xfc000800, "?ai,b,x", pa10, 0},
-{ "addio",	0xb4000800, 0xfc000800, "?ai,b,x", pa10, 0},
-{ "addit",	0xb0000000, 0xfc000800, "?ai,b,x", pa10, 0},
-{ "addito",	0xb0000800, 0xfc000800, "?ai,b,x", pa10, 0},
-{ "add",	0x08000720, 0xfc0007e0, "cY?Ax,b,t", pa20, FLAG_STRICT},
-{ "add",	0x08000700, 0xfc0007e0, "cy?ax,b,t", pa10, FLAG_STRICT},
-{ "add",	0x08000220, 0xfc0003e0, "ca?Ax,b,t", pa20, FLAG_STRICT},
-{ "add",	0x08000200, 0xfc0003e0, "ca?ax,b,t", pa10, FLAG_STRICT},
-{ "add",	0x08000600, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "addl",	0x08000a00, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "addo",	0x08000e00, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "addc",	0x08000700, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "addco",	0x08000f00, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "sub",	0x080004e0, 0xfc0007e0, "ct?Sx,b,t", pa20, FLAG_STRICT},
-{ "sub",	0x080004c0, 0xfc0007e0, "ct?sx,b,t", pa10, FLAG_STRICT},
-{ "sub",	0x08000520, 0xfc0007e0, "cB?Sx,b,t", pa20, FLAG_STRICT},
-{ "sub",	0x08000500, 0xfc0007e0, "cb?sx,b,t", pa10, FLAG_STRICT},
-{ "sub",	0x08000420, 0xfc0007e0, "cv?Sx,b,t", pa20, FLAG_STRICT},
-{ "sub",	0x08000400, 0xfc0007e0, "cv?sx,b,t", pa10, FLAG_STRICT},
-{ "sub",	0x08000400, 0xfc000fe0, "?sx,b,t", pa10, 0},
-{ "subo",	0x08000c00, 0xfc000fe0, "?sx,b,t", pa10, 0},
-{ "subb",	0x08000500, 0xfc000fe0, "?sx,b,t", pa10, 0},
-{ "subbo",	0x08000d00, 0xfc000fe0, "?sx,b,t", pa10, 0},
-{ "subt",	0x080004c0, 0xfc000fe0, "?sx,b,t", pa10, 0},
-{ "subto",	0x08000cc0, 0xfc000fe0, "?sx,b,t", pa10, 0},
-{ "ds",		0x08000440, 0xfc000fe0, "?sx,b,t", pa10, 0},
-{ "subi",	0x94000000, 0xfc000000, "cv?si,b,x", pa10, FLAG_STRICT},
-{ "subi",	0x94000000, 0xfc000800, "?si,b,x", pa10, 0},
-{ "subio",	0x94000800, 0xfc000800, "?si,b,x", pa10, 0},
-{ "cmpiclr",	0x90000800, 0xfc000800, "?Si,b,x", pa20, FLAG_STRICT},
-{ "cmpiclr",	0x90000000, 0xfc000800, "?si,b,x", pa10, FLAG_STRICT},
-{ "comiclr",	0x90000000, 0xfc000800, "?si,b,x", pa10, 0},
-{ "shladd",	0x08000220, 0xfc000320, "ca?Ax,.,b,t", pa20, FLAG_STRICT},
-{ "shladd",	0x08000200, 0xfc000320, "ca?ax,.,b,t", pa10, FLAG_STRICT},
-{ "sh1add",	0x08000640, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "sh1addl",	0x08000a40, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "sh1addo",	0x08000e40, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "sh2add",	0x08000680, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "sh2addl",	0x08000a80, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "sh2addo",	0x08000e80, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "sh3add",	0x080006c0, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "sh3addl",	0x08000ac0, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "sh3addo",	0x08000ec0, 0xfc000fe0, "?ax,b,t", pa10, 0},
-
-/* Subword Operation Instructions.  */
-
-{ "hadd",	0x08000300, 0xfc00ff20, "cHx,b,t", pa20, FLAG_STRICT},
-{ "havg",	0x080002c0, 0xfc00ffe0, "x,b,t", pa20, FLAG_STRICT},
-{ "hshl",	0xf8008800, 0xffe0fc20, "x,*,t", pa20, FLAG_STRICT},
-{ "hshladd",	0x08000700, 0xfc00ff20, "x,.,b,t", pa20, FLAG_STRICT},
-{ "hshr",	0xf800c800, 0xfc1ff820, "cSb,*,t", pa20, FLAG_STRICT},
-{ "hshradd",	0x08000500, 0xfc00ff20, "x,.,b,t", pa20, FLAG_STRICT},
-{ "hsub",	0x08000100, 0xfc00ff20, "cHx,b,t", pa20, FLAG_STRICT},
-{ "mixh",	0xf8008400, 0xfc009fe0, "chx,b,t", pa20, FLAG_STRICT},
-{ "mixw",	0xf8008000, 0xfc009fe0, "chx,b,t", pa20, FLAG_STRICT},
-{ "permh",	0xf8000000, 0xfc009020, "c*a,t", pa20, FLAG_STRICT},
-
-
-/* Extract and Deposit Instructions.  */
-
-{ "shrpd",	0xd0000200, 0xfc001fe0, "?Xx,b,!,t", pa20, FLAG_STRICT},
-{ "shrpd",	0xd0000400, 0xfc001400, "?Xx,b,~,t", pa20, FLAG_STRICT},
-{ "shrpw",	0xd0000000, 0xfc001fe0, "?xx,b,!,t", pa10, FLAG_STRICT},
-{ "shrpw",	0xd0000800, 0xfc001c00, "?xx,b,p,t", pa10, FLAG_STRICT},
-{ "vshd",	0xd0000000, 0xfc001fe0, "?xx,b,t", pa10, 0},
-{ "shd",	0xd0000800, 0xfc001c00, "?xx,b,p,t", pa10, 0},
-{ "extrd",	0xd0001200, 0xfc001ae0, "cS?Xb,!,%,x", pa20, FLAG_STRICT},
-{ "extrd",	0xd8000000, 0xfc000000, "cS?Xb,q,|,x", pa20, FLAG_STRICT},
-{ "extrw",	0xd0001000, 0xfc001be0, "cS?xb,!,T,x", pa10, FLAG_STRICT},
-{ "extrw",	0xd0001800, 0xfc001800, "cS?xb,P,T,x", pa10, FLAG_STRICT},
-{ "vextru",	0xd0001000, 0xfc001fe0, "?xb,T,x", pa10, 0},
-{ "vextrs",	0xd0001400, 0xfc001fe0, "?xb,T,x", pa10, 0},
-{ "extru",	0xd0001800, 0xfc001c00, "?xb,P,T,x", pa10, 0},
-{ "extrs",	0xd0001c00, 0xfc001c00, "?xb,P,T,x", pa10, 0},
-{ "depd",	0xd4000200, 0xfc001ae0, "cz?Xx,!,%,b", pa20, FLAG_STRICT},
-{ "depd",	0xf0000000, 0xfc000000, "cz?Xx,~,|,b", pa20, FLAG_STRICT},
-{ "depdi",	0xd4001200, 0xfc001ae0, "cz?X5,!,%,b", pa20, FLAG_STRICT},
-{ "depdi",	0xf4000000, 0xfc000000, "cz?X5,~,|,b", pa20, FLAG_STRICT},
-{ "depw",	0xd4000000, 0xfc001be0, "cz?xx,!,T,b", pa10, FLAG_STRICT},
-{ "depw",	0xd4000800, 0xfc001800, "cz?xx,p,T,b", pa10, FLAG_STRICT},
-{ "depwi",	0xd4001000, 0xfc001be0, "cz?x5,!,T,b", pa10, FLAG_STRICT},
-{ "depwi",	0xd4001800, 0xfc001800, "cz?x5,p,T,b", pa10, FLAG_STRICT},
-{ "zvdep",	0xd4000000, 0xfc001fe0, "?xx,T,b", pa10, 0},
-{ "vdep",	0xd4000400, 0xfc001fe0, "?xx,T,b", pa10, 0},
-{ "zdep",	0xd4000800, 0xfc001c00, "?xx,p,T,b", pa10, 0},
-{ "dep",	0xd4000c00, 0xfc001c00, "?xx,p,T,b", pa10, 0},
-{ "zvdepi",	0xd4001000, 0xfc001fe0, "?x5,T,b", pa10, 0},
-{ "vdepi",	0xd4001400, 0xfc001fe0, "?x5,T,b", pa10, 0},
-{ "zdepi",	0xd4001800, 0xfc001c00, "?x5,p,T,b", pa10, 0},
-{ "depi",	0xd4001c00, 0xfc001c00, "?x5,p,T,b", pa10, 0},
-
-/* System Control Instructions.  */
-
-{ "break",	0x00000000, 0xfc001fe0, "r,A", pa10, 0},
-{ "rfi",	0x00000c00, 0xffffff1f, "cr", pa10, FLAG_STRICT},
-{ "rfi",	0x00000c00, 0xffffffff, "", pa10, 0},
-{ "rfir",	0x00000ca0, 0xffffffff, "", pa11, 0},
-{ "ssm",	0x00000d60, 0xfc00ffe0, "U,t", pa20, FLAG_STRICT},
-{ "ssm",	0x00000d60, 0xffe0ffe0, "R,t", pa10, 0},
-{ "rsm",	0x00000e60, 0xfc00ffe0, "U,t", pa20, FLAG_STRICT},
-{ "rsm",	0x00000e60, 0xffe0ffe0, "R,t", pa10, 0},
-{ "mtsm",	0x00001860, 0xffe0ffff, "x", pa10, 0},
-{ "ldsid",	0x000010a0, 0xfc1fffe0, "(b),t", pa10, 0},
-{ "ldsid",	0x000010a0, 0xfc1f3fe0, "(s,b),t", pa10, 0},
-{ "mtsp",	0x00001820, 0xffe01fff, "x,S", pa10, 0},
-{ "mtctl",	0x00001840, 0xfc00ffff, "x,^", pa10, 0},
-{ "mtsarcm",	0x016018C0, 0xffe0ffff, "x", pa20, FLAG_STRICT},
-{ "mfia",	0x000014A0, 0xffffffe0, "t", pa20, FLAG_STRICT},
-{ "mfsp",	0x000004a0, 0xffff1fe0, "S,t", pa10, 0},
-{ "mfctl",	0x016048a0, 0xffffffe0, "cW!,t", pa20, FLAG_STRICT},
-{ "mfctl",	0x000008a0, 0xfc1fffe0, "^,t", pa10, 0},
-{ "sync",	0x00000400, 0xffffffff, "", pa10, 0},
-{ "syncdma",	0x00100400, 0xffffffff, "", pa10, 0},
-{ "probe",	0x04001180, 0xfc00ffa0, "cw(b),x,t", pa10, FLAG_STRICT},
-{ "probe",	0x04001180, 0xfc003fa0, "cw(s,b),x,t", pa10, FLAG_STRICT},
-{ "probei",	0x04003180, 0xfc00ffa0, "cw(b),R,t", pa10, FLAG_STRICT},
-{ "probei",	0x04003180, 0xfc003fa0, "cw(s,b),R,t", pa10, FLAG_STRICT},
-{ "prober",	0x04001180, 0xfc00ffe0, "(b),x,t", pa10, 0},
-{ "prober",	0x04001180, 0xfc003fe0, "(s,b),x,t", pa10, 0},
-{ "proberi",	0x04003180, 0xfc00ffe0, "(b),R,t", pa10, 0},
-{ "proberi",	0x04003180, 0xfc003fe0, "(s,b),R,t", pa10, 0},
-{ "probew",	0x040011c0, 0xfc00ffe0, "(b),x,t", pa10, 0},
-{ "probew",	0x040011c0, 0xfc003fe0, "(s,b),x,t", pa10, 0},
-{ "probewi",	0x040031c0, 0xfc00ffe0, "(b),R,t", pa10, 0},
-{ "probewi",	0x040031c0, 0xfc003fe0, "(s,b),R,t", pa10, 0},
-{ "lpa",	0x04001340, 0xfc00ffc0, "cZx(b),t", pa10, 0},
-{ "lpa",	0x04001340, 0xfc003fc0, "cZx(s,b),t", pa10, 0},
-{ "lci",	0x04001300, 0xfc00ffe0, "x(b),t", pa11, 0},
-{ "lci",	0x04001300, 0xfc003fe0, "x(s,b),t", pa11, 0},
-{ "pdtlb",	0x04001600, 0xfc00ffdf, "cLcZx(b)", pa20, FLAG_STRICT},
-{ "pdtlb",	0x04001600, 0xfc003fdf, "cLcZx(s,b)", pa20, FLAG_STRICT},
-{ "pdtlb",	0x04001600, 0xfc1fffdf, "cLcZ@(b)", pa20, FLAG_STRICT},
-{ "pdtlb",	0x04001600, 0xfc1f3fdf, "cLcZ@(s,b)", pa20, FLAG_STRICT},
-{ "pdtlb",	0x04001200, 0xfc00ffdf, "cZx(b)", pa10, 0},
-{ "pdtlb",	0x04001200, 0xfc003fdf, "cZx(s,b)", pa10, 0},
-{ "pitlb",	0x04000600, 0xfc001fdf, "cLcZx(S,b)", pa20, FLAG_STRICT},
-{ "pitlb",	0x04000600, 0xfc1f1fdf, "cLcZ@(S,b)", pa20, FLAG_STRICT},
-{ "pitlb",	0x04000200, 0xfc001fdf, "cZx(S,b)", pa10, 0},
-{ "pdtlbe",	0x04001240, 0xfc00ffdf, "cZx(b)", pa10, 0},
-{ "pdtlbe",	0x04001240, 0xfc003fdf, "cZx(s,b)", pa10, 0},
-{ "pitlbe",	0x04000240, 0xfc001fdf, "cZx(S,b)", pa10, 0},
-{ "idtlba",	0x04001040, 0xfc00ffff, "x,(b)", pa10, 0},
-{ "idtlba",	0x04001040, 0xfc003fff, "x,(s,b)", pa10, 0},
-{ "iitlba",	0x04000040, 0xfc001fff, "x,(S,b)", pa10, 0},
-{ "idtlbp",	0x04001000, 0xfc00ffff, "x,(b)", pa10, 0},
-{ "idtlbp",	0x04001000, 0xfc003fff, "x,(s,b)", pa10, 0},
-{ "iitlbp",	0x04000000, 0xfc001fff, "x,(S,b)", pa10, 0},
-{ "pdc",	0x04001380, 0xfc00ffdf, "cZx(b)", pa10, 0},
-{ "pdc",	0x04001380, 0xfc003fdf, "cZx(s,b)", pa10, 0},
-{ "fdc",	0x04001280, 0xfc00ffdf, "cZx(b)", pa10, FLAG_STRICT},
-{ "fdc",	0x04001280, 0xfc003fdf, "cZx(s,b)", pa10, FLAG_STRICT},
-{ "fdc",	0x04003280, 0xfc00ffff, "5(b)", pa20, FLAG_STRICT},
-{ "fdc",	0x04003280, 0xfc003fff, "5(s,b)", pa20, FLAG_STRICT},
-{ "fdc",	0x04001280, 0xfc00ffdf, "cZx(b)", pa10, 0},
-{ "fdc",	0x04001280, 0xfc003fdf, "cZx(s,b)", pa10, 0},
-{ "fic",	0x040013c0, 0xfc00dfdf, "cZx(b)", pa20, FLAG_STRICT},
-{ "fic",	0x04000280, 0xfc001fdf, "cZx(S,b)", pa10, 0},
-{ "fdce",	0x040012c0, 0xfc00ffdf, "cZx(b)", pa10, 0},
-{ "fdce",	0x040012c0, 0xfc003fdf, "cZx(s,b)", pa10, 0},
-{ "fice",	0x040002c0, 0xfc001fdf, "cZx(S,b)", pa10, 0},
-{ "diag",	0x14000000, 0xfc000000, "D", pa10, 0},
-{ "idtlbt",	0x04001800, 0xfc00ffff, "x,b", pa20, FLAG_STRICT},
-{ "iitlbt",	0x04000800, 0xfc00ffff, "x,b", pa20, FLAG_STRICT},
-
-/* These may be specific to certain versions of the PA.  Joel claimed
-   they were 72000 (7200?) specific.  However, I'm almost certain the
-   mtcpu/mfcpu were undocumented, but available in the older 700 machines.  */
-{ "mtcpu",	0x14001600, 0xfc00ffff, "x,^", pa10, 0},
-{ "mfcpu",	0x14001A00, 0xfc00ffff, "^,x", pa10, 0},
-{ "tocen",	0x14403600, 0xffffffff, "", pa10, 0},
-{ "tocdis",	0x14401620, 0xffffffff, "", pa10, 0},
-{ "shdwgr",	0x14402600, 0xffffffff, "", pa10, 0},
-{ "grshdw",	0x14400620, 0xffffffff, "", pa10, 0},
-
-/* gfw and gfr are not in the HP PA 1.1 manual, but they are in either
-   the Timex FPU or the Mustang ERS (not sure which) manual.  */
-{ "gfw",	0x04001680, 0xfc00ffdf, "cZx(b)", pa11, 0},
-{ "gfw",	0x04001680, 0xfc003fdf, "cZx(s,b)", pa11, 0},
-{ "gfr",	0x04001a80, 0xfc00ffdf, "cZx(b)", pa11, 0},
-{ "gfr",	0x04001a80, 0xfc003fdf, "cZx(s,b)", pa11, 0},
-
-/* Floating Point Coprocessor Instructions.  */
- 
-{ "fldw",	0x24000000, 0xfc00df80, "cXx(b),fT", pa10, FLAG_STRICT},
-{ "fldw",	0x24000000, 0xfc001f80, "cXx(s,b),fT", pa10, FLAG_STRICT},
-{ "fldw",	0x24000000, 0xfc00d380, "cxccx(b),fT", pa11, FLAG_STRICT},
-{ "fldw",	0x24000000, 0xfc001380, "cxccx(s,b),fT", pa11, FLAG_STRICT},
-{ "fldw",	0x24001020, 0xfc1ff3a0, "cocc@(b),fT", pa20, FLAG_STRICT},
-{ "fldw",	0x24001020, 0xfc1f33a0, "cocc@(s,b),fT", pa20, FLAG_STRICT},
-{ "fldw",	0x24001000, 0xfc00df80, "cM5(b),fT", pa10, FLAG_STRICT},
-{ "fldw",	0x24001000, 0xfc001f80, "cM5(s,b),fT", pa10, FLAG_STRICT},
-{ "fldw",	0x24001000, 0xfc00d380, "cmcc5(b),fT", pa11, FLAG_STRICT},
-{ "fldw",	0x24001000, 0xfc001380, "cmcc5(s,b),fT", pa11, FLAG_STRICT},
-{ "fldw",	0x5c000000, 0xfc000004, "y(b),fe", pa20w, FLAG_STRICT},
-{ "fldw",	0x58000000, 0xfc000000, "cJy(b),fe", pa20w, FLAG_STRICT},
-{ "fldw",	0x5c000000, 0xfc00c004, "d(b),fe", pa20, FLAG_STRICT},
-{ "fldw",	0x5c000000, 0xfc000004, "d(s,b),fe", pa20, FLAG_STRICT},
-{ "fldw",	0x58000000, 0xfc00c000, "cJd(b),fe", pa20, FLAG_STRICT},
-{ "fldw",	0x58000000, 0xfc000000, "cJd(s,b),fe", pa20, FLAG_STRICT},
-{ "fldd",	0x2c000000, 0xfc00dfc0, "cXx(b),ft", pa10, FLAG_STRICT},
-{ "fldd",	0x2c000000, 0xfc001fc0, "cXx(s,b),ft", pa10, FLAG_STRICT},
-{ "fldd",	0x2c000000, 0xfc00d3c0, "cxccx(b),ft", pa11, FLAG_STRICT},
-{ "fldd",	0x2c000000, 0xfc0013c0, "cxccx(s,b),ft", pa11, FLAG_STRICT},
-{ "fldd",	0x2c001020, 0xfc1ff3e0, "cocc@(b),ft", pa20, FLAG_STRICT},
-{ "fldd",	0x2c001020, 0xfc1f33e0, "cocc@(s,b),ft", pa20, FLAG_STRICT},
-{ "fldd",	0x2c001000, 0xfc00dfc0, "cM5(b),ft", pa10, FLAG_STRICT},
-{ "fldd",	0x2c001000, 0xfc001fc0, "cM5(s,b),ft", pa10, FLAG_STRICT},
-{ "fldd",	0x2c001000, 0xfc00d3c0, "cmcc5(b),ft", pa11, FLAG_STRICT},
-{ "fldd",	0x2c001000, 0xfc0013c0, "cmcc5(s,b),ft", pa11, FLAG_STRICT},
-{ "fldd",	0x50000002, 0xfc000002, "cq&(b),fx", pa20w, FLAG_STRICT},
-{ "fldd",	0x50000002, 0xfc00c002, "cq#(b),fx", pa20, FLAG_STRICT},
-{ "fldd",	0x50000002, 0xfc000002, "cq#(s,b),fx", pa20, FLAG_STRICT},
-{ "fstw",	0x24000200, 0xfc00df80, "cXfT,x(b)", pa10, FLAG_STRICT},
-{ "fstw",	0x24000200, 0xfc001f80, "cXfT,x(s,b)", pa10, FLAG_STRICT},
-{ "fstw",	0x24000200, 0xfc00d380, "cxcCfT,x(b)", pa11, FLAG_STRICT},
-{ "fstw",	0x24000200, 0xfc001380, "cxcCfT,x(s,b)", pa11, FLAG_STRICT},
-{ "fstw",	0x24001220, 0xfc1ff3a0, "cocCfT,@(b)", pa20, FLAG_STRICT},
-{ "fstw",	0x24001220, 0xfc1f33a0, "cocCfT,@(s,b)", pa20, FLAG_STRICT},
-{ "fstw",	0x24001200, 0xfc00df80, "cMfT,5(b)", pa10, FLAG_STRICT},
-{ "fstw",	0x24001200, 0xfc001f80, "cMfT,5(s,b)", pa10, FLAG_STRICT},
-{ "fstw",	0x24001200, 0xfc00df80, "cMfT,5(b)", pa10, FLAG_STRICT},
-{ "fstw",	0x24001200, 0xfc001f80, "cMfT,5(s,b)", pa10, FLAG_STRICT},
-{ "fstw",	0x7c000000, 0xfc000004, "fE,y(b)", pa20w, FLAG_STRICT},
-{ "fstw",	0x78000000, 0xfc000000, "cJfE,y(b)", pa20w, FLAG_STRICT},
-{ "fstw",	0x7c000000, 0xfc00c004, "fE,d(b)", pa20, FLAG_STRICT},
-{ "fstw",	0x7c000000, 0xfc000004, "fE,d(s,b)", pa20, FLAG_STRICT},
-{ "fstw",	0x78000000, 0xfc00c000, "cJfE,d(b)", pa20, FLAG_STRICT},
-{ "fstw",	0x78000000, 0xfc000000, "cJfE,d(s,b)", pa20, FLAG_STRICT},
-{ "fstd",	0x2c000200, 0xfc00dfc0, "cXft,x(b)", pa10, FLAG_STRICT},
-{ "fstd",	0x2c000200, 0xfc001fc0, "cXft,x(s,b)", pa10, FLAG_STRICT},
-{ "fstd",	0x2c000200, 0xfc00d3c0, "cxcCft,x(b)", pa11, FLAG_STRICT},
-{ "fstd",	0x2c000200, 0xfc0013c0, "cxcCft,x(s,b)", pa11, FLAG_STRICT},
-{ "fstd",	0x2c001220, 0xfc1ff3e0, "cocCft,@(b)", pa20, FLAG_STRICT},
-{ "fstd",	0x2c001220, 0xfc1f33e0, "cocCft,@(s,b)", pa20, FLAG_STRICT},
-{ "fstd",	0x2c001200, 0xfc00dfc0, "cMft,5(b)", pa10, FLAG_STRICT},
-{ "fstd",	0x2c001200, 0xfc001fc0, "cMft,5(s,b)", pa10, FLAG_STRICT},
-{ "fstd",	0x2c001200, 0xfc00d3c0, "cmcCft,5(b)", pa11, FLAG_STRICT},
-{ "fstd",	0x2c001200, 0xfc0013c0, "cmcCft,5(s,b)", pa11, FLAG_STRICT},
-{ "fstd",	0x70000002, 0xfc000002, "cqfx,&(b)", pa20w, FLAG_STRICT},
-{ "fstd",	0x70000002, 0xfc00c002, "cqfx,#(b)", pa20, FLAG_STRICT},
-{ "fstd",	0x70000002, 0xfc000002, "cqfx,#(s,b)", pa20, FLAG_STRICT},
-{ "fldwx",	0x24000000, 0xfc00df80, "cXx(b),fT", pa10, FLAG_STRICT},
-{ "fldwx",	0x24000000, 0xfc001f80, "cXx(s,b),fT", pa10, FLAG_STRICT},
-{ "fldwx",	0x24000000, 0xfc00d380, "cxccx(b),fT", pa11, FLAG_STRICT},
-{ "fldwx",	0x24000000, 0xfc001380, "cxccx(s,b),fT", pa11, FLAG_STRICT},
-{ "fldwx",	0x24000000, 0xfc00df80, "cXx(b),fT", pa10, 0},
-{ "fldwx",	0x24000000, 0xfc001f80, "cXx(s,b),fT", pa10, 0},
-{ "flddx",	0x2c000000, 0xfc00dfc0, "cXx(b),ft", pa10, FLAG_STRICT},
-{ "flddx",	0x2c000000, 0xfc001fc0, "cXx(s,b),ft", pa10, FLAG_STRICT},
-{ "flddx",	0x2c000000, 0xfc00d3c0, "cxccx(b),ft", pa11, FLAG_STRICT},
-{ "flddx",	0x2c000000, 0xfc0013c0, "cxccx(s,b),ft", pa11, FLAG_STRICT},
-{ "flddx",	0x2c000000, 0xfc00dfc0, "cXx(b),ft", pa10, 0},
-{ "flddx",	0x2c000000, 0xfc001fc0, "cXx(s,b),ft", pa10, 0},
-{ "fstwx",	0x24000200, 0xfc00df80, "cxfT,x(b)", pa10, FLAG_STRICT},
-{ "fstwx",	0x24000200, 0xfc001f80, "cxfT,x(s,b)", pa10, FLAG_STRICT},
-{ "fstwx",	0x24000200, 0xfc00d380, "cxcCfT,x(b)", pa11, FLAG_STRICT},
-{ "fstwx",	0x24000200, 0xfc001380, "cxcCfT,x(s,b)", pa11, FLAG_STRICT},
-{ "fstwx",	0x24000200, 0xfc00df80, "cxfT,x(b)", pa10, 0},
-{ "fstwx",	0x24000200, 0xfc001f80, "cxfT,x(s,b)", pa10, 0},
-{ "fstdx",	0x2c000200, 0xfc00dfc0, "cxft,x(b)", pa10, FLAG_STRICT},
-{ "fstdx",	0x2c000200, 0xfc001fc0, "cxft,x(s,b)", pa10, FLAG_STRICT},
-{ "fstdx",	0x2c000200, 0xfc00d3c0, "cxcCft,x(b)", pa11, FLAG_STRICT},
-{ "fstdx",	0x2c000200, 0xfc0013c0, "cxcCft,x(s,b)", pa11, FLAG_STRICT},
-{ "fstdx",	0x2c000200, 0xfc00dfc0, "cxft,x(b)", pa10, 0},
-{ "fstdx",	0x2c000200, 0xfc001fc0, "cxft,x(s,b)", pa10, 0},
-{ "fstqx",	0x3c000200, 0xfc00dfc0, "cxft,x(b)", pa10, 0},
-{ "fstqx",	0x3c000200, 0xfc001fc0, "cxft,x(s,b)", pa10, 0},
-{ "fldws",	0x24001000, 0xfc00df80, "cm5(b),fT", pa10, FLAG_STRICT},
-{ "fldws",	0x24001000, 0xfc001f80, "cm5(s,b),fT", pa10, FLAG_STRICT},
-{ "fldws",	0x24001000, 0xfc00d380, "cmcc5(b),fT", pa11, FLAG_STRICT},
-{ "fldws",	0x24001000, 0xfc001380, "cmcc5(s,b),fT", pa11, FLAG_STRICT},
-{ "fldws",	0x24001000, 0xfc00df80, "cm5(b),fT", pa10, 0},
-{ "fldws",	0x24001000, 0xfc001f80, "cm5(s,b),fT", pa10, 0},
-{ "fldds",	0x2c001000, 0xfc00dfc0, "cm5(b),ft", pa10, FLAG_STRICT},
-{ "fldds",	0x2c001000, 0xfc001fc0, "cm5(s,b),ft", pa10, FLAG_STRICT},
-{ "fldds",	0x2c001000, 0xfc00d3c0, "cmcc5(b),ft", pa11, FLAG_STRICT},
-{ "fldds",	0x2c001000, 0xfc0013c0, "cmcc5(s,b),ft", pa11, FLAG_STRICT},
-{ "fldds",	0x2c001000, 0xfc00dfc0, "cm5(b),ft", pa10, 0},
-{ "fldds",	0x2c001000, 0xfc001fc0, "cm5(s,b),ft", pa10, 0},
-{ "fstws",	0x24001200, 0xfc00df80, "cmfT,5(b)", pa10, FLAG_STRICT},
-{ "fstws",	0x24001200, 0xfc001f80, "cmfT,5(s,b)", pa10, FLAG_STRICT},
-{ "fstws",	0x24001200, 0xfc00d380, "cmcCfT,5(b)", pa11, FLAG_STRICT},
-{ "fstws",	0x24001200, 0xfc001380, "cmcCfT,5(s,b)", pa11, FLAG_STRICT},
-{ "fstws",	0x24001200, 0xfc00df80, "cmfT,5(b)", pa10, 0},
-{ "fstws",	0x24001200, 0xfc001f80, "cmfT,5(s,b)", pa10, 0},
-{ "fstds",	0x2c001200, 0xfc00dfc0, "cmft,5(b)", pa10, FLAG_STRICT},
-{ "fstds",	0x2c001200, 0xfc001fc0, "cmft,5(s,b)", pa10, FLAG_STRICT},
-{ "fstds",	0x2c001200, 0xfc00d3c0, "cmcCft,5(b)", pa11, FLAG_STRICT},
-{ "fstds",	0x2c001200, 0xfc0013c0, "cmcCft,5(s,b)", pa11, FLAG_STRICT},
-{ "fstds",	0x2c001200, 0xfc00dfc0, "cmft,5(b)", pa10, 0},
-{ "fstds",	0x2c001200, 0xfc001fc0, "cmft,5(s,b)", pa10, 0},
-{ "fstqs",	0x3c001200, 0xfc00dfc0, "cmft,5(b)", pa10, 0},
-{ "fstqs",	0x3c001200, 0xfc001fc0, "cmft,5(s,b)", pa10, 0},
-{ "fadd",	0x30000600, 0xfc00e7e0, "Ffa,fb,fT", pa10, 0},
-{ "fadd",	0x38000600, 0xfc00e720, "IfA,fB,fT", pa10, 0},
-{ "fsub",	0x30002600, 0xfc00e7e0, "Ffa,fb,fT", pa10, 0},
-{ "fsub",	0x38002600, 0xfc00e720, "IfA,fB,fT", pa10, 0},
-{ "fmpy",	0x30004600, 0xfc00e7e0, "Ffa,fb,fT", pa10, 0},
-{ "fmpy",	0x38004600, 0xfc00e720, "IfA,fB,fT", pa10, 0},
-{ "fdiv",	0x30006600, 0xfc00e7e0, "Ffa,fb,fT", pa10, 0},
-{ "fdiv",	0x38006600, 0xfc00e720, "IfA,fB,fT", pa10, 0},
-{ "fsqrt",	0x30008000, 0xfc1fe7e0, "Ffa,fT", pa10, 0},
-{ "fsqrt",	0x38008000, 0xfc1fe720, "FfA,fT", pa10, 0},
-{ "fabs",	0x30006000, 0xfc1fe7e0, "Ffa,fT", pa10, 0},
-{ "fabs",	0x38006000, 0xfc1fe720, "FfA,fT", pa10, 0},
-{ "frem",	0x30008600, 0xfc00e7e0, "Ffa,fb,fT", pa10, 0},
-{ "frem",	0x38008600, 0xfc00e720, "FfA,fB,fT", pa10, 0},
-{ "frnd",	0x3000a000, 0xfc1fe7e0, "Ffa,fT", pa10, 0},
-{ "frnd",	0x3800a000, 0xfc1fe720, "FfA,fT", pa10, 0},
-{ "fcpy",	0x30004000, 0xfc1fe7e0, "Ffa,fT", pa10, 0},
-{ "fcpy",	0x38004000, 0xfc1fe720, "FfA,fT", pa10, 0},
-{ "fcnvff",	0x30000200, 0xfc1f87e0, "FGfa,fT", pa10, 0},
-{ "fcnvff",	0x38000200, 0xfc1f8720, "FGfA,fT", pa10, 0},
-{ "fcnvxf",	0x30008200, 0xfc1f87e0, "FGfa,fT", pa10, 0},
-{ "fcnvxf",	0x38008200, 0xfc1f8720, "FGfA,fT", pa10, 0},
-{ "fcnvfx",	0x30010200, 0xfc1f87e0, "FGfa,fT", pa10, 0},
-{ "fcnvfx",	0x38010200, 0xfc1f8720, "FGfA,fT", pa10, 0},
-{ "fcnvfxt",	0x30018200, 0xfc1f87e0, "FGfa,fT", pa10, 0},
-{ "fcnvfxt",	0x38018200, 0xfc1f8720, "FGfA,fT", pa10, 0},
-{ "fmpyfadd",	0xb8000000, 0xfc000020, "IfA,fB,fC,fT", pa20, FLAG_STRICT},
-{ "fmpynfadd",	0xb8000020, 0xfc000020, "IfA,fB,fC,fT", pa20, FLAG_STRICT},
-{ "fneg",	0x3000c000, 0xfc1fe7e0, "Ffa,fT", pa20, FLAG_STRICT},
-{ "fneg",	0x3800c000, 0xfc1fe720, "IfA,fT", pa20, FLAG_STRICT},
-{ "fnegabs",	0x3000e000, 0xfc1fe7e0, "Ffa,fT", pa20, FLAG_STRICT},
-{ "fnegabs",	0x3800e000, 0xfc1fe720, "IfA,fT", pa20, FLAG_STRICT},
-{ "fcnv",	0x30000200, 0xfc1c0720, "{_fa,fT", pa20, FLAG_STRICT},
-{ "fcnv",	0x38000200, 0xfc1c0720, "FGfA,fT", pa20, FLAG_STRICT},
-{ "fcmp",	0x30000400, 0xfc00e7e0, "F?ffa,fb", pa10, FLAG_STRICT},
-{ "fcmp",	0x38000400, 0xfc00e720, "I?ffA,fB", pa10, FLAG_STRICT},
-{ "fcmp",	0x30000400, 0xfc0007e0, "F?ffa,fb,h", pa20, FLAG_STRICT},
-{ "fcmp",	0x38000400, 0xfc000720, "I?ffA,fB,h", pa20, FLAG_STRICT},
-{ "fcmp",	0x30000400, 0xfc00e7e0, "F?ffa,fb", pa10, 0},
-{ "fcmp",	0x38000400, 0xfc00e720, "I?ffA,fB", pa10, 0},
-{ "xmpyu",	0x38004700, 0xfc00e720, "fX,fB,fT", pa11, 0},
-{ "fmpyadd",	0x18000000, 0xfc000000, "Hfi,fj,fk,fl,fm", pa11, 0},
-{ "fmpysub",	0x98000000, 0xfc000000, "Hfi,fj,fk,fl,fm", pa11, 0},
-{ "ftest",	0x30002420, 0xffffffff, "", pa10, FLAG_STRICT},
-{ "ftest",	0x30002420, 0xffffffe0, ",=", pa20, FLAG_STRICT},
-{ "ftest",	0x30000420, 0xffff1fff, "m", pa20, FLAG_STRICT},
-{ "fid",	0x30000000, 0xffffffff, "", pa11, 0},
-
-/* Performance Monitor Instructions.  */
-
-{ "pmdis",	0x30000280, 0xffffffdf, "N", pa20, FLAG_STRICT},
-{ "pmenb",	0x30000680, 0xffffffff, "", pa20, FLAG_STRICT},
-
-/* Assist Instructions.  */
-
-{ "spop0",	0x10000000, 0xfc000600, "v,ON", pa10, 0},
-{ "spop1",	0x10000200, 0xfc000600, "v,oNt", pa10, 0},
-{ "spop2",	0x10000400, 0xfc000600, "v,1Nb", pa10, 0},
-{ "spop3",	0x10000600, 0xfc000600, "v,0Nx,b", pa10, 0},
-{ "copr",	0x30000000, 0xfc000000, "u,2N", pa10, 0},
-{ "cldw",	0x24000000, 0xfc00de00, "ucXx(b),t", pa10, FLAG_STRICT},
-{ "cldw",	0x24000000, 0xfc001e00, "ucXx(s,b),t", pa10, FLAG_STRICT},
-{ "cldw",	0x24000000, 0xfc00d200, "ucxccx(b),t", pa11, FLAG_STRICT},
-{ "cldw",	0x24000000, 0xfc001200, "ucxccx(s,b),t", pa11, FLAG_STRICT},
-{ "cldw",	0x24001000, 0xfc00d200, "ucocc@(b),t", pa20, FLAG_STRICT},
-{ "cldw",	0x24001000, 0xfc001200, "ucocc@(s,b),t", pa20, FLAG_STRICT},
-{ "cldw",	0x24001000, 0xfc00de00, "ucM5(b),t", pa10, FLAG_STRICT},
-{ "cldw",	0x24001000, 0xfc001e00, "ucM5(s,b),t", pa10, FLAG_STRICT},
-{ "cldw",	0x24001000, 0xfc00d200, "ucmcc5(b),t", pa11, FLAG_STRICT},
-{ "cldw",	0x24001000, 0xfc001200, "ucmcc5(s,b),t", pa11, FLAG_STRICT},
-{ "cldd",	0x2c000000, 0xfc00de00, "ucXx(b),t", pa10, FLAG_STRICT},
-{ "cldd",	0x2c000000, 0xfc001e00, "ucXx(s,b),t", pa10, FLAG_STRICT},
-{ "cldd",	0x2c000000, 0xfc00d200, "ucxccx(b),t", pa11, FLAG_STRICT},
-{ "cldd",	0x2c000000, 0xfc001200, "ucxccx(s,b),t", pa11, FLAG_STRICT},
-{ "cldd",	0x2c001000, 0xfc00d200, "ucocc@(b),t", pa20, FLAG_STRICT},
-{ "cldd",	0x2c001000, 0xfc001200, "ucocc@(s,b),t", pa20, FLAG_STRICT},
-{ "cldd",	0x2c001000, 0xfc00de00, "ucM5(b),t", pa10, FLAG_STRICT},
-{ "cldd",	0x2c001000, 0xfc001e00, "ucM5(s,b),t", pa10, FLAG_STRICT},
-{ "cldd",	0x2c001000, 0xfc00d200, "ucmcc5(b),t", pa11, FLAG_STRICT},
-{ "cldd",	0x2c001000, 0xfc001200, "ucmcc5(s,b),t", pa11, FLAG_STRICT},
-{ "cstw",	0x24000200, 0xfc00de00, "ucXt,x(b)", pa10, FLAG_STRICT},
-{ "cstw",	0x24000200, 0xfc001e00, "ucXt,x(s,b)", pa10, FLAG_STRICT},
-{ "cstw",	0x24000200, 0xfc00d200, "ucxcCt,x(b)", pa11, FLAG_STRICT},
-{ "cstw",	0x24000200, 0xfc001200, "ucxcCt,x(s,b)", pa11, FLAG_STRICT},
-{ "cstw",	0x24001200, 0xfc00d200, "ucocCt,@(b)", pa20, FLAG_STRICT},
-{ "cstw",	0x24001200, 0xfc001200, "ucocCt,@(s,b)", pa20, FLAG_STRICT},
-{ "cstw",	0x24001200, 0xfc00de00, "ucMt,5(b)", pa10, FLAG_STRICT},
-{ "cstw",	0x24001200, 0xfc001e00, "ucMt,5(s,b)", pa10, FLAG_STRICT},
-{ "cstw",	0x24001200, 0xfc00d200, "ucmcCt,5(b)", pa11, FLAG_STRICT},
-{ "cstw",	0x24001200, 0xfc001200, "ucmcCt,5(s,b)", pa11, FLAG_STRICT},
-{ "cstd",	0x2c000200, 0xfc00de00, "ucXt,x(b)", pa10, FLAG_STRICT},
-{ "cstd",	0x2c000200, 0xfc001e00, "ucXt,x(s,b)", pa10, FLAG_STRICT},
-{ "cstd",	0x2c000200, 0xfc00d200, "ucxcCt,x(b)", pa11, FLAG_STRICT},
-{ "cstd",	0x2c000200, 0xfc001200, "ucxcCt,x(s,b)", pa11, FLAG_STRICT},
-{ "cstd",	0x2c001200, 0xfc00d200, "ucocCt,@(b)", pa20, FLAG_STRICT},
-{ "cstd",	0x2c001200, 0xfc001200, "ucocCt,@(s,b)", pa20, FLAG_STRICT},
-{ "cstd",	0x2c001200, 0xfc00de00, "ucMt,5(b)", pa10, FLAG_STRICT},
-{ "cstd",	0x2c001200, 0xfc001e00, "ucMt,5(s,b)", pa10, FLAG_STRICT},
-{ "cstd",	0x2c001200, 0xfc00d200, "ucmcCt,5(b)", pa11, FLAG_STRICT},
-{ "cstd",	0x2c001200, 0xfc001200, "ucmcCt,5(s,b)", pa11, FLAG_STRICT},
-{ "cldwx",	0x24000000, 0xfc00de00, "ucXx(b),t", pa10, FLAG_STRICT},
-{ "cldwx",	0x24000000, 0xfc001e00, "ucXx(s,b),t", pa10, FLAG_STRICT},
-{ "cldwx",	0x24000000, 0xfc00d200, "ucxccx(b),t", pa11, FLAG_STRICT},
-{ "cldwx",	0x24000000, 0xfc001200, "ucxccx(s,b),t", pa11, FLAG_STRICT},
-{ "cldwx",	0x24000000, 0xfc00de00, "ucXx(b),t", pa10, 0},
-{ "cldwx",	0x24000000, 0xfc001e00, "ucXx(s,b),t", pa10, 0},
-{ "clddx",	0x2c000000, 0xfc00de00, "ucXx(b),t", pa10, FLAG_STRICT},
-{ "clddx",	0x2c000000, 0xfc001e00, "ucXx(s,b),t", pa10, FLAG_STRICT},
-{ "clddx",	0x2c000000, 0xfc00d200, "ucxccx(b),t", pa11, FLAG_STRICT},
-{ "clddx",	0x2c000000, 0xfc001200, "ucxccx(s,b),t", pa11, FLAG_STRICT},
-{ "clddx",	0x2c000000, 0xfc00de00, "ucXx(b),t", pa10, 0},
-{ "clddx",	0x2c000000, 0xfc001e00, "ucXx(s,b),t", pa10, 0},
-{ "cstwx",	0x24000200, 0xfc00de00, "ucXt,x(b)", pa10, FLAG_STRICT},
-{ "cstwx",	0x24000200, 0xfc001e00, "ucXt,x(s,b)", pa10, FLAG_STRICT},
-{ "cstwx",	0x24000200, 0xfc00d200, "ucxcCt,x(b)", pa11, FLAG_STRICT},
-{ "cstwx",	0x24000200, 0xfc001200, "ucxcCt,x(s,b)", pa11, FLAG_STRICT},
-{ "cstwx",	0x24000200, 0xfc00de00, "ucXt,x(b)", pa10, 0},
-{ "cstwx",	0x24000200, 0xfc001e00, "ucXt,x(s,b)", pa10, 0},
-{ "cstdx",	0x2c000200, 0xfc00de00, "ucXt,x(b)", pa10, FLAG_STRICT},
-{ "cstdx",	0x2c000200, 0xfc001e00, "ucXt,x(s,b)", pa10, FLAG_STRICT},
-{ "cstdx",	0x2c000200, 0xfc00d200, "ucxcCt,x(b)", pa11, FLAG_STRICT},
-{ "cstdx",	0x2c000200, 0xfc001200, "ucxcCt,x(s,b)", pa11, FLAG_STRICT},
-{ "cstdx",	0x2c000200, 0xfc00de00, "ucXt,x(b)", pa10, 0},
-{ "cstdx",	0x2c000200, 0xfc001e00, "ucXt,x(s,b)", pa10, 0},
-{ "cldws",	0x24001000, 0xfc00de00, "ucM5(b),t", pa10, FLAG_STRICT},
-{ "cldws",	0x24001000, 0xfc001e00, "ucM5(s,b),t", pa10, FLAG_STRICT},
-{ "cldws",	0x24001000, 0xfc00d200, "ucmcc5(b),t", pa11, FLAG_STRICT},
-{ "cldws",	0x24001000, 0xfc001200, "ucmcc5(s,b),t", pa11, FLAG_STRICT},
-{ "cldws",	0x24001000, 0xfc00de00, "ucM5(b),t", pa10, 0},
-{ "cldws",	0x24001000, 0xfc001e00, "ucM5(s,b),t", pa10, 0},
-{ "cldds",	0x2c001000, 0xfc00de00, "ucM5(b),t", pa10, FLAG_STRICT},
-{ "cldds",	0x2c001000, 0xfc001e00, "ucM5(s,b),t", pa10, FLAG_STRICT},
-{ "cldds",	0x2c001000, 0xfc00d200, "ucmcc5(b),t", pa11, FLAG_STRICT},
-{ "cldds",	0x2c001000, 0xfc001200, "ucmcc5(s,b),t", pa11, FLAG_STRICT},
-{ "cldds",	0x2c001000, 0xfc00de00, "ucM5(b),t", pa10, 0},
-{ "cldds",	0x2c001000, 0xfc001e00, "ucM5(s,b),t", pa10, 0},
-{ "cstws",	0x24001200, 0xfc00de00, "ucMt,5(b)", pa10, FLAG_STRICT},
-{ "cstws",	0x24001200, 0xfc001e00, "ucMt,5(s,b)", pa10, FLAG_STRICT},
-{ "cstws",	0x24001200, 0xfc00d200, "ucmcCt,5(b)", pa11, FLAG_STRICT},
-{ "cstws",	0x24001200, 0xfc001200, "ucmcCt,5(s,b)", pa11, FLAG_STRICT},
-{ "cstws",	0x24001200, 0xfc00de00, "ucMt,5(b)", pa10, 0},
-{ "cstws",	0x24001200, 0xfc001e00, "ucMt,5(s,b)", pa10, 0},
-{ "cstds",	0x2c001200, 0xfc00de00, "ucMt,5(b)", pa10, FLAG_STRICT},
-{ "cstds",	0x2c001200, 0xfc001e00, "ucMt,5(s,b)", pa10, FLAG_STRICT},
-{ "cstds",	0x2c001200, 0xfc00d200, "ucmcCt,5(b)", pa11, FLAG_STRICT},
-{ "cstds",	0x2c001200, 0xfc001200, "ucmcCt,5(s,b)", pa11, FLAG_STRICT},
-{ "cstds",	0x2c001200, 0xfc00de00, "ucMt,5(b)", pa10, 0},
-{ "cstds",	0x2c001200, 0xfc001e00, "ucMt,5(s,b)", pa10, 0},
-
-/* More pseudo instructions which must follow the main table.  */
-{ "call",	0xe800f000, 0xfc1ffffd, "n(b)", pa20, FLAG_STRICT},
-{ "call",	0xe800a000, 0xffe0e000, "nW", pa10, FLAG_STRICT},
-{ "ret",	0xe840d000, 0xfffffffd, "n", pa20, FLAG_STRICT},
-
-};
-
-#define NUMOPCODES ((sizeof pa_opcodes)/(sizeof pa_opcodes[0]))
-
-/* SKV 12/18/92. Added some denotations for various operands.  */
-
-#define PA_IMM11_AT_31 'i'
-#define PA_IMM14_AT_31 'j'
-#define PA_IMM21_AT_31 'k'
-#define PA_DISP12 'w'
-#define PA_DISP17 'W'
-
-#define N_HPPA_OPERAND_FORMATS 5
diff --git a/include/opcode/i370.h b/include/opcode/i370.h
deleted file mode 100644
index bdbb2f4..0000000
--- a/include/opcode/i370.h
+++ /dev/null
@@ -1,265 +0,0 @@
-/* i370.h -- Header file for S/390 opcode table
-   Copyright 1994, 1995, 1998, 1999, 2000, 2003 Free Software Foundation, Inc.
-   PowerPC version written by Ian Lance Taylor, Cygnus Support
-   Rewritten for i370 ESA/390 support, Linas Vepstas <linas@linas.org>
-
-This file is part of GDB, GAS, and the GNU binutils.
-
-GDB, GAS, and the GNU binutils are free software; you can redistribute
-them and/or modify them 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.
-
-GDB, GAS, and the GNU binutils are distributed in the hope that they
-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 file; see the file COPYING.  If not, write to the Free
-Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef I370_H
-#define I370_H
-
-/* The opcode table is an array of struct i370_opcode.  */
-typedef union
-{
-   unsigned int   i[2];
-   unsigned short s[4];
-   unsigned char  b[8];
-}  i370_insn_t;
-
-struct i370_opcode
-{
-  /* The opcode name.  */
-  const char *name;
-
-  /* the length of the instruction */
-  char len;
-
-  /* The opcode itself.  Those bits which will be filled in with
-     operands are zeroes.  */
-  i370_insn_t opcode;
-
-  /* The opcode mask.  This is used by the disassembler.  This is a
-     mask containing ones indicating those bits which must match the
-     opcode field, and zeroes indicating those bits which need not
-     match (and are presumably filled in by operands).  */
-  i370_insn_t mask;
-
-  /* One bit flags for the opcode.  These are used to indicate which
-     specific processors support the instructions.  The defined values
-     are listed below.  */
-  unsigned long flags;
-
-  /* An array of operand codes.  Each code is an index into the
-     operand table.  They appear in the order which the operands must
-     appear in assembly code, and are terminated by a zero.  */
-  unsigned char operands[8];
-};
-
-/* The table itself is sorted by major opcode number, and is otherwise
-   in the order in which the disassembler should consider
-   instructions.  */
-extern const struct i370_opcode i370_opcodes[];
-extern const int i370_num_opcodes;
-
-/* Values defined for the flags field of a struct i370_opcode.  */
-
-/* Opcode is defined for the original 360 architecture.  */
-#define I370_OPCODE_360 (0x01)
-
-/* Opcode is defined for the 370 architecture.  */
-#define I370_OPCODE_370 (0x02)
-
-/* Opcode is defined for the 370-XA architecture.  */
-#define I370_OPCODE_370_XA (0x04)
-
-/* Opcode is defined for the ESA/370 architecture.  */
-#define I370_OPCODE_ESA370 (0x08)
-
-/* Opcode is defined for the ESA/390 architecture.  */
-#define I370_OPCODE_ESA390 (0x10)
-
-/* Opcode is defined for the ESA/390 w/ BFP facility.  */
-#define I370_OPCODE_ESA390_BF (0x20)
-
-/* Opcode is defined for the ESA/390 w/ branch & set authority facility.  */
-#define I370_OPCODE_ESA390_BS (0x40)
-
-/* Opcode is defined for the ESA/390 w/ checksum facility.  */
-#define I370_OPCODE_ESA390_CK (0x80)
-
-/* Opcode is defined for the ESA/390 w/ compare & move extended facility.  */
-#define I370_OPCODE_ESA390_CM (0x100)
-
-/* Opcode is defined for the ESA/390 w/ flt.pt. support extensions facility. */
-#define I370_OPCODE_ESA390_FX (0x200)
-
-/* Opcode is defined for the ESA/390 w/ HFP facility. */
-#define I370_OPCODE_ESA390_HX (0x400)
-
-/* Opcode is defined for the ESA/390 w/ immediate & relative facility.  */
-#define I370_OPCODE_ESA390_IR (0x800)
-
-/* Opcode is defined for the ESA/390 w/ move-inverse facility.  */
-#define I370_OPCODE_ESA390_MI (0x1000)
-
-/* Opcode is defined for the ESA/390 w/ program-call-fast facility.  */
-#define I370_OPCODE_ESA390_PC (0x2000)
-
-/* Opcode is defined for the ESA/390 w/ perform-locked-op facility.  */
-#define I370_OPCODE_ESA390_PL (0x4000)
-
-/* Opcode is defined for the ESA/390 w/ square-root facility.  */
-#define I370_OPCODE_ESA390_QR (0x8000)
-
-/* Opcode is defined for the ESA/390 w/ resume-program facility.  */
-#define I370_OPCODE_ESA390_RP (0x10000)
-
-/* Opcode is defined for the ESA/390 w/ set-address-space-fast facility.  */
-#define I370_OPCODE_ESA390_SA (0x20000)
-
-/* Opcode is defined for the ESA/390 w/ subspace group facility.  */
-#define I370_OPCODE_ESA390_SG (0x40000)
-
-/* Opcode is defined for the ESA/390 w/ string facility.  */
-#define I370_OPCODE_ESA390_SR (0x80000)
-
-/* Opcode is defined for the ESA/390 w/ trap facility.  */
-#define I370_OPCODE_ESA390_TR (0x100000)
-
-#define I370_OPCODE_ESA390_SUPERSET (0x1fffff)
-
-
-/* The operands table is an array of struct i370_operand.  */
-
-struct i370_operand
-{
-  /* The number of bits in the operand.  */
-  int bits;
-
-  /* How far the operand is left shifted in the instruction.  */
-  int shift;
-
-  /* Insertion function.  This is used by the assembler.  To insert an
-     operand value into an instruction, check this field.
-
-     If it is NULL, execute
-         i |= (op & ((1 << o->bits) - 1)) << o->shift;
-     (i is the instruction which we are filling in, o is a pointer to
-     this structure, and op is the opcode value; this assumes twos
-     complement arithmetic).
-
-     If this field is not NULL, then simply call it with the
-     instruction and the operand value.  It will return the new value
-     of the instruction.  If the ERRMSG argument is not NULL, then if
-     the operand value is illegal, *ERRMSG will be set to a warning
-     string (the operand will be inserted in any case).  If the
-     operand value is legal, *ERRMSG will be unchanged (most operands
-     can accept any value).  */
-  i370_insn_t (*insert)
-    (i370_insn_t instruction, long op, const char **errmsg);
-
-  /* Extraction function.  This is used by the disassembler.  To
-     extract this operand type from an instruction, check this field.
-
-     If it is NULL, compute
-         op = ((i) >> o->shift) & ((1 << o->bits) - 1);
-	 if ((o->flags & I370_OPERAND_SIGNED) != 0
-           && (op & (1 << (o->bits - 1))) != 0)
-	   op -= 1 << o->bits;
-     (i is the instruction, o is a pointer to this structure, and op
-     is the result; this assumes twos complement arithmetic).
-
-     If this field is not NULL, then simply call it with the
-     instruction value.  It will return the value of the operand.  If
-     the INVALID argument is not NULL, *INVALID will be set to
-     non-zero if this operand type can not actually be extracted from
-     this operand (i.e., the instruction does not match).  If the
-     operand is valid, *INVALID will not be changed.  */
-  long (*extract) (i370_insn_t instruction, int *invalid);
-
-  /* One bit syntax flags.  */
-  unsigned long flags;
-
-  /* name -- handy for debugging, otherwise pointless */
-  char * name;
-};
-
-/* Elements in the table are retrieved by indexing with values from
-   the operands field of the i370_opcodes table.  */
-
-extern const struct i370_operand i370_operands[];
-
-/* Values defined for the flags field of a struct i370_operand.  */
-
-/* This operand should be wrapped in parentheses rather than
-   separated from the previous by a comma.  This is used for S, RS and
-   SS form instructions which want their operands to look like
-   reg,displacement(basereg) */
-#define I370_OPERAND_SBASE (0x01)
-
-/* This operand is a base register.  It may or may not appear next
-   to an index register, i.e. either of the two forms
-   reg,displacement(basereg)
-   reg,displacement(index,basereg) */
-#define I370_OPERAND_BASE (0x02)
-
-/* This pair of operands should be wrapped in parentheses rather than
-   separated from the last by a comma.  This is used for the RX form
-   instructions which want their operands to look like
-   reg,displacement(index,basereg) */
-#define I370_OPERAND_INDEX (0x04)
-
-/* This operand names a register.  The disassembler uses this to print
-   register names with a leading 'r'.  */
-#define I370_OPERAND_GPR (0x08)
-
-/* This operand names a floating point register.  The disassembler
-   prints these with a leading 'f'.  */
-#define I370_OPERAND_FPR (0x10)
-
-/* This operand is a displacement.  */
-#define I370_OPERAND_RELATIVE (0x20)
-
-/* This operand is a length, such as that in SS form instructions.  */
-#define I370_OPERAND_LENGTH (0x40)
-
-/* This operand is optional, and is zero if omitted.  This is used for
-   the optional B2 field in the shift-left, shift-right instructions.  The
-   assembler must count the number of operands remaining on the line,
-   and the number of operands remaining for the opcode, and decide
-   whether this operand is present or not.  The disassembler should
-   print this operand out only if it is not zero.  */
-#define I370_OPERAND_OPTIONAL (0x80)
-
-
-/* Define some misc macros.  We keep them with the operands table
-   for simplicity.  The macro table is an array of struct i370_macro.  */
-
-struct i370_macro
-{
-  /* The macro name.  */
-  const char *name;
-
-  /* The number of operands the macro takes.  */
-  unsigned int operands;
-
-  /* One bit flags for the opcode.  These are used to indicate which
-     specific processors support the instructions.  The values are the
-     same as those for the struct i370_opcode flags field.  */
-  unsigned long flags;
-
-  /* A format string to turn the macro into a normal instruction.
-     Each %N in the string is replaced with operand number N (zero
-     based).  */
-  const char *format;
-};
-
-extern const struct i370_macro i370_macros[];
-extern const int i370_num_macros;
-
-
-#endif /* I370_H */
diff --git a/include/opcode/i386.h b/include/opcode/i386.h
deleted file mode 100644
index c66ca32..0000000
--- a/include/opcode/i386.h
+++ /dev/null
@@ -1,1725 +0,0 @@
-/* opcode/i386.h -- Intel 80386 opcode table
-   Copyright 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002, 2003, 2004, 2005
-   Free Software Foundation, Inc.
-
-   This file is part of GAS, the GNU Assembler, and GDB, the GNU Debugger.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* The SystemV/386 SVR3.2 assembler, and probably all AT&T derived
-   ix86 Unix assemblers, generate floating point instructions with
-   reversed source and destination registers in certain cases.
-   Unfortunately, gcc and possibly many other programs use this
-   reversed syntax, so we're stuck with it.
-
-   eg. `fsub %st(3),%st' results in st = st - st(3) as expected, but
-   `fsub %st,%st(3)' results in st(3) = st - st(3), rather than
-   the expected st(3) = st(3) - st
-
-   This happens with all the non-commutative arithmetic floating point
-   operations with two register operands, where the source register is
-   %st, and destination register is %st(i).  See FloatDR below.
-
-   The affected opcode map is dceX, dcfX, deeX, defX.  */
-
-#ifndef SYSV386_COMPAT
-/* Set non-zero for broken, compatible instructions.  Set to zero for
-   non-broken opcodes at your peril.  gcc generates SystemV/386
-   compatible instructions.  */
-#define SYSV386_COMPAT 1
-#endif
-#ifndef OLDGCC_COMPAT
-/* Set non-zero to cater for old (<= 2.8.1) versions of gcc that could
-   generate nonsense fsubp, fsubrp, fdivp and fdivrp with operands
-   reversed.  */
-#define OLDGCC_COMPAT SYSV386_COMPAT
-#endif
-
-static const template i386_optab[] =
-{
-
-#define X None
-#define NoSuf (No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf|No_qSuf)
-#define b_Suf (No_wSuf|No_lSuf|No_sSuf|No_xSuf|No_qSuf)
-#define w_Suf (No_bSuf|No_lSuf|No_sSuf|No_xSuf|No_qSuf)
-#define l_Suf (No_bSuf|No_wSuf|No_sSuf|No_xSuf|No_qSuf)
-#define q_Suf (No_bSuf|No_wSuf|No_sSuf|No_lSuf|No_xSuf)
-#define x_Suf (No_bSuf|No_wSuf|No_sSuf|No_lSuf|No_qSuf)
-#define bw_Suf (No_lSuf|No_sSuf|No_xSuf|No_qSuf)
-#define bl_Suf (No_wSuf|No_sSuf|No_xSuf|No_qSuf)
-#define wl_Suf (No_bSuf|No_sSuf|No_xSuf|No_qSuf)
-#define wlq_Suf (No_bSuf|No_sSuf|No_xSuf)
-#define lq_Suf (No_bSuf|No_wSuf|No_sSuf|No_xSuf)
-#define wq_Suf (No_bSuf|No_lSuf|No_sSuf|No_xSuf)
-#define sl_Suf (No_bSuf|No_wSuf|No_xSuf|No_qSuf)
-#define bwl_Suf (No_sSuf|No_xSuf|No_qSuf)
-#define bwlq_Suf (No_sSuf|No_xSuf)
-#define FP (NoSuf)
-#define l_FP (l_Suf)
-#define q_FP (q_Suf|NoRex64)
-#define x_FP (x_Suf|FloatMF)
-#define sl_FP (sl_Suf|FloatMF)
-#if SYSV386_COMPAT
-/* Someone forgot that the FloatR bit reverses the operation when not
-   equal to the FloatD bit.  ie. Changing only FloatD results in the
-   destination being swapped *and* the direction being reversed.  */
-#define FloatDR FloatD
-#else
-#define FloatDR (FloatD|FloatR)
-#endif
-
-/* Move instructions.  */
-#define MOV_AX_DISP32 0xa0
-/* We put the 64bit displacement first and we only mark constants
-   larger than 32bit as Disp64.  */
-{ "mov",   2,	0xa0, X, Cpu64,  bwlq_Suf|D|W,			{ Disp64, Acc, 0 } },
-{ "mov",   2,	0xa0, X, CpuNo64,bwl_Suf|D|W,			{ Disp16|Disp32, Acc, 0 } },
-{ "mov",   2,	0x88, X, 0,	 bwlq_Suf|D|W|Modrm,		{ Reg, Reg|AnyMem, 0} },
-/* In the 64bit mode the short form mov immediate is redefined to have
-   64bit value.  */
-{ "mov",   2,	0xb0, X, 0,	 bwl_Suf|W|ShortForm,		{ EncImm, Reg8|Reg16|Reg32, 0 } },
-{ "mov",   2,	0xc6, 0, 0,	 bwlq_Suf|W|Modrm,		{ EncImm, Reg|AnyMem, 0 } },
-{ "mov",   2,	0xb0, X, Cpu64,	 q_Suf|W|ShortForm,		{ Imm64, Reg64, 0 } },
-/* The segment register moves accept WordReg so that a segment register
-   can be copied to a 32 bit register, and vice versa, without using a
-   size prefix.  When moving to a 32 bit register, the upper 16 bits
-   are set to an implementation defined value (on the Pentium Pro,
-   the implementation defined value is zero).  */
-{ "mov",   2,	0x8c, X, 0,	 wl_Suf|Modrm,			{ SReg2, WordReg|InvMem, 0 } },
-{ "mov",   2,	0x8c, X, 0,	 w_Suf|Modrm|IgnoreSize,	{ SReg2, WordMem, 0 } },
-{ "mov",   2,	0x8c, X, Cpu386, wl_Suf|Modrm,			{ SReg3, WordReg|InvMem, 0 } },
-{ "mov",   2,	0x8c, X, Cpu386, w_Suf|Modrm|IgnoreSize,	{ SReg3, WordMem, 0 } },
-{ "mov",   2,	0x8e, X, 0,	 wl_Suf|Modrm|IgnoreSize,	{ WordReg, SReg2, 0 } },
-{ "mov",   2,	0x8e, X, 0,	 w_Suf|Modrm|IgnoreSize,	{ WordMem, SReg2, 0 } },
-{ "mov",   2,	0x8e, X, Cpu386, wl_Suf|Modrm|IgnoreSize,	{ WordReg, SReg3, 0 } },
-{ "mov",   2,	0x8e, X, Cpu386, w_Suf|Modrm|IgnoreSize,	{ WordMem, SReg3, 0 } },
-/* Move to/from control debug registers.  In the 16 or 32bit modes they are 32bit.  In the 64bit
-   mode they are 64bit.*/
-{ "mov",   2, 0x0f20, X, Cpu386|CpuNo64, l_Suf|D|Modrm|IgnoreSize,{ Control, Reg32|InvMem, 0} },
-{ "mov",   2, 0x0f20, X, Cpu64,	 q_Suf|D|Modrm|IgnoreSize|NoRex64,{ Control, Reg64|InvMem, 0} },
-{ "mov",   2, 0x0f21, X, Cpu386|CpuNo64, l_Suf|D|Modrm|IgnoreSize,{ Debug, Reg32|InvMem, 0} },
-{ "mov",   2, 0x0f21, X, Cpu64,	 q_Suf|D|Modrm|IgnoreSize|NoRex64,{ Debug, Reg64|InvMem, 0} },
-{ "mov",   2, 0x0f24, X, Cpu386|CpuNo64, l_Suf|D|Modrm|IgnoreSize,	{ Test, Reg32|InvMem, 0} },
-{ "movabs",2,	0xa0, X, Cpu64, bwlq_Suf|D|W,			{ Disp64, Acc, 0 } },
-{ "movabs",2,	0xb0, X, Cpu64,	q_Suf|W|ShortForm,		{ Imm64, Reg64, 0 } },
-
-/* Move with sign extend.  */
-/* "movsbl" & "movsbw" must not be unified into "movsb" to avoid
-   conflict with the "movs" string move instruction.  */
-{"movsbl", 2, 0x0fbe, X, Cpu386, NoSuf|Modrm,			{ Reg8|ByteMem, Reg32, 0} },
-{"movsbw", 2, 0x0fbe, X, Cpu386, NoSuf|Modrm,			{ Reg8|ByteMem, Reg16, 0} },
-{"movswl", 2, 0x0fbf, X, Cpu386, NoSuf|Modrm,			{ Reg16|ShortMem,Reg32, 0} },
-{"movsbq", 2, 0x0fbe, X, Cpu64,  NoSuf|Modrm|Rex64,		{ Reg8|ByteMem, Reg64, 0} },
-{"movswq", 2, 0x0fbf, X, Cpu64,  NoSuf|Modrm|Rex64,		{ Reg16|ShortMem,Reg64, 0} },
-{"movslq", 2,   0x63, X, Cpu64,  NoSuf|Modrm|Rex64,		{ Reg32|WordMem, Reg64, 0} },
-/* Intel Syntax next 3 insns */
-{"movsx",  2, 0x0fbe, X, Cpu386, b_Suf|Modrm,			{ Reg8|ByteMem, WordReg, 0} },
-{"movsx",  2, 0x0fbf, X, Cpu386, w_Suf|Modrm,			{ Reg16|ShortMem, Reg32|Reg64, 0} },
-{"movsx",  2,   0x63, X, Cpu64,  l_Suf|Modrm|Rex64,		{ Reg32|WordMem, Reg64, 0} },
-
-/* Move with zero extend.  We can't remove "movzb" since existing
-   assembly codes may use it.  */
-{"movzb",  2, 0x0fb6, X, Cpu386, wl_Suf|Modrm,			{ Reg8|ByteMem, WordReg, 0} },
-/* "movzbl" & "movzbw" should not be unified into "movzb" for
-   consistency with the sign extending moves above.  */
-{"movzbl", 2, 0x0fb6, X, Cpu386, NoSuf|Modrm,			{ Reg8|ByteMem, Reg32, 0} },
-{"movzbw", 2, 0x0fb6, X, Cpu386, NoSuf|Modrm,			{ Reg8|ByteMem, Reg16, 0} },
-{"movzwl", 2, 0x0fb7, X, Cpu386, NoSuf|Modrm,			{ Reg16|ShortMem, Reg32, 0} },
-/* These instructions are not particulary useful, since the zero extend
-   32->64 is implicit, but we can encode them.  */
-{"movzbq", 2, 0x0fb6, X, Cpu64,  NoSuf|Modrm|Rex64,		{ Reg8|ByteMem,   Reg64, 0} },
-{"movzwq", 2, 0x0fb7, X, Cpu64,  NoSuf|Modrm|Rex64,		{ Reg16|ShortMem, Reg64, 0} },
-/* Intel Syntax next 2 insns (the 64-bit variants are not particulary useful,
-   since the zero extend 32->64 is implicit, but we can encode them).  */
-{"movzx",  2, 0x0fb6, X, Cpu386, b_Suf|Modrm,			{ Reg8|ByteMem, WordReg, 0} },
-{"movzx",  2, 0x0fb7, X, Cpu386, w_Suf|Modrm,			{ Reg16|ShortMem, Reg32|Reg64, 0} },
-
-/* Push instructions.  */
-{"push",   1,	0x50, X, CpuNo64, wl_Suf|ShortForm|DefaultSize,	{ WordReg, 0, 0 } },
-{"push",   1,	0xff, 6, CpuNo64, wl_Suf|Modrm|DefaultSize,	{ WordReg|WordMem, 0, 0 } },
-{"push",   1,	0x6a, X, Cpu186|CpuNo64, wl_Suf|DefaultSize,	{ Imm8S, 0, 0} },
-{"push",   1,	0x68, X, Cpu186|CpuNo64, wl_Suf|DefaultSize,	{ Imm16|Imm32, 0, 0} },
-{"push",   1,	0x06, X, CpuNo64, wl_Suf|Seg2ShortForm|DefaultSize, { SReg2, 0, 0 } },
-{"push",   1, 0x0fa0, X, Cpu386|CpuNo64, wl_Suf|Seg3ShortForm|DefaultSize, { SReg3, 0, 0 } },
-/* In 64bit mode, the operand size is implicitly 64bit.  */
-{"push",   1,	0x50, X, Cpu64,	wq_Suf|ShortForm|DefaultSize|NoRex64, { Reg16|Reg64, 0, 0 } },
-{"push",   1,	0xff, 6, Cpu64,	wq_Suf|Modrm|DefaultSize|NoRex64, { Reg16|Reg64|WordMem, 0, 0 } },
-{"push",   1,	0x6a, X, Cpu64,	wq_Suf|DefaultSize|NoRex64, { Imm8S, 0, 0} },
-{"push",   1,	0x68, X, Cpu64,	wq_Suf|DefaultSize|NoRex64, { Imm32S|Imm16, 0, 0} },
-{"push",   1, 0x0fa0, X, Cpu64,	wq_Suf|Seg3ShortForm|DefaultSize|NoRex64, { SReg3, 0, 0 } },
-
-{"pusha",  0,	0x60, X, Cpu186|CpuNo64, wl_Suf|DefaultSize,	{ 0, 0, 0 } },
-
-/* Pop instructions.  */
-{"pop",	   1,	0x58, X, CpuNo64,	 wl_Suf|ShortForm|DefaultSize,	{ WordReg, 0, 0 } },
-{"pop",	   1,	0x8f, 0, CpuNo64,	 wl_Suf|Modrm|DefaultSize,	{ WordReg|WordMem, 0, 0 } },
-#define POP_SEG_SHORT 0x07
-{"pop",	   1,	0x07, X, CpuNo64,	 wl_Suf|Seg2ShortForm|DefaultSize, { SReg2, 0, 0 } },
-{"pop",	   1, 0x0fa1, X, Cpu386|CpuNo64, wl_Suf|Seg3ShortForm|DefaultSize, { SReg3, 0, 0 } },
-/* In 64bit mode, the operand size is implicitly 64bit.  */
-{"pop",	   1,	0x58, X, Cpu64,	 wq_Suf|ShortForm|DefaultSize|NoRex64,	{ Reg16|Reg64, 0, 0 } },
-{"pop",	   1,	0x8f, 0, Cpu64,	 wq_Suf|Modrm|DefaultSize|NoRex64,	{ Reg16|Reg64|WordMem, 0, 0 } },
-{"pop",	   1, 0x0fa1, X, Cpu64,  wq_Suf|Seg3ShortForm|DefaultSize|NoRex64, { SReg3, 0, 0 } },
-
-{"popa",   0,	0x61, X, Cpu186|CpuNo64, wl_Suf|DefaultSize,		{ 0, 0, 0 } },
-
-/* Exchange instructions.
-   xchg commutes:  we allow both operand orders.
- 
-   In the 64bit code, xchg rax, rax is reused for new nop instruction.  */
-{"xchg",   2,	0x90, X, CpuNo64, wl_Suf|ShortForm,	{ WordReg, Acc, 0 } },
-{"xchg",   2,	0x90, X, CpuNo64, wl_Suf|ShortForm,	{ Acc, WordReg, 0 } },
-{"xchg",   2,	0x90, X, Cpu64, wq_Suf|ShortForm,	{ Reg16|Reg64, Acc, 0 } },
-{"xchg",   2,	0x90, X, Cpu64, wq_Suf|ShortForm,	{ Acc, Reg16|Reg64, 0 } },
-{"xchg",   2,	0x86, X, 0,	 bwlq_Suf|W|Modrm,	{ Reg, Reg|AnyMem, 0 } },
-{"xchg",   2,	0x86, X, 0,	 bwlq_Suf|W|Modrm,	{ Reg|AnyMem, Reg, 0 } },
-
-/* In/out from ports.  */
-/* XXX should reject %rax */
-{"in",	   2,	0xe4, X, 0,	 bwl_Suf|W,		{ Imm8, Acc, 0 } },
-{"in",	   2,	0xec, X, 0,	 bwl_Suf|W,		{ InOutPortReg, Acc, 0 } },
-{"in",	   1,	0xe4, X, 0,	 bwl_Suf|W,		{ Imm8, 0, 0 } },
-{"in",	   1,	0xec, X, 0,	 bwl_Suf|W,		{ InOutPortReg, 0, 0 } },
-{"out",	   2,	0xe6, X, 0,	 bwl_Suf|W,		{ Acc, Imm8, 0 } },
-{"out",	   2,	0xee, X, 0,	 bwl_Suf|W,		{ Acc, InOutPortReg, 0 } },
-{"out",	   1,	0xe6, X, 0,	 bwl_Suf|W,		{ Imm8, 0, 0 } },
-{"out",	   1,	0xee, X, 0,	 bwl_Suf|W,		{ InOutPortReg, 0, 0 } },
-
-/* Load effective address.  */
-{"lea",	   2, 0x8d,   X, 0,	 wlq_Suf|Modrm,		{ WordMem, WordReg, 0 } },
-
-/* Load segment registers from memory.  */
-{"lds",	   2,	0xc5, X, CpuNo64, wl_Suf|Modrm,	{ WordMem, WordReg, 0} },
-{"les",	   2,	0xc4, X, CpuNo64, wl_Suf|Modrm,	{ WordMem, WordReg, 0} },
-{"lfs",	   2, 0x0fb4, X, Cpu386, wl_Suf|Modrm,		{ WordMem, WordReg, 0} },
-{"lgs",	   2, 0x0fb5, X, Cpu386, wl_Suf|Modrm,		{ WordMem, WordReg, 0} },
-{"lss",	   2, 0x0fb2, X, Cpu386, wl_Suf|Modrm,		{ WordMem, WordReg, 0} },
-
-/* Flags register instructions.  */
-{"clc",	   0,	0xf8, X, 0,	 NoSuf,			{ 0, 0, 0} },
-{"cld",	   0,	0xfc, X, 0,	 NoSuf,			{ 0, 0, 0} },
-{"cli",	   0,	0xfa, X, 0,	 NoSuf,			{ 0, 0, 0} },
-{"clts",   0, 0x0f06, X, Cpu286, NoSuf,			{ 0, 0, 0} },
-{"cmc",	   0,	0xf5, X, 0,	 NoSuf,			{ 0, 0, 0} },
-{"lahf",   0,	0x9f, X, 0,	 NoSuf,			{ 0, 0, 0} },
-{"sahf",   0,	0x9e, X, 0,	 NoSuf,			{ 0, 0, 0} },
-{"pushf",  0,	0x9c, X, CpuNo64,wl_Suf|DefaultSize,	{ 0, 0, 0} },
-{"pushf",  0,	0x9c, X, Cpu64,	 wq_Suf|DefaultSize|NoRex64,{ 0, 0, 0} },
-{"popf",   0,	0x9d, X, CpuNo64,wl_Suf|DefaultSize,	{ 0, 0, 0} },
-{"popf",   0,	0x9d, X, Cpu64,	 wq_Suf|DefaultSize|NoRex64,{ 0, 0, 0} },
-{"stc",	   0,	0xf9, X, 0,	 NoSuf,			{ 0, 0, 0} },
-{"std",	   0,	0xfd, X, 0,	 NoSuf,			{ 0, 0, 0} },
-{"sti",	   0,	0xfb, X, 0,	 NoSuf,			{ 0, 0, 0} },
-
-/* Arithmetic.  */
-{"add",	   2,	0x00, X, 0,	 bwlq_Suf|D|W|Modrm,	{ Reg, Reg|AnyMem, 0} },
-{"add",	   2,	0x83, 0, 0,	 wlq_Suf|Modrm,		{ Imm8S, WordReg|WordMem, 0} },
-{"add",	   2,	0x04, X, 0,	 bwlq_Suf|W,		{ EncImm, Acc, 0} },
-{"add",	   2,	0x80, 0, 0,	 bwlq_Suf|W|Modrm,	{ EncImm, Reg|AnyMem, 0} },
-
-{"inc",	   1,	0x40, X, CpuNo64,wl_Suf|ShortForm,	{ WordReg, 0, 0} },
-{"inc",	   1,	0xfe, 0, 0,	 bwlq_Suf|W|Modrm,	{ Reg|AnyMem, 0, 0} },
-
-{"sub",	   2,	0x28, X, 0,	 bwlq_Suf|D|W|Modrm,	{ Reg, Reg|AnyMem, 0} },
-{"sub",	   2,	0x83, 5, 0,	 wlq_Suf|Modrm,		{ Imm8S, WordReg|WordMem, 0} },
-{"sub",	   2,	0x2c, X, 0,	 bwlq_Suf|W,		{ EncImm, Acc, 0} },
-{"sub",	   2,	0x80, 5, 0,	 bwlq_Suf|W|Modrm,	{ EncImm, Reg|AnyMem, 0} },
-
-{"dec",	   1,	0x48, X, CpuNo64, wl_Suf|ShortForm,	{ WordReg, 0, 0} },
-{"dec",	   1,	0xfe, 1, 0,	 bwlq_Suf|W|Modrm,	{ Reg|AnyMem, 0, 0} },
-
-{"sbb",	   2,	0x18, X, 0,	 bwlq_Suf|D|W|Modrm,	{ Reg, Reg|AnyMem, 0} },
-{"sbb",	   2,	0x83, 3, 0,	 wlq_Suf|Modrm,		{ Imm8S, WordReg|WordMem, 0} },
-{"sbb",	   2,	0x1c, X, 0,	 bwlq_Suf|W,		{ EncImm, Acc, 0} },
-{"sbb",	   2,	0x80, 3, 0,	 bwlq_Suf|W|Modrm,	{ EncImm, Reg|AnyMem, 0} },
-
-{"cmp",	   2,	0x38, X, 0,	 bwlq_Suf|D|W|Modrm,	{ Reg, Reg|AnyMem, 0} },
-{"cmp",	   2,	0x83, 7, 0,	 wlq_Suf|Modrm,		{ Imm8S, WordReg|WordMem, 0} },
-{"cmp",	   2,	0x3c, X, 0,	 bwlq_Suf|W,		{ EncImm, Acc, 0} },
-{"cmp",	   2,	0x80, 7, 0,	 bwlq_Suf|W|Modrm,	{ EncImm, Reg|AnyMem, 0} },
-
-{"test",   2,	0x84, X, 0,	 bwlq_Suf|W|Modrm,	{ Reg|AnyMem, Reg, 0} },
-{"test",   2,	0x84, X, 0,	 bwlq_Suf|W|Modrm,	{ Reg, Reg|AnyMem, 0} },
-{"test",   2,	0xa8, X, 0,	 bwlq_Suf|W,		{ EncImm, Acc, 0} },
-{"test",   2,	0xf6, 0, 0,	 bwlq_Suf|W|Modrm,	{ EncImm, Reg|AnyMem, 0} },
-
-{"and",	   2,	0x20, X, 0,	 bwlq_Suf|D|W|Modrm,	{ Reg, Reg|AnyMem, 0} },
-{"and",	   2,	0x83, 4, 0,	 wlq_Suf|Modrm,		{ Imm8S, WordReg|WordMem, 0} },
-{"and",	   2,	0x24, X, 0,	 bwlq_Suf|W,		{ EncImm, Acc, 0} },
-{"and",	   2,	0x80, 4, 0,	 bwlq_Suf|W|Modrm,	{ EncImm, Reg|AnyMem, 0} },
-
-{"or",	   2,	0x08, X, 0,	 bwlq_Suf|D|W|Modrm,	{ Reg, Reg|AnyMem, 0} },
-{"or",	   2,	0x83, 1, 0,	 wlq_Suf|Modrm,		{ Imm8S, WordReg|WordMem, 0} },
-{"or",	   2,	0x0c, X, 0,	 bwlq_Suf|W,		{ EncImm, Acc, 0} },
-{"or",	   2,	0x80, 1, 0,	 bwlq_Suf|W|Modrm,	{ EncImm, Reg|AnyMem, 0} },
-
-{"xor",	   2,	0x30, X, 0,	 bwlq_Suf|D|W|Modrm,	{ Reg, Reg|AnyMem, 0} },
-{"xor",	   2,	0x83, 6, 0,	 wlq_Suf|Modrm,		{ Imm8S, WordReg|WordMem, 0} },
-{"xor",	   2,	0x34, X, 0,	 bwlq_Suf|W,		{ EncImm, Acc, 0} },
-{"xor",	   2,	0x80, 6, 0,	 bwlq_Suf|W|Modrm,	{ EncImm, Reg|AnyMem, 0} },
-
-/* clr with 1 operand is really xor with 2 operands.  */
-{"clr",	   1,	0x30, X, 0,	 bwlq_Suf|W|Modrm|regKludge,	{ Reg, 0, 0 } },
-
-{"adc",	   2,	0x10, X, 0,	 bwlq_Suf|D|W|Modrm,	{ Reg, Reg|AnyMem, 0} },
-{"adc",	   2,	0x83, 2, 0,	 wlq_Suf|Modrm,		{ Imm8S, WordReg|WordMem, 0} },
-{"adc",	   2,	0x14, X, 0,	 bwlq_Suf|W,		{ EncImm, Acc, 0} },
-{"adc",	   2,	0x80, 2, 0,	 bwlq_Suf|W|Modrm,	{ EncImm, Reg|AnyMem, 0} },
-
-{"neg",	   1,	0xf6, 3, 0,	 bwlq_Suf|W|Modrm,	{ Reg|AnyMem, 0, 0} },
-{"not",	   1,	0xf6, 2, 0,	 bwlq_Suf|W|Modrm,	{ Reg|AnyMem, 0, 0} },
-
-{"aaa",	   0,	0x37, X, CpuNo64,	 NoSuf,			{ 0, 0, 0} },
-{"aas",	   0,	0x3f, X, CpuNo64,	NoSuf,			{ 0, 0, 0} },
-{"daa",	   0,	0x27, X, CpuNo64,	NoSuf,			{ 0, 0, 0} },
-{"das",	   0,	0x2f, X, CpuNo64,	NoSuf,			{ 0, 0, 0} },
-{"aad",	   0, 0xd50a, X, CpuNo64,	NoSuf,			{ 0, 0, 0} },
-{"aad",	   1,   0xd5, X, CpuNo64,	NoSuf,			{ Imm8, 0, 0} },
-{"aam",	   0, 0xd40a, X, CpuNo64,	NoSuf,			{ 0, 0, 0} },
-{"aam",	   1,   0xd4, X, CpuNo64,	NoSuf,			{ Imm8, 0, 0} },
-
-/* Conversion insns.  */
-/* Intel naming */
-{"cbw",	   0,	0x98, X, 0,	 NoSuf|Size16,		{ 0, 0, 0} },
-{"cdqe",   0,	0x98, X, Cpu64,	 NoSuf|Size64,		{ 0, 0, 0} },
-{"cwde",   0,	0x98, X, 0,	 NoSuf|Size32,		{ 0, 0, 0} },
-{"cwd",	   0,	0x99, X, 0,	 NoSuf|Size16,		{ 0, 0, 0} },
-{"cdq",	   0,	0x99, X, 0,	 NoSuf|Size32,		{ 0, 0, 0} },
-{"cqo",	   0,	0x99, X, Cpu64,	 NoSuf|Size64,		{ 0, 0, 0} },
-/* AT&T naming */
-{"cbtw",   0,	0x98, X, 0,	 NoSuf|Size16,		{ 0, 0, 0} },
-{"cltq",   0,	0x98, X, Cpu64,	 NoSuf|Size64,		{ 0, 0, 0} },
-{"cwtl",   0,	0x98, X, 0,	 NoSuf|Size32,		{ 0, 0, 0} },
-{"cwtd",   0,	0x99, X, 0,	 NoSuf|Size16,		{ 0, 0, 0} },
-{"cltd",   0,	0x99, X, 0,	 NoSuf|Size32,		{ 0, 0, 0} },
-{"cqto",   0,	0x99, X, Cpu64,	 NoSuf|Size64,		{ 0, 0, 0} },
-
-/* Warning! the mul/imul (opcode 0xf6) must only have 1 operand!  They are
-   expanding 64-bit multiplies, and *cannot* be selected to accomplish
-   'imul %ebx, %eax' (opcode 0x0faf must be used in this case)
-   These multiplies can only be selected with single operand forms.  */
-{"mul",	   1,	0xf6, 4, 0,	 bwlq_Suf|W|Modrm,	{ Reg|AnyMem, 0, 0} },
-{"imul",   1,	0xf6, 5, 0,	 bwlq_Suf|W|Modrm,	{ Reg|AnyMem, 0, 0} },
-{"imul",   2, 0x0faf, X, Cpu386, wlq_Suf|Modrm,		{ WordReg|WordMem, WordReg, 0} },
-{"imul",   3,	0x6b, X, Cpu186, wlq_Suf|Modrm,		{ Imm8S, WordReg|WordMem, WordReg} },
-{"imul",   3,	0x69, X, Cpu186, wlq_Suf|Modrm,		{ Imm16|Imm32S|Imm32, WordReg|WordMem, WordReg} },
-/* imul with 2 operands mimics imul with 3 by putting the register in
-   both i.rm.reg & i.rm.regmem fields.  regKludge enables this
-   transformation.  */
-{"imul",   2,	0x6b, X, Cpu186, wlq_Suf|Modrm|regKludge,{ Imm8S, WordReg, 0} },
-{"imul",   2,	0x69, X, Cpu186, wlq_Suf|Modrm|regKludge,{ Imm16|Imm32S|Imm32, WordReg, 0} },
-
-{"div",	   1,	0xf6, 6, 0,	 bwlq_Suf|W|Modrm,	{ Reg|AnyMem, 0, 0} },
-{"div",	   2,	0xf6, 6, 0,	 bwlq_Suf|W|Modrm,	{ Reg|AnyMem, Acc, 0} },
-{"idiv",   1,	0xf6, 7, 0,	 bwlq_Suf|W|Modrm,	{ Reg|AnyMem, 0, 0} },
-{"idiv",   2,	0xf6, 7, 0,	 bwlq_Suf|W|Modrm,	{ Reg|AnyMem, Acc, 0} },
-
-{"rol",	   2,	0xd0, 0, 0,	 bwlq_Suf|W|Modrm,	{ Imm1, Reg|AnyMem, 0} },
-{"rol",	   2,	0xc0, 0, Cpu186, bwlq_Suf|W|Modrm,	{ Imm8, Reg|AnyMem, 0} },
-{"rol",	   2,	0xd2, 0, 0,	 bwlq_Suf|W|Modrm,	{ ShiftCount, Reg|AnyMem, 0} },
-{"rol",	   1,	0xd0, 0, 0,	 bwlq_Suf|W|Modrm,	{ Reg|AnyMem, 0, 0} },
-
-{"ror",	   2,	0xd0, 1, 0,	 bwlq_Suf|W|Modrm,	{ Imm1, Reg|AnyMem, 0} },
-{"ror",	   2,	0xc0, 1, Cpu186, bwlq_Suf|W|Modrm,	{ Imm8, Reg|AnyMem, 0} },
-{"ror",	   2,	0xd2, 1, 0,	 bwlq_Suf|W|Modrm,	{ ShiftCount, Reg|AnyMem, 0} },
-{"ror",	   1,	0xd0, 1, 0,	 bwlq_Suf|W|Modrm,	{ Reg|AnyMem, 0, 0} },
-
-{"rcl",	   2,	0xd0, 2, 0,	 bwlq_Suf|W|Modrm,	{ Imm1, Reg|AnyMem, 0} },
-{"rcl",	   2,	0xc0, 2, Cpu186, bwlq_Suf|W|Modrm,	{ Imm8, Reg|AnyMem, 0} },
-{"rcl",	   2,	0xd2, 2, 0,	 bwlq_Suf|W|Modrm,	{ ShiftCount, Reg|AnyMem, 0} },
-{"rcl",	   1,	0xd0, 2, 0,	 bwlq_Suf|W|Modrm,	{ Reg|AnyMem, 0, 0} },
-
-{"rcr",	   2,	0xd0, 3, 0,	 bwlq_Suf|W|Modrm,	{ Imm1, Reg|AnyMem, 0} },
-{"rcr",	   2,	0xc0, 3, Cpu186, bwlq_Suf|W|Modrm,	{ Imm8, Reg|AnyMem, 0} },
-{"rcr",	   2,	0xd2, 3, 0,	 bwlq_Suf|W|Modrm,	{ ShiftCount, Reg|AnyMem, 0} },
-{"rcr",	   1,	0xd0, 3, 0,	 bwlq_Suf|W|Modrm,	{ Reg|AnyMem, 0, 0} },
-
-{"sal",	   2,	0xd0, 4, 0,	 bwlq_Suf|W|Modrm,	{ Imm1, Reg|AnyMem, 0} },
-{"sal",	   2,	0xc0, 4, Cpu186, bwlq_Suf|W|Modrm,	{ Imm8, Reg|AnyMem, 0} },
-{"sal",	   2,	0xd2, 4, 0,	 bwlq_Suf|W|Modrm,	{ ShiftCount, Reg|AnyMem, 0} },
-{"sal",	   1,	0xd0, 4, 0,	 bwlq_Suf|W|Modrm,	{ Reg|AnyMem, 0, 0} },
-
-{"shl",	   2,	0xd0, 4, 0,	 bwlq_Suf|W|Modrm,	{ Imm1, Reg|AnyMem, 0} },
-{"shl",	   2,	0xc0, 4, Cpu186, bwlq_Suf|W|Modrm,	{ Imm8, Reg|AnyMem, 0} },
-{"shl",	   2,	0xd2, 4, 0,	 bwlq_Suf|W|Modrm,	{ ShiftCount, Reg|AnyMem, 0} },
-{"shl",	   1,	0xd0, 4, 0,	 bwlq_Suf|W|Modrm,	{ Reg|AnyMem, 0, 0} },
-
-{"shr",	   2,	0xd0, 5, 0,	 bwlq_Suf|W|Modrm,	{ Imm1, Reg|AnyMem, 0} },
-{"shr",	   2,	0xc0, 5, Cpu186, bwlq_Suf|W|Modrm,	{ Imm8, Reg|AnyMem, 0} },
-{"shr",	   2,	0xd2, 5, 0,	 bwlq_Suf|W|Modrm,	{ ShiftCount, Reg|AnyMem, 0} },
-{"shr",	   1,	0xd0, 5, 0,	 bwlq_Suf|W|Modrm,	{ Reg|AnyMem, 0, 0} },
-
-{"sar",	   2,	0xd0, 7, 0,	 bwlq_Suf|W|Modrm,	{ Imm1, Reg|AnyMem, 0} },
-{"sar",	   2,	0xc0, 7, Cpu186, bwlq_Suf|W|Modrm,	{ Imm8, Reg|AnyMem, 0} },
-{"sar",	   2,	0xd2, 7, 0,	 bwlq_Suf|W|Modrm,	{ ShiftCount, Reg|AnyMem, 0} },
-{"sar",	   1,	0xd0, 7, 0,	 bwlq_Suf|W|Modrm,	{ Reg|AnyMem, 0, 0} },
-
-{"shld",   3, 0x0fa4, X, Cpu386, wlq_Suf|Modrm,		{ Imm8, WordReg, WordReg|WordMem} },
-{"shld",   3, 0x0fa5, X, Cpu386, wlq_Suf|Modrm,		{ ShiftCount, WordReg, WordReg|WordMem} },
-{"shld",   2, 0x0fa5, X, Cpu386, wlq_Suf|Modrm,		{ WordReg, WordReg|WordMem, 0} },
-
-{"shrd",   3, 0x0fac, X, Cpu386, wlq_Suf|Modrm,		{ Imm8, WordReg, WordReg|WordMem} },
-{"shrd",   3, 0x0fad, X, Cpu386, wlq_Suf|Modrm,		{ ShiftCount, WordReg, WordReg|WordMem} },
-{"shrd",   2, 0x0fad, X, Cpu386, wlq_Suf|Modrm,		{ WordReg, WordReg|WordMem, 0} },
-
-/* Control transfer instructions.  */
-{"call",   1,	0xe8, X, CpuNo64, wl_Suf|JumpDword|DefaultSize,	{ Disp16|Disp32, 0, 0} },
-{"call",   1,	0xe8, X, Cpu64,	 wq_Suf|JumpDword|DefaultSize|NoRex64, { Disp16|Disp32, 0, 0} },
-{"call",   1,	0xff, 2, CpuNo64, wl_Suf|Modrm|DefaultSize,	{ WordReg|WordMem|JumpAbsolute, 0, 0} },
-{"call",   1,	0xff, 2, Cpu64,	 wq_Suf|Modrm|DefaultSize|NoRex64, { Reg16|Reg64|WordMem|LLongMem|JumpAbsolute, 0, 0} },
-/* Intel Syntax */
-{"call",   2,	0x9a, X, CpuNo64, wl_Suf|JumpInterSegment|DefaultSize, { Imm16, Imm16|Imm32, 0} },
-/* Intel Syntax */
-{"call",   1,	0xff, 3, 0,	 x_Suf|Modrm|DefaultSize,	{WordMem|JumpAbsolute, 0, 0} },
-{"lcall",  2,	0x9a, X, CpuNo64, wl_Suf|JumpInterSegment|DefaultSize, {Imm16, Imm16|Imm32, 0} },
-{"lcall",  1,	0xff, 3, 0,	 wl_Suf|Modrm|DefaultSize,	{WordMem|JumpAbsolute, 0, 0} },
-
-#define JUMP_PC_RELATIVE 0xeb
-{"jmp",	   1,	0xeb, X, 0,	 NoSuf|Jump,		{ Disp,0, 0} },
-{"jmp",	   1,	0xff, 4, CpuNo64, wl_Suf|Modrm,		{ WordReg|WordMem|JumpAbsolute, 0, 0} },
-{"jmp",	   1,	0xff, 4, Cpu64,	 wq_Suf|Modrm|NoRex64,	{ Reg16|Reg64|ShortMem|LLongMem|JumpAbsolute, 0, 0} },
-/* Intel Syntax.  */
-{"jmp",    2,	0xea, X, CpuNo64,wl_Suf|JumpInterSegment, { Imm16, Imm16|Imm32, 0} },
-/* Intel Syntax.  */
-{"jmp",    1,	0xff, 5, 0,	 x_Suf|Modrm,		{ WordMem|JumpAbsolute, 0, 0} },
-{"ljmp",   2,	0xea, X, CpuNo64, wl_Suf|JumpInterSegment, { Imm16, Imm16|Imm32, 0} },
-{"ljmp",   1,	0xff, 5, 0,	 wl_Suf|Modrm,		{ WordMem|JumpAbsolute, 0, 0} },
-
-{"ret",	   0,	0xc3, X, CpuNo64,wl_Suf|DefaultSize,	{ 0, 0, 0} },
-{"ret",	   1,	0xc2, X, CpuNo64,wl_Suf|DefaultSize,	{ Imm16, 0, 0} },
-{"ret",	   0,	0xc3, X, Cpu64,  wq_Suf|DefaultSize|NoRex64,{ 0, 0, 0} },
-{"ret",	   1,	0xc2, X, Cpu64,  wq_Suf|DefaultSize|NoRex64,{ Imm16, 0, 0} },
-{"lret",   0,	0xcb, X, 0,	 wlq_Suf|DefaultSize,	{ 0, 0, 0} },
-{"lret",   1,	0xca, X, 0,	 wlq_Suf|DefaultSize,	{ Imm16, 0, 0} },
-{"enter",  2,	0xc8, X, Cpu186|CpuNo64, wl_Suf|DefaultSize,	{ Imm16, Imm8, 0} },
-{"enter",  2,	0xc8, X, Cpu64,  wq_Suf|DefaultSize|NoRex64,	{ Imm16, Imm8, 0} },
-{"leave",  0,	0xc9, X, Cpu186|CpuNo64, wl_Suf|DefaultSize,	{ 0, 0, 0} },
-{"leave",  0,	0xc9, X, Cpu64,  wq_Suf|DefaultSize|NoRex64,	{ 0, 0, 0} },
-
-/* Conditional jumps.  */
-{"jo",	   1,	0x70, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jno",	   1,	0x71, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jb",	   1,	0x72, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jc",	   1,	0x72, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jnae",   1,	0x72, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jnb",	   1,	0x73, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jnc",	   1,	0x73, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jae",	   1,	0x73, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"je",	   1,	0x74, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jz",	   1,	0x74, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jne",	   1,	0x75, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jnz",	   1,	0x75, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jbe",	   1,	0x76, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jna",	   1,	0x76, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jnbe",   1,	0x77, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"ja",	   1,	0x77, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"js",	   1,	0x78, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jns",	   1,	0x79, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jp",	   1,	0x7a, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jpe",	   1,	0x7a, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jnp",	   1,	0x7b, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jpo",	   1,	0x7b, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jl",	   1,	0x7c, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jnge",   1,	0x7c, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jnl",	   1,	0x7d, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jge",	   1,	0x7d, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jle",	   1,	0x7e, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jng",	   1,	0x7e, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jnle",   1,	0x7f, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-{"jg",	   1,	0x7f, X, 0,	 NoSuf|Jump,		{ Disp, 0, 0} },
-
-/* jcxz vs. jecxz is chosen on the basis of the address size prefix.  */
-{"jcxz",  1,	0xe3, X, CpuNo64,NoSuf|JumpByte|Size16, { Disp, 0, 0} },
-{"jecxz",  1,	0xe3, X, CpuNo64,NoSuf|JumpByte|Size32, { Disp, 0, 0} },
-{"jecxz",  1,	0x67e3, X, Cpu64,NoSuf|JumpByte|Size32, { Disp, 0, 0} },
-{"jrcxz",  1,	0xe3, X, Cpu64,  NoSuf|JumpByte|Size64|NoRex64, { Disp, 0, 0} },
-
-/* The loop instructions also use the address size prefix to select
-   %cx rather than %ecx for the loop count, so the `w' form of these
-   instructions emit an address size prefix rather than a data size
-   prefix.  */
-{"loop",   1,	0xe2, X, CpuNo64,wl_Suf|JumpByte,{ Disp, 0, 0} },
-{"loop",   1,	0xe2, X, Cpu64,	 lq_Suf|JumpByte|NoRex64,{ Disp, 0, 0} },
-{"loopz",  1,	0xe1, X, CpuNo64,wl_Suf|JumpByte,{ Disp, 0, 0} },
-{"loopz",  1,	0xe1, X, Cpu64,	 lq_Suf|JumpByte|NoRex64,{ Disp, 0, 0} },
-{"loope",  1,	0xe1, X, CpuNo64,wl_Suf|JumpByte,{ Disp, 0, 0} },
-{"loope",  1,	0xe1, X, Cpu64,	 lq_Suf|JumpByte|NoRex64,{ Disp, 0, 0} },
-{"loopnz", 1,	0xe0, X, CpuNo64,wl_Suf|JumpByte,{ Disp, 0, 0} },
-{"loopnz", 1,	0xe0, X, Cpu64,	 lq_Suf|JumpByte|NoRex64,{ Disp, 0, 0} },
-{"loopne", 1,	0xe0, X, CpuNo64,wl_Suf|JumpByte,{ Disp, 0, 0} },
-{"loopne", 1,	0xe0, X, Cpu64,	 lq_Suf|JumpByte|NoRex64,{ Disp, 0, 0} },
-
-/* Set byte on flag instructions.  */
-{"seto",   1, 0x0f90, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setno",  1, 0x0f91, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setb",   1, 0x0f92, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setc",   1, 0x0f92, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setnae", 1, 0x0f92, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setnb",  1, 0x0f93, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setnc",  1, 0x0f93, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setae",  1, 0x0f93, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"sete",   1, 0x0f94, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setz",   1, 0x0f94, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setne",  1, 0x0f95, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setnz",  1, 0x0f95, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setbe",  1, 0x0f96, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setna",  1, 0x0f96, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setnbe", 1, 0x0f97, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"seta",   1, 0x0f97, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"sets",   1, 0x0f98, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setns",  1, 0x0f99, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setp",   1, 0x0f9a, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setpe",  1, 0x0f9a, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setnp",  1, 0x0f9b, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setpo",  1, 0x0f9b, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setl",   1, 0x0f9c, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setnge", 1, 0x0f9c, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setnl",  1, 0x0f9d, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setge",  1, 0x0f9d, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setle",  1, 0x0f9e, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setng",  1, 0x0f9e, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setnle", 1, 0x0f9f, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-{"setg",   1, 0x0f9f, 0, Cpu386, b_Suf|Modrm,		{ Reg8|ByteMem, 0, 0} },
-
-/* String manipulation.  */
-{"cmps",   0,	0xa6, X, 0,	 bwlq_Suf|W|IsString,	{ 0, 0, 0} },
-{"cmps",   2,	0xa6, X, 0,	 bwlq_Suf|W|IsString,	{ AnyMem|EsSeg, AnyMem, 0} },
-{"scmp",   0,	0xa6, X, 0,	 bwlq_Suf|W|IsString,	{ 0, 0, 0} },
-{"scmp",   2,	0xa6, X, 0,	 bwlq_Suf|W|IsString,	{ AnyMem|EsSeg, AnyMem, 0} },
-{"ins",	   0,	0x6c, X, Cpu186, bwl_Suf|W|IsString,	{ 0, 0, 0} },
-{"ins",	   2,	0x6c, X, Cpu186, bwl_Suf|W|IsString,	{ InOutPortReg, AnyMem|EsSeg, 0} },
-{"outs",   0,	0x6e, X, Cpu186, bwl_Suf|W|IsString,	{ 0, 0, 0} },
-{"outs",   2,	0x6e, X, Cpu186, bwl_Suf|W|IsString,	{ AnyMem, InOutPortReg, 0} },
-{"lods",   0,	0xac, X, 0,	 bwlq_Suf|W|IsString,	{ 0, 0, 0} },
-{"lods",   1,	0xac, X, 0,	 bwlq_Suf|W|IsString,	{ AnyMem, 0, 0} },
-{"lods",   2,	0xac, X, 0,	 bwlq_Suf|W|IsString,	{ AnyMem, Acc, 0} },
-{"slod",   0,	0xac, X, 0,	 bwlq_Suf|W|IsString,	{ 0, 0, 0} },
-{"slod",   1,	0xac, X, 0,	 bwlq_Suf|W|IsString,	{ AnyMem, 0, 0} },
-{"slod",   2,	0xac, X, 0,	 bwlq_Suf|W|IsString,	{ AnyMem, Acc, 0} },
-{"movs",   0,	0xa4, X, 0,	 bwlq_Suf|W|IsString,	{ 0, 0, 0} },
-{"movs",   2,	0xa4, X, 0,	 bwlq_Suf|W|IsString,	{ AnyMem, AnyMem|EsSeg, 0} },
-{"smov",   0,	0xa4, X, 0,	 bwlq_Suf|W|IsString,	{ 0, 0, 0} },
-{"smov",   2,	0xa4, X, 0,	 bwlq_Suf|W|IsString,	{ AnyMem, AnyMem|EsSeg, 0} },
-{"scas",   0,	0xae, X, 0,	 bwlq_Suf|W|IsString,	{ 0, 0, 0} },
-{"scas",   1,	0xae, X, 0,	 bwlq_Suf|W|IsString,	{ AnyMem|EsSeg, 0, 0} },
-{"scas",   2,	0xae, X, 0,	 bwlq_Suf|W|IsString,	{ AnyMem|EsSeg, Acc, 0} },
-{"ssca",   0,	0xae, X, 0,	 bwlq_Suf|W|IsString,	{ 0, 0, 0} },
-{"ssca",   1,	0xae, X, 0,	 bwlq_Suf|W|IsString,	{ AnyMem|EsSeg, 0, 0} },
-{"ssca",   2,	0xae, X, 0,	 bwlq_Suf|W|IsString,	{ AnyMem|EsSeg, Acc, 0} },
-{"stos",   0,	0xaa, X, 0,	 bwlq_Suf|W|IsString,	{ 0, 0, 0} },
-{"stos",   1,	0xaa, X, 0,	 bwlq_Suf|W|IsString,	{ AnyMem|EsSeg, 0, 0} },
-{"stos",   2,	0xaa, X, 0,	 bwlq_Suf|W|IsString,	{ Acc, AnyMem|EsSeg, 0} },
-{"ssto",   0,	0xaa, X, 0,	 bwlq_Suf|W|IsString,	{ 0, 0, 0} },
-{"ssto",   1,	0xaa, X, 0,	 bwlq_Suf|W|IsString,	{ AnyMem|EsSeg, 0, 0} },
-{"ssto",   2,	0xaa, X, 0,	 bwlq_Suf|W|IsString,	{ Acc, AnyMem|EsSeg, 0} },
-{"xlat",   0,	0xd7, X, 0,	 b_Suf|IsString,	{ 0, 0, 0} },
-{"xlat",   1,	0xd7, X, 0,	 b_Suf|IsString,	{ AnyMem, 0, 0} },
-
-/* Bit manipulation.  */
-{"bsf",	   2, 0x0fbc, X, Cpu386, wlq_Suf|Modrm,		{ WordReg|WordMem, WordReg, 0} },
-{"bsr",	   2, 0x0fbd, X, Cpu386, wlq_Suf|Modrm,		{ WordReg|WordMem, WordReg, 0} },
-{"bt",	   2, 0x0fa3, X, Cpu386, wlq_Suf|Modrm,		{ WordReg, WordReg|WordMem, 0} },
-{"bt",	   2, 0x0fba, 4, Cpu386, wlq_Suf|Modrm,		{ Imm8, WordReg|WordMem, 0} },
-{"btc",	   2, 0x0fbb, X, Cpu386, wlq_Suf|Modrm,		{ WordReg, WordReg|WordMem, 0} },
-{"btc",	   2, 0x0fba, 7, Cpu386, wlq_Suf|Modrm,		{ Imm8, WordReg|WordMem, 0} },
-{"btr",	   2, 0x0fb3, X, Cpu386, wlq_Suf|Modrm,		{ WordReg, WordReg|WordMem, 0} },
-{"btr",	   2, 0x0fba, 6, Cpu386, wlq_Suf|Modrm,		{ Imm8, WordReg|WordMem, 0} },
-{"bts",	   2, 0x0fab, X, Cpu386, wlq_Suf|Modrm,		{ WordReg, WordReg|WordMem, 0} },
-{"bts",	   2, 0x0fba, 5, Cpu386, wlq_Suf|Modrm,		{ Imm8, WordReg|WordMem, 0} },
-
-/* Interrupts & op. sys insns.  */
-/* See gas/config/tc-i386.c for conversion of 'int $3' into the special
-   int 3 insn.  */
-#define INT_OPCODE  0xcd
-#define INT3_OPCODE 0xcc
-{"int",	   1,	0xcd, X, 0,	 NoSuf,			{ Imm8, 0, 0} },
-{"int3",   0,	0xcc, X, 0,	 NoSuf,			{ 0, 0, 0} },
-{"into",   0,	0xce, X, CpuNo64,	 NoSuf,			{ 0, 0, 0} },
-{"iret",   0,	0xcf, X, 0,	 wlq_Suf|DefaultSize,	{ 0, 0, 0} },
-/* i386sl, i486sl, later 486, and Pentium.  */
-{"rsm",	   0, 0x0faa, X, Cpu386, NoSuf,			{ 0, 0, 0} },
-
-{"bound",  2,	0x62, X, Cpu186|CpuNo64, wl_Suf|Modrm,		{ WordReg, WordMem, 0} },
-
-{"hlt",	   0,	0xf4, X, 0,	 NoSuf,			{ 0, 0, 0} },
-
-{"nop",    1, 0x0f1f, X, Cpu686, wl_Suf|Modrm,		{ WordMem, 0, 0} },
-
-/* nop is actually "xchg %ax,%ax" in 16bit mode, "xchg %eax,%eax" in
-   32bit mode and "xchg %rax,%rax" in 64bit mode.  */
-{"nop",	   0,	0x90, X, 0,	 NoSuf,			{ 0, 0, 0} },
-
-/* Protection control.  */
-{"arpl",   2,	0x63, X, Cpu286|CpuNo64, w_Suf|Modrm|IgnoreSize,{ Reg16, Reg16|ShortMem, 0} },
-{"lar",	   2, 0x0f02, X, Cpu286, wlq_Suf|Modrm,		{ WordReg|WordMem, WordReg, 0} },
-{"lgdt",   1, 0x0f01, 2, Cpu286|CpuNo64, wl_Suf|Modrm,		{ WordMem, 0, 0} },
-{"lgdt",   1, 0x0f01, 2, Cpu64, q_Suf|Modrm|NoRex64,		{ LLongMem, 0, 0} },
-{"lidt",   1, 0x0f01, 3, Cpu286|CpuNo64, wl_Suf|Modrm,		{ WordMem, 0, 0} },
-{"lidt",   1, 0x0f01, 3, Cpu64, q_Suf|Modrm|NoRex64,		{ LLongMem, 0, 0} },
-{"lldt",   1, 0x0f00, 2, Cpu286, w_Suf|Modrm|IgnoreSize,{ Reg16|ShortMem, 0, 0} },
-{"lmsw",   1, 0x0f01, 6, Cpu286, w_Suf|Modrm|IgnoreSize,{ Reg16|ShortMem, 0, 0} },
-{"lsl",	   2, 0x0f03, X, Cpu286, wlq_Suf|Modrm,		{ WordReg|WordMem, WordReg, 0} },
-{"ltr",	   1, 0x0f00, 3, Cpu286, w_Suf|Modrm|IgnoreSize,{ Reg16|ShortMem, 0, 0} },
-
-{"sgdt",   1, 0x0f01, 0, Cpu286|CpuNo64, wl_Suf|Modrm,		{ WordMem, 0, 0} },
-{"sgdt",   1, 0x0f01, 0, Cpu64, q_Suf|Modrm|NoRex64,		{ LLongMem, 0, 0} },
-{"sidt",   1, 0x0f01, 1, Cpu286|CpuNo64, wl_Suf|Modrm,		{ WordMem, 0, 0} },
-{"sidt",   1, 0x0f01, 1, Cpu64, q_Suf|Modrm|NoRex64,		{ LLongMem, 0, 0} },
-{"sldt",   1, 0x0f00, 0, Cpu286, wlq_Suf|Modrm,		{ WordReg|InvMem, 0, 0} },
-{"sldt",   1, 0x0f00, 0, Cpu286, w_Suf|Modrm|IgnoreSize,{ ShortMem, 0, 0} },
-{"smsw",   1, 0x0f01, 4, Cpu286, wlq_Suf|Modrm,		{ WordReg|InvMem, 0, 0} },
-{"smsw",   1, 0x0f01, 4, Cpu286, w_Suf|Modrm|IgnoreSize,{ ShortMem, 0, 0} },
-{"str",	   1, 0x0f00, 1, Cpu286, wlq_Suf|Modrm,		{ WordReg|InvMem, 0, 0} },
-{"str",	   1, 0x0f00, 1, Cpu286, w_Suf|Modrm|IgnoreSize,{ ShortMem, 0, 0} },
-
-{"verr",   1, 0x0f00, 4, Cpu286, w_Suf|Modrm|IgnoreSize,{ Reg16|ShortMem, 0, 0} },
-{"verw",   1, 0x0f00, 5, Cpu286, w_Suf|Modrm|IgnoreSize,{ Reg16|ShortMem, 0, 0} },
-
-/* Floating point instructions.  */
-
-/* load */
-{"fld",	   1, 0xd9c0, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-{"fld",	   1,	0xd9, 0, 0,	 sl_FP|Modrm,		{ LongMem|LLongMem, 0, 0} },
-{"fld",	   1, 0xd9c0, X, 0,	 l_FP|ShortForm|IgnoreSize|Ugh, { FloatReg, 0, 0} },
-/* Intel Syntax */
-{"fld",    1,	0xdb, 5, 0,	 x_FP|Modrm,		{ LLongMem, 0, 0} },
-{"fild",   1,	0xdf, 0, 0,	 sl_FP|Modrm,		{ ShortMem|LongMem, 0, 0} },
-{"fild",   1,	0xdf, 5, 0,	 q_FP|Modrm,		{ LLongMem, 0, 0} },
-{"fildll", 1,	0xdf, 5, 0,	 FP|Modrm,		{ LLongMem, 0, 0} },
-{"fldt",   1,	0xdb, 5, 0,	 FP|Modrm,		{ LLongMem, 0, 0} },
-{"fbld",   1,	0xdf, 4, 0,	 x_Suf|Modrm,		{ LLongMem, 0, 0} },
-
-/* store (no pop) */
-{"fst",	   1, 0xddd0, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-{"fst",	   1,	0xd9, 2, 0,	 sl_FP|Modrm,		{ LongMem|LLongMem, 0, 0} },
-{"fst",	   1, 0xddd0, X, 0,	 l_FP|ShortForm|IgnoreSize|Ugh, { FloatReg, 0, 0} },
-{"fist",   1,	0xdf, 2, 0,	 sl_FP|Modrm,		{ ShortMem|LongMem, 0, 0} },
-
-/* store (with pop) */
-{"fstp",   1, 0xddd8, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-{"fstp",   1,	0xd9, 3, 0,	 sl_FP|Modrm,		{ LongMem|LLongMem, 0, 0} },
-{"fstp",   1, 0xddd8, X, 0,	 l_FP|ShortForm|IgnoreSize|Ugh, { FloatReg, 0, 0} },
-/* Intel Syntax */
-{"fstp",   1,	0xdb, 7, 0,	 x_FP|Modrm,		{ LLongMem, 0, 0} },
-{"fistp",  1,	0xdf, 3, 0,	 sl_FP|Modrm,		{ ShortMem|LongMem, 0, 0} },
-{"fistp",  1,	0xdf, 7, 0,	 q_FP|Modrm,		{ LLongMem, 0, 0} },
-{"fistpll",1,	0xdf, 7, 0,	 FP|Modrm,		{ LLongMem, 0, 0} },
-{"fstpt",  1,	0xdb, 7, 0,	 FP|Modrm,		{ LLongMem, 0, 0} },
-{"fbstp",  1,	0xdf, 6, 0,	 x_Suf|Modrm,		{ LLongMem, 0, 0} },
-
-/* exchange %st<n> with %st0 */
-{"fxch",   1, 0xd9c8, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-/* alias for fxch %st(1) */
-{"fxch",   0, 0xd9c9, X, 0,	 FP,			{ 0, 0, 0} },
-
-/* comparison (without pop) */
-{"fcom",   1, 0xd8d0, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-/* alias for fcom %st(1) */
-{"fcom",   0, 0xd8d1, X, 0,	 FP,			{ 0, 0, 0} },
-{"fcom",   1,	0xd8, 2, 0,	 sl_FP|Modrm,		{ LongMem|LLongMem, 0, 0} },
-{"fcom",   1, 0xd8d0, X, 0,	 l_FP|ShortForm|IgnoreSize|Ugh, { FloatReg, 0, 0} },
-{"ficom",  1,	0xde, 2, 0,	 sl_FP|Modrm,		{ ShortMem|LongMem, 0, 0} },
-
-/* comparison (with pop) */
-{"fcomp",  1, 0xd8d8, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-/* alias for fcomp %st(1) */
-{"fcomp",  0, 0xd8d9, X, 0,	 FP,			{ 0, 0, 0} },
-{"fcomp",  1,	0xd8, 3, 0,	 sl_FP|Modrm,		{ LongMem|LLongMem, 0, 0} },
-{"fcomp",  1, 0xd8d8, X, 0,	 l_FP|ShortForm|IgnoreSize|Ugh, { FloatReg, 0, 0} },
-{"ficomp", 1,	0xde, 3, 0,	 sl_FP|Modrm,		{ ShortMem|LongMem, 0, 0} },
-{"fcompp", 0, 0xded9, X, 0,	 FP,			{ 0, 0, 0} },
-
-/* unordered comparison (with pop) */
-{"fucom",  1, 0xdde0, X, Cpu286, FP|ShortForm,		{ FloatReg, 0, 0} },
-/* alias for fucom %st(1) */
-{"fucom",  0, 0xdde1, X, Cpu286, FP,			{ 0, 0, 0} },
-{"fucomp", 1, 0xdde8, X, Cpu286, FP|ShortForm,		{ FloatReg, 0, 0} },
-/* alias for fucomp %st(1) */
-{"fucomp", 0, 0xdde9, X, Cpu286, FP,			{ 0, 0, 0} },
-{"fucompp",0, 0xdae9, X, Cpu286, FP,			{ 0, 0, 0} },
-
-{"ftst",   0, 0xd9e4, X, 0,	 FP,			{ 0, 0, 0} },
-{"fxam",   0, 0xd9e5, X, 0,	 FP,			{ 0, 0, 0} },
-
-/* load constants into %st0 */
-{"fld1",   0, 0xd9e8, X, 0,	 FP,			{ 0, 0, 0} },
-{"fldl2t", 0, 0xd9e9, X, 0,	 FP,			{ 0, 0, 0} },
-{"fldl2e", 0, 0xd9ea, X, 0,	 FP,			{ 0, 0, 0} },
-{"fldpi",  0, 0xd9eb, X, 0,	 FP,			{ 0, 0, 0} },
-{"fldlg2", 0, 0xd9ec, X, 0,	 FP,			{ 0, 0, 0} },
-{"fldln2", 0, 0xd9ed, X, 0,	 FP,			{ 0, 0, 0} },
-{"fldz",   0, 0xd9ee, X, 0,	 FP,			{ 0, 0, 0} },
-
-/* Arithmetic.  */
-
-/* add */
-{"fadd",   2, 0xd8c0, X, 0,	 FP|ShortForm|FloatD,	{ FloatReg, FloatAcc, 0} },
-/* alias for fadd %st(i), %st */
-{"fadd",   1, 0xd8c0, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-#if SYSV386_COMPAT
-/* alias for faddp */
-{"fadd",   0, 0xdec1, X, 0,	 FP|Ugh,		{ 0, 0, 0} },
-#endif
-{"fadd",   1,	0xd8, 0, 0,	 sl_FP|Modrm,		{ LongMem|LLongMem, 0, 0} },
-{"fiadd",  1,	0xde, 0, 0,	 sl_FP|Modrm,		{ ShortMem|LongMem, 0, 0} },
-
-{"faddp",  2, 0xdec0, X, 0,	 FP|ShortForm,		{ FloatAcc, FloatReg, 0} },
-{"faddp",  1, 0xdec0, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-/* alias for faddp %st, %st(1) */
-{"faddp",  0, 0xdec1, X, 0,	 FP,			{ 0, 0, 0} },
-{"faddp",  2, 0xdec0, X, 0,	 FP|ShortForm|Ugh,	{ FloatReg, FloatAcc, 0} },
-
-/* subtract */
-{"fsub",   2, 0xd8e0, X, 0,	 FP|ShortForm|FloatDR,	{ FloatReg, FloatAcc, 0} },
-{"fsub",   1, 0xd8e0, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-#if SYSV386_COMPAT
-/* alias for fsubp */
-{"fsub",   0, 0xdee1, X, 0,	 FP|Ugh,		{ 0, 0, 0} },
-#endif
-{"fsub",   1,	0xd8, 4, 0,	 sl_FP|Modrm,		{ LongMem|LLongMem, 0, 0} },
-{"fisub",  1,	0xde, 4, 0,	 sl_FP|Modrm,		{ ShortMem|LongMem, 0, 0} },
-
-#if SYSV386_COMPAT
-{"fsubp",  2, 0xdee0, X, 0,	 FP|ShortForm,		{ FloatAcc, FloatReg, 0} },
-{"fsubp",  1, 0xdee0, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-{"fsubp",  0, 0xdee1, X, 0,	 FP,			{ 0, 0, 0} },
-#if OLDGCC_COMPAT
-{"fsubp",  2, 0xdee0, X, 0,	 FP|ShortForm|Ugh,	{ FloatReg, FloatAcc, 0} },
-#endif
-#else
-{"fsubp",  2, 0xdee8, X, 0,	 FP|ShortForm,		{ FloatAcc, FloatReg, 0} },
-{"fsubp",  1, 0xdee8, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-{"fsubp",  0, 0xdee9, X, 0,	 FP,			{ 0, 0, 0} },
-#endif
-
-/* subtract reverse */
-{"fsubr",  2, 0xd8e8, X, 0,	 FP|ShortForm|FloatDR,	{ FloatReg, FloatAcc, 0} },
-{"fsubr",  1, 0xd8e8, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-#if SYSV386_COMPAT
-/* alias for fsubrp */
-{"fsubr",  0, 0xdee9, X, 0,	 FP|Ugh,		{ 0, 0, 0} },
-#endif
-{"fsubr",  1,	0xd8, 5, 0,	 sl_FP|Modrm,		{ LongMem|LLongMem, 0, 0} },
-{"fisubr", 1,	0xde, 5, 0,	 sl_FP|Modrm,		{ ShortMem|LongMem, 0, 0} },
-
-#if SYSV386_COMPAT
-{"fsubrp", 2, 0xdee8, X, 0,	 FP|ShortForm,		{ FloatAcc, FloatReg, 0} },
-{"fsubrp", 1, 0xdee8, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-{"fsubrp", 0, 0xdee9, X, 0,	 FP,			{ 0, 0, 0} },
-#if OLDGCC_COMPAT
-{"fsubrp", 2, 0xdee8, X, 0,	 FP|ShortForm|Ugh,	{ FloatReg, FloatAcc, 0} },
-#endif
-#else
-{"fsubrp", 2, 0xdee0, X, 0,	 FP|ShortForm,		{ FloatAcc, FloatReg, 0} },
-{"fsubrp", 1, 0xdee0, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-{"fsubrp", 0, 0xdee1, X, 0,	 FP,			{ 0, 0, 0} },
-#endif
-
-/* multiply */
-{"fmul",   2, 0xd8c8, X, 0,	 FP|ShortForm|FloatD,	{ FloatReg, FloatAcc, 0} },
-{"fmul",   1, 0xd8c8, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-#if SYSV386_COMPAT
-/* alias for fmulp */
-{"fmul",   0, 0xdec9, X, 0,	 FP|Ugh,		{ 0, 0, 0} },
-#endif
-{"fmul",   1,	0xd8, 1, 0,	 sl_FP|Modrm,		{ LongMem|LLongMem, 0, 0} },
-{"fimul",  1,	0xde, 1, 0,	 sl_FP|Modrm,		{ ShortMem|LongMem, 0, 0} },
-
-{"fmulp",  2, 0xdec8, X, 0,	 FP|ShortForm,		{ FloatAcc, FloatReg, 0} },
-{"fmulp",  1, 0xdec8, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-{"fmulp",  0, 0xdec9, X, 0,	 FP,			{ 0, 0, 0} },
-{"fmulp",  2, 0xdec8, X, 0,	 FP|ShortForm|Ugh,	{ FloatReg, FloatAcc, 0} },
-
-/* divide */
-{"fdiv",   2, 0xd8f0, X, 0,	 FP|ShortForm|FloatDR,	{ FloatReg, FloatAcc, 0} },
-{"fdiv",   1, 0xd8f0, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-#if SYSV386_COMPAT
-/* alias for fdivp */
-{"fdiv",   0, 0xdef1, X, 0,	 FP|Ugh,		{ 0, 0, 0} },
-#endif
-{"fdiv",   1,	0xd8, 6, 0,	 sl_FP|Modrm,		{ LongMem|LLongMem, 0, 0} },
-{"fidiv",  1,	0xde, 6, 0,	 sl_FP|Modrm,		{ ShortMem|LongMem, 0, 0} },
-
-#if SYSV386_COMPAT
-{"fdivp",  2, 0xdef0, X, 0,	 FP|ShortForm,		{ FloatAcc, FloatReg, 0} },
-{"fdivp",  1, 0xdef0, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-{"fdivp",  0, 0xdef1, X, 0,	 FP,			{ 0, 0, 0} },
-#if OLDGCC_COMPAT
-{"fdivp",  2, 0xdef0, X, 0,	 FP|ShortForm|Ugh,	{ FloatReg, FloatAcc, 0} },
-#endif
-#else
-{"fdivp",  2, 0xdef8, X, 0,	 FP|ShortForm,		{ FloatAcc, FloatReg, 0} },
-{"fdivp",  1, 0xdef8, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-{"fdivp",  0, 0xdef9, X, 0,	 FP,			{ 0, 0, 0} },
-#endif
-
-/* divide reverse */
-{"fdivr",  2, 0xd8f8, X, 0,	 FP|ShortForm|FloatDR,	{ FloatReg, FloatAcc, 0} },
-{"fdivr",  1, 0xd8f8, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-#if SYSV386_COMPAT
-/* alias for fdivrp */
-{"fdivr",  0, 0xdef9, X, 0,	 FP|Ugh,		{ 0, 0, 0} },
-#endif
-{"fdivr",  1,	0xd8, 7, 0,	 sl_FP|Modrm,		{ LongMem|LLongMem, 0, 0} },
-{"fidivr", 1,	0xde, 7, 0,	 sl_FP|Modrm,		{ ShortMem|LongMem, 0, 0} },
-
-#if SYSV386_COMPAT
-{"fdivrp", 2, 0xdef8, X, 0,	 FP|ShortForm,		{ FloatAcc, FloatReg, 0} },
-{"fdivrp", 1, 0xdef8, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-{"fdivrp", 0, 0xdef9, X, 0,	 FP,			{ 0, 0, 0} },
-#if OLDGCC_COMPAT
-{"fdivrp", 2, 0xdef8, X, 0,	 FP|ShortForm|Ugh,	{ FloatReg, FloatAcc, 0} },
-#endif
-#else
-{"fdivrp", 2, 0xdef0, X, 0,	 FP|ShortForm,		{ FloatAcc, FloatReg, 0} },
-{"fdivrp", 1, 0xdef0, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-{"fdivrp", 0, 0xdef1, X, 0,	 FP,			{ 0, 0, 0} },
-#endif
-
-{"f2xm1",  0, 0xd9f0, X, 0,	 FP,			{ 0, 0, 0} },
-{"fyl2x",  0, 0xd9f1, X, 0,	 FP,			{ 0, 0, 0} },
-{"fptan",  0, 0xd9f2, X, 0,	 FP,			{ 0, 0, 0} },
-{"fpatan", 0, 0xd9f3, X, 0,	 FP,			{ 0, 0, 0} },
-{"fxtract",0, 0xd9f4, X, 0,	 FP,			{ 0, 0, 0} },
-{"fprem1", 0, 0xd9f5, X, Cpu286, FP,			{ 0, 0, 0} },
-{"fdecstp",0, 0xd9f6, X, 0,	 FP,			{ 0, 0, 0} },
-{"fincstp",0, 0xd9f7, X, 0,	 FP,			{ 0, 0, 0} },
-{"fprem",  0, 0xd9f8, X, 0,	 FP,			{ 0, 0, 0} },
-{"fyl2xp1",0, 0xd9f9, X, 0,	 FP,			{ 0, 0, 0} },
-{"fsqrt",  0, 0xd9fa, X, 0,	 FP,			{ 0, 0, 0} },
-{"fsincos",0, 0xd9fb, X, Cpu286, FP,			{ 0, 0, 0} },
-{"frndint",0, 0xd9fc, X, 0,	 FP,			{ 0, 0, 0} },
-{"fscale", 0, 0xd9fd, X, 0,	 FP,			{ 0, 0, 0} },
-{"fsin",   0, 0xd9fe, X, Cpu286, FP,			{ 0, 0, 0} },
-{"fcos",   0, 0xd9ff, X, Cpu286, FP,			{ 0, 0, 0} },
-{"fchs",   0, 0xd9e0, X, 0,	 FP,			{ 0, 0, 0} },
-{"fabs",   0, 0xd9e1, X, 0,	 FP,			{ 0, 0, 0} },
-
-/* processor control */
-{"fninit", 0, 0xdbe3, X, 0,	 FP,			{ 0, 0, 0} },
-{"finit",  0, 0xdbe3, X, 0,	 FP|FWait,		{ 0, 0, 0} },
-{"fldcw",  1,	0xd9, 5, 0,	 w_Suf|FloatMF|Modrm,	{ ShortMem, 0, 0} },
-{"fnstcw", 1,	0xd9, 7, 0,	 w_Suf|FloatMF|Modrm,	{ ShortMem, 0, 0} },
-{"fstcw",  1,	0xd9, 7, 0,	 w_Suf|FloatMF|FWait|Modrm, { ShortMem, 0, 0} },
-/* XXX should reject %al, %eax, and %rax */
-{"fnstsw", 1, 0xdfe0, X, 0,	 FP|IgnoreSize,		{ Acc, 0, 0} },
-{"fnstsw", 1,	0xdd, 7, 0,	 w_Suf|FloatMF|Modrm,	{ ShortMem, 0, 0} },
-{"fnstsw", 0, 0xdfe0, X, 0,	 FP,			{ 0, 0, 0} },
-/* XXX should reject %al, %eax, and %rax */
-{"fstsw",  1, 0xdfe0, X, 0,	 FP|FWait|IgnoreSize,	{ Acc, 0, 0} },
-{"fstsw",  1,	0xdd, 7, 0,	 w_Suf|FloatMF|FWait|Modrm, { ShortMem, 0, 0} },
-{"fstsw",  0, 0xdfe0, X, 0,	 FP|FWait,		{ 0, 0, 0} },
-{"fnclex", 0, 0xdbe2, X, 0,	 FP,			{ 0, 0, 0} },
-{"fclex",  0, 0xdbe2, X, 0,	 FP|FWait,		{ 0, 0, 0} },
-/* Short forms of fldenv, fstenv use data size prefix.  */
-{"fnstenv",1,	0xd9, 6, 0,	 sl_Suf|Modrm|DefaultSize,		{ LLongMem, 0, 0} },
-{"fstenv", 1,	0xd9, 6, 0,	 sl_Suf|FWait|Modrm|DefaultSize,	{ LLongMem, 0, 0} },
-{"fldenv", 1,	0xd9, 4, 0,	 sl_Suf|Modrm|DefaultSize,		{ LLongMem, 0, 0} },
-{"fnsave", 1,	0xdd, 6, 0,	 sl_Suf|Modrm|DefaultSize,		{ LLongMem, 0, 0} },
-{"fsave",  1,	0xdd, 6, 0,	 sl_Suf|FWait|Modrm|DefaultSize,	{ LLongMem, 0, 0} },
-{"frstor", 1,	0xdd, 4, 0,	 sl_Suf|Modrm|DefaultSize,		{ LLongMem, 0, 0} },
-
-{"ffree",  1, 0xddc0, X, 0,	 FP|ShortForm,		{ FloatReg, 0, 0} },
-/* P6:free st(i), pop st */
-{"ffreep", 1, 0xdfc0, X, Cpu686, FP|ShortForm,		{ FloatReg, 0, 0} },
-{"fnop",   0, 0xd9d0, X, 0,	 FP,			{ 0, 0, 0} },
-#define FWAIT_OPCODE 0x9b
-{"fwait",  0,	0x9b, X, 0,	 FP,			{ 0, 0, 0} },
-
-/* Opcode prefixes; we allow them as separate insns too.  */
-
-#define ADDR_PREFIX_OPCODE 0x67
-{"addr16", 0,	0x67, X, Cpu386|CpuNo64, NoSuf|IsPrefix|Size16|IgnoreSize,	{ 0, 0, 0} },
-{"addr32", 0,	0x67, X, Cpu386,NoSuf|IsPrefix|Size32|IgnoreSize,	{ 0, 0, 0} },
-{"aword",  0,	0x67, X, Cpu386|CpuNo64,NoSuf|IsPrefix|Size16|IgnoreSize,	{ 0, 0, 0} },
-{"adword", 0,	0x67, X, Cpu386,NoSuf|IsPrefix|Size32|IgnoreSize,	{ 0, 0, 0} },
-#define DATA_PREFIX_OPCODE 0x66
-{"data16", 0,	0x66, X, Cpu386,NoSuf|IsPrefix|Size16|IgnoreSize,	{ 0, 0, 0} },
-{"data32", 0,	0x66, X, Cpu386|CpuNo64,NoSuf|IsPrefix|Size32|IgnoreSize,	{ 0, 0, 0} },
-{"word",   0,	0x66, X, Cpu386,NoSuf|IsPrefix|Size16|IgnoreSize,	{ 0, 0, 0} },
-{"dword",  0,	0x66, X, Cpu386|CpuNo64,NoSuf|IsPrefix|Size32|IgnoreSize,	{ 0, 0, 0} },
-#define LOCK_PREFIX_OPCODE 0xf0
-{"lock",   0,	0xf0, X, 0,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"wait",   0,   0x9b, X, 0,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-#define CS_PREFIX_OPCODE 0x2e
-{"cs",	   0,	0x2e, X, 0,	NoSuf|IsPrefix,	{ 0, 0, 0} },
-#define DS_PREFIX_OPCODE 0x3e
-{"ds",	   0,	0x3e, X, 0,	NoSuf|IsPrefix,	{ 0, 0, 0} },
-#define ES_PREFIX_OPCODE 0x26
-{"es",	   0,	0x26, X, CpuNo64,	NoSuf|IsPrefix,	{ 0, 0, 0} },
-#define FS_PREFIX_OPCODE 0x64
-{"fs",	   0,	0x64, X, Cpu386, NoSuf|IsPrefix,	{ 0, 0, 0} },
-#define GS_PREFIX_OPCODE 0x65
-{"gs",	   0,	0x65, X, Cpu386, NoSuf|IsPrefix,	{ 0, 0, 0} },
-#define SS_PREFIX_OPCODE 0x36
-{"ss",	   0,	0x36, X, CpuNo64,	NoSuf|IsPrefix,	{ 0, 0, 0} },
-#define REPNE_PREFIX_OPCODE 0xf2
-#define REPE_PREFIX_OPCODE  0xf3
-{"rep",	   0,	0xf3, X, 0,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"repe",   0,	0xf3, X, 0,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"repz",   0,	0xf3, X, 0,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"repne",  0,	0xf2, X, 0,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"repnz",  0,	0xf2, X, 0,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"ht",	   0,	0x3e, X, 0,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"hnt",	   0,	0x2e, X, 0,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"rex",    0,	0x40, X, Cpu64,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"rexz",   0,	0x41, X, Cpu64,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"rexy",   0,	0x42, X, Cpu64,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"rexyz",  0,	0x43, X, Cpu64,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"rexx",   0,	0x44, X, Cpu64,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"rexxz",  0,	0x45, X, Cpu64,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"rexxy",  0,	0x46, X, Cpu64,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"rexxyz", 0,	0x47, X, Cpu64,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"rex64",  0,	0x48, X, Cpu64,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"rex64z", 0,	0x49, X, Cpu64,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"rex64y", 0,	0x4a, X, Cpu64,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"rex64yz",0,	0x4b, X, Cpu64,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"rex64x", 0,	0x4c, X, Cpu64,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"rex64xz",0,	0x4d, X, Cpu64,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"rex64xy",0,	0x4e, X, Cpu64,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-{"rex64xyz",0,	0x4f, X, Cpu64,	 NoSuf|IsPrefix,	{ 0, 0, 0} },
-
-/* 486 extensions.  */
-
-{"bswap",   1, 0x0fc8, X, Cpu486, lq_Suf|ShortForm,	{ Reg32|Reg64, 0, 0 } },
-{"xadd",    2, 0x0fc0, X, Cpu486, bwlq_Suf|W|Modrm,	{ Reg, Reg|AnyMem, 0 } },
-{"cmpxchg", 2, 0x0fb0, X, Cpu486, bwlq_Suf|W|Modrm,	{ Reg, Reg|AnyMem, 0 } },
-{"invd",    0, 0x0f08, X, Cpu486, NoSuf,		{ 0, 0, 0} },
-{"wbinvd",  0, 0x0f09, X, Cpu486, NoSuf,		{ 0, 0, 0} },
-{"invlpg",  1, 0x0f01, 7, Cpu486, NoSuf|Modrm|IgnoreSize, { AnyMem, 0, 0} },
-
-/* 586 and late 486 extensions.  */
-{"cpuid",   0, 0x0fa2, X, Cpu486, NoSuf,		{ 0, 0, 0} },
-
-/* Pentium extensions.  */
-{"wrmsr",   0, 0x0f30, X, Cpu586, NoSuf,		{ 0, 0, 0} },
-{"rdtsc",   0, 0x0f31, X, Cpu586, NoSuf,		{ 0, 0, 0} },
-{"rdmsr",   0, 0x0f32, X, Cpu586, NoSuf,		{ 0, 0, 0} },
-{"cmpxchg8b",1,0x0fc7, 1, Cpu586, q_Suf|Modrm,		{ LLongMem, 0, 0} },
-
-/* Pentium II/Pentium Pro extensions.  */
-{"sysenter",0, 0x0f34, X, Cpu686, NoSuf,		{ 0, 0, 0} },
-{"sysexit", 0, 0x0f35, X, Cpu686, NoSuf,		{ 0, 0, 0} },
-{"fxsave",  1, 0x0fae, 0, Cpu686, q_Suf|Modrm,		{ LLongMem, 0, 0} },
-{"fxrstor", 1, 0x0fae, 1, Cpu686, q_Suf|Modrm,		{ LLongMem, 0, 0} },
-{"rdpmc",   0, 0x0f33, X, Cpu686, NoSuf,		{ 0, 0, 0} },
-/* official undefined instr. */
-{"ud2",	    0, 0x0f0b, X, Cpu686, NoSuf,		{ 0, 0, 0} },
-/* alias for ud2 */
-{"ud2a",    0, 0x0f0b, X, Cpu686, NoSuf,		{ 0, 0, 0} },
-/* 2nd. official undefined instr. */
-{"ud2b",    0, 0x0fb9, X, Cpu686, NoSuf,		{ 0, 0, 0} },
-
-{"cmovo",   2, 0x0f40, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovno",  2, 0x0f41, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovb",   2, 0x0f42, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovc",   2, 0x0f42, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovnae", 2, 0x0f42, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovae",  2, 0x0f43, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovnc",  2, 0x0f43, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovnb",  2, 0x0f43, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmove",   2, 0x0f44, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovz",   2, 0x0f44, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovne",  2, 0x0f45, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovnz",  2, 0x0f45, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovbe",  2, 0x0f46, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovna",  2, 0x0f46, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmova",   2, 0x0f47, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovnbe", 2, 0x0f47, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovs",   2, 0x0f48, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovns",  2, 0x0f49, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovp",   2, 0x0f4a, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovnp",  2, 0x0f4b, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovl",   2, 0x0f4c, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovnge", 2, 0x0f4c, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovge",  2, 0x0f4d, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovnl",  2, 0x0f4d, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovle",  2, 0x0f4e, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovng",  2, 0x0f4e, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovg",   2, 0x0f4f, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-{"cmovnle", 2, 0x0f4f, X, Cpu686, wlq_Suf|Modrm,	{ WordReg|WordMem, WordReg, 0} },
-
-{"fcmovb",  2, 0xdac0, X, Cpu686, FP|ShortForm,		{ FloatReg, FloatAcc, 0} },
-{"fcmovnae",2, 0xdac0, X, Cpu686, FP|ShortForm,		{ FloatReg, FloatAcc, 0} },
-{"fcmove",  2, 0xdac8, X, Cpu686, FP|ShortForm,		{ FloatReg, FloatAcc, 0} },
-{"fcmovbe", 2, 0xdad0, X, Cpu686, FP|ShortForm,		{ FloatReg, FloatAcc, 0} },
-{"fcmovna", 2, 0xdad0, X, Cpu686, FP|ShortForm,		{ FloatReg, FloatAcc, 0} },
-{"fcmovu",  2, 0xdad8, X, Cpu686, FP|ShortForm,		{ FloatReg, FloatAcc, 0} },
-{"fcmovae", 2, 0xdbc0, X, Cpu686, FP|ShortForm,		{ FloatReg, FloatAcc, 0} },
-{"fcmovnb", 2, 0xdbc0, X, Cpu686, FP|ShortForm,		{ FloatReg, FloatAcc, 0} },
-{"fcmovne", 2, 0xdbc8, X, Cpu686, FP|ShortForm,		{ FloatReg, FloatAcc, 0} },
-{"fcmova",  2, 0xdbd0, X, Cpu686, FP|ShortForm,		{ FloatReg, FloatAcc, 0} },
-{"fcmovnbe",2, 0xdbd0, X, Cpu686, FP|ShortForm,		{ FloatReg, FloatAcc, 0} },
-{"fcmovnu", 2, 0xdbd8, X, Cpu686, FP|ShortForm,		{ FloatReg, FloatAcc, 0} },
-
-{"fcomi",   2, 0xdbf0, X, Cpu686, FP|ShortForm,		{ FloatReg, FloatAcc, 0} },
-{"fcomi",   0, 0xdbf1, X, Cpu686, FP|ShortForm,		{ 0, 0, 0} },
-{"fcomi",   1, 0xdbf0, X, Cpu686, FP|ShortForm,		{ FloatReg, 0, 0} },
-{"fucomi",  2, 0xdbe8, X, Cpu686, FP|ShortForm,		{ FloatReg, FloatAcc, 0} },
-{"fucomi",  0, 0xdbe9, X, Cpu686, FP|ShortForm,		{ 0, 0, 0} },
-{"fucomi",  1, 0xdbe8, X, Cpu686, FP|ShortForm,		{ FloatReg, 0, 0} },
-{"fcomip",  2, 0xdff0, X, Cpu686, FP|ShortForm,		{ FloatReg, FloatAcc, 0} },
-{"fcompi",  2, 0xdff0, X, Cpu686, FP|ShortForm,		{ FloatReg, FloatAcc, 0} },
-{"fcompi",  0, 0xdff1, X, Cpu686, FP|ShortForm,		{ 0, 0, 0} },
-{"fcompi",  1, 0xdff0, X, Cpu686, FP|ShortForm,		{ FloatReg, 0, 0} },
-{"fucomip", 2, 0xdfe8, X, Cpu686, FP|ShortForm,		{ FloatReg, FloatAcc, 0} },
-{"fucompi", 2, 0xdfe8, X, Cpu686, FP|ShortForm,		{ FloatReg, FloatAcc, 0} },
-{"fucompi", 0, 0xdfe9, X, Cpu686, FP|ShortForm,		{ 0, 0, 0} },
-{"fucompi", 1, 0xdfe8, X, Cpu686, FP|ShortForm,		{ FloatReg, 0, 0} },
-
-/* Pentium4 extensions.  */
-
-{"movnti",   2, 0x0fc3,    X, CpuP4, wlq_Suf|Modrm,		{ WordReg, WordMem, 0 } },
-{"clflush",  1, 0x0fae,    7, CpuP4, NoSuf|Modrm|IgnoreSize,	{ ByteMem, 0, 0 } },
-{"lfence",   0, 0x0fae, 0xe8, CpuP4, NoSuf|ImmExt,		{ 0, 0, 0 } },
-{"mfence",   0, 0x0fae, 0xf0, CpuP4, NoSuf|ImmExt,		{ 0, 0, 0 } },
-{"pause",    0, 0xf390,    X, CpuP4, NoSuf,		{ 0, 0, 0 } },
-
-/* MMX/SSE2 instructions.  */
-
-{"emms",     0, 0x0f77, X, CpuMMX, NoSuf,			{ 0, 0, 0 } },
-/* These really shouldn't allow for Reg64 (movq is the right mnemonic for
-   copying between Reg64/Mem64 and RegXMM/RegMMX, as is mandated by Intel's
-   spec). AMD's spec, having been in existence for much longer, failed to
-   recognize that and specified movd for 32- and 64-bit operations.  */
-{"movd",     2, 0x0f6e, X, CpuMMX, NoSuf|IgnoreSize|Modrm, { Reg32|Reg64|LongMem, RegMMX, 0 } },
-{"movd",     2, 0x0f7e, X, CpuMMX, NoSuf|IgnoreSize|Modrm, { RegMMX, Reg32|Reg64|LongMem, 0 } },
-{"movd",     2, 0x660f6e,X,CpuSSE2,NoSuf|IgnoreSize|Modrm, { Reg32|Reg64|LongMem, RegXMM, 0 } },
-{"movd",     2, 0x660f7e,X,CpuSSE2,NoSuf|IgnoreSize|Modrm, { RegXMM, Reg32|Reg64|LongMem, 0 } },
-/* In the 64bit mode the short form mov immediate is redefined to have
-   64bit displacement value.  */
-{"movq",     2, 0x0f6f, X, CpuMMX, NoSuf|IgnoreSize|Modrm|NoRex64, { RegMMX|LLongMem, RegMMX, 0 } },
-{"movq",     2, 0x0f7f, X, CpuMMX, NoSuf|IgnoreSize|Modrm|NoRex64, { RegMMX, RegMMX|LLongMem, 0 } },
-{"movq",     2, 0xf30f7e,X,CpuSSE2,NoSuf|IgnoreSize|Modrm|NoRex64, { RegXMM|LLongMem, RegXMM, 0 } },
-{"movq",     2, 0x660fd6,X,CpuSSE2,NoSuf|IgnoreSize|Modrm|NoRex64, { RegXMM, RegXMM|LLongMem, 0 } },
-{"movq",     2, 0x0f6e, X, Cpu64,	NoSuf|IgnoreSize|Modrm, { Reg64|LLongMem, RegMMX, 0 } },
-{"movq",     2, 0x0f7e, X, Cpu64,	NoSuf|IgnoreSize|Modrm, { RegMMX, Reg64|LLongMem, 0 } },
-{"movq",     2, 0x660f6e,X,Cpu64,	NoSuf|IgnoreSize|Modrm, { Reg64|LLongMem, RegXMM, 0 } },
-{"movq",     2, 0x660f7e,X,Cpu64,	NoSuf|IgnoreSize|Modrm, { RegXMM, Reg64|LLongMem, 0 } },
-/* We put the 64bit displacement first and we only mark constants
-   larger than 32bit as Disp64.  */
-{"movq",   2,   0xa0, X, Cpu64,  NoSuf|D|W|Size64, { Disp64, Acc, 0 } },
-{"movq",   2,	0x88, X, Cpu64,	 NoSuf|D|W|Modrm|Size64,{ Reg64, Reg64|AnyMem, 0 } },
-{"movq",   2,	0xc6, 0, Cpu64,	 NoSuf|W|Modrm|Size64,	{ Imm32S, Reg64|WordMem, 0 } },
-{"movq",   2,	0xb0, X, Cpu64,	 NoSuf|W|ShortForm|Size64,{ Imm64, Reg64, 0 } },
-/* The segment register moves accept Reg64 so that a segment register
-   can be copied to a 64 bit register, and vice versa.  */
-{"movq",   2,	0x8c, X, Cpu64,  NoSuf|Modrm|Size64,	{ SReg2|SReg3, Reg64|InvMem, 0 } },
-{"movq",   2,	0x8e, X, Cpu64,	 NoSuf|Modrm|Size64,	{ Reg64, SReg2|SReg3, 0 } },
-/* Move to/from control debug registers.  In the 16 or 32bit modes they are 32bit.  In the 64bit
-   mode they are 64bit.*/
-{"movq",   2, 0x0f20, X, Cpu64,	 NoSuf|D|Modrm|IgnoreSize|NoRex64|Size64,{ Control, Reg64|InvMem, 0} },
-{"movq",   2, 0x0f21, X, Cpu64,	 NoSuf|D|Modrm|IgnoreSize|NoRex64|Size64,{ Debug, Reg64|InvMem, 0} },
-/* Real MMX instructions.  */
-{"packssdw", 2, 0x0f6b, X, CpuMMX, NoSuf|IgnoreSize|Modrm, { RegMMX|LongMem, RegMMX, 0 } },
-{"packssdw", 2, 0x660f6b,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"packsswb", 2, 0x0f63, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"packsswb", 2, 0x660f63,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"packuswb", 2, 0x0f67, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"packuswb", 2, 0x660f67,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"paddb",    2, 0x0ffc, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"paddb",    2, 0x660ffc,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"paddw",    2, 0x0ffd, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"paddw",    2, 0x660ffd,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"paddd",    2, 0x0ffe, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"paddd",    2, 0x660ffe,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"paddq",    2, 0x0fd4, X, CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegMMX|LLongMem, RegMMX, 0 } },
-{"paddq",    2, 0x660fd4,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"paddsb",   2, 0x0fec, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"paddsb",   2, 0x660fec,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"paddsw",   2, 0x0fed, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"paddsw",   2, 0x660fed,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"paddusb",  2, 0x0fdc, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"paddusb",  2, 0x660fdc,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"paddusw",  2, 0x0fdd, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"paddusw",  2, 0x660fdd,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pand",     2, 0x0fdb, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"pand",     2, 0x660fdb,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pandn",    2, 0x0fdf, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"pandn",    2, 0x660fdf,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pcmpeqb",  2, 0x0f74, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"pcmpeqb",  2, 0x660f74,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pcmpeqw",  2, 0x0f75, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"pcmpeqw",  2, 0x660f75,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pcmpeqd",  2, 0x0f76, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"pcmpeqd",  2, 0x660f76,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pcmpgtb",  2, 0x0f64, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"pcmpgtb",  2, 0x660f64,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pcmpgtw",  2, 0x0f65, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"pcmpgtw",  2, 0x660f65,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pcmpgtd",  2, 0x0f66, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"pcmpgtd",  2, 0x660f66,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pmaddwd",  2, 0x0ff5, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"pmaddwd",  2, 0x660ff5,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pmulhw",   2, 0x0fe5, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"pmulhw",   2, 0x660fe5,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pmullw",   2, 0x0fd5, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"pmullw",   2, 0x660fd5,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"por",	     2, 0x0feb, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"por",	     2, 0x660feb,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"psllw",    2, 0x0ff1, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"psllw",    2, 0x660ff1,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"psllw",    2, 0x0f71, 6, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ Imm8, RegMMX, 0 } },
-{"psllw",    2, 0x660f71,6,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ Imm8, RegXMM, 0 } },
-{"pslld",    2, 0x0ff2, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"pslld",    2, 0x660ff2,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pslld",    2, 0x0f72, 6, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ Imm8, RegMMX, 0 } },
-{"pslld",    2, 0x660f72,6,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ Imm8, RegXMM, 0 } },
-{"psllq",    2, 0x0ff3, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"psllq",    2, 0x660ff3,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"psllq",    2, 0x0f73, 6, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ Imm8, RegMMX, 0 } },
-{"psllq",    2, 0x660f73,6,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ Imm8, RegXMM, 0 } },
-{"psraw",    2, 0x0fe1, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"psraw",    2, 0x660fe1,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"psraw",    2, 0x0f71, 4, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ Imm8, RegMMX, 0 } },
-{"psraw",    2, 0x660f71,4,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ Imm8, RegXMM, 0 } },
-{"psrad",    2, 0x0fe2, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"psrad",    2, 0x660fe2,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"psrad",    2, 0x0f72, 4, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ Imm8, RegMMX, 0 } },
-{"psrad",    2, 0x660f72,4,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ Imm8, RegXMM, 0 } },
-{"psrlw",    2, 0x0fd1, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"psrlw",    2, 0x660fd1,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"psrlw",    2, 0x0f71, 2, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ Imm8, RegMMX, 0 } },
-{"psrlw",    2, 0x660f71,2,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ Imm8, RegXMM, 0 } },
-{"psrld",    2, 0x0fd2, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"psrld",    2, 0x660fd2,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"psrld",    2, 0x0f72, 2, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ Imm8, RegMMX, 0 } },
-{"psrld",    2, 0x660f72,2,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ Imm8, RegXMM, 0 } },
-{"psrlq",    2, 0x0fd3, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"psrlq",    2, 0x660fd3,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"psrlq",    2, 0x0f73, 2, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ Imm8, RegMMX, 0 } },
-{"psrlq",    2, 0x660f73,2,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ Imm8, RegXMM, 0 } },
-{"psubb",    2, 0x0ff8, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"psubb",    2, 0x660ff8,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"psubw",    2, 0x0ff9, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"psubw",    2, 0x660ff9,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"psubd",    2, 0x0ffa, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"psubd",    2, 0x660ffa,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"psubq",    2, 0x0ffb, X, CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegMMX|LLongMem, RegMMX, 0 } },
-{"psubq",    2, 0x660ffb,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"psubsb",   2, 0x0fe8, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"psubsb",   2, 0x660fe8,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"psubsw",   2, 0x0fe9, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"psubsw",   2, 0x660fe9,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"psubusb",  2, 0x0fd8, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"psubusb",  2, 0x660fd8,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"psubusw",  2, 0x0fd9, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"psubusw",  2, 0x660fd9,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"punpckhbw",2, 0x0f68, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"punpckhbw",2, 0x660f68,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"punpckhwd",2, 0x0f69, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"punpckhwd",2, 0x660f69,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"punpckhdq",2, 0x0f6a, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"punpckhdq",2, 0x660f6a,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"punpcklbw",2, 0x0f60, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"punpcklbw",2, 0x660f60,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"punpcklwd",2, 0x0f61, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"punpcklwd",2, 0x660f61,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"punpckldq",2, 0x0f62, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"punpckldq",2, 0x660f62,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pxor",     2, 0x0fef, X, CpuMMX, NoSuf|IgnoreSize|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
-{"pxor",     2, 0x660fef,X,CpuSSE2,NoSuf|IgnoreSize|Modrm,		{ RegXMM|LLongMem, RegXMM, 0 } },
-
-/* PIII Katmai New Instructions / SIMD instructions.  */
-
-{"addps",     2, 0x0f58,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"addss",     2, 0xf30f58,  X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"andnps",    2, 0x0f55,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"andps",     2, 0x0f54,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"cmpeqps",   2, 0x0fc2,    0, CpuSSE, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cmpeqss",   2, 0xf30fc2,  0, CpuSSE, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"cmpleps",   2, 0x0fc2,    2, CpuSSE, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cmpless",   2, 0xf30fc2,  2, CpuSSE, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"cmpltps",   2, 0x0fc2,    1, CpuSSE, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cmpltss",   2, 0xf30fc2,  1, CpuSSE, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"cmpneqps",  2, 0x0fc2,    4, CpuSSE, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cmpneqss",  2, 0xf30fc2,  4, CpuSSE, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"cmpnleps",  2, 0x0fc2,    6, CpuSSE, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cmpnless",  2, 0xf30fc2,  6, CpuSSE, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"cmpnltps",  2, 0x0fc2,    5, CpuSSE, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cmpnltss",  2, 0xf30fc2,  5, CpuSSE, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"cmpordps",  2, 0x0fc2,    7, CpuSSE, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cmpordss",  2, 0xf30fc2,  7, CpuSSE, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"cmpunordps",2, 0x0fc2,    3, CpuSSE, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cmpunordss",2, 0xf30fc2,  3, CpuSSE, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"cmpps",     3, 0x0fc2,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ Imm8, RegXMM|LLongMem, RegXMM } },
-{"cmpss",     3, 0xf30fc2,  X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ Imm8, RegXMM|WordMem, RegXMM } },
-{"comiss",    2, 0x0f2f,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"cvtpi2ps",  2, 0x0f2a,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegMMX|LLongMem, RegXMM, 0 } },
-{"cvtps2pi",  2, 0x0f2d,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegMMX, 0 } },
-{"cvtsi2ss",  2, 0xf30f2a,  X, CpuSSE, lq_Suf|IgnoreSize|Modrm,{ Reg32|Reg64|WordMem|LLongMem, RegXMM, 0 } },
-{"cvtss2si",  2, 0xf30f2d,  X, CpuSSE, lq_Suf|IgnoreSize|Modrm,{ RegXMM|WordMem, Reg32|Reg64, 0 } },
-{"cvttps2pi", 2, 0x0f2c,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegMMX, 0 } },
-{"cvttss2si", 2, 0xf30f2c,  X, CpuSSE, lq_Suf|IgnoreSize|Modrm,	{ RegXMM|WordMem, Reg32|Reg64, 0 } },
-{"divps",     2, 0x0f5e,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"divss",     2, 0xf30f5e,  X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"ldmxcsr",   1, 0x0fae,    2, CpuSSE, NoSuf|IgnoreSize|Modrm, 	{ WordMem, 0, 0 } },
-{"maskmovq",  2, 0x0ff7,    X, CpuMMX2,NoSuf|IgnoreSize|Modrm,	{ RegMMX, RegMMX, 0 } },
-{"maxps",     2, 0x0f5f,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"maxss",     2, 0xf30f5f,  X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"minps",     2, 0x0f5d,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"minss",     2, 0xf30f5d,  X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"movaps",    2, 0x0f28,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"movaps",    2, 0x0f29,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM, RegXMM|LLongMem, 0 } },
-{"movhlps",   2, 0x0f12,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM, RegXMM, 0 } },
-{"movhps",    2, 0x0f16,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ LLongMem, RegXMM, 0 } },
-{"movhps",    2, 0x0f17,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM, LLongMem, 0 } },
-{"movlhps",   2, 0x0f16,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM, RegXMM, 0 } },
-{"movlps",    2, 0x0f12,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ LLongMem, RegXMM, 0 } },
-{"movlps",    2, 0x0f13,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM, LLongMem, 0 } },
-{"movmskps",  2, 0x0f50,    X, CpuSSE, lq_Suf|IgnoreSize|Modrm,	{ RegXMM, Reg32|Reg64, 0 } },
-{"movntps",   2, 0x0f2b,    X, CpuSSE, NoSuf|IgnoreSize|Modrm, 	{ RegXMM, LLongMem, 0 } },
-{"movntq",    2, 0x0fe7,    X, CpuMMX2,NoSuf|IgnoreSize|Modrm, 	{ RegMMX, LLongMem, 0 } },
-{"movntdq",   2, 0x660fe7,  X, CpuSSE2,NoSuf|IgnoreSize|Modrm, 	{ RegXMM, LLongMem, 0 } },
-{"movss",     2, 0xf30f10,  X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"movss",     2, 0xf30f11,  X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM, RegXMM|WordMem, 0 } },
-{"movups",    2, 0x0f10,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"movups",    2, 0x0f11,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM, RegXMM|LLongMem, 0 } },
-{"mulps",     2, 0x0f59,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"mulss",     2, 0xf30f59,  X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"orps",      2, 0x0f56,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pavgb",     2, 0x0fe0,    X, CpuMMX2,NoSuf|IgnoreSize|Modrm,	{ RegMMX|LLongMem, RegMMX, 0 } },
-{"pavgb",     2, 0x660fe0,  X, CpuSSE2,NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pavgw",     2, 0x0fe3,    X, CpuMMX2,NoSuf|IgnoreSize|Modrm,	{ RegMMX|LLongMem, RegMMX, 0 } },
-{"pavgw",     2, 0x660fe3,  X, CpuSSE2,NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pextrw",    3, 0x0fc5,    X, CpuMMX2,lq_Suf|IgnoreSize|Modrm,	{ Imm8, RegMMX, Reg32|Reg64 } },
-{"pextrw",    3, 0x660fc5,  X, CpuSSE2,lq_Suf|IgnoreSize|Modrm,	{ Imm8, RegXMM, Reg32|Reg64 } },
-{"pinsrw",    3, 0x0fc4,    X, CpuMMX2,lq_Suf|IgnoreSize|Modrm,	{ Imm8, Reg32|Reg64|ShortMem, RegMMX } },
-{"pinsrw",    3, 0x660fc4,  X, CpuSSE2,lq_Suf|IgnoreSize|Modrm,	{ Imm8, Reg32|Reg64|ShortMem, RegXMM } },
-{"pmaxsw",    2, 0x0fee,    X, CpuMMX2,NoSuf|IgnoreSize|Modrm,	{ RegMMX|LLongMem, RegMMX, 0 } },
-{"pmaxsw",    2, 0x660fee,  X, CpuSSE2,NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pmaxub",    2, 0x0fde,    X, CpuMMX2,NoSuf|IgnoreSize|Modrm,	{ RegMMX|LLongMem, RegMMX, 0 } },
-{"pmaxub",    2, 0x660fde,  X, CpuSSE2,NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pminsw",    2, 0x0fea,    X, CpuMMX2,NoSuf|IgnoreSize|Modrm,	{ RegMMX|LLongMem, RegMMX, 0 } },
-{"pminsw",    2, 0x660fea,  X, CpuSSE2,NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pminub",    2, 0x0fda,    X, CpuMMX2,NoSuf|IgnoreSize|Modrm,	{ RegMMX|LLongMem, RegMMX, 0 } },
-{"pminub",    2, 0x660fda,  X, CpuSSE2,NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pmovmskb",  2, 0x0fd7,    X, CpuMMX2,lq_Suf|IgnoreSize|Modrm,	{ RegMMX, Reg32|Reg64, 0 } },
-{"pmovmskb",  2, 0x660fd7,  X, CpuSSE2,lq_Suf|IgnoreSize|Modrm,	{ RegXMM, Reg32|Reg64, 0 } },
-{"pmulhuw",   2, 0x0fe4,    X, CpuMMX2,NoSuf|IgnoreSize|Modrm,	{ RegMMX|LLongMem, RegMMX, 0 } },
-{"pmulhuw",   2, 0x660fe4,  X, CpuSSE2,NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"prefetchnta", 1, 0x0f18,  0, CpuMMX2,NoSuf|IgnoreSize|Modrm, 	{ LLongMem, 0, 0 } },
-{"prefetcht0",  1, 0x0f18,  1, CpuMMX2,NoSuf|IgnoreSize|Modrm, 	{ LLongMem, 0, 0 } },
-{"prefetcht1",  1, 0x0f18,  2, CpuMMX2,NoSuf|IgnoreSize|Modrm, 	{ LLongMem, 0, 0 } },
-{"prefetcht2",  1, 0x0f18,  3, CpuMMX2,NoSuf|IgnoreSize|Modrm, 	{ LLongMem, 0, 0 } },
-{"psadbw",    2, 0x0ff6,    X, CpuMMX2,NoSuf|IgnoreSize|Modrm,	{ RegMMX|LLongMem, RegMMX, 0 } },
-{"psadbw",    2, 0x660ff6,  X, CpuSSE2,NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pshufw",    3, 0x0f70,    X, CpuMMX2,NoSuf|IgnoreSize|Modrm,	{ Imm8, RegMMX|LLongMem, RegMMX } },
-{"rcpps",     2, 0x0f53,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"rcpss",     2, 0xf30f53,  X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"rsqrtps",   2, 0x0f52,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"rsqrtss",   2, 0xf30f52,  X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"sfence",    0, 0x0fae, 0xf8, CpuMMX2,NoSuf|IgnoreSize|ImmExt,	{ 0, 0, 0 } },
-{"shufps",    3, 0x0fc6,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ Imm8, RegXMM|LLongMem, RegXMM } },
-{"sqrtps",    2, 0x0f51,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"sqrtss",    2, 0xf30f51,  X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"stmxcsr",   1, 0x0fae,    3, CpuSSE, NoSuf|IgnoreSize|Modrm, 	{ WordMem, 0, 0 } },
-{"subps",     2, 0x0f5c,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"subss",     2, 0xf30f5c,  X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"ucomiss",   2, 0x0f2e,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"unpckhps",  2, 0x0f15,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"unpcklps",  2, 0x0f14,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"xorps",     2, 0x0f57,    X, CpuSSE, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-
-/* SSE-2 instructions.  */
-
-{"addpd",     2, 0x660f58,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"addsd",     2, 0xf20f58,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LongMem, RegXMM, 0 } },
-{"andnpd",    2, 0x660f55,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"andpd",     2, 0x660f54,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|WordMem, RegXMM, 0 } },
-{"cmpeqpd",   2, 0x660fc2,  0, CpuSSE2, NoSuf|IgnoreSize|Modrm|ImmExt,{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cmpeqsd",   2, 0xf20fc2,  0, CpuSSE2, NoSuf|IgnoreSize|Modrm|ImmExt,{ RegXMM|LongMem, RegXMM, 0 } },
-{"cmplepd",   2, 0x660fc2,  2, CpuSSE2, NoSuf|IgnoreSize|Modrm|ImmExt,{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cmplesd",   2, 0xf20fc2,  2, CpuSSE2, NoSuf|IgnoreSize|Modrm|ImmExt,{ RegXMM|LongMem, RegXMM, 0 } },
-{"cmpltpd",   2, 0x660fc2,  1, CpuSSE2, NoSuf|IgnoreSize|Modrm|ImmExt,{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cmpltsd",   2, 0xf20fc2,  1, CpuSSE2, NoSuf|IgnoreSize|Modrm|ImmExt,{ RegXMM|LongMem, RegXMM, 0 } },
-{"cmpneqpd",  2, 0x660fc2,  4, CpuSSE2, NoSuf|IgnoreSize|Modrm|ImmExt,{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cmpneqsd",  2, 0xf20fc2,  4, CpuSSE2, NoSuf|IgnoreSize|Modrm|ImmExt,{ RegXMM|LongMem, RegXMM, 0 } },
-{"cmpnlepd",  2, 0x660fc2,  6, CpuSSE2, NoSuf|IgnoreSize|Modrm|ImmExt,{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cmpnlesd",  2, 0xf20fc2,  6, CpuSSE2, NoSuf|IgnoreSize|Modrm|ImmExt,{ RegXMM|LongMem, RegXMM, 0 } },
-{"cmpnltpd",  2, 0x660fc2,  5, CpuSSE2, NoSuf|IgnoreSize|Modrm|ImmExt,{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cmpnltsd",  2, 0xf20fc2,  5, CpuSSE2, NoSuf|IgnoreSize|Modrm|ImmExt,{ RegXMM|LongMem, RegXMM, 0 } },
-{"cmpordpd",  2, 0x660fc2,  7, CpuSSE2, NoSuf|IgnoreSize|Modrm|ImmExt,{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cmpordsd",  2, 0xf20fc2,  7, CpuSSE2, NoSuf|IgnoreSize|Modrm|ImmExt,{ RegXMM|LongMem, RegXMM, 0 } },
-{"cmpunordpd",2, 0x660fc2,  3, CpuSSE2, NoSuf|IgnoreSize|Modrm|ImmExt,{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cmpunordsd",2, 0xf20fc2,  3, CpuSSE2, NoSuf|IgnoreSize|Modrm|ImmExt,{ RegXMM|LongMem, RegXMM, 0 } },
-{"cmppd",     3, 0x660fc2,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ Imm8, RegXMM|LLongMem, RegXMM } },
-/* Intel mode string compare.  */
-{"cmpsd",     0, 0xa7,      X, 0, NoSuf|Size32|IsString, { 0, 0, 0} },
-{"cmpsd",     2, 0xa7,      X, 0, NoSuf|Size32|IsString, { AnyMem, AnyMem|EsSeg, 0} },
-{"cmpsd",     3, 0xf20fc2,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ Imm8, RegXMM|LongMem, RegXMM } },
-{"comisd",    2, 0x660f2f,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LongMem, RegXMM, 0 } },
-{"cvtpi2pd",  2, 0x660f2a,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegMMX|LLongMem, RegXMM, 0 } },
-{"cvtsi2sd",  2, 0xf20f2a,  X, CpuSSE2, lq_Suf|IgnoreSize|Modrm,{ Reg32|Reg64|WordMem|LLongMem, RegXMM, 0 } },
-{"divpd",     2, 0x660f5e,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"divsd",     2, 0xf20f5e,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LongMem, RegXMM, 0 } },
-{"maxpd",     2, 0x660f5f,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"maxsd",     2, 0xf20f5f,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LongMem, RegXMM, 0 } },
-{"minpd",     2, 0x660f5d,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"minsd",     2, 0xf20f5d,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LongMem, RegXMM, 0 } },
-{"movapd",    2, 0x660f28,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"movapd",    2, 0x660f29,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM, RegXMM|LLongMem, 0 } },
-{"movhpd",    2, 0x660f16,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ LLongMem, RegXMM, 0 } },
-{"movhpd",    2, 0x660f17,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM, LLongMem, 0 } },
-{"movlpd",    2, 0x660f12,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ LLongMem, RegXMM, 0 } },
-{"movlpd",    2, 0x660f13,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM, LLongMem, 0 } },
-{"movmskpd",  2, 0x660f50,  X, CpuSSE2, lq_Suf|IgnoreSize|Modrm, { RegXMM, Reg32|Reg64, 0 } },
-{"movntpd",   2, 0x660f2b,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm, 	{ RegXMM, LLongMem, 0 } },
-/* Intel mode string move.  */
-{"movsd",     0, 0xa5,      X, 0, NoSuf|Size32|IsString, { 0, 0, 0} },
-{"movsd",     2, 0xa5,      X, 0, NoSuf|Size32|IsString, { AnyMem, AnyMem|EsSeg, 0} },
-{"movsd",     2, 0xf20f10,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LongMem, RegXMM, 0 } },
-{"movsd",     2, 0xf20f11,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM, RegXMM|LongMem, 0 } },
-{"movupd",    2, 0x660f10,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"movupd",    2, 0x660f11,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM, RegXMM|LLongMem, 0 } },
-{"mulpd",     2, 0x660f59,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"mulsd",     2, 0xf20f59,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LongMem, RegXMM, 0 } },
-{"orpd",      2, 0x660f56,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"shufpd",    3, 0x660fc6,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ Imm8, RegXMM|LLongMem, RegXMM } },
-{"sqrtpd",    2, 0x660f51,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"sqrtsd",    2, 0xf20f51,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LongMem, RegXMM, 0 } },
-{"subpd",     2, 0x660f5c,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"subsd",     2, 0xf20f5c,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LongMem, RegXMM, 0 } },
-{"ucomisd",   2, 0x660f2e,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LongMem, RegXMM, 0 } },
-{"unpckhpd",  2, 0x660f15,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"unpcklpd",  2, 0x660f14,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"xorpd",     2, 0x660f57,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cvtdq2pd",  2, 0xf30fe6,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cvtpd2dq",  2, 0xf20fe6,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cvtdq2ps",  2, 0x0f5b,    X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cvtpd2pi",  2, 0x660f2d,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegMMX, 0 } },
-{"cvtpd2ps",  2, 0x660f5a,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cvtps2pd",  2, 0x0f5a,    X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cvtps2dq",  2, 0x660f5b,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cvtsd2si",  2, 0xf20f2d,  X, CpuSSE2, lq_Suf|IgnoreSize|Modrm,{ RegXMM|LLongMem, Reg32|Reg64, 0 } },
-{"cvtsd2ss",  2, 0xf20f5a,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cvtss2sd",  2, 0xf30f5a,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cvttpd2pi", 2, 0x660f2c,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegMMX, 0 } },
-{"cvttsd2si", 2, 0xf20f2c,  X, CpuSSE2, lq_Suf|IgnoreSize|Modrm,{ RegXMM|WordMem, Reg32|Reg64, 0 } },
-{"cvttpd2dq", 2, 0x660fe6,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cvttps2dq", 2, 0xf30f5b,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"maskmovdqu",2, 0x660ff7,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM, RegXMM, 0 } },
-{"movdqa",    2, 0x660f6f,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"movdqa",    2, 0x660f7f,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM, RegXMM|LLongMem, 0 } },
-{"movdqu",    2, 0xf30f6f,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"movdqu",    2, 0xf30f7f,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM, RegXMM|LLongMem, 0 } },
-{"movdq2q",    2, 0xf20fd6,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM, RegMMX, 0 } },
-{"movq2dq",   2, 0xf30fd6,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegMMX, RegXMM, 0 } },
-{"pmuludq",   2, 0x0ff4,    X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pmuludq",   2, 0x660ff4,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LongMem, RegXMM, 0 } },
-{"pshufd",    3, 0x660f70,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ Imm8, RegXMM|LLongMem, RegXMM } },
-{"pshufhw",   3, 0xf30f70,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ Imm8, RegXMM|LLongMem, RegXMM } },
-{"pshuflw",   3, 0xf20f70,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ Imm8, RegXMM|LLongMem, RegXMM } },
-{"pslldq",    2, 0x660f73,  7, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ Imm8, RegXMM, 0 } },
-{"psrldq",    2, 0x660f73,  3, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ Imm8, RegXMM, 0 } },
-{"punpckhqdq",2, 0x660f6d,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"punpcklqdq",2, 0x660f6c,  X, CpuSSE2, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-
-/* Prescott New Instructions.  */
-
-{"addsubpd",  2, 0x660fd0,  X, CpuPNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"addsubps",  2, 0xf20fd0,  X, CpuPNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"cmpxchg16b",1, 0x0fc7,    1, CpuPNI|Cpu64, NoSuf|Modrm|Rex64, { LLongMem, 0, 0} },
-{"fisttp",    1, 0xdf,      1, CpuPNI, sl_FP|Modrm,	{ ShortMem|LongMem, 0, 0} },
-{"fisttp",    1, 0xdd,      1, CpuPNI, q_FP|Modrm,	{ LLongMem, 0, 0} },
-{"fisttpll",  1, 0xdd,      1, CpuPNI, FP|Modrm,	{ LLongMem, 0, 0} },
-{"haddpd",    2, 0x660f7c,  X, CpuPNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"haddps",    2, 0xf20f7c,  X, CpuPNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"hsubpd",    2, 0x660f7d,  X, CpuPNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"hsubps",    2, 0xf20f7d,  X, CpuPNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"lddqu",     2, 0xf20ff0,  X, CpuPNI, NoSuf|IgnoreSize|Modrm,	{ LLongMem, RegXMM, 0 } },
-{"monitor",   0, 0x0f01, 0xc8, CpuPNI, NoSuf|ImmExt,	{ 0, 0, 0} },
-/* monitor is very special. CX and DX are always 64bits with zero upper
-   32bits in 64bit mode, and 32bits in 16bit and 32bit modes. The
-   address size override prefix can be used to overrride the AX size in
-   all modes.  */
-/* Need to ensure only "monitor %eax/%ax,%ecx,%edx" is accepted. */
-{"monitor",   3, 0x0f01, 0xc8, CpuPNI|CpuNo64, NoSuf|ImmExt,	{ Reg16|Reg32, Reg32, Reg32 } },
-/* Need to ensure only "monitor %rax/%eax,%rcx,%rdx" is accepted. */
-{"monitor",   3, 0x0f01, 0xc8, CpuPNI|Cpu64, NoSuf|ImmExt|NoRex64,	{ Reg32|Reg64, Reg64, Reg64 } },
-{"movddup",   2, 0xf20f12,  X, CpuPNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"movshdup",  2, 0xf30f16,  X, CpuPNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"movsldup",  2, 0xf30f12,  X, CpuPNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"mwait",     0, 0x0f01, 0xc9, CpuPNI, NoSuf|ImmExt,	{ 0, 0, 0} },
-/* mwait is very special. AX and CX are always 64bits with zero upper
-   32bits in 64bit mode, and 32bits in 16bit and 32bit modes.  */
-/* Need to ensure only "mwait %eax,%ecx" is accepted.  */
-{"mwait",     2, 0x0f01, 0xc9, CpuPNI|CpuNo64, NoSuf|ImmExt,	{ Reg32, Reg32, 0} },
-/* Need to ensure only "mwait %rax,%rcx" is accepted.  */
-{"mwait",     2, 0x0f01, 0xc9, CpuPNI|Cpu64, NoSuf|ImmExt|NoRex64,	{ Reg64, Reg64, 0} },
-
-/* VMX instructions.  */
-{"vmcall",    0, 0x0f01, 0xc1, CpuVMX, NoSuf|ImmExt,	{ 0, 0, 0} },
-{"vmclear",   1, 0x660fc7,  6, CpuVMX, NoSuf|IgnoreSize|Modrm|NoRex64,	{ LLongMem, 0, 0} },
-{"vmlaunch",  0, 0x0f01, 0xc2, CpuVMX, NoSuf|ImmExt,	{ 0, 0, 0} },
-{"vmresume",  0, 0x0f01, 0xc3, CpuVMX, NoSuf|ImmExt,	{ 0, 0, 0} },
-{"vmptrld",   1, 0x0fc7,    6, CpuVMX, NoSuf|IgnoreSize|Modrm|NoRex64,	{ LLongMem, 0, 0} },
-{"vmptrst",   1, 0x0fc7,    7, CpuVMX, NoSuf|IgnoreSize|Modrm|NoRex64,	{ LLongMem, 0, 0} },
-{"vmread",    2, 0x0f78,    X, CpuVMX|CpuNo64, l_Suf|Modrm,{ Reg32, Reg32|LongMem, 0} },
-{"vmread",    2, 0x0f78,    X, CpuVMX|Cpu64, q_Suf|Modrm|NoRex64,{ Reg64, Reg64|LLongMem, 0} },
-{"vmwrite",   2, 0x0f79,    X, CpuVMX|CpuNo64, l_Suf|Modrm,{ Reg32|LongMem, Reg32, 0} },
-{"vmwrite",   2, 0x0f79,    X, CpuVMX|Cpu64, q_Suf|Modrm|NoRex64,{ Reg64|LLongMem, Reg64, 0} },
-{"vmxoff",    0, 0x0f01, 0xc4, CpuVMX, NoSuf|ImmExt,	{ 0, 0, 0} },
-{"vmxon",     1, 0xf30fc7,  6, CpuVMX, NoSuf|IgnoreSize|Modrm|NoRex64,	{ LLongMem, 0, 0} },
-
-/* Merom New Instructions.  */
-
-{"phaddw",    2,   0x0f3801,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"phaddw",    2, 0x660f3801,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"phaddd",    2,   0x0f3802,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"phaddd",    2, 0x660f3802,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"phaddsw",   2,   0x0f3803,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"phaddsw",   2, 0x660f3803,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"phsubw",    2,   0x0f3805,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"phsubw",    2, 0x660f3805,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"phsubd",    2,   0x0f3806,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"phsubd",    2, 0x660f3806,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"phsubsw",   2,   0x0f3807,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"phsubsw",   2, 0x660f3807,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pmaddubsw", 2,   0x0f3804,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pmaddubsw", 2, 0x660f3804,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pmulhrsw", 2,    0x0f380b,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pmulhrsw", 2,  0x660f380b,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pshufb",   2,    0x0f3800,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pshufb",   2,  0x660f3800,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"psignb",   2,    0x0f3808,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"psignb",   2,  0x660f3808,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"psignw",   2,    0x0f3809,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"psignw",   2,  0x660f3809,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"psignd",   2,    0x0f380a,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"psignd",   2,  0x660f380a,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"palignr",  3,    0x0f3a0f,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ Imm8, RegMMX|LongMem, RegMMX } },
-{"palignr",  3,  0x660f3a0f,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ Imm8, RegXMM|LLongMem, RegXMM } },
-{"pabsb",    2,    0x0f381c,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pabsb",    2,  0x660f381c,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pabsw",    2,    0x0f381d,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pabsw",    2,  0x660f381d,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-{"pabsd",    2,    0x0f381e,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pabsd",    2,  0x660f381e,X, CpuMNI, NoSuf|IgnoreSize|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
-
-/* AMD 3DNow! instructions.  */
-
-{"prefetch", 1, 0x0f0d,	   0, Cpu3dnow, NoSuf|IgnoreSize|Modrm,	{ ByteMem, 0, 0 } },
-{"prefetchw",1, 0x0f0d,	   1, Cpu3dnow, NoSuf|IgnoreSize|Modrm,	{ ByteMem, 0, 0 } },
-{"femms",    0, 0x0f0e,	   X, Cpu3dnow, NoSuf,			{ 0, 0, 0 } },
-{"pavgusb",  2, 0x0f0f, 0xbf, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pf2id",    2, 0x0f0f, 0x1d, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pf2iw",    2, 0x0f0f, 0x1c, Cpu3dnowA,NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pfacc",    2, 0x0f0f, 0xae, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pfadd",    2, 0x0f0f, 0x9e, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pfcmpeq",  2, 0x0f0f, 0xb0, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pfcmpge",  2, 0x0f0f, 0x90, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pfcmpgt",  2, 0x0f0f, 0xa0, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pfmax",    2, 0x0f0f, 0xa4, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pfmin",    2, 0x0f0f, 0x94, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pfmul",    2, 0x0f0f, 0xb4, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pfnacc",   2, 0x0f0f, 0x8a, Cpu3dnowA,NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pfpnacc",  2, 0x0f0f, 0x8e, Cpu3dnowA,NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pfrcp",    2, 0x0f0f, 0x96, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pfrcpit1", 2, 0x0f0f, 0xa6, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pfrcpit2", 2, 0x0f0f, 0xb6, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pfrsqit1", 2, 0x0f0f, 0xa7, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pfrsqrt",  2, 0x0f0f, 0x97, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pfsub",    2, 0x0f0f, 0x9a, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pfsubr",   2, 0x0f0f, 0xaa, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pi2fd",    2, 0x0f0f, 0x0d, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pi2fw",    2, 0x0f0f, 0x0c, Cpu3dnowA,NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pmulhrw",  2, 0x0f0f, 0xb7, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-{"pswapd",   2, 0x0f0f, 0xbb, Cpu3dnowA,NoSuf|IgnoreSize|Modrm|ImmExt,	{ RegMMX|LongMem, RegMMX, 0 } },
-
-/* AMD extensions. */
-{"syscall",  0, 0x0f05,    X, CpuK6,	NoSuf,			{ 0, 0, 0} },
-{"sysret",   0, 0x0f07,    X, CpuK6,	lq_Suf|DefaultSize,	{ 0, 0, 0} },
-{"swapgs",   0, 0x0f01, 0xf8, Cpu64,	NoSuf|ImmExt,		{ 0, 0, 0} },
-{"rdtscp",   0, 0x0f01, 0xf9, CpuSledgehammer,NoSuf|ImmExt,	{ 0, 0, 0} },
-
-/* AMD Pacifica additions.  */
-{"clgi",     0, 0x0f01, 0xdd, CpuSVME,	NoSuf|ImmExt,		{ 0, 0, 0 } },
-{"invlpga",  0, 0x0f01, 0xdf, CpuSVME,	NoSuf|ImmExt,		{ 0, 0, 0 } },
-/* Need to ensure only "invlpga ...,%ecx" is accepted.  */
-{"invlpga",  2, 0x0f01, 0xdf, CpuSVME,	NoSuf|ImmExt,		{ AnyMem, Reg32, 0 } },
-{"skinit",   0, 0x0f01, 0xde, CpuSVME,	NoSuf|ImmExt,		{ 0, 0, 0 } },
-{"skinit",   1, 0x0f01, 0xde, CpuSVME,	NoSuf|ImmExt,		{ AnyMem, 0, 0 } },
-{"stgi",     0, 0x0f01, 0xdc, CpuSVME,	NoSuf|ImmExt,		{ 0, 0, 0 } },
-{"vmload",   0, 0x0f01, 0xda, CpuSVME,	NoSuf|ImmExt,		{ 0, 0, 0 } },
-{"vmload",   1, 0x0f01, 0xda, CpuSVME,	NoSuf|ImmExt,		{ AnyMem, 0, 0 } },
-{"vmmcall",  0, 0x0f01, 0xd9, CpuSVME,	NoSuf|ImmExt,		{ 0, 0, 0 } },
-{"vmrun",    0, 0x0f01, 0xd8, CpuSVME,	NoSuf|ImmExt,		{ 0, 0, 0 } },
-{"vmrun",    1, 0x0f01, 0xd8, CpuSVME,	NoSuf|ImmExt,		{ AnyMem, 0, 0 } },
-{"vmsave",   0, 0x0f01, 0xdb, CpuSVME,	NoSuf|ImmExt,		{ 0, 0, 0 } },
-{"vmsave",   1, 0x0f01, 0xdb, CpuSVME,	NoSuf|ImmExt,		{ AnyMem, 0, 0 } },
-
-
-/* SSE4a instructions */
-{"movntsd",  2, 0xf20f2b,  X, CpuSSE4a, NoSuf|IgnoreSize|Modrm, { RegXMM, LongMem, 0 } },
-{"movntss",  2, 0xf30f2b,  X, CpuSSE4a, NoSuf|IgnoreSize|Modrm, { RegXMM, WordMem, 0 } },
-{"extrq",    3, 0x660f78,  0, CpuSSE4a, NoSuf|IgnoreSize|Modrm, { Imm8, Imm8, RegXMM } },
-{"extrq",    2, 0x660f79,  X, CpuSSE4a, NoSuf|IgnoreSize|Modrm, { RegXMM, RegXMM} },
-{"insertq",  2, 0xf20f79,  X, CpuSSE4a, NoSuf|IgnoreSize|Modrm, { RegXMM, RegXMM} },
-{"insertq",  4, 0xf20f78,  X, CpuSSE4a, NoSuf|IgnoreSize|Modrm, { Imm8, Imm8, RegXMM, RegXMM} },
-
-/* ABM instructions */
-{"popcnt",   2,   0x0fb8,  X, CpuABM, wlq_Suf|Modrm,          { WordReg|WordMem, WordReg, 0} },
-{"lzcnt",    2, 0xf30fbd,  X, CpuABM, wlq_Suf|Modrm,          { WordReg|WordMem, WordReg, 0} },
-
-
-/* VIA PadLock extensions.  */
-{"xstore-rng",0, 0x000fa7, 0xc0, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
-{"xcrypt-ecb",0, 0xf30fa7, 0xc8, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
-{"xcrypt-cbc",0, 0xf30fa7, 0xd0, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
-{"xcrypt-ctr",0, 0xf30fa7, 0xd8, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
-{"xcrypt-cfb",0, 0xf30fa7, 0xe0, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
-{"xcrypt-ofb",0, 0xf30fa7, 0xe8, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
-{"montmul",   0, 0xf30fa6, 0xc0, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
-{"xsha1",     0, 0xf30fa6, 0xc8, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
-{"xsha256",   0, 0xf30fa6, 0xd0, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
-/* Aliases without hyphens.  */
-{"xstorerng", 0, 0x000fa7, 0xc0, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
-{"xcryptecb", 0, 0xf30fa7, 0xc8, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
-{"xcryptcbc", 0, 0xf30fa7, 0xd0, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
-{"xcryptctr", 0, 0xf30fa7, 0xd8, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
-{"xcryptcfb", 0, 0xf30fa7, 0xe0, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
-{"xcryptofb", 0, 0xf30fa7, 0xe8, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
-/* Alias for xstore-rng.  */
-{"xstore",    0, 0x000fa7, 0xc0, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} },
-
-/* sentinel */
-{NULL, 0, 0, 0, 0, 0, { 0, 0, 0} }
-};
-#undef X
-#undef NoSuf
-#undef b_Suf
-#undef w_Suf
-#undef l_Suf
-#undef q_Suf
-#undef x_Suf
-#undef bw_Suf
-#undef bl_Suf
-#undef wl_Suf
-#undef wlq_Suf
-#undef sl_Suf
-#undef bwl_Suf
-#undef bwlq_Suf
-#undef FP
-#undef l_FP
-#undef q_FP
-#undef x_FP
-#undef sl_FP
-
-#define MAX_MNEM_SIZE 16	/* For parsing insn mnemonics from input.  */
-
-/* 386 register table.  */
-
-static const reg_entry i386_regtab[] =
-{
-  /* Make %st first as we test for it.  */
-  {"st", FloatReg|FloatAcc, 0, 0},
-  /* 8 bit regs */
-#define REGNAM_AL 1		/* Entry in i386_regtab.  */
-  {"al", Reg8|Acc, 0, 0},
-  {"cl", Reg8|ShiftCount, 0, 1},
-  {"dl", Reg8, 0, 2},
-  {"bl", Reg8, 0, 3},
-  {"ah", Reg8, 0, 4},
-  {"ch", Reg8, 0, 5},
-  {"dh", Reg8, 0, 6},
-  {"bh", Reg8, 0, 7},
-  {"axl", Reg8|Acc, RegRex64, 0},  /* Must be in the "al + 8" slot.  */
-  {"cxl", Reg8, RegRex64, 1},
-  {"dxl", Reg8, RegRex64, 2},
-  {"bxl", Reg8, RegRex64, 3},
-  {"spl", Reg8, RegRex64, 4},
-  {"bpl", Reg8, RegRex64, 5},
-  {"sil", Reg8, RegRex64, 6},
-  {"dil", Reg8, RegRex64, 7},
-  {"r8b", Reg8, RegRex64|RegRex, 0},
-  {"r9b", Reg8, RegRex64|RegRex, 1},
-  {"r10b", Reg8, RegRex64|RegRex, 2},
-  {"r11b", Reg8, RegRex64|RegRex, 3},
-  {"r12b", Reg8, RegRex64|RegRex, 4},
-  {"r13b", Reg8, RegRex64|RegRex, 5},
-  {"r14b", Reg8, RegRex64|RegRex, 6},
-  {"r15b", Reg8, RegRex64|RegRex, 7},
-  /* 16 bit regs */
-#define REGNAM_AX 25
-  {"ax", Reg16|Acc, 0, 0},
-  {"cx", Reg16, 0, 1},
-  {"dx", Reg16|InOutPortReg, 0, 2},
-  {"bx", Reg16|BaseIndex, 0, 3},
-  {"sp", Reg16, 0, 4},
-  {"bp", Reg16|BaseIndex, 0, 5},
-  {"si", Reg16|BaseIndex, 0, 6},
-  {"di", Reg16|BaseIndex, 0, 7},
-  {"r8w", Reg16, RegRex, 0},
-  {"r9w", Reg16, RegRex, 1},
-  {"r10w", Reg16, RegRex, 2},
-  {"r11w", Reg16, RegRex, 3},
-  {"r12w", Reg16, RegRex, 4},
-  {"r13w", Reg16, RegRex, 5},
-  {"r14w", Reg16, RegRex, 6},
-  {"r15w", Reg16, RegRex, 7},
-  /* 32 bit regs */
-#define REGNAM_EAX 41
-  {"eax", Reg32|BaseIndex|Acc, 0, 0},  /* Must be in ax + 16 slot.  */
-  {"ecx", Reg32|BaseIndex, 0, 1},
-  {"edx", Reg32|BaseIndex, 0, 2},
-  {"ebx", Reg32|BaseIndex, 0, 3},
-  {"esp", Reg32, 0, 4},
-  {"ebp", Reg32|BaseIndex, 0, 5},
-  {"esi", Reg32|BaseIndex, 0, 6},
-  {"edi", Reg32|BaseIndex, 0, 7},
-  {"r8d", Reg32|BaseIndex, RegRex, 0},
-  {"r9d", Reg32|BaseIndex, RegRex, 1},
-  {"r10d", Reg32|BaseIndex, RegRex, 2},
-  {"r11d", Reg32|BaseIndex, RegRex, 3},
-  {"r12d", Reg32|BaseIndex, RegRex, 4},
-  {"r13d", Reg32|BaseIndex, RegRex, 5},
-  {"r14d", Reg32|BaseIndex, RegRex, 6},
-  {"r15d", Reg32|BaseIndex, RegRex, 7},
-  {"rax", Reg64|BaseIndex|Acc, 0, 0},
-  {"rcx", Reg64|BaseIndex, 0, 1},
-  {"rdx", Reg64|BaseIndex, 0, 2},
-  {"rbx", Reg64|BaseIndex, 0, 3},
-  {"rsp", Reg64, 0, 4},
-  {"rbp", Reg64|BaseIndex, 0, 5},
-  {"rsi", Reg64|BaseIndex, 0, 6},
-  {"rdi", Reg64|BaseIndex, 0, 7},
-  {"r8", Reg64|BaseIndex, RegRex, 0},
-  {"r9", Reg64|BaseIndex, RegRex, 1},
-  {"r10", Reg64|BaseIndex, RegRex, 2},
-  {"r11", Reg64|BaseIndex, RegRex, 3},
-  {"r12", Reg64|BaseIndex, RegRex, 4},
-  {"r13", Reg64|BaseIndex, RegRex, 5},
-  {"r14", Reg64|BaseIndex, RegRex, 6},
-  {"r15", Reg64|BaseIndex, RegRex, 7},
-  /* Segment registers.  */
-  {"es", SReg2, 0, 0},
-  {"cs", SReg2, 0, 1},
-  {"ss", SReg2, 0, 2},
-  {"ds", SReg2, 0, 3},
-  {"fs", SReg3, 0, 4},
-  {"gs", SReg3, 0, 5},
-  /* Control registers.  */
-  {"cr0", Control, 0, 0},
-  {"cr1", Control, 0, 1},
-  {"cr2", Control, 0, 2},
-  {"cr3", Control, 0, 3},
-  {"cr4", Control, 0, 4},
-  {"cr5", Control, 0, 5},
-  {"cr6", Control, 0, 6},
-  {"cr7", Control, 0, 7},
-  {"cr8", Control, RegRex, 0},
-  {"cr9", Control, RegRex, 1},
-  {"cr10", Control, RegRex, 2},
-  {"cr11", Control, RegRex, 3},
-  {"cr12", Control, RegRex, 4},
-  {"cr13", Control, RegRex, 5},
-  {"cr14", Control, RegRex, 6},
-  {"cr15", Control, RegRex, 7},
-  /* Debug registers.  */
-  {"db0", Debug, 0, 0},
-  {"db1", Debug, 0, 1},
-  {"db2", Debug, 0, 2},
-  {"db3", Debug, 0, 3},
-  {"db4", Debug, 0, 4},
-  {"db5", Debug, 0, 5},
-  {"db6", Debug, 0, 6},
-  {"db7", Debug, 0, 7},
-  {"db8", Debug, RegRex, 0},
-  {"db9", Debug, RegRex, 1},
-  {"db10", Debug, RegRex, 2},
-  {"db11", Debug, RegRex, 3},
-  {"db12", Debug, RegRex, 4},
-  {"db13", Debug, RegRex, 5},
-  {"db14", Debug, RegRex, 6},
-  {"db15", Debug, RegRex, 7},
-  {"dr0", Debug, 0, 0},
-  {"dr1", Debug, 0, 1},
-  {"dr2", Debug, 0, 2},
-  {"dr3", Debug, 0, 3},
-  {"dr4", Debug, 0, 4},
-  {"dr5", Debug, 0, 5},
-  {"dr6", Debug, 0, 6},
-  {"dr7", Debug, 0, 7},
-  {"dr8", Debug, RegRex, 0},
-  {"dr9", Debug, RegRex, 1},
-  {"dr10", Debug, RegRex, 2},
-  {"dr11", Debug, RegRex, 3},
-  {"dr12", Debug, RegRex, 4},
-  {"dr13", Debug, RegRex, 5},
-  {"dr14", Debug, RegRex, 6},
-  {"dr15", Debug, RegRex, 7},
-  /* Test registers.  */
-  {"tr0", Test, 0, 0},
-  {"tr1", Test, 0, 1},
-  {"tr2", Test, 0, 2},
-  {"tr3", Test, 0, 3},
-  {"tr4", Test, 0, 4},
-  {"tr5", Test, 0, 5},
-  {"tr6", Test, 0, 6},
-  {"tr7", Test, 0, 7},
-  /* MMX and simd registers.  */
-  {"mm0", RegMMX, 0, 0},
-  {"mm1", RegMMX, 0, 1},
-  {"mm2", RegMMX, 0, 2},
-  {"mm3", RegMMX, 0, 3},
-  {"mm4", RegMMX, 0, 4},
-  {"mm5", RegMMX, 0, 5},
-  {"mm6", RegMMX, 0, 6},
-  {"mm7", RegMMX, 0, 7},
-  {"xmm0", RegXMM, 0, 0},
-  {"xmm1", RegXMM, 0, 1},
-  {"xmm2", RegXMM, 0, 2},
-  {"xmm3", RegXMM, 0, 3},
-  {"xmm4", RegXMM, 0, 4},
-  {"xmm5", RegXMM, 0, 5},
-  {"xmm6", RegXMM, 0, 6},
-  {"xmm7", RegXMM, 0, 7},
-  {"xmm8", RegXMM, RegRex, 0},
-  {"xmm9", RegXMM, RegRex, 1},
-  {"xmm10", RegXMM, RegRex, 2},
-  {"xmm11", RegXMM, RegRex, 3},
-  {"xmm12", RegXMM, RegRex, 4},
-  {"xmm13", RegXMM, RegRex, 5},
-  {"xmm14", RegXMM, RegRex, 6},
-  {"xmm15", RegXMM, RegRex, 7},
-  /* No type will make this register rejected for all purposes except
-     for addressing.  This saves creating one extra type for RIP.  */
-  {"rip", BaseIndex, 0, 0}
-};
-
-static const reg_entry i386_float_regtab[] =
-{
-  {"st(0)", FloatReg|FloatAcc, 0, 0},
-  {"st(1)", FloatReg, 0, 1},
-  {"st(2)", FloatReg, 0, 2},
-  {"st(3)", FloatReg, 0, 3},
-  {"st(4)", FloatReg, 0, 4},
-  {"st(5)", FloatReg, 0, 5},
-  {"st(6)", FloatReg, 0, 6},
-  {"st(7)", FloatReg, 0, 7}
-};
-
-#define MAX_REG_NAME_SIZE 8	/* For parsing register names from input.  */
-
-/* Segment stuff.  */
-static const seg_entry cs = { "cs", 0x2e };
-static const seg_entry ds = { "ds", 0x3e };
-static const seg_entry ss = { "ss", 0x36 };
-static const seg_entry es = { "es", 0x26 };
-static const seg_entry fs = { "fs", 0x64 };
-static const seg_entry gs = { "gs", 0x65 };
-
diff --git a/include/opcode/i860.h b/include/opcode/i860.h
deleted file mode 100644
index 7836bff..0000000
--- a/include/opcode/i860.h
+++ /dev/null
@@ -1,507 +0,0 @@
-/* Table of opcodes for the i860.
-   Copyright 1989, 1991, 2000, 2002, 2003 Free Software Foundation, Inc.
-
-This file is part of GAS, the GNU Assembler, and GDB, the GNU disassembler.
-
-GAS/GDB 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.
-
-GAS/GDB 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 GAS or GDB; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-
-/* Structure of an opcode table entry.  */
-struct i860_opcode
-{
-    /* The opcode name.  */
-    const char *name;
-
-    /* Bits that must be set.  */
-    unsigned long match;
-
-    /* Bits that must not be set.  */
-    unsigned long lose;
-
-    const char *args;
-
-    /* Nonzero if this is a possible expand-instruction.  */
-    char expand;
-};
-
-
-enum expand_type
-{
-    E_MOV = 1, E_ADDR, E_U32, E_AND, E_S32, E_DELAY, XP_ONLY
-};
-
-
-/* All i860 opcodes are 32 bits, except for the pseudo-instructions
-   and the operations utilizing a 32-bit address expression, an
-   unsigned 32-bit constant, or a signed 32-bit constant.
-   These opcodes are expanded into a two-instruction sequence for
-   any situation where the immediate operand does not fit in 32 bits.
-   In the case of the add and subtract operations the expansion is
-   to a three-instruction sequence (ex: orh, or, adds).  In cases
-   where the address is to be relocated, the instruction is
-   expanded to handle the worse case, this could be optimized at
-   the final link if the actual address were known.
-
-   The pseudoinstructions are:  mov, fmov, pmov, nop, and fnop.
-   These instructions are implemented as a one or two instruction
-   sequence of other operations.
-
-   The match component is a mask saying which bits must match a
-   particular opcode in order for an instruction to be an instance
-   of that opcode.
-
-   The args component is a string containing one character
-   for each operand of the instruction.
-
-Kinds of operands:
-   #    Number used by optimizer.  It is ignored.
-   1    src1 integer register.
-   2    src2 integer register.
-   d    dest register.
-   c	ctrlreg control register.
-   i    16 bit immediate.
-   I    16 bit immediate, aligned 2^0. (ld.b)
-   J    16 bit immediate, aligned 2^1. (ld.s)
-   K    16 bit immediate, aligned 2^2. (ld.l, {p}fld.l, fst.l)
-   L    16 bit immediate, aligned 2^3. ({p}fld.d, fst.d)
-   M    16 bit immediate, aligned 2^4. ({p}fld.q, fst.q)
-   5    5 bit immediate.
-   l    lbroff 26 bit PC relative immediate.
-   r    sbroff 16 bit PC relative immediate.
-   s	split 16 bit immediate.
-   S	split 16 bit immediate, aligned 2^0. (st.b)
-   T	split 16 bit immediate, aligned 2^1. (st.s)
-   U	split 16 bit immediate, aligned 2^2. (st.l)
-   e    src1 floating point register.
-   f    src2 floating point register.
-   g    dest floating point register.  */
-
-
-/* The order of the opcodes in this table is significant. The assembler
-   requires that all instances of the same mnemonic must be consecutive.
-   If they aren't, the assembler will not function properly.
- 
-   The order of opcodes does not affect the disassembler.  */
-
-static const struct i860_opcode i860_opcodes[] =
-{
-/* REG-Format Instructions.  */
-{ "ld.c",	0x30000000, 0xcc000000, "c,d", 0 },	/* ld.c csrc2,idest */
-{ "ld.b",	0x00000000, 0xfc000000, "1(2),d", 0 },	/* ld.b isrc1(isrc2),idest */
-{ "ld.b",	0x04000000, 0xf8000000, "I(2),d", E_ADDR },	/* ld.b #const(isrc2),idest */
-{ "ld.s",	0x10000000, 0xec000001, "1(2),d", 0 },	/* ld.s isrc1(isrc2),idest */
-{ "ld.s",	0x14000000, 0xe8000001, "J(2),d", E_ADDR },	/* ld.s #const(isrc2),idest */
-{ "ld.l",	0x10000001, 0xec000000, "1(2),d", 0 },	/* ld.l isrc1(isrc2),idest */
-{ "ld.l",	0x14000001, 0xe8000000, "K(2),d", E_ADDR },	/* ld.l #const(isrc2),idest */
-
-{ "st.c",	0x38000000, 0xc4000000, "1,c", 0 },	/* st.c isrc1ni,csrc2 */
-{ "st.b",	0x0c000000, 0xf0000000, "1,S(2)", E_ADDR },	/* st.b isrc1ni,#const(isrc2) */
-{ "st.s",	0x1c000000, 0xe0000001, "1,T(2)", E_ADDR },	/* st.s isrc1ni,#const(isrc2) */
-{ "st.l",	0x1c000001, 0xe0000000, "1,U(2)", E_ADDR },	/* st.l isrc1ni,#const(isrc2) */
-
-{ "ixfr",	0x08000000, 0xf4000000, "1,g", 0 },	/* ixfr isrc1ni,fdest */
-
-{ "fld.l",	0x20000002, 0xdc000001, "1(2),g", 0 },	/* fld.l isrc1(isrc2),fdest */
-{ "fld.l",	0x24000002, 0xd8000001, "K(2),g", E_ADDR },	/* fld.l #const(isrc2),fdest */
-{ "fld.l",	0x20000003, 0xdc000000, "1(2)++,g", 0 },	/* fld.l isrc1(isrc2)++,fdest */
-{ "fld.l",	0x24000003, 0xd8000000, "K(2)++,g", E_ADDR },	/* fld.l #const(isrc2)++,fdest */
-{ "fld.d",	0x20000000, 0xdc000007, "1(2),g", 0 },	/* fld.d isrc1(isrc2),fdest */
-{ "fld.d",	0x24000000, 0xd8000007, "L(2),g", E_ADDR },	/* fld.d #const(isrc2),fdest */
-{ "fld.d",	0x20000001, 0xdc000006, "1(2)++,g", 0 },	/* fld.d isrc1(isrc2)++,fdest */
-{ "fld.d",	0x24000001, 0xd8000006, "L(2)++,g", E_ADDR },	/* fld.d #const(isrc2)++,fdest */
-{ "fld.q",	0x20000004, 0xdc000003, "1(2),g", 0 },	/* fld.q isrc1(isrc2),fdest */
-{ "fld.q",	0x24000004, 0xd8000003, "M(2),g", E_ADDR },	/* fld.q #const(isrc2),fdest */
-{ "fld.q",	0x20000005, 0xdc000002, "1(2)++,g", 0 },	/* fld.q isrc1(isrc2)++,fdest */
-{ "fld.q",	0x24000005, 0xd8000002, "M(2)++,g", E_ADDR },	/* fld.q #const(isrc2)++,fdest */
-
-{ "pfld.l",	0x60000002, 0x9c000001, "1(2),g", 0 },	/* pfld.l isrc1(isrc2),fdest */
-{ "pfld.l",	0x64000002, 0x98000001, "K(2),g", E_ADDR },	/* pfld.l #const(isrc2),fdest */
-{ "pfld.l",	0x60000003, 0x9c000000, "1(2)++,g", 0 },	/* pfld.l isrc1(isrc2)++,fdest */
-{ "pfld.l",	0x64000003, 0x98000000, "K(2)++,g", E_ADDR },	/* pfld.l #const(isrc2)++,fdest */
-{ "pfld.d",	0x60000000, 0x9c000007, "1(2),g", 0 },	/* pfld.d isrc1(isrc2),fdest */
-{ "pfld.d",	0x64000000, 0x98000007, "L(2),g", E_ADDR },	/* pfld.d #const(isrc2),fdest */
-{ "pfld.d",	0x60000001, 0x9c000006, "1(2)++,g", 0 },	/* pfld.d isrc1(isrc2)++,fdest */
-{ "pfld.d",	0x64000001, 0x98000006, "L(2)++,g", E_ADDR },	/* pfld.d #const(isrc2)++,fdest */
-{ "pfld.q",	0x60000004, 0x9c000003, "1(2),g", XP_ONLY },	/* pfld.q isrc1(isrc2),fdest */
-{ "pfld.q",	0x64000004, 0x98000003, "L(2),g", XP_ONLY },	/* pfld.q #const(isrc2),fdest */
-{ "pfld.q",	0x60000005, 0x9c000002, "1(2)++,g", XP_ONLY },	/* pfld.q isrc1(isrc2)++,fdest */
-{ "pfld.q",	0x64000005, 0x98000002, "L(2)++,g", XP_ONLY },	/* pfld.q #const(isrc2)++,fdest */
-
-{ "fst.l",	0x28000002, 0xd4000001, "g,1(2)", 0 },	/* fst.l fdest,isrc1(isrc2) */
-{ "fst.l",	0x2c000002, 0xd0000001, "g,K(2)", E_ADDR },	/* fst.l fdest,#const(isrc2) */
-{ "fst.l",	0x28000003, 0xd4000000, "g,1(2)++", 0 },	/* fst.l fdest,isrc1(isrc2)++ */
-{ "fst.l",	0x2c000003, 0xd0000000, "g,K(2)++", E_ADDR },	/* fst.l fdest,#const(isrc2)++ */
-{ "fst.d",	0x28000000, 0xd4000007, "g,1(2)", 0 },	/* fst.d fdest,isrc1(isrc2) */
-{ "fst.d",	0x2c000000, 0xd0000007, "g,L(2)", E_ADDR },	/* fst.d fdest,#const(isrc2) */
-{ "fst.d",	0x28000001, 0xd4000006, "g,1(2)++", 0 },	/* fst.d fdest,isrc1(isrc2)++ */
-{ "fst.d",	0x2c000001, 0xd0000006, "g,L(2)++", E_ADDR },	/* fst.d fdest,#const(isrc2)++ */
-{ "fst.q",	0x28000004, 0xd4000003, "g,1(2)", 0 },	/* fst.d fdest,isrc1(isrc2) */
-{ "fst.q",	0x2c000004, 0xd0000003, "g,M(2)", E_ADDR },	/* fst.d fdest,#const(isrc2) */
-{ "fst.q",	0x28000005, 0xd4000002, "g,1(2)++", 0 },	/* fst.d fdest,isrc1(isrc2)++ */
-{ "fst.q",	0x2c000005, 0xd0000002, "g,M(2)++", E_ADDR },	/* fst.d fdest,#const(isrc2)++ */
-
-{ "pst.d",	0x3c000000, 0xc0000007, "g,L(2)", E_ADDR },	/* pst.d fdest,#const(isrc2) */
-{ "pst.d",	0x3c000001, 0xc0000006, "g,L(2)++", E_ADDR },	/* pst.d fdest,#const(isrc2)++ */
-
-{ "addu",	0x80000000, 0x7c000000, "1,2,d", 0 },	/* addu isrc1,isrc2,idest */
-{ "addu",	0x84000000, 0x78000000, "i,2,d", E_S32 },	/* addu #const,isrc2,idest */
-{ "adds",	0x90000000, 0x6c000000, "1,2,d", 0 },	/* adds isrc1,isrc2,idest */
-{ "adds",	0x94000000, 0x68000000, "i,2,d", E_S32 },	/* adds #const,isrc2,idest */
-{ "subu",	0x88000000, 0x74000000, "1,2,d", 0 },	/* subu isrc1,isrc2,idest */
-{ "subu",	0x8c000000, 0x70000000, "i,2,d", E_S32 },	/* subu #const,isrc2,idest */
-{ "subs",	0x98000000, 0x64000000, "1,2,d", 0 },	/* subs isrc1,isrc2,idest */
-{ "subs",	0x9c000000, 0x60000000, "i,2,d", E_S32 },	/* subs #const,isrc2,idest */
-
-{ "shl",	0xa0000000, 0x5c000000, "1,2,d", 0 },	/* shl isrc1,isrc2,idest */
-{ "shl",	0xa4000000, 0x58000000, "i,2,d", 0 },	/* shl #const,isrc2,idest */
-{ "shr",	0xa8000000, 0x54000000, "1,2,d", 0 },	/* shr isrc1,isrc2,idest */
-{ "shr",	0xac000000, 0x50000000, "i,2,d", 0 },	/* shr #const,isrc2,idest */
-{ "shrd",	0xb0000000, 0x4c000000, "1,2,d", 0 },	/* shrd isrc1,isrc2,idest */
-{ "shra",	0xb8000000, 0x44000000, "1,2,d", 0 },	/* shra isrc1,isrc2,idest */
-{ "shra",	0xbc000000, 0x40000000, "i,2,d", 0 },	/* shra #const,isrc2,idest */
-
-{ "mov",	0xa0000000, 0x5c00f800, "2,d", 0 },	/* shl r0,isrc2,idest */
-{ "mov",	0x94000000, 0x69e00000, "i,d", E_MOV },	/* adds #const,r0,idest */
-{ "nop",	0xa0000000, 0x5ffff800, "", 0 },	/* shl r0,r0,r0 */
-{ "fnop",	0xb0000000, 0x4ffff800, "", 0 },	/* shrd r0,r0,r0 */
-
-{ "trap",	0x44000000, 0xb8000000, "1,2,d", 0 },	/* trap isrc1ni,isrc2,idest */
-
-{ "flush",	0x34000004, 0xc81f0003, "L(2)", E_ADDR },	/* flush #const(isrc2) */
-{ "flush",	0x34000005, 0xc81f0002, "L(2)++", E_ADDR },	/* flush #const(isrc2)++ */
-
-{ "and",	0xc0000000, 0x3c000000, "1,2,d", 0 },	/* and isrc1,isrc2,idest */
-{ "and",	0xc4000000, 0x38000000, "i,2,d", E_AND },	/* and #const,isrc2,idest */
-{ "andh",	0xcc000000, 0x30000000, "i,2,d", 0 },	/* andh #const,isrc2,idest */
-{ "andnot",	0xd0000000, 0x2c000000, "1,2,d", 0 },	/* andnot isrc1,isrc2,idest */
-{ "andnot",	0xd4000000, 0x28000000, "i,2,d", E_U32 },	/* andnot #const,isrc2,idest */
-{ "andnoth",	0xdc000000, 0x20000000, "i,2,d", 0 },	/* andnoth #const,isrc2,idest */
-{ "or",		0xe0000000, 0x1c000000, "1,2,d", 0 },	/* or isrc1,isrc2,idest */
-{ "or",		0xe4000000, 0x18000000, "i,2,d", E_U32 },	/* or #const,isrc2,idest */
-{ "orh",	0xec000000, 0x10000000, "i,2,d", 0 },	/* orh #const,isrc2,idest */
-{ "xor",	0xf0000000, 0x0c000000, "1,2,d", 0 },	/* xor isrc1,isrc2,idest */
-{ "xor",	0xf4000000, 0x08000000, "i,2,d", E_U32 },	/* xor #const,isrc2,idest */
-{ "xorh",	0xfc000000, 0x00000000, "i,2,d", 0 },	/* xorh #const,isrc2,idest */
-
-{ "bte",	0x58000000, 0xa4000000, "1,2,r", 0 },	/* bte isrc1s,isrc2,sbroff */
-{ "bte",	0x5c000000, 0xa0000000, "5,2,r", 0 },	/* bte #const5,isrc2,sbroff */
-{ "btne",	0x50000000, 0xac000000, "1,2,r", 0 },	/* btne isrc1s,isrc2,sbroff */
-{ "btne",	0x54000000, 0xa8000000, "5,2,r", 0 },	/* btne #const5,isrc2,sbroff */
-{ "bla",	0xb4000000, 0x48000000, "1,2,r", E_DELAY },	/* bla isrc1s,isrc2,sbroff */
-{ "bri",	0x40000000, 0xbc000000, "1", E_DELAY },	/* bri isrc1ni */
-
-/* Core Escape Instruction Format */
-{ "lock",	0x4c000001, 0xb000001e, "", 0 },	/* lock set BL in dirbase */
-{ "calli",	0x4c000002, 0xb000001d, "1", E_DELAY },	/* calli isrc1ni */
-{ "intovr",	0x4c000004, 0xb000001b, "", 0 },	/* intovr trap on integer overflow */
-{ "unlock",	0x4c000007, 0xb0000018, "", 0 },	/* unlock clear BL in dirbase */
-{ "ldio.l",	0x4c000408, 0xb00003f7, "2,d", XP_ONLY },	/* ldio.l isrc2,idest */
-{ "ldio.s",	0x4c000208, 0xb00005f7, "2,d", XP_ONLY },	/* ldio.s isrc2,idest */
-{ "ldio.b",	0x4c000008, 0xb00007f7, "2,d", XP_ONLY },	/* ldio.b isrc2,idest */
-{ "stio.l",	0x4c000409, 0xb00003f6, "1,2", XP_ONLY },	/* stio.l isrc1ni,isrc2 */
-{ "stio.s",	0x4c000209, 0xb00005f6, "1,2", XP_ONLY },	/* stio.s isrc1ni,isrc2 */
-{ "stio.b",	0x4c000009, 0xb00007f6, "1,2", XP_ONLY },	/* stio.b isrc1ni,isrc2 */
-{ "ldint.l",	0x4c00040a, 0xb00003f5, "2,d", XP_ONLY },	/* ldint.l isrc2,idest */
-{ "ldint.s",	0x4c00020a, 0xb00005f5, "2,d", XP_ONLY },	/* ldint.s isrc2,idest */
-{ "ldint.b",	0x4c00000a, 0xb00007f5, "2,d", XP_ONLY },	/* ldint.b isrc2,idest */
-{ "scyc.b",	0x4c00000b, 0xb00007f4, "2", XP_ONLY },		/* scyc.b isrc2 */
-
-/* CTRL-Format Instructions */
-{ "br",		0x68000000, 0x94000000, "l", E_DELAY },	/* br lbroff */
-{ "call",	0x6c000000, 0x90000000, "l", E_DELAY },	/* call lbroff */
-{ "bc",		0x70000000, 0x8c000000, "l", 0 },	/* bc lbroff */
-{ "bc.t",	0x74000000, 0x88000000, "l", E_DELAY },	/* bc.t lbroff */
-{ "bnc",	0x78000000, 0x84000000, "l", 0 },	/* bnc lbroff */
-{ "bnc.t",	0x7c000000, 0x80000000, "l", E_DELAY },	/* bnc.t lbroff */
-
-/* Floating Point Escape Instruction Format - pfam.p fsrc1,fsrc2,fdest.  */
-{ "r2p1.ss",	0x48000400, 0xb40001ff, "e,f,g", 0 },
-{ "r2p1.sd",	0x48000480, 0xb400017f, "e,f,g", 0 },
-{ "r2p1.dd",	0x48000580, 0xb400007f, "e,f,g", 0 },
-{ "r2pt.ss",	0x48000401, 0xb40001fe, "e,f,g", 0 },
-{ "r2pt.sd",	0x48000481, 0xb400017e, "e,f,g", 0 },
-{ "r2pt.dd",	0x48000581, 0xb400007e, "e,f,g", 0 },
-{ "r2ap1.ss",	0x48000402, 0xb40001fd, "e,f,g", 0 },
-{ "r2ap1.sd",	0x48000482, 0xb400017d, "e,f,g", 0 },
-{ "r2ap1.dd",	0x48000582, 0xb400007d, "e,f,g", 0 },
-{ "r2apt.ss",	0x48000403, 0xb40001fc, "e,f,g", 0 },
-{ "r2apt.sd",	0x48000483, 0xb400017c, "e,f,g", 0 },
-{ "r2apt.dd",	0x48000583, 0xb400007c, "e,f,g", 0 },
-{ "i2p1.ss",	0x48000404, 0xb40001fb, "e,f,g", 0 },
-{ "i2p1.sd",	0x48000484, 0xb400017b, "e,f,g", 0 },
-{ "i2p1.dd",	0x48000584, 0xb400007b, "e,f,g", 0 },
-{ "i2pt.ss",	0x48000405, 0xb40001fa, "e,f,g", 0 },
-{ "i2pt.sd",	0x48000485, 0xb400017a, "e,f,g", 0 },
-{ "i2pt.dd",	0x48000585, 0xb400007a, "e,f,g", 0 },
-{ "i2ap1.ss",	0x48000406, 0xb40001f9, "e,f,g", 0 },
-{ "i2ap1.sd",	0x48000486, 0xb4000179, "e,f,g", 0 },
-{ "i2ap1.dd",	0x48000586, 0xb4000079, "e,f,g", 0 },
-{ "i2apt.ss",	0x48000407, 0xb40001f8, "e,f,g", 0 },
-{ "i2apt.sd",	0x48000487, 0xb4000178, "e,f,g", 0 },
-{ "i2apt.dd",	0x48000587, 0xb4000078, "e,f,g", 0 },
-{ "rat1p2.ss",	0x48000408, 0xb40001f7, "e,f,g", 0 },
-{ "rat1p2.sd",	0x48000488, 0xb4000177, "e,f,g", 0 },
-{ "rat1p2.dd",	0x48000588, 0xb4000077, "e,f,g", 0 },
-{ "m12apm.ss",	0x48000409, 0xb40001f6, "e,f,g", 0 },
-{ "m12apm.sd",	0x48000489, 0xb4000176, "e,f,g", 0 },
-{ "m12apm.dd",	0x48000589, 0xb4000076, "e,f,g", 0 },
-{ "ra1p2.ss",	0x4800040a, 0xb40001f5, "e,f,g", 0 },
-{ "ra1p2.sd",	0x4800048a, 0xb4000175, "e,f,g", 0 },
-{ "ra1p2.dd",	0x4800058a, 0xb4000075, "e,f,g", 0 },
-{ "m12ttpa.ss",	0x4800040b, 0xb40001f4, "e,f,g", 0 },
-{ "m12ttpa.sd",	0x4800048b, 0xb4000174, "e,f,g", 0 },
-{ "m12ttpa.dd",	0x4800058b, 0xb4000074, "e,f,g", 0 },
-{ "iat1p2.ss",	0x4800040c, 0xb40001f3, "e,f,g", 0 },
-{ "iat1p2.sd",	0x4800048c, 0xb4000173, "e,f,g", 0 },
-{ "iat1p2.dd",	0x4800058c, 0xb4000073, "e,f,g", 0 },
-{ "m12tpm.ss",	0x4800040d, 0xb40001f2, "e,f,g", 0 },
-{ "m12tpm.sd",	0x4800048d, 0xb4000172, "e,f,g", 0 },
-{ "m12tpm.dd",	0x4800058d, 0xb4000072, "e,f,g", 0 },
-{ "ia1p2.ss",	0x4800040e, 0xb40001f1, "e,f,g", 0 },
-{ "ia1p2.sd",	0x4800048e, 0xb4000171, "e,f,g", 0 },
-{ "ia1p2.dd",	0x4800058e, 0xb4000071, "e,f,g", 0 },
-{ "m12tpa.ss",	0x4800040f, 0xb40001f0, "e,f,g", 0 },
-{ "m12tpa.sd",	0x4800048f, 0xb4000170, "e,f,g", 0 },
-{ "m12tpa.dd",	0x4800058f, 0xb4000070, "e,f,g", 0 },
-
-/* Floating Point Escape Instruction Format - pfsm.p fsrc1,fsrc2,fdest.  */
-{ "r2s1.ss",	0x48000410, 0xb40001ef, "e,f,g", 0 },
-{ "r2s1.sd",	0x48000490, 0xb400016f, "e,f,g", 0 },
-{ "r2s1.dd",	0x48000590, 0xb400006f, "e,f,g", 0 },
-{ "r2st.ss",	0x48000411, 0xb40001ee, "e,f,g", 0 },
-{ "r2st.sd",	0x48000491, 0xb400016e, "e,f,g", 0 },
-{ "r2st.dd",	0x48000591, 0xb400006e, "e,f,g", 0 },
-{ "r2as1.ss",	0x48000412, 0xb40001ed, "e,f,g", 0 },
-{ "r2as1.sd",	0x48000492, 0xb400016d, "e,f,g", 0 },
-{ "r2as1.dd",	0x48000592, 0xb400006d, "e,f,g", 0 },
-{ "r2ast.ss",	0x48000413, 0xb40001ec, "e,f,g", 0 },
-{ "r2ast.sd",	0x48000493, 0xb400016c, "e,f,g", 0 },
-{ "r2ast.dd",	0x48000593, 0xb400006c, "e,f,g", 0 },
-{ "i2s1.ss",	0x48000414, 0xb40001eb, "e,f,g", 0 },
-{ "i2s1.sd",	0x48000494, 0xb400016b, "e,f,g", 0 },
-{ "i2s1.dd",	0x48000594, 0xb400006b, "e,f,g", 0 },
-{ "i2st.ss",	0x48000415, 0xb40001ea, "e,f,g", 0 },
-{ "i2st.sd",	0x48000495, 0xb400016a, "e,f,g", 0 },
-{ "i2st.dd",	0x48000595, 0xb400006a, "e,f,g", 0 },
-{ "i2as1.ss",	0x48000416, 0xb40001e9, "e,f,g", 0 },
-{ "i2as1.sd",	0x48000496, 0xb4000169, "e,f,g", 0 },
-{ "i2as1.dd",	0x48000596, 0xb4000069, "e,f,g", 0 },
-{ "i2ast.ss",	0x48000417, 0xb40001e8, "e,f,g", 0 },
-{ "i2ast.sd",	0x48000497, 0xb4000168, "e,f,g", 0 },
-{ "i2ast.dd",	0x48000597, 0xb4000068, "e,f,g", 0 },
-{ "rat1s2.ss",	0x48000418, 0xb40001e7, "e,f,g", 0 },
-{ "rat1s2.sd",	0x48000498, 0xb4000167, "e,f,g", 0 },
-{ "rat1s2.dd",	0x48000598, 0xb4000067, "e,f,g", 0 },
-{ "m12asm.ss",	0x48000419, 0xb40001e6, "e,f,g", 0 },
-{ "m12asm.sd",	0x48000499, 0xb4000166, "e,f,g", 0 },
-{ "m12asm.dd",	0x48000599, 0xb4000066, "e,f,g", 0 },
-{ "ra1s2.ss",	0x4800041a, 0xb40001e5, "e,f,g", 0 },
-{ "ra1s2.sd",	0x4800049a, 0xb4000165, "e,f,g", 0 },
-{ "ra1s2.dd",	0x4800059a, 0xb4000065, "e,f,g", 0 },
-{ "m12ttsa.ss",	0x4800041b, 0xb40001e4, "e,f,g", 0 },
-{ "m12ttsa.sd",	0x4800049b, 0xb4000164, "e,f,g", 0 },
-{ "m12ttsa.dd",	0x4800059b, 0xb4000064, "e,f,g", 0 },
-{ "iat1s2.ss",	0x4800041c, 0xb40001e3, "e,f,g", 0 },
-{ "iat1s2.sd",	0x4800049c, 0xb4000163, "e,f,g", 0 },
-{ "iat1s2.dd",	0x4800059c, 0xb4000063, "e,f,g", 0 },
-{ "m12tsm.ss",	0x4800041d, 0xb40001e2, "e,f,g", 0 },
-{ "m12tsm.sd",	0x4800049d, 0xb4000162, "e,f,g", 0 },
-{ "m12tsm.dd",	0x4800059d, 0xb4000062, "e,f,g", 0 },
-{ "ia1s2.ss",	0x4800041e, 0xb40001e1, "e,f,g", 0 },
-{ "ia1s2.sd",	0x4800049e, 0xb4000161, "e,f,g", 0 },
-{ "ia1s2.dd",	0x4800059e, 0xb4000061, "e,f,g", 0 },
-{ "m12tsa.ss",	0x4800041f, 0xb40001e0, "e,f,g", 0 },
-{ "m12tsa.sd",	0x4800049f, 0xb4000160, "e,f,g", 0 },
-{ "m12tsa.dd",	0x4800059f, 0xb4000060, "e,f,g", 0 },
-
-/* Floating Point Escape Instruction Format - pfmam.p fsrc1,fsrc2,fdest.  */
-{ "mr2p1.ss",	0x48000000, 0xb40005ff, "e,f,g", 0 },
-{ "mr2p1.sd",	0x48000080, 0xb400057f, "e,f,g", 0 },
-{ "mr2p1.dd",	0x48000180, 0xb400047f, "e,f,g", 0 },
-{ "mr2pt.ss",	0x48000001, 0xb40005fe, "e,f,g", 0 },
-{ "mr2pt.sd",	0x48000081, 0xb400057e, "e,f,g", 0 },
-{ "mr2pt.dd",	0x48000181, 0xb400047e, "e,f,g", 0 },
-{ "mr2mp1.ss",	0x48000002, 0xb40005fd, "e,f,g", 0 },
-{ "mr2mp1.sd",	0x48000082, 0xb400057d, "e,f,g", 0 },
-{ "mr2mp1.dd",	0x48000182, 0xb400047d, "e,f,g", 0 },
-{ "mr2mpt.ss",	0x48000003, 0xb40005fc, "e,f,g", 0 },
-{ "mr2mpt.sd",	0x48000083, 0xb400057c, "e,f,g", 0 },
-{ "mr2mpt.dd",	0x48000183, 0xb400047c, "e,f,g", 0 },
-{ "mi2p1.ss",	0x48000004, 0xb40005fb, "e,f,g", 0 },
-{ "mi2p1.sd",	0x48000084, 0xb400057b, "e,f,g", 0 },
-{ "mi2p1.dd",	0x48000184, 0xb400047b, "e,f,g", 0 },
-{ "mi2pt.ss",	0x48000005, 0xb40005fa, "e,f,g", 0 },
-{ "mi2pt.sd",	0x48000085, 0xb400057a, "e,f,g", 0 },
-{ "mi2pt.dd",	0x48000185, 0xb400047a, "e,f,g", 0 },
-{ "mi2mp1.ss",	0x48000006, 0xb40005f9, "e,f,g", 0 },
-{ "mi2mp1.sd",	0x48000086, 0xb4000579, "e,f,g", 0 },
-{ "mi2mp1.dd",	0x48000186, 0xb4000479, "e,f,g", 0 },
-{ "mi2mpt.ss",	0x48000007, 0xb40005f8, "e,f,g", 0 },
-{ "mi2mpt.sd",	0x48000087, 0xb4000578, "e,f,g", 0 },
-{ "mi2mpt.dd",	0x48000187, 0xb4000478, "e,f,g", 0 },
-{ "mrmt1p2.ss",	0x48000008, 0xb40005f7, "e,f,g", 0 },
-{ "mrmt1p2.sd",	0x48000088, 0xb4000577, "e,f,g", 0 },
-{ "mrmt1p2.dd",	0x48000188, 0xb4000477, "e,f,g", 0 },
-{ "mm12mpm.ss",	0x48000009, 0xb40005f6, "e,f,g", 0 },
-{ "mm12mpm.sd",	0x48000089, 0xb4000576, "e,f,g", 0 },
-{ "mm12mpm.dd",	0x48000189, 0xb4000476, "e,f,g", 0 },
-{ "mrm1p2.ss",	0x4800000a, 0xb40005f5, "e,f,g", 0 },
-{ "mrm1p2.sd",	0x4800008a, 0xb4000575, "e,f,g", 0 },
-{ "mrm1p2.dd",	0x4800018a, 0xb4000475, "e,f,g", 0 },
-{ "mm12ttpm.ss",0x4800000b, 0xb40005f4, "e,f,g", 0 },
-{ "mm12ttpm.sd",0x4800008b, 0xb4000574, "e,f,g", 0 },
-{ "mm12ttpm.dd",0x4800018b, 0xb4000474, "e,f,g", 0 },
-{ "mimt1p2.ss",	0x4800000c, 0xb40005f3, "e,f,g", 0 },
-{ "mimt1p2.sd",	0x4800008c, 0xb4000573, "e,f,g", 0 },
-{ "mimt1p2.dd",	0x4800018c, 0xb4000473, "e,f,g", 0 },
-{ "mm12tpm.ss",	0x4800000d, 0xb40005f2, "e,f,g", 0 },
-{ "mm12tpm.sd",	0x4800008d, 0xb4000572, "e,f,g", 0 },
-{ "mm12tpm.dd",	0x4800018d, 0xb4000472, "e,f,g", 0 },
-{ "mim1p2.ss",	0x4800000e, 0xb40005f1, "e,f,g", 0 },
-{ "mim1p2.sd",	0x4800008e, 0xb4000571, "e,f,g", 0 },
-{ "mim1p2.dd",	0x4800018e, 0xb4000471, "e,f,g", 0 },
-
-/* Floating Point Escape Instruction Format - pfmsm.p fsrc1,fsrc2,fdest.  */
-{ "mr2s1.ss",	0x48000010, 0xb40005ef, "e,f,g", 0 },
-{ "mr2s1.sd",	0x48000090, 0xb400056f, "e,f,g", 0 },
-{ "mr2s1.dd",	0x48000190, 0xb400046f, "e,f,g", 0 },
-{ "mr2st.ss",	0x48000011, 0xb40005ee, "e,f,g", 0 },
-{ "mr2st.sd",	0x48000091, 0xb400056e, "e,f,g", 0 },
-{ "mr2st.dd",	0x48000191, 0xb400046e, "e,f,g", 0 },
-{ "mr2ms1.ss",	0x48000012, 0xb40005ed, "e,f,g", 0 },
-{ "mr2ms1.sd",	0x48000092, 0xb400056d, "e,f,g", 0 },
-{ "mr2ms1.dd",	0x48000192, 0xb400046d, "e,f,g", 0 },
-{ "mr2mst.ss",	0x48000013, 0xb40005ec, "e,f,g", 0 },
-{ "mr2mst.sd",	0x48000093, 0xb400056c, "e,f,g", 0 },
-{ "mr2mst.dd",	0x48000193, 0xb400046c, "e,f,g", 0 },
-{ "mi2s1.ss",	0x48000014, 0xb40005eb, "e,f,g", 0 },
-{ "mi2s1.sd",	0x48000094, 0xb400056b, "e,f,g", 0 },
-{ "mi2s1.dd",	0x48000194, 0xb400046b, "e,f,g", 0 },
-{ "mi2st.ss",	0x48000015, 0xb40005ea, "e,f,g", 0 },
-{ "mi2st.sd",	0x48000095, 0xb400056a, "e,f,g", 0 },
-{ "mi2st.dd",	0x48000195, 0xb400046a, "e,f,g", 0 },
-{ "mi2ms1.ss",	0x48000016, 0xb40005e9, "e,f,g", 0 },
-{ "mi2ms1.sd",	0x48000096, 0xb4000569, "e,f,g", 0 },
-{ "mi2ms1.dd",	0x48000196, 0xb4000469, "e,f,g", 0 },
-{ "mi2mst.ss",	0x48000017, 0xb40005e8, "e,f,g", 0 },
-{ "mi2mst.sd",	0x48000097, 0xb4000568, "e,f,g", 0 },
-{ "mi2mst.dd",	0x48000197, 0xb4000468, "e,f,g", 0 },
-{ "mrmt1s2.ss",	0x48000018, 0xb40005e7, "e,f,g", 0 },
-{ "mrmt1s2.sd",	0x48000098, 0xb4000567, "e,f,g", 0 },
-{ "mrmt1s2.dd",	0x48000198, 0xb4000467, "e,f,g", 0 },
-{ "mm12msm.ss",	0x48000019, 0xb40005e6, "e,f,g", 0 },
-{ "mm12msm.sd",	0x48000099, 0xb4000566, "e,f,g", 0 },
-{ "mm12msm.dd",	0x48000199, 0xb4000466, "e,f,g", 0 },
-{ "mrm1s2.ss",	0x4800001a, 0xb40005e5, "e,f,g", 0 },
-{ "mrm1s2.sd",	0x4800009a, 0xb4000565, "e,f,g", 0 },
-{ "mrm1s2.dd",	0x4800019a, 0xb4000465, "e,f,g", 0 },
-{ "mm12ttsm.ss",0x4800001b, 0xb40005e4, "e,f,g", 0 },
-{ "mm12ttsm.sd",0x4800009b, 0xb4000564, "e,f,g", 0 },
-{ "mm12ttsm.dd",0x4800019b, 0xb4000464, "e,f,g", 0 },
-{ "mimt1s2.ss",	0x4800001c, 0xb40005e3, "e,f,g", 0 },
-{ "mimt1s2.sd",	0x4800009c, 0xb4000563, "e,f,g", 0 },
-{ "mimt1s2.dd",	0x4800019c, 0xb4000463, "e,f,g", 0 },
-{ "mm12tsm.ss",	0x4800001d, 0xb40005e2, "e,f,g", 0 },
-{ "mm12tsm.sd",	0x4800009d, 0xb4000562, "e,f,g", 0 },
-{ "mm12tsm.dd",	0x4800019d, 0xb4000462, "e,f,g", 0 },
-{ "mim1s2.ss",	0x4800001e, 0xb40005e1, "e,f,g", 0 },
-{ "mim1s2.sd",	0x4800009e, 0xb4000561, "e,f,g", 0 },
-{ "mim1s2.dd",	0x4800019e, 0xb4000461, "e,f,g", 0 },
-
-{ "fmul.ss",	0x48000020, 0xb40005df, "e,f,g", 0 },	/* fmul.p fsrc1,fsrc2,fdest */
-{ "fmul.sd",	0x480000a0, 0xb400055f, "e,f,g", 0 },	/* fmul.p fsrc1,fsrc2,fdest */
-{ "fmul.dd",	0x480001a0, 0xb400045f, "e,f,g", 0 },	/* fmul.p fsrc1,fsrc2,fdest */
-{ "pfmul.ss",	0x48000420, 0xb40001df, "e,f,g", 0 },	/* pfmul.p fsrc1,fsrc2,fdest */
-{ "pfmul.sd",	0x480004a0, 0xb400015f, "e,f,g", 0 },	/* pfmul.p fsrc1,fsrc2,fdest */
-{ "pfmul.dd",	0x480005a0, 0xb400005f, "e,f,g", 0 },	/* pfmul.p fsrc1,fsrc2,fdest */
-{ "pfmul3.dd",	0x480005a4, 0xb400005b, "e,f,g", 0 },	/* pfmul3.p fsrc1,fsrc2,fdest */
-{ "fmlow.dd",	0x480001a1, 0xb400045e, "e,f,g", 0 },	/* fmlow.dd fsrc1,fsrc2,fdest */
-{ "frcp.ss",	0x48000022, 0xb40005dd, "f,g", 0 },	/* frcp.p fsrc2,fdest */
-{ "frcp.sd",	0x480000a2, 0xb400055d, "f,g", 0 },	/* frcp.p fsrc2,fdest */
-{ "frcp.dd",	0x480001a2, 0xb400045d, "f,g", 0 },	/* frcp.p fsrc2,fdest */
-{ "frsqr.ss",	0x48000023, 0xb40005dc, "f,g", 0 },	/* frsqr.p fsrc2,fdest */
-{ "frsqr.sd",	0x480000a3, 0xb400055c, "f,g", 0 },	/* frsqr.p fsrc2,fdest */
-{ "frsqr.dd",	0x480001a3, 0xb400045c, "f,g", 0 },	/* frsqr.p fsrc2,fdest */
-{ "fadd.ss",	0x48000030, 0xb40005cf, "e,f,g", 0 },	/* fadd.p fsrc1,fsrc2,fdest */
-{ "fadd.sd",	0x480000b0, 0xb400054f, "e,f,g", 0 },	/* fadd.p fsrc1,fsrc2,fdest */
-{ "fadd.dd",	0x480001b0, 0xb400044f, "e,f,g", 0 },	/* fadd.p fsrc1,fsrc2,fdest */
-{ "pfadd.ss",	0x48000430, 0xb40001cf, "e,f,g", 0 },	/* pfadd.p fsrc1,fsrc2,fdest */
-{ "pfadd.sd",	0x480004b0, 0xb400014f, "e,f,g", 0 },	/* pfadd.p fsrc1,fsrc2,fdest */
-{ "pfadd.dd",	0x480005b0, 0xb400004f, "e,f,g", 0 },	/* pfadd.p fsrc1,fsrc2,fdest */
-{ "fsub.ss",	0x48000031, 0xb40005ce, "e,f,g", 0 },	/* fsub.p fsrc1,fsrc2,fdest */
-{ "fsub.sd",	0x480000b1, 0xb400054e, "e,f,g", 0 },	/* fsub.p fsrc1,fsrc2,fdest */
-{ "fsub.dd",	0x480001b1, 0xb400044e, "e,f,g", 0 },	/* fsub.p fsrc1,fsrc2,fdest */
-{ "pfsub.ss",	0x48000431, 0xb40001ce, "e,f,g", 0 },	/* pfsub.p fsrc1,fsrc2,fdest */
-{ "pfsub.sd",	0x480004b1, 0xb400014e, "e,f,g", 0 },	/* pfsub.p fsrc1,fsrc2,fdest */
-{ "pfsub.dd",	0x480005b1, 0xb400004e, "e,f,g", 0 },	/* pfsub.p fsrc1,fsrc2,fdest */
-{ "fix.sd",	0x480000b2, 0xb400054d, "e,g", 0 },	/* fix.p fsrc1,fdest */
-{ "fix.dd",	0x480001b2, 0xb400044d, "e,g", 0 },	/* fix.p fsrc1,fdest */
-{ "pfix.sd",	0x480004b2, 0xb400014d, "e,g", 0 },	/* pfix.p fsrc1,fdest */
-{ "pfix.dd",	0x480005b2, 0xb400004d, "e,g", 0 },	/* pfix.p fsrc1,fdest */
-{ "famov.ss",	0x48000033, 0xb40005cc, "e,g", 0 },	/* famov.p fsrc1,fdest */
-{ "famov.ds",	0x48000133, 0xb40004cc, "e,g", 0 },	/* famov.p fsrc1,fdest */
-{ "famov.sd",	0x480000b3, 0xb400054c, "e,g", 0 },	/* famov.p fsrc1,fdest */
-{ "famov.dd",	0x480001b3, 0xb400044c, "e,g", 0 },	/* famov.p fsrc1,fdest */
-{ "pfamov.ss",	0x48000433, 0xb40001cc, "e,g", 0 },	/* pfamov.p fsrc1,fdest */
-{ "pfamov.ds",	0x48000533, 0xb40000cc, "e,g", 0 },	/* pfamov.p fsrc1,fdest */
-{ "pfamov.sd",	0x480004b3, 0xb400014c, "e,g", 0 },	/* pfamov.p fsrc1,fdest */
-{ "pfamov.dd",	0x480005b3, 0xb400004c, "e,g", 0 },	/* pfamov.p fsrc1,fdest */
-/* Opcode pfgt has R bit cleared; pfle has R bit set.  */
-{ "pfgt.ss",	0x48000434, 0xb40001cb, "e,f,g", 0 },	/* pfgt.p fsrc1,fsrc2,fdest */
-{ "pfgt.dd",	0x48000534, 0xb40000cb, "e,f,g", 0 },	/* pfgt.p fsrc1,fsrc2,fdest */
-/* Opcode pfgt has R bit cleared; pfle has R bit set.  */
-{ "pfle.ss",	0x480004b4, 0xb400014b, "e,f,g", 0 },	/* pfle.p fsrc1,fsrc2,fdest */
-{ "pfle.dd",	0x480005b4, 0xb400004b, "e,f,g", 0 },	/* pfle.p fsrc1,fsrc2,fdest */
-{ "pfeq.ss",	0x48000435, 0xb40001ca, "e,f,g", 0 },	/* pfeq.p fsrc1,fsrc2,fdest */
-{ "pfeq.dd",	0x48000535, 0xb40000ca, "e,f,g", 0 },	/* pfeq.p fsrc1,fsrc2,fdest */
-{ "ftrunc.sd",	0x480000ba, 0xb4000545, "e,g", 0 },	/* ftrunc.p fsrc1,fdest */
-{ "ftrunc.dd",	0x480001ba, 0xb4000445, "e,g", 0 },	/* ftrunc.p fsrc1,fdest */
-{ "pftrunc.sd",	0x480004ba, 0xb4000145, "e,g", 0 },	/* pftrunc.p fsrc1,fdest */
-{ "pftrunc.dd",	0x480005ba, 0xb4000045, "e,g", 0 },	/* pftrunc.p fsrc1,fdest */
-{ "fxfr",	0x48000040, 0xb40005bf, "e,d", 0 },	/* fxfr fsrc1,idest */
-{ "fiadd.ss",	0x48000049, 0xb40005b6, "e,f,g", 0 },	/* fiadd.w fsrc1,fsrc2,fdest */
-{ "fiadd.dd",	0x480001c9, 0xb4000436, "e,f,g", 0 },	/* fiadd.w fsrc1,fsrc2,fdest */
-{ "pfiadd.ss",	0x48000449, 0xb40001b6, "e,f,g", 0 },	/* pfiadd.w fsrc1,fsrc2,fdest */
-{ "pfiadd.dd",	0x480005c9, 0xb4000036, "e,f,g", 0 },	/* pfiadd.w fsrc1,fsrc2,fdest */
-{ "fisub.ss",	0x4800004d, 0xb40005b2, "e,f,g", 0 },	/* fisub.w fsrc1,fsrc2,fdest */
-{ "fisub.dd",	0x480001cd, 0xb4000432, "e,f,g", 0 },	/* fisub.w fsrc1,fsrc2,fdest */
-{ "pfisub.ss",	0x4800044d, 0xb40001b2, "e,f,g", 0 },	/* pfisub.w fsrc1,fsrc2,fdest */
-{ "pfisub.dd",	0x480005cd, 0xb4000032, "e,f,g", 0 },	/* pfisub.w fsrc1,fsrc2,fdest */
-{ "fzchkl",	0x480001d7, 0xb4000428, "e,f,g", 0 },	/* fzchkl fsrc1,fsrc2,fdest */
-{ "pfzchkl",	0x480005d7, 0xb4000028, "e,f,g", 0 },	/* pfzchkl fsrc1,fsrc2,fdest */
-{ "fzchks",	0x480001df, 0xb4000420, "e,f,g", 0 },	/* fzchks fsrc1,fsrc2,fdest */
-{ "pfzchks",	0x480005df, 0xb4000020, "e,f,g", 0 },	/* pfzchks fsrc1,fsrc2,fdest */
-{ "faddp",	0x480001d0, 0xb400042f, "e,f,g", 0 },	/* faddp fsrc1,fsrc2,fdest */
-{ "pfaddp",	0x480005d0, 0xb400002f, "e,f,g", 0 },	/* pfaddp fsrc1,fsrc2,fdest */
-{ "faddz",	0x480001d1, 0xb400042e, "e,f,g", 0 },	/* faddz fsrc1,fsrc2,fdest */
-{ "pfaddz",	0x480005d1, 0xb400002e, "e,f,g", 0 },	/* pfaddz fsrc1,fsrc2,fdest */
-{ "form",	0x480001da, 0xb4000425, "e,g", 0 },	/* form fsrc1,fdest */
-{ "pform",	0x480005da, 0xb4000025, "e,g", 0 },	/* pform fsrc1,fdest */
-
-/* Floating point pseudo-instructions.  */
-{ "fmov.ss",	0x48000049, 0xb7e005b6, "e,g", 0 },	/* fiadd.ss fsrc1,f0,fdest */
-{ "fmov.dd",	0x480001c9, 0xb7e00436, "e,g", 0 },	/* fiadd.dd fsrc1,f0,fdest */
-{ "fmov.sd",	0x480000b3, 0xb400054c, "e,g", 0 },	/* famov.sd fsrc1,fdest */
-{ "fmov.ds",	0x48000133, 0xb40004cc, "e,g", 0 },	/* famov.ds fsrc1,fdest */
-{ "pfmov.ds",	0x48000533, 0xb40000cc, "e,g", 0 },	/* pfamov.ds fsrc1,fdest */
-{ "pfmov.dd",	0x480005c9, 0xb7e00036, "e,g", 0 },	/* pfiadd.dd fsrc1,f0,fdest */
-{ 0, 0, 0, 0, 0 },
-
-};
-
-#define NUMOPCODES ((sizeof i860_opcodes)/(sizeof i860_opcodes[0]))
-
-
diff --git a/include/opcode/i960.h b/include/opcode/i960.h
deleted file mode 100644
index 0999aa1..0000000
--- a/include/opcode/i960.h
+++ /dev/null
@@ -1,525 +0,0 @@
-/* Basic 80960 instruction formats.
-
-   Copyright 2001 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 2, 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., 51 Franklin Street - Fifth Floor,
-   Boston, MA 02110-1301, USA.
- 
-  The 'COJ' instructions are actually COBR instructions with the 'b' in
-  the mnemonic replaced by a 'j';  they are ALWAYS "de-optimized" if necessary:
-  if the displacement will not fit in 13 bits, the assembler will replace them
-  with the corresponding compare and branch instructions.
- 
-  All of the 'MEMn' instructions are the same format; the 'n' in the name
-  indicates the default index scale factor (the size of the datum operated on).
- 
-  The FBRA formats are not actually an instruction format.  They are the
-  "convenience directives" for branching on floating-point comparisons,
-  each of which generates 2 instructions (a 'bno' and one other branch).
- 
-  The CALLJ format is not actually an instruction format.  It indicates that
-  the instruction generated (a CTRL-format 'call') should have its relocation
-  specially flagged for link-time replacement with a 'bal' or 'calls' if
-  appropriate.  */ 
-
-#define CTRL	0
-#define COBR	1
-#define COJ	2
-#define REG	3
-#define MEM1	4
-#define MEM2	5
-#define MEM4	6
-#define MEM8	7
-#define MEM12	8
-#define MEM16	9
-#define FBRA	10
-#define CALLJ	11
-
-/* Masks for the mode bits in REG format instructions */
-#define M1		0x0800
-#define M2		0x1000
-#define M3		0x2000
-
-/* Generate the 12-bit opcode for a REG format instruction by placing the 
- * high 8 bits in instruction bits 24-31, the low 4 bits in instruction bits
- * 7-10.
- */
-
-#define REG_OPC(opc)	((opc & 0xff0) << 20) | ((opc & 0xf) << 7)
-
-/* Generate a template for a REG format instruction:  place the opcode bits
- * in the appropriate fields and OR in mode bits for the operands that will not
- * be used.  I.e.,
- *		set m1=1, if src1 will not be used
- *		set m2=1, if src2 will not be used
- *		set m3=1, if dst  will not be used
- *
- * Setting the "unused" mode bits to 1 speeds up instruction execution(!).
- * The information is also useful to us because some 1-operand REG instructions
- * use the src1 field, others the dst field; and some 2-operand REG instructions
- * use src1/src2, others src1/dst.  The set mode bits enable us to distinguish.
- */
-#define R_0(opc)	( REG_OPC(opc) | M1 | M2 | M3 )	/* No operands      */
-#define R_1(opc)	( REG_OPC(opc) | M2 | M3 )	/* 1 operand: src1  */
-#define R_1D(opc)	( REG_OPC(opc) | M1 | M2 )	/* 1 operand: dst   */
-#define R_2(opc)	( REG_OPC(opc) | M3 )		/* 2 ops: src1/src2 */
-#define R_2D(opc)	( REG_OPC(opc) | M2 )		/* 2 ops: src1/dst  */
-#define R_3(opc)	( REG_OPC(opc) )		/* 3 operands       */
-
-/* DESCRIPTOR BYTES FOR REGISTER OPERANDS
- *
- * Interpret names as follows:
- *	R:   global or local register only
- *	RS:  global, local, or (if target allows) special-function register only
- *	RL:  global or local register, or integer literal
- *	RSL: global, local, or (if target allows) special-function register;
- *		or integer literal
- *	F:   global, local, or floating-point register
- *	FL:  global, local, or floating-point register; or literal (including
- *		floating point)
- *
- * A number appended to a name indicates that registers must be aligned,
- * as follows:
- *	2: register number must be multiple of 2
- *	4: register number must be multiple of 4
- */
-
-#define SFR	0x10		/* Mask for the "sfr-OK" bit */
-#define LIT	0x08		/* Mask for the "literal-OK" bit */
-#define FP	0x04		/* Mask for "floating-point-OK" bit */
-
-/* This macro ors the bits together.  Note that 'align' is a mask
- * for the low 0, 1, or 2 bits of the register number, as appropriate.
- */
-#define OP(align,lit,fp,sfr)	( align | lit | fp | sfr )
-
-#define R	OP( 0, 0,   0,  0   )
-#define RS	OP( 0, 0,   0,  SFR )
-#define RL	OP( 0, LIT, 0,  0   )
-#define RSL	OP( 0, LIT, 0,  SFR )
-#define F	OP( 0, 0,   FP, 0   )
-#define FL	OP( 0, LIT, FP, 0   )
-#define R2	OP( 1, 0,   0,  0   )
-#define RL2	OP( 1, LIT, 0,  0   )
-#define F2	OP( 1, 0,   FP, 0   )
-#define FL2	OP( 1, LIT, FP, 0   )
-#define R4	OP( 3, 0,   0,  0   )
-#define RL4	OP( 3, LIT, 0,  0   )
-#define F4	OP( 3, 0,   FP, 0   )
-#define FL4	OP( 3, LIT, FP, 0   )
-
-#define M	0x7f	/* Memory operand (MEMA & MEMB format instructions) */
-
-/* Macros to extract info from the register operand descriptor byte 'od'.
- */
-#define SFR_OK(od)	(od & SFR)	/* TRUE if sfr operand allowed */
-#define LIT_OK(od)	(od & LIT)	/* TRUE if literal operand allowed */
-#define FP_OK(od)	(od & FP)	/* TRUE if floating-point op allowed */
-#define REG_ALIGN(od,n)	((od & 0x3 & n) == 0)
-					/* TRUE if reg #n is properly aligned */
-#define MEMOP(od)	(od == M)	/* TRUE if operand is a memory operand*/
-
-/* Description of a single i80960 instruction */
-struct i960_opcode {
-	long opcode;	/* 32 bits, constant fields filled in, rest zeroed */
-	char *name;	/* Assembler mnemonic				   */
-	short iclass;	/* Class: see #defines below			   */
-	char format;	/* REG, COBR, CTRL, MEMn, COJ, FBRA, or CALLJ	   */
-	char num_ops;	/* Number of operands				   */
-	char operand[3];/* Operand descriptors; same order as assembler instr */
-};
-
-/* Classes of 960 intructions:
- *	- each instruction falls into one class.
- *	- each target architecture supports one or more classes.
- *
- * EACH CONSTANT MUST CONTAIN 1 AND ONLY 1 SET BIT!:  see targ_has_iclass().
- */
-#define I_BASE	0x01	/* 80960 base instruction set	*/
-#define I_CX	0x02	/* 80960Cx instruction		*/
-#define I_DEC	0x04	/* Decimal instruction		*/
-#define I_FP	0x08	/* Floating point instruction	*/
-#define I_KX	0x10	/* 80960Kx instruction		*/
-#define I_MIL	0x20	/* Military instruction		*/
-#define I_CASIM	0x40	/* CA simulator instruction	*/
-#define I_CX2	0x80	/* Cx/Jx/Hx instructions	*/
-#define I_JX	0x100	/* Jx/Hx instruction		*/
-#define I_HX	0x200	/* Hx instructions		*/
-
-/******************************************************************************
- *
- *		TABLE OF i960 INSTRUCTION DESCRIPTIONS
- *
- ******************************************************************************/
-
-const struct i960_opcode i960_opcodes[] = {
-
-	/* if a CTRL instruction has an operand, it's always a displacement */
-
-	/* callj default=='call' */
-	{ 0x09000000,	"callj",	I_BASE,	CALLJ, 	1, { 0, 0, 0 } },
-	{ 0x08000000,	"b",		I_BASE,	CTRL, 	1, { 0, 0, 0 } },
-	{ 0x09000000,	"call",		I_BASE,	CTRL, 	1, { 0, 0, 0 } },
-	{ 0x0a000000,	"ret",		I_BASE,	CTRL, 	0, { 0, 0, 0 } },
-	{ 0x0b000000,	"bal",		I_BASE,	CTRL, 	1, { 0, 0, 0 } },
-	{ 0x10000000,	"bno",		I_BASE,	CTRL, 	1, { 0, 0, 0 } },
-	/* bf same as bno */
-	{ 0x10000000,	"bf",		I_BASE,	CTRL, 	1, { 0, 0, 0 } },
-	/* bru same as bno */
-	{ 0x10000000,	"bru",		I_BASE,	CTRL, 	1, { 0, 0, 0 } },
-	{ 0x11000000,	"bg",		I_BASE,	CTRL, 	1, { 0, 0, 0 } },
-	/* brg same as bg */
-	{ 0x11000000,	"brg",		I_BASE,	CTRL, 	1, { 0, 0, 0 } },
-	{ 0x12000000,	"be",		I_BASE,	CTRL, 	1, { 0, 0, 0 } },
-	/* bre same as be */
-	{ 0x12000000,	"bre",		I_BASE,	CTRL, 	1, { 0, 0, 0 } },
-	{ 0x13000000,	"bge",		I_BASE,	CTRL, 	1, { 0, 0, 0 } },
-	/* brge same as bge */
-	{ 0x13000000,	"brge",		I_BASE,	CTRL, 	1, { 0, 0, 0 } },
-	{ 0x14000000,	"bl",		I_BASE,	CTRL, 	1, { 0, 0, 0 } },
-	/* brl same as bl */
-	{ 0x14000000,	"brl",		I_BASE,	CTRL, 	1, { 0, 0, 0 } },
-	{ 0x15000000,	"bne",		I_BASE,	CTRL, 	1, { 0, 0, 0 } },
-	/* brlg same as bne */
-	{ 0x15000000,	"brlg",		I_BASE,	CTRL, 	1, { 0, 0, 0 } },
-	{ 0x16000000,	"ble",		I_BASE,	CTRL, 	1, { 0, 0, 0 } },
-	/* brle same as ble */
-	{ 0x16000000,	"brle",		I_BASE,	CTRL, 	1, { 0, 0, 0 } },
-	{ 0x17000000,	"bo",		I_BASE,	CTRL, 	1, { 0, 0, 0 } },
-	/* bt same as bo */
-	{ 0x17000000,	"bt",		I_BASE,	CTRL, 	1, { 0, 0, 0 } },
-	/* bro same as bo */
-	{ 0x17000000,	"bro",		I_BASE,	CTRL, 	1, { 0, 0, 0 } },
-	{ 0x18000000,	"faultno",	I_BASE,	CTRL, 	0, { 0, 0, 0 } },
-	/* faultf same as faultno */
-	{ 0x18000000,	"faultf",	I_BASE,	CTRL, 	0, { 0, 0, 0 } },
-	{ 0x19000000,	"faultg",	I_BASE,	CTRL, 	0, { 0, 0, 0 } },
-	{ 0x1a000000,	"faulte",	I_BASE,	CTRL, 	0, { 0, 0, 0 } },
-	{ 0x1b000000,	"faultge",	I_BASE,	CTRL, 	0, { 0, 0, 0 } },
-	{ 0x1c000000,	"faultl",	I_BASE,	CTRL, 	0, { 0, 0, 0 } },
-	{ 0x1d000000,	"faultne",	I_BASE,	CTRL, 	0, { 0, 0, 0 } },
-	{ 0x1e000000,	"faultle",	I_BASE,	CTRL, 	0, { 0, 0, 0 } },
-	{ 0x1f000000,	"faulto",	I_BASE,	CTRL, 	0, { 0, 0, 0 } },
-	/* faultt syn for faulto */
-	{ 0x1f000000,	"faultt",	I_BASE,	CTRL, 	0, { 0, 0, 0 } },
-
-	{ 0x01000000,	"syscall",	I_CASIM,CTRL, 	0, { 0, 0, 0 } },
-
-	/* If a COBR (or COJ) has 3 operands, the last one is always a
-	 * displacement and does not appear explicitly in the table.
-	 */
-
-	{ 0x20000000,	"testno",	I_BASE,	COBR,	1, { R, 0, 0 }	},
-	{ 0x21000000,	"testg",	I_BASE,	COBR,	1, { R, 0, 0 }	},
-	{ 0x22000000,	"teste",	I_BASE,	COBR,	1, { R, 0, 0 }	},
-	{ 0x23000000,	"testge",	I_BASE,	COBR,	1, { R, 0, 0 }	},
-	{ 0x24000000,	"testl",	I_BASE,	COBR,	1, { R, 0, 0 }	},
-	{ 0x25000000,	"testne",	I_BASE,	COBR,	1, { R, 0, 0 }	},
-	{ 0x26000000,	"testle",	I_BASE,	COBR,	1, { R, 0, 0 }	},
-	{ 0x27000000,	"testo",	I_BASE,	COBR,	1, { R, 0, 0 }	},
-	{ 0x30000000,	"bbc",		I_BASE,	COBR,	3, { RL, RS, 0 } },
-	{ 0x31000000,	"cmpobg",	I_BASE,	COBR,	3, { RL, RS, 0 } },
-	{ 0x32000000,	"cmpobe",	I_BASE,	COBR,	3, { RL, RS, 0 } },
-	{ 0x33000000,	"cmpobge",	I_BASE,	COBR,	3, { RL, RS, 0 } },
-	{ 0x34000000,	"cmpobl",	I_BASE,	COBR,	3, { RL, RS, 0 } },
-	{ 0x35000000,	"cmpobne",	I_BASE,	COBR,	3, { RL, RS, 0 } },
-	{ 0x36000000,	"cmpoble",	I_BASE,	COBR,	3, { RL, RS, 0 } },
-	{ 0x37000000,	"bbs",		I_BASE,	COBR,	3, { RL, RS, 0 } },
-	{ 0x38000000,	"cmpibno",	I_BASE,	COBR,	3, { RL, RS, 0 } },
-	{ 0x39000000,	"cmpibg",	I_BASE,	COBR,	3, { RL, RS, 0 } },
-	{ 0x3a000000,	"cmpibe",	I_BASE,	COBR,	3, { RL, RS, 0 } },
-	{ 0x3b000000,	"cmpibge",	I_BASE,	COBR,	3, { RL, RS, 0 } },
-	{ 0x3c000000,	"cmpibl",	I_BASE,	COBR,	3, { RL, RS, 0 } },
-	{ 0x3d000000,	"cmpibne",	I_BASE,	COBR,	3, { RL, RS, 0 } },
-	{ 0x3e000000,	"cmpible",	I_BASE,	COBR,	3, { RL, RS, 0 } },
-	{ 0x3f000000,	"cmpibo",	I_BASE,	COBR,	3, { RL, RS, 0 } },
-	{ 0x31000000,	"cmpojg",	I_BASE,	COJ,	3, { RL, RS, 0 } },
-	{ 0x32000000,	"cmpoje",	I_BASE,	COJ,	3, { RL, RS, 0 } },
-	{ 0x33000000,	"cmpojge",	I_BASE,	COJ,	3, { RL, RS, 0 } },
-	{ 0x34000000,	"cmpojl",	I_BASE,	COJ,	3, { RL, RS, 0 } },
-	{ 0x35000000,	"cmpojne",	I_BASE,	COJ,	3, { RL, RS, 0 } },
-	{ 0x36000000,	"cmpojle",	I_BASE,	COJ,	3, { RL, RS, 0 } },
-	{ 0x38000000,	"cmpijno",	I_BASE,	COJ,	3, { RL, RS, 0 } },
-	{ 0x39000000,	"cmpijg",	I_BASE,	COJ,	3, { RL, RS, 0 } },
-	{ 0x3a000000,	"cmpije",	I_BASE,	COJ,	3, { RL, RS, 0 } },
-	{ 0x3b000000,	"cmpijge",	I_BASE,	COJ,	3, { RL, RS, 0 } },
-	{ 0x3c000000,	"cmpijl",	I_BASE,	COJ,	3, { RL, RS, 0 } },
-	{ 0x3d000000,	"cmpijne",	I_BASE,	COJ,	3, { RL, RS, 0 } },
-	{ 0x3e000000,	"cmpijle",	I_BASE,	COJ,	3, { RL, RS, 0 } },
-	{ 0x3f000000,	"cmpijo",	I_BASE,	COJ,	3, { RL, RS, 0 } },
-
-	{ 0x80000000,	"ldob",		I_BASE,	MEM1,	2, { M,  R,  0 } },
-	{ 0x82000000,	"stob",		I_BASE,	MEM1,	2, { R,  M,  0 } },
-	{ 0x84000000,	"bx",		I_BASE,	MEM1,	1, { M,  0,  0 } },
-	{ 0x85000000,	"balx",		I_BASE,	MEM1,	2, { M,  R,  0 } },
-	{ 0x86000000,	"callx",	I_BASE,	MEM1,	1, { M,  0,  0 } },
-	{ 0x88000000,	"ldos",		I_BASE,	MEM2,	2, { M,  R,  0 } },
-	{ 0x8a000000,	"stos",		I_BASE,	MEM2,	2, { R,  M,  0 } },
-	{ 0x8c000000,	"lda",		I_BASE,	MEM1,	2, { M,  R,  0 } },
-	{ 0x90000000,	"ld",		I_BASE,	MEM4,	2, { M,  R,  0 } },
-	{ 0x92000000,	"st",		I_BASE,	MEM4,	2, { R,  M,  0 } },
-	{ 0x98000000,	"ldl",		I_BASE,	MEM8,	2, { M,  R2, 0 } },
-	{ 0x9a000000,	"stl",		I_BASE,	MEM8,	2, { R2, M,  0 } },
-	{ 0xa0000000,	"ldt",		I_BASE,	MEM12,	2, { M,  R4, 0 } },
-	{ 0xa2000000,	"stt",		I_BASE,	MEM12,	2, { R4, M,  0 } },
-	{ 0xb0000000,	"ldq",		I_BASE,	MEM16,	2, { M,  R4, 0 } },
-	{ 0xb2000000,	"stq",		I_BASE,	MEM16,	2, { R4, M,  0 } },
-	{ 0xc0000000,	"ldib",		I_BASE,	MEM1,	2, { M,  R,  0 } },
-	{ 0xc2000000,	"stib",		I_BASE,	MEM1,	2, { R,  M,  0 } },
-	{ 0xc8000000,	"ldis",		I_BASE,	MEM2,	2, { M,  R,  0 } },
-	{ 0xca000000,	"stis",		I_BASE,	MEM2,	2, { R,  M,  0 } },
-
-	{ R_3(0x580),	"notbit",	I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x581),	"and",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x582),	"andnot",	I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x583),	"setbit",	I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x584),	"notand",	I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x586),	"xor",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x587),	"or",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x588),	"nor",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x589),	"xnor",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_2D(0x58a),	"not",		I_BASE,	REG,	2, { RSL,RS, 0 } },
-	{ R_3(0x58b),	"ornot",	I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x58c),	"clrbit",	I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x58d),	"notor",	I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x58e),	"nand",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x58f),	"alterbit",	I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x590),	"addo",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x591),	"addi",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x592),	"subo",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x593),	"subi",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x598),	"shro",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x59a),	"shrdi",	I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x59b),	"shri",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x59c),	"shlo",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x59d),	"rotate",	I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x59e),	"shli",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_2(0x5a0),	"cmpo",		I_BASE,	REG,	2, { RSL,RSL, 0 } },
-	{ R_2(0x5a1),	"cmpi",		I_BASE,	REG,	2, { RSL,RSL, 0 } },
-	{ R_2(0x5a2),	"concmpo",	I_BASE,	REG,	2, { RSL,RSL, 0 } },
-	{ R_2(0x5a3),	"concmpi",	I_BASE,	REG,	2, { RSL,RSL, 0 } },
-	{ R_3(0x5a4),	"cmpinco",	I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x5a5),	"cmpinci",	I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x5a6),	"cmpdeco",	I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x5a7),	"cmpdeci",	I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_2(0x5ac),	"scanbyte",	I_BASE,	REG,	2, { RSL,RSL, 0 } },
-	{ R_2(0x5ae),	"chkbit",	I_BASE,	REG,	2, { RSL,RSL, 0 } },
-	{ R_3(0x5b0),	"addc",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x5b2),	"subc",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_2D(0x5cc),	"mov",		I_BASE,	REG,	2, { RSL,RS, 0 } },
-	{ R_2D(0x5dc),	"movl",		I_BASE,	REG,	2, { RL2,R2, 0 } },
-	{ R_2D(0x5ec),	"movt",		I_BASE,	REG,	2, { RL4,R4, 0 } },
-	{ R_2D(0x5fc),	"movq",		I_BASE,	REG,	2, { RL4,R4, 0 } },
-	{ R_3(0x610),	"atmod",	I_BASE,	REG,	3, { RS, RSL,R } },
-	{ R_3(0x612),	"atadd",	I_BASE,	REG,	3, { RS, RSL,RS } },
-	{ R_2D(0x640),	"spanbit",	I_BASE,	REG,	2, { RSL,RS, 0 } },
-	{ R_2D(0x641),	"scanbit",	I_BASE,	REG,	2, { RSL,RS, 0 } },
-	{ R_3(0x645),	"modac",	I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x650),	"modify",	I_BASE,	REG,	3, { RSL,RSL,R } },
-	{ R_3(0x651),	"extract",	I_BASE,	REG,	3, { RSL,RSL,R } },
-	{ R_3(0x654),	"modtc",	I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x655),	"modpc",	I_BASE,	REG,	3, { RSL,RSL,R } },
-	{ R_1(0x660),	"calls",	I_BASE,	REG,	1, { RSL, 0, 0 } },
-	{ R_0(0x66b),	"mark",		I_BASE,	REG,	0, { 0, 0, 0 }	},
-	{ R_0(0x66c),	"fmark",	I_BASE,	REG,	0, { 0, 0, 0 }	},
-	{ R_0(0x66d),	"flushreg",	I_BASE,	REG,	0, { 0, 0, 0 }	},
-	{ R_0(0x66f),	"syncf",	I_BASE,	REG,	0, { 0, 0, 0 }	},
-	{ R_3(0x670),	"emul",		I_BASE,	REG,	3, { RSL,RSL,R2 } },
-	{ R_3(0x671),	"ediv",		I_BASE,	REG,	3, { RSL,RL2,RS } },
-	{ R_2D(0x672),	"cvtadr",	I_CASIM,REG, 	2, { RL, R2, 0 } },
-	{ R_3(0x701),	"mulo",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x708),	"remo",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x70b),	"divo",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x741),	"muli",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x748),	"remi",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x749),	"modi",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x74b),	"divi",		I_BASE,	REG,	3, { RSL,RSL,RS } },
-
-	/* Floating-point instructions */
-
-	{ R_2D(0x674),	"cvtir",	I_FP,	REG,	2, { RL, F, 0 } },
-	{ R_2D(0x675),	"cvtilr",	I_FP,	REG,	2, { RL, F, 0 } },
-	{ R_3(0x676),	"scalerl",	I_FP,	REG,	3, { RL, FL2,F2 } },
-	{ R_3(0x677),	"scaler",	I_FP,	REG,	3, { RL, FL, F } },
-	{ R_3(0x680),	"atanr",	I_FP,	REG,	3, { FL, FL, F } },
-	{ R_3(0x681),	"logepr",	I_FP,	REG,	3, { FL, FL, F } },
-	{ R_3(0x682),	"logr",		I_FP,	REG,	3, { FL, FL, F } },
-	{ R_3(0x683),	"remr",		I_FP,	REG,	3, { FL, FL, F } },
-	{ R_2(0x684),	"cmpor",	I_FP,	REG,	2, { FL, FL, 0 } },
-	{ R_2(0x685),	"cmpr",		I_FP,	REG,	2, { FL, FL, 0 } },
-	{ R_2D(0x688),	"sqrtr",	I_FP,	REG,	2, { FL, F, 0 } },
-	{ R_2D(0x689),	"expr",		I_FP,	REG,	2, { FL, F, 0 } },
-	{ R_2D(0x68a),	"logbnr",	I_FP,	REG,	2, { FL, F, 0 } },
-	{ R_2D(0x68b),	"roundr",	I_FP,	REG,	2, { FL, F, 0 } },
-	{ R_2D(0x68c),	"sinr",		I_FP,	REG,	2, { FL, F, 0 } },
-	{ R_2D(0x68d),	"cosr",		I_FP,	REG,	2, { FL, F, 0 } },
-	{ R_2D(0x68e),	"tanr",		I_FP,	REG,	2, { FL, F, 0 } },
-	{ R_1(0x68f),	"classr",	I_FP,	REG,	1, { FL, 0, 0 }	},
-	{ R_3(0x690),	"atanrl",	I_FP,	REG,	3, { FL2,FL2,F2 } },
-	{ R_3(0x691),	"logeprl",	I_FP,	REG,	3, { FL2,FL2,F2 } },
-	{ R_3(0x692),	"logrl",	I_FP,	REG,	3, { FL2,FL2,F2 } },
-	{ R_3(0x693),	"remrl",	I_FP,	REG,	3, { FL2,FL2,F2 } },
-	{ R_2(0x694),	"cmporl",	I_FP,	REG,	2, { FL2,FL2, 0 } },
-	{ R_2(0x695),	"cmprl",	I_FP,	REG,	2, { FL2,FL2, 0 } },
-	{ R_2D(0x698),	"sqrtrl",	I_FP,	REG,	2, { FL2,F2, 0 } },
-	{ R_2D(0x699),	"exprl",	I_FP,	REG,	2, { FL2,F2, 0 } },
-	{ R_2D(0x69a),	"logbnrl",	I_FP,	REG,	2, { FL2,F2, 0 } },
-	{ R_2D(0x69b),	"roundrl",	I_FP,	REG,	2, { FL2,F2, 0 } },
-	{ R_2D(0x69c),	"sinrl",	I_FP,	REG,	2, { FL2,F2, 0 } },
-	{ R_2D(0x69d),	"cosrl",	I_FP,	REG,	2, { FL2,F2, 0 } },
-	{ R_2D(0x69e),	"tanrl",	I_FP,	REG,	2, { FL2,F2, 0 } },
-	{ R_1(0x69f),	"classrl",	I_FP,	REG,	1, { FL2, 0, 0 } },
-	{ R_2D(0x6c0),	"cvtri",	I_FP,	REG,	2, { FL, R, 0 } },
-	{ R_2D(0x6c1),	"cvtril",	I_FP,	REG,	2, { FL, R2, 0 } },
-	{ R_2D(0x6c2),	"cvtzri",	I_FP,	REG,	2, { FL, R, 0 } },
-	{ R_2D(0x6c3),	"cvtzril",	I_FP,	REG,	2, { FL, R2, 0 } },
-	{ R_2D(0x6c9),	"movr",		I_FP,	REG,	2, { FL, F, 0 } },
-	{ R_2D(0x6d9),	"movrl",	I_FP,	REG,	2, { FL2,F2, 0 } },
-	{ R_2D(0x6e1),	"movre",	I_FP,	REG,	2, { FL4,F4, 0 } },
-	{ R_3(0x6e2),	"cpysre",	I_FP,	REG,	3, { FL4,FL4,F4 } },
-	{ R_3(0x6e3),	"cpyrsre",	I_FP,	REG,	3, { FL4,FL4,F4 } },
-	{ R_3(0x78b),	"divr",		I_FP,	REG,	3, { FL, FL, F } },
-	{ R_3(0x78c),	"mulr",		I_FP,	REG,	3, { FL, FL, F } },
-	{ R_3(0x78d),	"subr",		I_FP,	REG,	3, { FL, FL, F } },
-	{ R_3(0x78f),	"addr",		I_FP,	REG,	3, { FL, FL, F } },
-	{ R_3(0x79b),	"divrl",	I_FP,	REG,	3, { FL2,FL2,F2 } },
-	{ R_3(0x79c),	"mulrl",	I_FP,	REG,	3, { FL2,FL2,F2 } },
-	{ R_3(0x79d),	"subrl",	I_FP,	REG,	3, { FL2,FL2,F2 } },
-	{ R_3(0x79f),	"addrl",	I_FP,	REG,	3, { FL2,FL2,F2 } },
-
-	/* These are the floating point branch instructions.  Each actually
-	 * generates 2 branch instructions:  the first a CTRL instruction with
-	 * the indicated opcode, and the second a 'bno'.
-	 */
-
-	{ 0x12000000,	"brue",		I_FP,	FBRA, 	1, { 0, 0, 0 }	},
-	{ 0x11000000,	"brug",		I_FP,	FBRA, 	1, { 0, 0, 0 }	},
-	{ 0x13000000,	"bruge",	I_FP,	FBRA, 	1, { 0, 0, 0 }	},
-	{ 0x14000000,	"brul",		I_FP,	FBRA, 	1, { 0, 0, 0 }	},
-	{ 0x16000000,	"brule",	I_FP,	FBRA, 	1, { 0, 0, 0 }	},
-	{ 0x15000000,	"brulg",	I_FP,	FBRA, 	1, { 0, 0, 0 }	},
-
-
-	/* Decimal instructions */
-
-	{ R_3(0x642),	"daddc",	I_DEC,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x643),	"dsubc",	I_DEC,	REG,	3, { RSL,RSL,RS } },
-	{ R_2D(0x644),	"dmovt",	I_DEC,	REG,	2, { RSL,RS, 0 } },
-
-
-	/* KX extensions */
-
-	{ R_2(0x600),	"synmov",	I_KX,	REG,	2, { R,  R, 0 } },
-	{ R_2(0x601),	"synmovl",	I_KX,	REG,	2, { R,  R, 0 } },
-	{ R_2(0x602),	"synmovq",	I_KX,	REG,	2, { R,  R, 0 } },
-	{ R_2D(0x615),	"synld",	I_KX,	REG,	2, { R,  R, 0 } },
-
-
-	/* MC extensions */
-
-	{ R_3(0x603),	"cmpstr",	I_MIL,	REG,	3, { R,  R,  RL } },
-	{ R_3(0x604),	"movqstr",	I_MIL,	REG,	3, { R,  R,  RL } },
-	{ R_3(0x605),	"movstr",	I_MIL,	REG,	3, { R,  R,  RL } },
-	{ R_2D(0x613),	"inspacc",	I_MIL,	REG,	2, { R,  R, 0 } },
-	{ R_2D(0x614),	"ldphy",	I_MIL,	REG,	2, { R,  R, 0 } },
-	{ R_3(0x617),	"fill",		I_MIL,	REG,	3, { R,  RL, RL } },
-	{ R_2D(0x646),	"condrec",	I_MIL,	REG,	2, { R,  R, 0 } },
-	{ R_2D(0x656),	"receive",	I_MIL,	REG,	2, { R,  R, 0 } },
-	{ R_3(0x662),	"send",		I_MIL,	REG,	3, { R,  RL, R } },
-	{ R_1(0x663),	"sendserv",	I_MIL,	REG,	1, { R, 0, 0 }	},
-	{ R_1(0x664),	"resumprcs",	I_MIL,	REG,	1, { R, 0, 0 }	},
-	{ R_1(0x665),	"schedprcs",	I_MIL,	REG,	1, { R, 0, 0 }	},
-	{ R_0(0x666),	"saveprcs",	I_MIL,	REG,	0, { 0, 0, 0 }	},
-	{ R_1(0x668),	"condwait",	I_MIL,	REG,	1, { R, 0, 0 }	},
-	{ R_1(0x669),	"wait",		I_MIL,	REG,	1, { R, 0, 0 }	},
-	{ R_1(0x66a),	"signal",	I_MIL,	REG,	1, { R, 0, 0 }	},
-	{ R_1D(0x673),	"ldtime",	I_MIL,	REG,	1, { R2, 0, 0 }	},
-
-
-	/* CX extensions */
-
-	{ R_3(0x5d8),	"eshro",	I_CX2,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x630),	"sdma",		I_CX,	REG,	3, { RSL,RSL,RL } },
-	{ R_3(0x631),	"udma",		I_CX,	REG,	0, { 0, 0, 0 }	},
-	{ R_3(0x659),	"sysctl",	I_CX2,	REG,	3, { RSL,RSL,RL } },
-
-
-	/* Jx extensions.  */
-	{ R_3(0x780),	"addono",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x790),	"addog",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7a0),	"addoe",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7b0),	"addoge",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7c0),	"addol",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7d0),	"addone",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7e0),	"addole",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7f0),	"addoo",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x781),	"addino",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x791),	"addig",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7a1),	"addie",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7b1),	"addige",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7c1),	"addil",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7d1),	"addine",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7e1),	"addile",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7f1),	"addio",	I_JX,	REG,	3, { RSL,RSL,RS } },
-
-	{ R_2D(0x5ad),	"bswap",	I_JX,	REG,	2, { RSL, RS, 0 } },
-
-	{ R_2(0x594),	"cmpob",	I_JX,	REG,	2, { RSL,RSL, 0 } },
-	{ R_2(0x595),	"cmpib",	I_JX,	REG,	2, { RSL,RSL, 0 } },
-	{ R_2(0x596),	"cmpos",	I_JX,	REG,	2, { RSL,RSL, 0 } },
-	{ R_2(0x597),	"cmpis",	I_JX,	REG,	2, { RSL,RSL, 0 } },
-
-	{ R_3(0x784),	"selno",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x794),	"selg",		I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7a4),	"sele",		I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7b4),	"selge",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7c4),	"sell",		I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7d4),	"selne",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7e4),	"selle",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7f4),	"selo",		I_JX,	REG,	3, { RSL,RSL,RS } },
-
-	{ R_3(0x782),	"subono",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x792),	"subog",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7a2),	"suboe",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7b2),	"suboge",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7c2),	"subol",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7d2),	"subone",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7e2),	"subole",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7f2),	"suboo",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x783),	"subino",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x793),	"subig",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7a3),	"subie",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7b3),	"subige",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7c3),	"subil",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7d3),	"subine",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7e3),	"subile",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_3(0x7f3),	"subio",	I_JX,	REG,	3, { RSL,RSL,RS } },
-
-	{ R_3(0x65c),	"dcctl",	I_JX,	REG,	3, { RSL,RSL,RL } },
-	{ R_3(0x65b),	"icctl",	I_JX,	REG,	3, { RSL,RSL,RS } },
-	{ R_2D(0x658),	"intctl",	I_JX,	REG,	2, { RSL, RS, 0 } },
-	{ R_0(0x5b4),	"intdis",	I_JX,	REG,	0, {   0,  0, 0 } },
-	{ R_0(0x5b5),	"inten",	I_JX,	REG,	0, {   0,  0, 0 } },
-	{ R_0(0x65d),	"halt",		I_JX,	REG,	1, { RSL,  0, 0 } },
-
-	/* Hx extensions.  */
-	{ 0xac000000,	"dcinva",	I_HX,	MEM1,	1, {   M,  0, 0 } },
-
-	/* END OF TABLE */
-
-	{ 0,		NULL,		0,	0,	0, { 0, 0, 0 }	}
-};
-
- /* end of i960-opcode.h */
diff --git a/include/opcode/ia64.h b/include/opcode/ia64.h
deleted file mode 100644
index 447e50e..0000000
--- a/include/opcode/ia64.h
+++ /dev/null
@@ -1,396 +0,0 @@
-/* ia64.h -- Header file for ia64 opcode table
-   Copyright (C) 1998, 1999, 2000, 2002, 2005, 2006
-   Free Software Foundation, Inc.
-   Contributed by David Mosberger-Tang <davidm@hpl.hp.com> */
-
-#ifndef opcode_ia64_h
-#define opcode_ia64_h
-
-#include <sys/types.h>
-
-#include "bfd.h"
-
-
-typedef BFD_HOST_U_64_BIT ia64_insn;
-
-enum ia64_insn_type
-  {
-    IA64_TYPE_NIL = 0,	/* illegal type */
-    IA64_TYPE_A,	/* integer alu (I- or M-unit) */
-    IA64_TYPE_I,	/* non-alu integer (I-unit) */
-    IA64_TYPE_M,	/* memory (M-unit) */
-    IA64_TYPE_B,	/* branch (B-unit) */
-    IA64_TYPE_F,	/* floating-point (F-unit) */
-    IA64_TYPE_X,	/* long encoding (X-unit) */
-    IA64_TYPE_DYN,	/* Dynamic opcode */
-    IA64_NUM_TYPES
-  };
-
-enum ia64_unit
-  {
-    IA64_UNIT_NIL = 0,	/* illegal unit */
-    IA64_UNIT_I,	/* integer unit */
-    IA64_UNIT_M,	/* memory unit */
-    IA64_UNIT_B,	/* branching unit */
-    IA64_UNIT_F,	/* floating-point unit */
-    IA64_UNIT_L,	/* long "unit" */
-    IA64_UNIT_X,	/* may be integer or branch unit */
-    IA64_NUM_UNITS
-  };
-
-/* Changes to this enumeration must be propagated to the operand table in
-   bfd/cpu-ia64-opc.c
- */
-enum ia64_opnd
-  {
-    IA64_OPND_NIL,	/* no operand---MUST BE FIRST!*/
-
-    /* constants */
-    IA64_OPND_AR_CSD,	/* application register csd (ar.csd) */
-    IA64_OPND_AR_CCV,	/* application register ccv (ar.ccv) */
-    IA64_OPND_AR_PFS,	/* application register pfs (ar.pfs) */
-    IA64_OPND_C1,	/* the constant 1 */
-    IA64_OPND_C8,	/* the constant 8 */
-    IA64_OPND_C16,	/* the constant 16 */
-    IA64_OPND_GR0,	/* gr0 */
-    IA64_OPND_IP,	/* instruction pointer (ip) */
-    IA64_OPND_PR,	/* predicate register (pr) */
-    IA64_OPND_PR_ROT,	/* rotating predicate register (pr.rot) */
-    IA64_OPND_PSR,	/* processor status register (psr) */
-    IA64_OPND_PSR_L,	/* processor status register L (psr.l) */
-    IA64_OPND_PSR_UM,	/* processor status register UM (psr.um) */
-
-    /* register operands: */
-    IA64_OPND_AR3,	/* third application register # (bits 20-26) */
-    IA64_OPND_B1,	/* branch register # (bits 6-8) */
-    IA64_OPND_B2,	/* branch register # (bits 13-15) */
-    IA64_OPND_CR3,	/* third control register # (bits 20-26) */
-    IA64_OPND_F1,	/* first floating-point register # */
-    IA64_OPND_F2,	/* second floating-point register # */
-    IA64_OPND_F3,	/* third floating-point register # */
-    IA64_OPND_F4,	/* fourth floating-point register # */
-    IA64_OPND_P1,	/* first predicate # */
-    IA64_OPND_P2,	/* second predicate # */
-    IA64_OPND_R1,	/* first register # */
-    IA64_OPND_R2,	/* second register # */
-    IA64_OPND_R3,	/* third register # */
-    IA64_OPND_R3_2,	/* third register # (limited to gr0-gr3) */
-
-    /* memory operands: */
-    IA64_OPND_MR3,	/* memory at addr of third register # */
-
-    /* indirect operands: */
-    IA64_OPND_CPUID_R3,	/* cpuid[reg] */
-    IA64_OPND_DBR_R3,	/* dbr[reg] */
-    IA64_OPND_DTR_R3,	/* dtr[reg] */
-    IA64_OPND_ITR_R3,	/* itr[reg] */
-    IA64_OPND_IBR_R3,	/* ibr[reg] */
-    IA64_OPND_MSR_R3,	/* msr[reg] */
-    IA64_OPND_PKR_R3,	/* pkr[reg] */
-    IA64_OPND_PMC_R3,	/* pmc[reg] */
-    IA64_OPND_PMD_R3,	/* pmd[reg] */
-    IA64_OPND_RR_R3,	/* rr[reg] */
-
-    /* immediate operands: */
-    IA64_OPND_CCNT5,	/* 5-bit count (31 - bits 20-24) */
-    IA64_OPND_CNT2a,	/* 2-bit count (1 + bits 27-28) */
-    IA64_OPND_CNT2b,	/* 2-bit count (bits 27-28): 1, 2, 3 */
-    IA64_OPND_CNT2c,	/* 2-bit count (bits 30-31): 0, 7, 15, or 16 */
-    IA64_OPND_CNT5,	/* 5-bit count (bits 14-18) */
-    IA64_OPND_CNT6,	/* 6-bit count (bits 27-32) */
-    IA64_OPND_CPOS6a,	/* 6-bit count (63 - bits 20-25) */
-    IA64_OPND_CPOS6b,	/* 6-bit count (63 - bits 14-19) */
-    IA64_OPND_CPOS6c,	/* 6-bit count (63 - bits 31-36) */
-    IA64_OPND_IMM1,	/* signed 1-bit immediate (bit 36) */
-    IA64_OPND_IMMU2,	/* unsigned 2-bit immediate (bits 13-14) */
-    IA64_OPND_IMMU5b,	/* unsigned 5-bit immediate (32 + bits 14-18) */
-    IA64_OPND_IMMU7a,	/* unsigned 7-bit immediate (bits 13-19) */
-    IA64_OPND_IMMU7b,	/* unsigned 7-bit immediate (bits 20-26) */
-    IA64_OPND_SOF,	/* 8-bit stack frame size */
-    IA64_OPND_SOL,	/* 8-bit size of locals */
-    IA64_OPND_SOR,	/* 6-bit number of rotating registers (scaled by 8) */
-    IA64_OPND_IMM8,	/* signed 8-bit immediate (bits 13-19 & 36) */
-    IA64_OPND_IMM8U4,	/* cmp4*u signed 8-bit immediate (bits 13-19 & 36) */
-    IA64_OPND_IMM8M1,	/* signed 8-bit immediate -1 (bits 13-19 & 36) */
-    IA64_OPND_IMM8M1U4,	/* cmp4*u signed 8-bit immediate -1 (bits 13-19 & 36)*/
-    IA64_OPND_IMM8M1U8,	/* cmp*u signed 8-bit immediate -1 (bits 13-19 & 36) */
-    IA64_OPND_IMMU9,	/* unsigned 9-bit immediate (bits 33-34, 20-26) */
-    IA64_OPND_IMM9a,	/* signed 9-bit immediate (bits 6-12, 27, 36) */
-    IA64_OPND_IMM9b,	/* signed 9-bit immediate (bits 13-19, 27, 36) */
-    IA64_OPND_IMM14,	/* signed 14-bit immediate (bits 13-19, 27-32, 36) */
-    IA64_OPND_IMM17,	/* signed 17-bit immediate (2*bits 6-12, 24-31, 36) */
-    IA64_OPND_IMMU21,	/* unsigned 21-bit immediate (bits 6-25, 36) */
-    IA64_OPND_IMM22,	/* signed 22-bit immediate (bits 13-19, 22-36) */
-    IA64_OPND_IMMU24,	/* unsigned 24-bit immediate (bits 6-26, 31-32, 36) */
-    IA64_OPND_IMM44,	/* signed 44-bit immediate (2^16*bits 6-32, 36) */
-    IA64_OPND_IMMU62,	/* unsigned 62-bit immediate */
-    IA64_OPND_IMMU64,	/* unsigned 64-bit immediate (lotsa bits...) */
-    IA64_OPND_INC3,	/* signed 3-bit (bits 13-15): +/-1, 4, 8, 16 */
-    IA64_OPND_LEN4,	/* 4-bit count (bits 27-30 + 1) */
-    IA64_OPND_LEN6,	/* 6-bit count (bits 27-32 + 1) */
-    IA64_OPND_MBTYPE4,	/* 4-bit mux type (bits 20-23) */
-    IA64_OPND_MHTYPE8,	/* 8-bit mux type (bits 20-27) */
-    IA64_OPND_POS6,	/* 6-bit count (bits 14-19) */
-    IA64_OPND_TAG13,	/* signed 13-bit tag (ip + 16*bits 6-12, 33-34) */
-    IA64_OPND_TAG13b,	/* signed 13-bit tag (ip + 16*bits 24-32) */
-    IA64_OPND_TGT25,	/* signed 25-bit (ip + 16*bits 6-25, 36) */
-    IA64_OPND_TGT25b,	/* signed 25-bit (ip + 16*bits 6-12, 20-32, 36) */
-    IA64_OPND_TGT25c,	/* signed 25-bit (ip + 16*bits 13-32, 36) */
-    IA64_OPND_TGT64,    /* 64-bit (ip + 16*bits 13-32, 36, 2-40(L)) */
-    IA64_OPND_LDXMOV,	/* any symbol, generates R_IA64_LDXMOV.  */
-
-    IA64_OPND_COUNT	/* # of operand types (MUST BE LAST!) */
-  };
-
-enum ia64_dependency_mode
-{
-  IA64_DV_RAW,
-  IA64_DV_WAW,
-  IA64_DV_WAR,
-};
-
-enum ia64_dependency_semantics
-{
-  IA64_DVS_NONE,
-  IA64_DVS_IMPLIED,
-  IA64_DVS_IMPLIEDF,
-  IA64_DVS_DATA,
-  IA64_DVS_INSTR,
-  IA64_DVS_SPECIFIC,
-  IA64_DVS_STOP,
-  IA64_DVS_OTHER,
-};
-
-enum ia64_resource_specifier
-{
-  IA64_RS_ANY,
-  IA64_RS_AR_K,
-  IA64_RS_AR_UNAT,
-  IA64_RS_AR, /* 8-15, 20, 22-23, 31, 33-35, 37-39, 41-43, 45-47, 67-111 */
-  IA64_RS_ARb, /* 48-63, 112-127 */
-  IA64_RS_BR,
-  IA64_RS_CFM,
-  IA64_RS_CPUID,
-  IA64_RS_CR_IRR,
-  IA64_RS_CR_LRR,
-  IA64_RS_CR, /* 3-7,10-15,18,26-63,75-79,82-127 */
-  IA64_RS_DBR,
-  IA64_RS_FR,
-  IA64_RS_FRb,
-  IA64_RS_GR0,
-  IA64_RS_GR,
-  IA64_RS_IBR,
-  IA64_RS_INSERVICE, /* CR[EOI] or CR[IVR] */
-  IA64_RS_MSR,
-  IA64_RS_PKR,
-  IA64_RS_PMC,
-  IA64_RS_PMD,
-  IA64_RS_PR,  /* non-rotating, 1-15 */
-  IA64_RS_PRr, /* rotating, 16-62 */
-  IA64_RS_PR63,
-  IA64_RS_RR,
-
-  IA64_RS_ARX, /* ARs not in RS_AR or RS_ARb */
-  IA64_RS_CRX, /* CRs not in RS_CR */
-  IA64_RS_PSR, /* PSR bits */
-  IA64_RS_RSE, /* implementation-specific RSE resources */
-  IA64_RS_AR_FPSR,
-};
-
-enum ia64_rse_resource
-{
-  IA64_RSE_N_STACKED_PHYS,
-  IA64_RSE_BOF,
-  IA64_RSE_STORE_REG,
-  IA64_RSE_LOAD_REG,
-  IA64_RSE_BSPLOAD,
-  IA64_RSE_RNATBITINDEX,
-  IA64_RSE_CFLE,
-  IA64_RSE_NDIRTY,
-};
-
-/* Information about a given resource dependency */
-struct ia64_dependency
-{
-  /* Name of the resource */
-  const char *name;
-  /* Does this dependency need further specification? */
-  enum ia64_resource_specifier specifier;
-  /* Mode of dependency */
-  enum ia64_dependency_mode mode;
-  /* Dependency semantics */
-  enum ia64_dependency_semantics semantics;
-  /* Register index, if applicable (distinguishes AR, CR, and PSR deps) */
-#define REG_NONE (-1)
-  int regindex;
-  /* Special info on semantics */
-  const char *info;
-};
-
-/* Two arrays of indexes into the ia64_dependency table.
-   chks are dependencies to check for conflicts when an opcode is
-   encountered; regs are dependencies to register (mark as used) when an
-   opcode is used.  chks correspond to readers (RAW) or writers (WAW or
-   WAR) of a resource, while regs correspond to writers (RAW or WAW) and
-   readers (WAR) of a resource.  */
-struct ia64_opcode_dependency
-{
-  int nchks;
-  const unsigned short *chks;
-  int nregs;
-  const unsigned short *regs;
-};
-
-/* encode/extract the note/index for a dependency */
-#define RDEP(N,X) (((N)<<11)|(X))
-#define NOTE(X) (((X)>>11)&0x1F)
-#define DEP(X) ((X)&0x7FF)
-
-/* A template descriptor describes the execution units that are active
-   for each of the three slots.  It also specifies the location of
-   instruction group boundaries that may be present between two slots.  */
-struct ia64_templ_desc
-  {
-    int group_boundary;	/* 0=no boundary, 1=between slot 0 & 1, etc. */
-    enum ia64_unit exec_unit[3];
-    const char *name;
-  };
-
-/* The opcode table is an array of struct ia64_opcode.  */
-
-struct ia64_opcode
-  {
-    /* The opcode name.  */
-    const char *name;
-
-    /* The type of the instruction: */
-    enum ia64_insn_type type;
-
-    /* Number of output operands: */
-    int num_outputs;
-
-    /* The opcode itself.  Those bits which will be filled in with
-       operands are zeroes.  */
-    ia64_insn opcode;
-
-    /* The opcode mask.  This is used by the disassembler.  This is a
-       mask containing ones indicating those bits which must match the
-       opcode field, and zeroes indicating those bits which need not
-       match (and are presumably filled in by operands).  */
-    ia64_insn mask;
-
-    /* An array of operand codes.  Each code is an index into the
-       operand table.  They appear in the order which the operands must
-       appear in assembly code, and are terminated by a zero.  */
-    enum ia64_opnd operands[5];
-
-    /* One bit flags for the opcode.  These are primarily used to
-       indicate specific processors and environments support the
-       instructions.  The defined values are listed below. */
-    unsigned int flags;
-
-    /* Used by ia64_find_next_opcode (). */
-    short ent_index;
-
-    /* Opcode dependencies. */
-    const struct ia64_opcode_dependency *dependencies;
-  };
-
-/* Values defined for the flags field of a struct ia64_opcode.  */
-
-#define IA64_OPCODE_FIRST	(1<<0)	/* must be first in an insn group */
-#define IA64_OPCODE_X_IN_MLX	(1<<1)	/* insn is allowed in X slot of MLX */
-#define IA64_OPCODE_LAST	(1<<2)	/* must be last in an insn group */
-#define IA64_OPCODE_PRIV	(1<<3)	/* privileged instruct */
-#define IA64_OPCODE_SLOT2	(1<<4)	/* insn allowed in slot 2 only */
-#define IA64_OPCODE_NO_PRED	(1<<5)	/* insn cannot be predicated */
-#define IA64_OPCODE_PSEUDO	(1<<6)	/* insn is a pseudo-op */
-#define IA64_OPCODE_F2_EQ_F3	(1<<7)	/* constraint: F2 == F3 */
-#define IA64_OPCODE_LEN_EQ_64MCNT	(1<<8)	/* constraint: LEN == 64-CNT */
-#define IA64_OPCODE_MOD_RRBS    (1<<9)	/* modifies all rrbs in CFM */
-#define IA64_OPCODE_POSTINC	(1<<10)	/* postincrement MR3 operand */
-
-/* A macro to extract the major opcode from an instruction.  */
-#define IA64_OP(i)	(((i) >> 37) & 0xf)
-
-enum ia64_operand_class
-  {
-    IA64_OPND_CLASS_CST,	/* constant */
-    IA64_OPND_CLASS_REG,	/* register */
-    IA64_OPND_CLASS_IND,	/* indirect register */
-    IA64_OPND_CLASS_ABS,	/* absolute value */
-    IA64_OPND_CLASS_REL,	/* IP-relative value */
-  };
-
-/* The operands table is an array of struct ia64_operand.  */
-
-struct ia64_operand
-{
-  enum ia64_operand_class class;
-
-  /* Set VALUE as the operand bits for the operand of type SELF in the
-     instruction pointed to by CODE.  If an error occurs, *CODE is not
-     modified and the returned string describes the cause of the
-     error.  If no error occurs, NULL is returned.  */
-  const char *(*insert) (const struct ia64_operand *self, ia64_insn value,
-			 ia64_insn *code);
-
-  /* Extract the operand bits for an operand of type SELF from
-     instruction CODE store them in *VALUE.  If an error occurs, the
-     cause of the error is described by the string returned.  If no
-     error occurs, NULL is returned.  */
-  const char *(*extract) (const struct ia64_operand *self, ia64_insn code,
-			  ia64_insn *value);
-
-  /* A string whose meaning depends on the operand class.  */
-
-  const char *str;
-
-  struct bit_field
-    {
-      /* The number of bits in the operand.  */
-      int bits;
-
-      /* How far the operand is left shifted in the instruction.  */
-      int shift;
-    }
-  field[4];		/* no operand has more than this many bit-fields */
-
-  unsigned int flags;
-
-  const char *desc;	/* brief description */
-};
-
-/* Values defined for the flags field of a struct ia64_operand.  */
-
-/* Disassemble as signed decimal (instead of hex): */
-#define IA64_OPND_FLAG_DECIMAL_SIGNED	(1<<0)
-/* Disassemble as unsigned decimal (instead of hex): */
-#define IA64_OPND_FLAG_DECIMAL_UNSIGNED	(1<<1)
-
-extern const struct ia64_templ_desc ia64_templ_desc[16];
-
-/* The tables are sorted by major opcode number and are otherwise in
-   the order in which the disassembler should consider instructions.  */
-extern struct ia64_opcode ia64_opcodes_a[];
-extern struct ia64_opcode ia64_opcodes_i[];
-extern struct ia64_opcode ia64_opcodes_m[];
-extern struct ia64_opcode ia64_opcodes_b[];
-extern struct ia64_opcode ia64_opcodes_f[];
-extern struct ia64_opcode ia64_opcodes_d[];
-
-
-extern struct ia64_opcode *ia64_find_opcode (const char *name);
-extern struct ia64_opcode *ia64_find_next_opcode (struct ia64_opcode *ent);
-
-extern struct ia64_opcode *ia64_dis_opcode (ia64_insn insn,
-					    enum ia64_insn_type type);
-
-extern void ia64_free_opcode (struct ia64_opcode *ent);
-extern const struct ia64_dependency *ia64_find_dependency (int index);
-
-/* To avoid circular library dependencies, this array is implemented
-   in bfd/cpu-ia64-opc.c: */
-extern const struct ia64_operand elf64_ia64_operands[IA64_OPND_COUNT];
-
-#endif /* opcode_ia64_h */
diff --git a/include/opcode/m68hc11.h b/include/opcode/m68hc11.h
deleted file mode 100644
index cddc59a..0000000
--- a/include/opcode/m68hc11.h
+++ /dev/null
@@ -1,427 +0,0 @@
-/* m68hc11.h -- Header file for Motorola 68HC11 & 68HC12 opcode table
-   Copyright 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
-   Written by Stephane Carrez (stcarrez@nerim.fr)
-
-This file is part of GDB, GAS, and the GNU binutils.
-
-GDB, GAS, and the GNU binutils are free software; you can redistribute
-them and/or modify them 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.
-
-GDB, GAS, and the GNU binutils are distributed in the hope that they
-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 file; see the file COPYING.  If not, write to the Free
-Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _OPCODE_M68HC11_H
-#define _OPCODE_M68HC11_H
-
-/* Flags for the definition of the 68HC11 & 68HC12 CCR.  */
-#define M6811_S_BIT     0x80	/* Stop disable */
-#define M6811_X_BIT     0x40	/* X-interrupt mask */
-#define M6811_H_BIT     0x20	/* Half carry flag */
-#define M6811_I_BIT     0x10	/* I-interrupt mask */
-#define M6811_N_BIT     0x08	/* Negative */
-#define M6811_Z_BIT     0x04	/* Zero */
-#define M6811_V_BIT     0x02	/* Overflow */
-#define M6811_C_BIT     0x01	/* Carry */
-
-/* 68HC11 register address offsets (range 0..0x3F or 0..64).
-   The absolute address of the I/O register depends on the setting
-   of the M6811_INIT register.  At init time, the I/O registers are
-   mapped at 0x1000.  Address of registers is then:
-
-   0x1000 + M6811_xxx
-*/
-#define M6811_PORTA     0x00	/* Port A register */
-#define M6811__RES1	0x01	/* Unused/Reserved */
-#define M6811_PIOC	0x02	/* Parallel I/O Control register */
-#define M6811_PORTC	0x03	/* Port C register */
-#define M6811_PORTB	0x04	/* Port B register */
-#define M6811_PORTCL	0x05	/* Alternate latched port C */
-#define M6811__RES6	0x06	/* Unused/Reserved */
-#define M6811_DDRC	0x07	/* Data direction register for port C */
-#define M6811_PORTD	0x08	/* Port D register */
-#define M6811_DDRD	0x09	/* Data direction register for port D */
-#define M6811_PORTE	0x0A	/* Port E input register */
-#define M6811_CFORC	0x0B	/* Compare Force Register */
-#define M6811_OC1M	0x0C	/* OC1 Action Mask register */
-#define M6811_OC1D	0x0D	/* OC1 Action Data register */
-#define M6811_TCTN	0x0E	/* Timer Counter Register */
-#define M6811_TCTN_H	0x0E	/* "	 "	 " High part */
-#define M6811_TCTN_L	0x0F	/* "	 "	 " Low part */
-#define M6811_TIC1	0x10	/* Input capture 1 register */
-#define M6811_TIC1_H	0x10	/* "	 "	 " High part */
-#define M6811_TIC1_L	0x11	/* "	 "	 " Low part */
-#define M6811_TIC2	0x12	/* Input capture 2 register */
-#define M6811_TIC2_H	0x12	/* "	 "	 " High part */
-#define M6811_TIC2_L	0x13	/* "	 "	 " Low part */
-#define M6811_TIC3	0x14	/* Input capture 3 register */
-#define M6811_TIC3_H	0x14	/* "	 "	 " High part */
-#define M6811_TIC3_L	0x15	/* "	 "	 " Low part */
-#define M6811_TOC1	0x16	/* Output Compare 1 register */
-#define M6811_TOC1_H	0x16	/* "	 "	 " High part */
-#define M6811_TOC1_L	0x17	/* "	 "	 " Low part */
-#define M6811_TOC2	0x18	/* Output Compare 2 register */
-#define M6811_TOC2_H	0x18	/* "	 "	 " High part */
-#define M6811_TOC2_L	0x19	/* "	 "	 " Low part */
-#define M6811_TOC3	0x1A	/* Output Compare 3 register */
-#define M6811_TOC3_H	0x1A	/* "	 "	 " High part */
-#define M6811_TOC3_L	0x1B	/* "	 "	 " Low part */
-#define M6811_TOC4	0x1C	/* Output Compare 4 register */
-#define M6811_TOC4_H	0x1C	/* "	 "	 " High part */
-#define M6811_TOC4_L	0x1D	/* "	 "	 " Low part */
-#define M6811_TOC5	0x1E	/* Output Compare 5 register */
-#define M6811_TOC5_H	0x1E	/* "	 "	 " High part */
-#define M6811_TOC5_L	0x1F	/* "	 "	 " Low part */
-#define M6811_TCTL1	0x20	/* Timer Control register 1 */
-#define M6811_TCTL2	0x21	/* Timer Control register 2 */
-#define M6811_TMSK1	0x22	/* Timer Interrupt Mask Register 1 */
-#define M6811_TFLG1	0x23	/* Timer Interrupt Flag Register 1 */
-#define M6811_TMSK2	0x24	/* Timer Interrupt Mask Register 2 */
-#define M6811_TFLG2	0x25	/* Timer Interrupt Flag Register 2 */
-#define M6811_PACTL	0x26	/* Pulse Accumulator Control Register */
-#define M6811_PACNT	0x27	/* Pulse Accumulator Count Register */
-#define M6811_SPCR	0x28	/* SPI Control register */
-#define M6811_SPSR	0x29	/* SPI Status register */
-#define M6811_SPDR	0x2A	/* SPI Data register */
-#define M6811_BAUD	0x2B	/* SCI Baud register */
-#define M6811_SCCR1	0x2C	/* SCI Control register 1 */
-#define M6811_SCCR2	0x2D	/* SCI Control register 2 */
-#define M6811_SCSR	0x2E	/* SCI Status register */
-#define M6811_SCDR	0x2F	/* SCI Data (Read => RDR, Write => TDR) */
-#define M6811_ADCTL	0x30	/* A/D Control register */
-#define M6811_ADR1	0x31	/* A/D, Analog Result register 1 */
-#define M6811_ADR2	0x32	/* A/D, Analog Result register 2 */
-#define M6811_ADR3	0x33	/* A/D, Analog Result register 3 */
-#define M6811_ADR4	0x34	/* A/D, Analog Result register 4 */
-#define M6811__RES35	0x35
-#define M6811__RES36	0x36
-#define M6811__RES37	0x37
-#define M6811__RES38	0x38
-#define M6811_OPTION	0x39	/* System Configuration Options */
-#define M6811_COPRST	0x3A	/* Arm/Reset COP Timer Circuitry */
-#define M6811_PPROG	0x3B	/* EEPROM Programming Control Register */
-#define M6811_HPRIO	0x3C	/* Highest priority I-Bit int and misc */
-#define M6811_INIT	0x3D	/* Ram and I/O mapping register */
-#define M6811_TEST1	0x3E	/* Factory test control register */
-#define M6811_CONFIG	0x3F	/* COP, ROM and EEPROM enables */
-
-
-/* Flags of the CONFIG register (in EEPROM).  */
-#define M6811_NOSEC     0x08    /* Security mode disable */
-#define M6811_NOCOP     0x04    /* COP system disable */
-#define M6811_ROMON     0x02    /* Enable on-chip rom */
-#define M6811_EEON      0x01    /* Enable on-chip eeprom */
-
-/* Flags of the PPROG register.  */
-#define M6811_BYTE	0x10	/* Byte mode */
-#define M6811_ROW       0x08	/* Row mode */
-#define M6811_ERASE	0x04	/* Erase mode select (1 = erase, 0 = read) */
-#define M6811_EELAT     0x02	/* EEPROM Latch Control */
-#define M6811_EEPGM     0x01	/* EEPROM Programming Voltage Enable */
-
-/* Flags of the PIOC register.  */
-#define M6811_STAF	0x80	/* Strobe A Interrupt Status Flag */
-#define M6811_STAI	0x40	/* Strobe A Interrupt Enable Mask */
-#define M6811_CWOM	0x20	/* Port C Wire OR mode */
-#define M6811_HNDS	0x10	/* Handshake mode */
-#define M6811_OIN	0x08	/* Output or Input handshaking */
-#define M6811_PLS	0x04	/* Pulse/Interlocked Handshake Operation */
-#define M6811_EGA	0x02	/* Active Edge for Strobe A */
-#define M6811_INVB	0x01	/* Invert Strobe B */
-
-/* Flags of the SCCR1 register.  */
-#define M6811_R8	0x80	/* Receive Data bit 8 */
-#define M6811_T8	0x40	/* Transmit data bit 8 */
-#define M6811__SCCR1_5  0x20	/* Unused */
-#define M6811_M		0x10	/* SCI Character length */
-#define M6811_WAKE	0x08	/* Wake up method select (0=idle, 1=addr mark) */
-
-/* Flags of the SCCR2 register.  */
-#define M6811_TIE	0x80	/* Transmit Interrupt enable */
-#define M6811_TCIE	0x40	/* Transmit Complete Interrupt Enable */
-#define M6811_RIE	0x20	/* Receive Interrupt Enable */
-#define M6811_ILIE	0x10	/* Idle Line Interrupt Enable */
-#define M6811_TE	0x08	/* Transmit Enable */
-#define M6811_RE	0x04	/* Receive Enable */
-#define M6811_RWU	0x02	/* Receiver Wake Up */
-#define M6811_SBK	0x01	/* Send Break */
-
-/* Flags of the SCSR register.  */
-#define M6811_TDRE	0x80	/* Transmit Data Register Empty */
-#define M6811_TC	0x40	/* Transmit Complete */
-#define M6811_RDRF	0x20	/* Receive Data Register Full */
-#define M6811_IDLE	0x10	/* Idle Line Detect */
-#define M6811_OR	0x08	/* Overrun Error */
-#define M6811_NF	0x04	/* Noise Flag */
-#define M6811_FE	0x02	/* Framing Error */
-#define M6811__SCSR_0	0x01	/* Unused */
-
-/* Flags of the BAUD register.  */
-#define M6811_TCLR	0x80	/* Clear Baud Rate (TEST mode) */
-#define M6811__BAUD_6	0x40	/* Not used */
-#define M6811_SCP1	0x20	/* SCI Baud rate prescaler select */
-#define M6811_SCP0	0x10
-#define M6811_RCKB	0x08	/* Baud Rate Clock Check (TEST mode) */
-#define M6811_SCR2	0x04	/* SCI Baud rate select */
-#define M6811_SCR1	0x02
-#define M6811_SCR0	0x01
-
-#define M6811_BAUD_DIV_1	(0)
-#define M6811_BAUD_DIV_3	(M6811_SCP0)
-#define M6811_BAUD_DIV_4	(M6811_SCP1)
-#define M6811_BAUD_DIV_13	(M6811_SCP1|M6811_SCP0)
-
-/* Flags of the SPCR register.  */
-#define M6811_SPIE	0x80	/* Serial Peripheral Interrupt Enable */
-#define M6811_SPE	0x40	/* Serial Peripheral System Enable */
-#define M6811_DWOM	0x20	/* Port D Wire-OR mode option */
-#define M6811_MSTR	0x10	/* Master Mode Select */
-#define M6811_CPOL	0x08	/* Clock Polarity */
-#define M6811_CPHA	0x04	/* Clock Phase */
-#define M6811_SPR1	0x02	/* SPI Clock Rate Select */
-#define M6811_SPR0	0x01
-
-/* Flags of the SPSR register.  */
-#define M6811_SPIF	0x80	/* SPI Transfer Complete flag */
-#define M6811_WCOL	0x40	/* Write Collision */
-#define M6811_MODF	0x10	/* Mode Fault */
-
-/* Flags of the ADCTL register.  */
-#define M6811_CCF	0x80	/* Conversions Complete Flag */
-#define M6811_SCAN	0x20	/* Continuous Scan Control */
-#define M6811_MULT	0x10	/* Multiple Channel/Single Channel Control */
-#define M6811_CD	0x08	/* Channel Select D */
-#define M6811_CC	0x04	/*                C */
-#define M6811_CB	0x02	/*                B */
-#define M6811_CA	0x01	/*                A */
-
-/* Flags of the CFORC register.  */
-#define M6811_FOC1	0x80	/* Force Output Compare 1 */
-#define M6811_FOC2	0x40	/*			2 */
-#define M6811_FOC3	0x20	/*			3 */
-#define M6811_FOC4	0x10	/*			4 */
-#define M6811_FOC5	0x08	/*			5 */
-
-/* Flags of the OC1M register.  */
-#define M6811_OC1M7	0x80	/* Output Compare 7 */
-#define M6811_OC1M6	0x40	/*                6 */
-#define M6811_OC1M5	0x20	/*                5 */
-#define M6811_OC1M4	0x10	/*                4 */
-#define M6811_OC1M3	0x08	/*                3 */
-
-/* Flags of the OC1D register.  */
-#define M6811_OC1D7	0x80
-#define M6811_OC1D6	0x40
-#define M6811_OC1D5	0x20
-#define M6811_OC1D4	0x10
-#define M6811_OC1D3	0x08
-
-/* Flags of the TCTL1 register.  */
-#define M6811_OM2	0x80	/* Output Mode 2 */
-#define M6811_OL2	0x40	/* Output Level 2 */
-#define M6811_OM3	0x20
-#define M6811_OL3	0x10
-#define M6811_OM4	0x08
-#define M6811_OL4	0x04
-#define M6811_OM5	0x02
-#define M6811_OL5	0x01
-
-/* Flags of the TCTL2 register.  */
-#define M6811_EDG1B	0x20	/* Input Edge Capture Control 1 */
-#define M6811_EDG1A	0x10
-#define M6811_EDG2B	0x08	/* Input 2 */
-#define M6811_EDG2A	0x04
-#define M6811_EDG3B	0x02	/* Input 3 */
-#define M6811_EDG3A	0x01
-
-/* Flags of the TMSK1 register.  */
-#define M6811_OC1I	0x80	/* Output Compare 1 Interrupt */
-#define M6811_OC2I	0x40	/*		  2	      */
-#define M6811_OC3I	0x20	/*		  3	      */
-#define M6811_OC4I	0x10	/*		  4	      */
-#define M6811_OC5I	0x08	/*		  5	      */
-#define M6811_IC1I	0x04	/* Input Capture  1 Interrupt */
-#define M6811_IC2I	0x02	/*		  2	      */
-#define M6811_IC3I	0x01	/*		  3	      */
-
-/* Flags of the TFLG1 register.  */
-#define M6811_OC1F	0x80	/* Output Compare 1 Flag */
-#define M6811_OC2F	0x40	/*		  2	 */
-#define M6811_OC3F	0x20	/*		  3	 */
-#define M6811_OC4F	0x10	/*		  4	 */
-#define M6811_OC5F	0x08	/*		  5	 */
-#define M6811_IC1F	0x04	/* Input Capture  1 Flag */
-#define M6811_IC2F	0x02	/*		  2	 */
-#define M6811_IC3F	0x01	/*		  3	 */
-
-/* Flags of Timer Interrupt Mask Register 2 (TMSK2).  */
-#define M6811_TOI       0x80    /* Timer Overflow Interrupt Enable */
-#define M6811_RTII      0x40    /* RTI Interrupt Enable */
-#define M6811_PAOVI     0x20    /* Pulse Accumulator Overflow Interrupt En. */
-#define M6811_PAII      0x10    /* Pulse Accumulator Interrupt Enable */
-#define M6811_PR1       0x02    /* Timer prescaler */
-#define M6811_PR0       0x01    /* Timer prescaler */
-#define M6811_TPR_1     0x00    /* " " prescale div 1 */
-#define M6811_TPR_4     0x01    /* " " prescale div 4 */
-#define M6811_TPR_8     0x02    /* " " prescale div 8 */
-#define M6811_TPR_16    0x03    /* " " prescale div 16 */
-
-/* Flags of Timer Interrupt Flag Register 2 (M6811_TFLG2).  */
-#define M6811_TOF       0x80    /* Timer overflow bit */
-#define M6811_RTIF      0x40    /* Read time interrupt flag */
-#define M6811_PAOVF     0x20    /* Pulse accumulator overflow Interrupt flag */
-#define M6811_PAIF      0x10    /* Pulse accumulator Input Edge " " " */
-
-/* Flags of Pulse Accumulator Control Register (PACTL).  */
-#define M6811_DDRA7     0x80    /* Data direction for port A bit 7 */
-#define M6811_PAEN      0x40    /* Pulse accumulator system enable */
-#define M6811_PAMOD     0x20    /* Pulse accumulator mode */
-#define M6811_PEDGE     0x10    /* Pulse accumulator edge control */
-#define M6811_RTR1      0x02    /* RTI Interrupt rates select */
-#define M6811_RTR0      0x01    /* " " " " */
-
-/* Flags of the Options register.  */
-#define M6811_ADPU      0x80    /* A/D Powerup */
-#define M6811_CSEL      0x40    /* A/D/EE Charge pump clock source select */
-#define M6811_IRQE      0x20    /* IRQ Edge/Level sensitive */
-#define M6811_DLY       0x10    /* Stop exit turn on delay */
-#define M6811_CME       0x08    /* Clock Monitor enable */
-#define M6811_CR1       0x02    /* COP timer rate select */
-#define M6811_CR0       0x01    /* COP timer rate select */
-
-/* Flags of the HPRIO register.  */
-#define M6811_RBOOT	0x80	/* Read Bootstrap ROM */
-#define M6811_SMOD	0x40	/* Special Mode */
-#define M6811_MDA	0x20	/* Mode Select A */
-#define M6811_IRV	0x10	/* Internal Read Visibility */
-#define M6811_PSEL3	0x08	/* Priority Select */
-#define M6811_PSEL2	0x04
-#define M6811_PSEL1	0x02
-#define M6811_PSEL0	0x01
-
-/* Some insns used by gas to turn relative branches into absolute ones.  */
-#define M6811_BRA	0x20
-#define M6811_JMP	0x7e
-#define M6811_BSR	0x8d
-#define M6811_JSR	0xbd
-#define M6812_JMP       0x06
-#define M6812_BSR       0x07
-#define M6812_JSR       0x16
-
-/* Instruction code pages. Code page 1 is the default.  */
-/*#define	M6811_OPCODE_PAGE1	0x00*/
-#define	M6811_OPCODE_PAGE2	0x18
-#define	M6811_OPCODE_PAGE3	0x1A
-#define	M6811_OPCODE_PAGE4	0xCD
-
-
-/* 68HC11 operands formats as stored in the m6811_opcode table.  These
-   flags do not correspond to anything in the 68HC11 or 68HC12.
-   They are only used by GAS to recognize operands.  */
-#define M6811_OP_NONE         0        /* No operand */
-#define M6811_OP_DIRECT       0x0001   /* Page 0 addressing:   *<val-8bits>  */
-#define M6811_OP_IMM8         0x0002   /*  8 bits immediat:    #<val-8bits>  */
-#define M6811_OP_IMM16        0x0004   /* 16 bits immediat:    #<val-16bits> */
-#define M6811_OP_IND16        0x0008   /* Indirect abs:        <val-16>      */
-#define M6812_OP_IND16_P2     0x0010   /* Second parameter indirect abs.     */
-#define M6812_OP_REG          0x0020   /* Register operand 1                 */
-#define M6812_OP_REG_2        0x0040   /* Register operand 2                 */
-
-#define M6811_OP_IX           0x0080   /* Indirect IX:         <val-8>,x     */
-#define M6811_OP_IY           0x0100   /* Indirect IY:         <val-8>,y     */
-#define M6812_OP_IDX          0x0200   /* Indirect: N,r N,[+-]r[+-] N:5-bits */
-#define M6812_OP_IDX_1        0x0400   /* N,r N:9-bits  */
-#define M6812_OP_IDX_2        0x0800   /* N,r N:16-bits */
-#define M6812_OP_D_IDX        0x1000   /* Indirect indexed: [D,r] */
-#define M6812_OP_D_IDX_2      0x2000   /* [N,r] N:16-bits */
-#define M6812_OP_PAGE         0x4000   /* Page number */
-#define M6811_OP_MASK         0x07FFF
-#define M6811_OP_BRANCH       0x00008000 /* Branch, jsr, call */
-#define M6811_OP_BITMASK      0x00010000 /* Bitmask:             #<val-8>    */
-#define M6811_OP_JUMP_REL     0x00020000 /* Pc-Relative:         <val-8>     */
-#define M6812_OP_JUMP_REL16   0x00040000 /* Pc-relative:         <val-16>    */
-#define M6811_OP_PAGE1        0x0000
-#define M6811_OP_PAGE2        0x00080000 /* Need a page2 opcode before       */
-#define M6811_OP_PAGE3        0x00100000 /* Need a page3 opcode before       */
-#define M6811_OP_PAGE4        0x00200000 /* Need a page4 opcode before       */
-#define M6811_MAX_OPERANDS    3     /* Max operands: brset <dst> <mask> <b> */
-
-#define M6812_ACC_OFFSET      0x00400000 /* A,r B,r D,r			    */
-#define M6812_ACC_IND         0x00800000 /* [D,r]			    */
-#define M6812_PRE_INC         0x01000000 /* n,+r   n = -8..8		    */
-#define M6812_PRE_DEC         0x02000000 /* n,-r			    */
-#define M6812_POST_INC        0x04000000 /* n,r+			    */
-#define M6812_POST_DEC        0x08000000 /* n,r-			    */
-#define M6812_INDEXED_IND     0x10000000 /* [n,r]  n = 16-bits		    */
-#define M6812_INDEXED         0x20000000 /* n,r    n = 5, 9 or 16-bits	    */
-#define M6812_OP_IDX_P2       0x40000000
-
-/* Markers to identify some instructions.  */
-#define M6812_OP_EXG_MARKER   0x01000000 /* exg r1,r2 */
-#define M6812_OP_TFR_MARKER   0x02000000 /* tfr r1,r2 */
-#define M6812_OP_SEX_MARKER   0x04000000 /* sex r1,r2 */
-
-#define M6812_OP_EQ_MARKER    0x80000000 /* dbeq/ibeq/tbeq */
-#define M6812_OP_DBCC_MARKER  0x04000000 /* dbeq/dbne */
-#define M6812_OP_IBCC_MARKER  0x02000000 /* ibeq/ibne */
-#define M6812_OP_TBCC_MARKER  0x01000000
-
-#define M6812_OP_TRAP_ID      0x80000000 /* trap #N */
-
-#define M6811_OP_HIGH_ADDR    0x01000000 /* Used internally by gas.  */
-#define M6811_OP_LOW_ADDR     0x02000000
-
-#define M68HC12_BANK_VIRT 0x010000
-#define M68HC12_BANK_MASK 0x00003fff
-#define M68HC12_BANK_BASE 0x00008000
-#define M68HC12_BANK_SHIFT 14
-#define M68HC12_BANK_PAGE_MASK 0x0ff
-
-
-/* CPU identification.  */
-#define cpu6811 0x01
-#define cpu6812 0x02
-#define cpu6812s 0x04
-
-/* The opcode table is an array of struct m68hc11_opcode.  */
-struct m68hc11_opcode {
-  const char*    name;     /* Op-code name */
-  long           format;
-  unsigned char  size;
-  unsigned char  opcode;
-  unsigned char  cycles_low;
-  unsigned char  cycles_high;
-  unsigned char  set_flags_mask;
-  unsigned char  clr_flags_mask;
-  unsigned char  chg_flags_mask;
-  unsigned char  arch;
-};
-
-/* Alias definition for 68HC12.  */
-struct m68hc12_opcode_alias 
-{
-  const char*   name;
-  const char*   translation;
-  unsigned char size;
-  unsigned char code1;
-  unsigned char code2;
-};
-
-/* The opcode table.  The table contains all the opcodes (all pages).
-   You can't rely on the order.  */
-extern const struct m68hc11_opcode m68hc11_opcodes[];
-extern const int m68hc11_num_opcodes;
-
-/* Alias table for 68HC12.  It translates some 68HC11 insn which are not
-   implemented in 68HC12 but have equivalent translations.  */
-extern const struct m68hc12_opcode_alias m68hc12_alias[];
-extern const int m68hc12_num_alias;
-
-#endif /* _OPCODE_M68HC11_H */
diff --git a/include/opcode/m68k.h b/include/opcode/m68k.h
deleted file mode 100644
index 65543e6..0000000
--- a/include/opcode/m68k.h
+++ /dev/null
@@ -1,368 +0,0 @@
-/* Opcode table header for m680[01234]0/m6888[12]/m68851.
-   Copyright 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999, 2001,
-   2003, 2004, 2006 Free Software Foundation, Inc.
-
-   This file is part of GDB, GAS, and the GNU binutils.
-
-   GDB, GAS, and the GNU binutils are free software; you can redistribute
-   them and/or modify them 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.
-
-   GDB, GAS, and the GNU binutils are distributed in the hope that they
-   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 file; see the file COPYING.  If not, write to the Free
-   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
-   02110-1301, USA.  */
-
-/* These are used as bit flags for the arch field in the m68k_opcode
-   structure.  */
-#define	_m68k_undef  0
-#define	m68000   0x001
-#define	m68010   0x002
-#define	m68020   0x004
-#define	m68030   0x008
-#define	m68040   0x010
-#define m68060   0x020
-#define	m68881   0x040
-#define	m68851   0x080
-#define cpu32	 0x100		/* e.g., 68332 */
-#define m68k_mask  0x1ff
-
-#define mcfmac   0x200		/* ColdFire MAC. */
-#define mcfemac  0x400		/* ColdFire EMAC. */
-#define cfloat   0x800		/* ColdFire FPU.  */
-#define mcfhwdiv 0x1000		/* ColdFire hardware divide.  */
-
-#define mcfisa_a 0x2000		/* ColdFire ISA_A.  */
-#define mcfisa_aa 0x4000	/* ColdFire ISA_A+.  */
-#define mcfisa_b 0x8000		/* ColdFire ISA_B.  */
-#define mcfusp   0x10000	/* ColdFire USP instructions.  */
-#define mcf_mask 0x1f200
-
-/* Handy aliases.  */
-#define	m68040up   (m68040 | m68060)
-#define	m68030up   (m68030 | m68040up)
-#define	m68020up   (m68020 | m68030up)
-#define	m68010up   (m68010 | cpu32 | m68020up)
-#define	m68000up   (m68000 | m68010up)
-
-#define	mfloat  (m68881 | m68040 | m68060)
-#define	mmmu    (m68851 | m68030 | m68040 | m68060)
-
-/* The structure used to hold information for an opcode.  */
-
-struct m68k_opcode
-{
-  /* The opcode name.  */
-  const char *name;
-  /* The pseudo-size of the instruction(in bytes).  Used to determine
-     number of bytes necessary to disassemble the instruction.  */
-  unsigned int size;
-  /* The opcode itself.  */
-  unsigned long opcode;
-  /* The mask used by the disassembler.  */
-  unsigned long match;
-  /* The arguments.  */
-  const char *args;
-  /* The architectures which support this opcode.  */
-  unsigned int arch;
-};
-
-/* The structure used to hold information for an opcode alias.  */
-
-struct m68k_opcode_alias
-{
-  /* The alias name.  */
-  const char *alias;
-  /* The instruction for which this is an alias.  */
-  const char *primary;
-};
-
-/* We store four bytes of opcode for all opcodes because that is the
-   most any of them need.  The actual length of an instruction is
-   always at least 2 bytes, and is as much longer as necessary to hold
-   the operands it has.
-
-   The match field is a mask saying which bits must match particular
-   opcode in order for an instruction to be an instance of that
-   opcode.
-
-   The args field is a string containing two characters for each
-   operand of the instruction.  The first specifies the kind of
-   operand; the second, the place it is stored.  */
-
-/* Kinds of operands:
-   Characters used: AaBbCcDdEeFfGgHIiJkLlMmnOopQqRrSsTtU VvWwXxYyZz01234|*~%;@!&$?/<>#^+-
-
-   D  data register only.  Stored as 3 bits.
-   A  address register only.  Stored as 3 bits.
-   a  address register indirect only.  Stored as 3 bits.
-   R  either kind of register.  Stored as 4 bits.
-   r  either kind of register indirect only.  Stored as 4 bits.
-      At the moment, used only for cas2 instruction.
-   F  floating point coprocessor register only.   Stored as 3 bits.
-   O  an offset (or width): immediate data 0-31 or data register.
-      Stored as 6 bits in special format for BF... insns.
-   +  autoincrement only.  Stored as 3 bits (number of the address register).
-   -  autodecrement only.  Stored as 3 bits (number of the address register).
-   Q  quick immediate data.  Stored as 3 bits.
-      This matches an immediate operand only when value is in range 1 .. 8.
-   M  moveq immediate data.  Stored as 8 bits.
-      This matches an immediate operand only when value is in range -128..127
-   T  trap vector immediate data.  Stored as 4 bits.
-
-   k  K-factor for fmove.p instruction.   Stored as a 7-bit constant or
-      a three bit register offset, depending on the field type.
-
-   #  immediate data.  Stored in special places (b, w or l)
-      which say how many bits to store.
-   ^  immediate data for floating point instructions.   Special places
-      are offset by 2 bytes from '#'...
-   B  pc-relative address, converted to an offset
-      that is treated as immediate data.
-   d  displacement and register.  Stores the register as 3 bits
-      and stores the displacement in the entire second word.
-
-   C  the CCR.  No need to store it; this is just for filtering validity.
-   S  the SR.  No need to store, just as with CCR.
-   U  the USP.  No need to store, just as with CCR.
-   E  the MAC ACC.  No need to store, just as with CCR.
-   e  the EMAC ACC[0123].
-   G  the MAC/EMAC MACSR.  No need to store, just as with CCR.
-   g  the EMAC ACCEXT{01,23}.
-   H  the MASK.  No need to store, just as with CCR.
-   i  the MAC/EMAC scale factor.
-
-   I  Coprocessor ID.   Not printed if 1.   The Coprocessor ID is always
-      extracted from the 'd' field of word one, which means that an extended
-      coprocessor opcode can be skipped using the 'i' place, if needed.
-
-   s  System Control register for the floating point coprocessor.
-
-   J  Misc register for movec instruction, stored in 'j' format.
-	Possible values:
-	0x000	SFC	Source Function Code reg	[60, 40, 30, 20, 10]
-	0x001	DFC	Data Function Code reg		[60, 40, 30, 20, 10]
-	0x002   CACR    Cache Control Register          [60, 40, 30, 20, mcf]
-	0x003	TC	MMU Translation Control		[60, 40]
-	0x004	ITT0	Instruction Transparent
-				Translation reg 0	[60, 40]
-	0x005	ITT1	Instruction Transparent
-				Translation reg 1	[60, 40]
-	0x006	DTT0	Data Transparent
-				Translation reg 0	[60, 40]
-	0x007	DTT1	Data Transparent
-				Translation reg 1	[60, 40]
-	0x008	BUSCR	Bus Control Register		[60]
-	0x800	USP	User Stack Pointer		[60, 40, 30, 20, 10]
-        0x801   VBR     Vector Base reg                 [60, 40, 30, 20, 10, mcf]
-	0x802	CAAR	Cache Address Register		[        30, 20]
-	0x803	MSP	Master Stack Pointer		[    40, 30, 20]
-	0x804	ISP	Interrupt Stack Pointer		[    40, 30, 20]
-	0x805	MMUSR	MMU Status reg			[    40]
-	0x806	URP	User Root Pointer		[60, 40]
-	0x807	SRP	Supervisor Root Pointer		[60, 40]
-	0x808	PCR	Processor Configuration reg	[60]
-	0xC00	ROMBAR	ROM Base Address Register	[520X]
-	0xC04	RAMBAR0	RAM Base Address Register 0	[520X]
-	0xC05	RAMBAR1	RAM Base Address Register 0	[520X]
-	0xC0F	MBAR0	RAM Base Address Register 0	[520X]
-        0xC04   FLASHBAR FLASH Base Address Register    [mcf528x]
-        0xC05   RAMBAR  Static RAM Base Address Register [mcf528x]
-
-    L  Register list of the type d0-d7/a0-a7 etc.
-       (New!  Improved!  Can also hold fp0-fp7, as well!)
-       The assembler tries to see if the registers match the insn by
-       looking at where the insn wants them stored.
-
-    l  Register list like L, but with all the bits reversed.
-       Used for going the other way. . .
-
-    c  cache identifier which may be "nc" for no cache, "ic"
-       for instruction cache, "dc" for data cache, or "bc"
-       for both caches.  Used in cinv and cpush.  Always
-       stored in position "d".
-
-    u  Any register, with ``upper'' or ``lower'' specification.  Used
-       in the mac instructions with size word.
-
- The remainder are all stored as 6 bits using an address mode and a
- register number; they differ in which addressing modes they match.
-
-   *  all					(modes 0-6,7.0-4)
-   ~  alterable memory				(modes 2-6,7.0,7.1)
-   						(not 0,1,7.2-4)
-   %  alterable					(modes 0-6,7.0,7.1)
-						(not 7.2-4)
-   ;  data					(modes 0,2-6,7.0-4)
-						(not 1)
-   @  data, but not immediate			(modes 0,2-6,7.0-3)
-						(not 1,7.4)
-   !  control					(modes 2,5,6,7.0-3)
-						(not 0,1,3,4,7.4)
-   &  alterable control				(modes 2,5,6,7.0,7.1)
-						(not 0,1,3,4,7.2-4)
-   $  alterable data				(modes 0,2-6,7.0,7.1)
-						(not 1,7.2-4)
-   ?  alterable control, or data register	(modes 0,2,5,6,7.0,7.1)
-						(not 1,3,4,7.2-4)
-   /  control, or data register			(modes 0,2,5,6,7.0-3)
-						(not 1,3,4,7.4)
-   >  *save operands				(modes 2,4,5,6,7.0,7.1)
-						(not 0,1,3,7.2-4)
-   <  *restore operands				(modes 2,3,5,6,7.0-3)
-						(not 0,1,4,7.4)
-
-   coldfire move operands:
-   m  						(modes 0-4)
-   n						(modes 5,7.2)
-   o						(modes 6,7.0,7.1,7.3,7.4)
-   p						(modes 0-5)
-
-   coldfire bset/bclr/btst/mulsl/mulul operands:
-   q						(modes 0,2-5)
-   v						(modes 0,2-5,7.0,7.1)
-   b                                            (modes 0,2-5,7.2)
-   w                                            (modes 2-5,7.2)
-   y						(modes 2,5)
-   z						(modes 2,5,7.2)
-   x  mov3q immediate operand.
-   4						(modes 2,3,4,5)
-  */
-
-/* For the 68851:  */
-/* I didn't use much imagination in choosing the
-   following codes, so many of them aren't very
-   mnemonic. -rab
-
-   0  32 bit pmmu register
-	Possible values:
-	000	TC	Translation Control Register (68030, 68851)
-
-   1  16 bit pmmu register
-	111	AC	Access Control (68851)
-
-   2  8 bit pmmu register
-	100	CAL	Current Access Level (68851)
-	101	VAL	Validate Access Level (68851)
-	110	SCC	Stack Change Control (68851)
-
-   3  68030-only pmmu registers (32 bit)
-	010	TT0	Transparent Translation reg 0
-			(aka Access Control reg 0 -- AC0 -- on 68ec030)
-	011	TT1	Transparent Translation reg 1
-			(aka Access Control reg 1 -- AC1 -- on 68ec030)
-
-   W  wide pmmu registers
-	Possible values:
-	001	DRP	Dma Root Pointer (68851)
-	010	SRP	Supervisor Root Pointer (68030, 68851)
-	011	CRP	Cpu Root Pointer (68030, 68851)
-
-   f	function code register (68030, 68851)
-	0	SFC
-	1	DFC
-
-   V	VAL register only (68851)
-
-   X	BADx, BACx (16 bit)
-	100	BAD	Breakpoint Acknowledge Data (68851)
-	101	BAC	Breakpoint Acknowledge Control (68851)
-
-   Y	PSR (68851) (MMUSR on 68030) (ACUSR on 68ec030)
-   Z	PCSR (68851)
-
-   |	memory 		(modes 2-6, 7.*)
-
-   t  address test level (68030 only)
-      Stored as 3 bits, range 0-7.
-      Also used for breakpoint instruction now.
-
-*/
-
-/* Places to put an operand, for non-general operands:
-   Characters used: BbCcDdFfGgHhIijkLlMmNnostWw123456789/
-
-   s  source, low bits of first word.
-   d  dest, shifted 9 in first word
-   1  second word, shifted 12
-   2  second word, shifted 6
-   3  second word, shifted 0
-   4  third word, shifted 12
-   5  third word, shifted 6
-   6  third word, shifted 0
-   7  second word, shifted 7
-   8  second word, shifted 10
-   9  second word, shifted 5
-   D  store in both place 1 and place 3; for divul and divsl.
-   B  first word, low byte, for branch displacements
-   W  second word (entire), for branch displacements
-   L  second and third words (entire), for branch displacements
-      (also overloaded for move16)
-   b  second word, low byte
-   w  second word (entire) [variable word/long branch offset for dbra]
-   W  second word (entire) (must be signed 16 bit value)
-   l  second and third word (entire)
-   g  variable branch offset for bra and similar instructions.
-      The place to store depends on the magnitude of offset.
-   t  store in both place 7 and place 8; for floating point operations
-   c  branch offset for cpBcc operations.
-      The place to store is word two if bit six of word one is zero,
-      and words two and three if bit six of word one is one.
-   i  Increment by two, to skip over coprocessor extended operands.   Only
-      works with the 'I' format.
-   k  Dynamic K-factor field.   Bits 6-4 of word 2, used as a register number.
-      Also used for dynamic fmovem instruction.
-   C  floating point coprocessor constant - 7 bits.  Also used for static
-      K-factors...
-   j  Movec register #, stored in 12 low bits of second word.
-   m  For M[S]ACx; 4 bits split with MSB shifted 6 bits in first word
-      and remaining 3 bits of register shifted 9 bits in first word.
-      Indicate upper/lower in 1 bit shifted 7 bits in second word.
-      Use with `R' or `u' format.
-   n  `m' withouth upper/lower indication. (For M[S]ACx; 4 bits split
-      with MSB shifted 6 bits in first word and remaining 3 bits of
-      register shifted 9 bits in first word.  No upper/lower
-      indication is done.)  Use with `R' or `u' format.
-   o  For M[S]ACw; 4 bits shifted 12 in second word (like `1').
-      Indicate upper/lower in 1 bit shifted 7 bits in second word.
-      Use with `R' or `u' format.
-   M  For M[S]ACw; 4 bits in low bits of first word.  Indicate
-      upper/lower in 1 bit shifted 6 bits in second word.  Use with
-      `R' or `u' format.
-   N  For M[S]ACw; 4 bits in low bits of second word.  Indicate
-      upper/lower in 1 bit shifted 6 bits in second word.  Use with
-      `R' or `u' format.
-   h  shift indicator (scale factor), 1 bit shifted 10 in second word
-
- Places to put operand, for general operands:
-   d  destination, shifted 6 bits in first word
-   b  source, at low bit of first word, and immediate uses one byte
-   w  source, at low bit of first word, and immediate uses two bytes
-   l  source, at low bit of first word, and immediate uses four bytes
-   s  source, at low bit of first word.
-      Used sometimes in contexts where immediate is not allowed anyway.
-   f  single precision float, low bit of 1st word, immediate uses 4 bytes
-   F  double precision float, low bit of 1st word, immediate uses 8 bytes
-   x  extended precision float, low bit of 1st word, immediate uses 12 bytes
-   p  packed float, low bit of 1st word, immediate uses 12 bytes
-   G  EMAC accumulator, load  (bit 4 2nd word, !bit8 first word)
-   H  EMAC accumulator, non load  (bit 4 2nd word, bit 8 first word)
-   F  EMAC ACCx
-   f  EMAC ACCy
-   I  MAC/EMAC scale factor
-   /  Like 's', but set 2nd word, bit 5 if trailing_ampersand set
-   ]  first word, bit 10
-*/
-
-extern const struct m68k_opcode m68k_opcodes[];
-extern const struct m68k_opcode_alias m68k_opcode_aliases[];
-
-extern const int m68k_numopcodes, m68k_numaliases;
-
-/* end of m68k-opcode.h */
diff --git a/include/opcode/m88k.h b/include/opcode/m88k.h
deleted file mode 100644
index 2589686..0000000
--- a/include/opcode/m88k.h
+++ /dev/null
@@ -1,454 +0,0 @@
-/* Table of opcodes for the Motorola M88k family.
-   Copyright 1989, 1990, 1991, 1993, 2001, 2002
-   Free Software Foundation, Inc.
-
-This file is part of GDB and GAS.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/*
- *			Disassembler Instruction Table
- *
- *	The first field of the table is the opcode field. If an opcode
- *	is specified which has any non-opcode bits on, a system error
- *	will occur when the system attempts the install it into the
- *	instruction table.  The second parameter is a pointer to the
- *	instruction mnemonic. Each operand is specified by offset, width,
- *	and type. The offset is the bit number of the least significant
- *	bit of the operand with bit 0 being the least significant bit of
- *	the instruction. The width is the number of bits used to specify
- *	the operand. The type specifies the output format to be used for
- *	the operand. The valid formats are: register, register indirect,
- *	hex constant, and bit field specification.  The last field is a
- *	pointer to the next instruction in the linked list.  These pointers
- *	are initialized by init_disasm().
- *
- *				Revision History
- *
- *	Revision 1.0	11/08/85	Creation date
- *		 1.1	02/05/86	Updated instruction mnemonic table MD
- *		 1.2	06/16/86	Updated SIM_FLAGS for floating point
- *		 1.3	09/20/86	Updated for new encoding
- *		 	05/11/89	R. Trawick adapted from Motorola disassembler
- */
-
-#include <stdio.h>
-
-/* Define the number of bits in the primary opcode field of the instruction,
-   the destination field, the source 1 and source 2 fields.  */
-
-/* Size of opcode field.  */
-#define OP 8
-
-/* Size of destination.  */
-#define DEST 6
-
-/* Size of source1.  */
-#define SOURCE1 6
-
-/* Size of source2.  */
-#define SOURCE2 6
-
-/* Number of registers.  */
-#define REGs 32
-
-/* Type definitions.  */
-
-typedef unsigned int UINT;
-#define    WORD    long
-#define    FLAG    unsigned
-#define    STATE   short
-
-/* The next four equates define the priorities that the various classes
- * of instructions have regarding writing results back into registers and
- * signalling exceptions.  */
-
-/* PMEM is also defined in <sys/param.h> on Delta 88's.  Sigh!  */
-#undef PMEM
-
-/* Integer priority.  */
-#define    PINT  0
-
-/* Floating point priority.  */
-#define    PFLT  1
-
-/* Memory priority.  */
-#define    PMEM  2
-
-/* Not applicable, instruction doesn't write to regs.  */
-#define    NA    3
-
-/* Highest of these priorities.  */
-#define    HIPRI 3
-
-/* The instruction registers are an artificial mechanism to speed up
- * simulator execution.  In the real processor, an instruction register
- * is 32 bits wide.  In the simulator, the 32 bit instruction is kept in
- * a structure field called rawop, and the instruction is partially decoded,
- * and split into various fields and flags which make up the other fields
- * of the structure.
- * The partial decode is done when the instructions are initially loaded
- * into simulator memory.  The simulator code memory is not an array of
- * 32 bit words, but is an array of instruction register structures.
- * Yes this wastes memory, but it executes much quicker.
- */
-
-struct IR_FIELDS
-{
-  unsigned op:OP,
-    dest: DEST,
-    src1: SOURCE1,
-    src2: SOURCE2;
-  int ltncy,
-    extime,
-    /* Writeback priority.  */
-    wb_pri;
-  /* Immediate size.  */
-  unsigned        imm_flags:2,
-    /* Register source 1 used.  */
-    rs1_used:1,
-    /* Register source 2 used. */
-    rs2_used:1,
-    /* Register source/dest. used.  */
-    rsd_used:1,
-    /* Complement.  */
-    c_flag:1,
-    /* Upper half word.  */
-    u_flag:1,
-    /* Execute next.  */
-    n_flag:1,
-    /* Uses writeback slot.  */
-    wb_flag:1,
-    /* Dest size.  */
-    dest_64:1,
-    /* Source 1 size.  */
-    s1_64:1,
-    /* Source 2 size.  */
-    s2_64:1,
-    scale_flag:1,
-    /* Scaled register.  */
-    brk_flg:1;
-};
-
-struct	mem_segs
-{
-  /* Pointer (returned by calloc) to segment.  */
-  struct mem_wrd *seg;			
-
-  /* Base load address from file headers.  */
-  unsigned long baseaddr;			
-
-  /* Ending address of segment.  */
-  unsigned long endaddr;		
-
-  /* Segment control flags (none defined).  */	
-  int	      flags;			
-};
-
-#define	MAXSEGS		(10)			/* max number of segment allowed */
-#define	MEMSEGSIZE	(sizeof(struct mem_segs))/* size of mem_segs structure */
-
-#if 0
-#define BRK_RD		(0x01)			/* break on memory read */
-#define BRK_WR		(0x02)			/* break on memory write */
-#define BRK_EXEC	(0x04)			/* break on execution */
-#define	BRK_CNT		(0x08)			/* break on terminal count */
-#endif
-
-struct mem_wrd
-{
-  /* Simulator instruction break down.  */
-  struct IR_FIELDS opcode;
-  union {
-    /* Memory element break down.  */
-    unsigned long  l;
-    unsigned short s[2];
-    unsigned char  c[4];
-  } mem;
-};
-
-/* Size of each 32 bit memory model.  */
-#define	MEMWRDSIZE	(sizeof (struct mem_wrd))
-
-extern struct mem_segs memory[];
-extern struct PROCESSOR m78000;
-
-struct PROCESSOR
-{
-  unsigned WORD
-  /* Execute instruction pointer.  */
-  ip, 
-    /* Vector base register.  */
-    vbr,
-    /* Processor status register.  */
-    psr;
-  
-  /* Source 1.  */
-  WORD    S1bus,
-    /* Source 2.  */
-    S2bus,
-    /* Destination.  */
-    Dbus,
-    /* Data address bus.  */
-    DAbus,
-    ALU,
-    /* Data registers.  */
-    Regs[REGs],
-    /* Max clocks before reg is available.  */
-    time_left[REGs],
-    /* Writeback priority of reg.  */
-    wb_pri[REGs], 
-    /* Integer unit control regs.  */
-    SFU0_regs[REGs],
-    /* Floating point control regs.  */
-    SFU1_regs[REGs], 
-    Scoreboard[REGs],
-    Vbr;
-  unsigned WORD   scoreboard,
-    Psw,
-    Tpsw;
-  /* Waiting for a jump instruction.  */
-  FLAG   jump_pending:1;
-};
-
-/* Size of immediate field.  */
-
-#define    i26bit      1
-#define    i16bit      2
-#define    i10bit      3
-
-/* Definitions for fields in psr.  */
-
-#define psr_mode  31
-#define psr_rbo   30
-#define psr_ser   29
-#define psr_carry 28
-#define psr_sf7m  11
-#define psr_sf6m  10
-#define psr_sf5m   9
-#define psr_sf4m   8
-#define psr_sf3m   7
-#define psr_sf2m   6
-#define psr_sf1m   5
-#define psr_mam    4
-#define psr_inm    3
-#define psr_exm    2
-#define psr_trm    1
-#define psr_ovfm   0
-
-/* The 1 clock operations.  */
-
-#define    ADDU        1
-#define    ADDC        2
-#define    ADDUC       3
-#define    ADD         4
-
-#define    SUBU    ADD+1
-#define    SUBB    ADD+2
-#define    SUBUB   ADD+3
-#define    SUB     ADD+4
-
-#define    AND_    ADD+5
-#define    OR      ADD+6
-#define    XOR     ADD+7
-#define    CMP     ADD+8
-
-/* Loads.  */
-
-#define    LDAB    CMP+1
-#define    LDAH    CMP+2
-#define    LDA     CMP+3
-#define    LDAD    CMP+4
-
-#define    LDB   LDAD+1
-#define    LDH   LDAD+2
-#define    LD    LDAD+3
-#define    LDD   LDAD+4
-#define    LDBU  LDAD+5
-#define    LDHU  LDAD+6
-
-/* Stores.  */
-
-#define    STB    LDHU+1
-#define    STH    LDHU+2
-#define    ST     LDHU+3
-#define    STD    LDHU+4
-
-/* Exchange.  */
-
-#define    XMEMBU LDHU+5
-#define    XMEM   LDHU+6
-
-/* Branches.  */
-
-#define    JSR    STD+1
-#define    BSR    STD+2
-#define    BR     STD+3
-#define    JMP    STD+4
-#define    BB1    STD+5
-#define    BB0    STD+6
-#define    RTN    STD+7
-#define    BCND   STD+8
-
-/* Traps.  */
-
-#define    TB1    BCND+1
-#define    TB0    BCND+2
-#define    TCND   BCND+3
-#define    RTE    BCND+4
-#define    TBND   BCND+5
-
-/* Misc.  */
-
-#define    MUL     TBND + 1
-#define    DIV     MUL  +2
-#define    DIVU    MUL  +3
-#define    MASK    MUL  +4
-#define    FF0     MUL  +5
-#define    FF1     MUL  +6
-#define    CLR     MUL  +7
-#define    SET     MUL  +8
-#define    EXT     MUL  +9
-#define    EXTU    MUL  +10
-#define    MAK     MUL  +11
-#define    ROT     MUL  +12
-
-/* Control register manipulations.  */
-
-#define    LDCR    ROT  +1
-#define    STCR    ROT  +2
-#define    XCR     ROT  +3
-
-#define    FLDCR    ROT  +4
-#define    FSTCR    ROT  +5
-#define    FXCR     ROT  +6
-
-#define    NOP     XCR +1
-
-/* Floating point instructions.  */
-
-#define    FADD    NOP +1
-#define    FSUB    NOP +2
-#define    FMUL    NOP +3
-#define    FDIV    NOP +4
-#define    FSQRT   NOP +5
-#define    FCMP    NOP +6
-#define    FIP     NOP +7
-#define    FLT     NOP +8
-#define    INT     NOP +9
-#define    NINT    NOP +10
-#define    TRNC    NOP +11
-#define    FLDC   NOP +12
-#define    FSTC   NOP +13
-#define    FXC    NOP +14
-
-#define UEXT(src,off,wid) \
-  ((((unsigned int)(src)) >> (off)) & ((1 << (wid)) - 1))
-
-#define SEXT(src,off,wid) \
-  (((((int)(src))<<(32 - ((off) + (wid)))) >>(32 - (wid))) )
-
-#define MAKE(src,off,wid) \
-  ((((unsigned int)(src)) & ((1 << (wid)) - 1)) << (off))
-
-#define opword(n) (unsigned long) (memaddr->mem.l)
-
-/* Constants and masks.  */
-
-#define SFU0       0x80000000
-#define SFU1       0x84000000
-#define SFU7       0x9c000000
-#define RRI10      0xf0000000
-#define RRR        0xf4000000
-#define SFUMASK    0xfc00ffe0
-#define RRRMASK    0xfc00ffe0
-#define RRI10MASK  0xfc00fc00
-#define DEFMASK    0xfc000000
-#define CTRL       0x0000f000
-#define CTRLMASK   0xfc00f800
-
-/* Operands types.  */
-
-enum operand_type
-{
-  HEX = 1,
-  REG = 2,
-  CONT = 3,
-  IND = 3,
-  BF = 4,
-  /* Scaled register.  */
-  REGSC = 5,
-  /* Control register.  */
-  CRREG = 6,
-  /* Floating point control register.  */
-  FCRREG = 7,
-  PCREL = 8,
-  CONDMASK = 9,
-  /* Extended register.  */
-  XREG = 10,
-  /* Decimal.  */
-  DEC = 11
-};
-
-/* Hashing specification.  */
-
-#define HASHVAL     79
-
-/* Structure templates.  */
-
-typedef struct
-{
-  unsigned int offset;
-  unsigned int width;
-  enum operand_type type;
-} OPSPEC;
-
-struct SIM_FLAGS
-{
-  int  ltncy,   /* latency (max number of clocks needed to execute).  */
-    extime,   /* execution time (min number of clocks needed to execute).  */
-    wb_pri;   /* writeback slot priority.  */
-  unsigned         op:OP,   /* simulator version of opcode.  */
-    imm_flags:2,   /* 10,16 or 26 bit immediate flags.  */
-    rs1_used:1,   /* register source 1 used.  */
-    rs2_used:1,   /* register source 2 used.  */
-    rsd_used:1,   /* register source/dest used.  */
-    c_flag:1,   /* complement.  */
-    u_flag:1,   /* upper half word.  */
-    n_flag:1,   /* execute next.  */
-    wb_flag:1,   /* uses writeback slot.  */
-    dest_64:1,   /* double precision dest.  */
-    s1_64:1,   /* double precision source 1.  */
-    s2_64:1,   /* double precision source 2.  */
-    scale_flag:1;   /* register is scaled.  */
-};
-
-typedef struct INSTRUCTAB {
-  unsigned int  opcode;
-  char          *mnemonic;
-  OPSPEC        op1,op2,op3;
-  struct SIM_FLAGS flgs;
-} INSTAB;
-
-
-#define NO_OPERAND {0,0,0}
-
-extern const INSTAB  instructions[];
-
-/*
- * Local Variables:
- * fill-column: 131
- * End:
- */
diff --git a/include/opcode/maxq.h b/include/opcode/maxq.h
deleted file mode 100644
index f621ac1..0000000
--- a/include/opcode/maxq.h
+++ /dev/null
@@ -1,1132 +0,0 @@
-/* maxq.h -- Header file for MAXQ opcode table.
-
-   Copyright (C) 2004 Free Software Foundation, Inc.
-
-   This file is part of GDB, GAS, and the GNU binutils.
-
-   Written by Vineet Sharma(vineets@noida.hcltech.com)
-   Inderpreet Singh (inderpreetb@noida.hcltech.com)
-
-   GDB, GAS, and the GNU binutils are free software; you can redistribute
-   them and/or modify them 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.
-
-   GDB, GAS, and the GNU binutils are distributed in the hope that they 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 file; see the file COPYING.  If not, write to the Free Software
-   Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _MAXQ20_H_
-#define  _MAXQ20_H_
-
-/* This file contains the opcode table for the MAXQ10/20 processor. The table
-   has been designed on the lines of the SH processor with the following 
-   fields:
-   (1) Instruction Name
-   (2) Instruction arguments description
-   (3) Description of the breakup of the opcode (1+7+8|8+8|1+4+4|1+7+1+3+4
-       |1+3+4+1+3+4|1+3+4+8|1+1+2+4+8)  
-   (4) Architecture supported
-
-   The Register table is also defined. It contains the following fields
-   (1) Register name
-   (2) Module Number
-   (3) Module Index
-   (4) Opcode
-   (5) Regtype
-
-   The Memory access table is defined containing the various opcodes for 
-   memory access containing the following fields
-   (1) Memory access Operand Name
-   (2) Memory access Operand opcode.  */
-
-# define MAXQ10 0x0001
-# define MAXQ20 0x0002
-# define MAX    (MAXQ10 | MAXQ20)
-
-/* This is for the NOP instruction Specify : 1st bit : NOP_FMT 1st byte:
-   NOP_DST 2nd byte: NOP_SRC.  */
-# define NOP_FMT  1
-# define NOP_SRC  0x3A
-# define NOP_DST  0x5A
-
-typedef enum
-{
-  ZEROBIT = 0x1,		/* A zero followed by 3 bits.  */
-  ONEBIT = 0x2,			/* A one followed by 3 bits.  */
-  REG = 0x4,			/* Register.  */
-  MEM = 0x8,			/* Memory access.  */
-  IMM = 0x10,			/* Immediate value.  */
-  DISP = 0x20,			/* Displacement value.  */
-  BIT = 0x40,			/* Bit value.  */
-  FMT = 0x80,			/* The format bit.  */
-  IMMBIT = 0x100,		/* An immediate bit.  */
-  FLAG = 0x200,			/* A Flag.  */
-  DATA = 0x400,			/* Symbol in the data section.  */
-  BIT_BUCKET = 0x800,		/* FOr BIT BUCKET.  */
-}
-UNKNOWN_OP;
-
-typedef enum
-{
-  NO_ARG = 0,
-  A_IMM = 0x01,			/* An 8 bit immediate value.  */
-  A_REG = 0x2,			/* An 8 bit source register.  */
-  A_MEM = 0x4,			/* A 7 bit destination register.  */
-  FLAG_C = 0x8,			/* Carry Flag.  */
-  FLAG_NC = 0x10,		/* No Carry (~C) flag.  */
-  FLAG_Z = 0x20,		/* Zero Flag.  */
-  FLAG_NZ = 0x40,		/* Not Zero Flag.  */
-  FLAG_S = 0x80,		/* Sign Flag.  */
-  FLAG_E = 0x100,		/* Equals Flag.  */
-  FLAG_NE = 0x200,		/* Not Equal Flag.  */
-  ACC_BIT = 0x400,		/* One of the 16 accumulator bits of the form Acc.<b>.  */
-  DST_BIT = 0x800,		/* One of the 8 bits of the specified SRC.  */
-  SRC_BIT = 0x1000,		/* One of the 8 bits of the specified source register.  */
-  A_BIT_0 = 0x2000,		/* #0.  */
-  A_BIT_1 = 0x4000,		/* #1.  */
-  A_DISP = 0x8000,		/* Displacement Operand.  */
-  A_DATA = 0x10000,		/* Data in the data section.  */
-  A_BIT_BUCKET = 0x200000,
-}
-MAX_ARG_TYPE;
-
-typedef struct
-{
-  char * name;			/* Name of the instruction.  */
-  unsigned int op_number;	/* Operand Number or the number of operands.  */
-  MAX_ARG_TYPE arg[2];		/* Types of operands.  */
-  int format;			/* Format bit.  */
-  int dst[2];			/* Destination in the move instruction.  */
-  int src[2];			/* Source in the move instruction.  */
-  int arch;			/* The Machine architecture.  */
-  unsigned int instr_id;	/* Added for decode and dissassembly.  */
-}
-MAXQ20_OPCODE_INFO;
-
-/* Structure for holding opcodes of the same name.  */
-typedef struct
-{
-  const MAXQ20_OPCODE_INFO *start;	/* The first opcode.  */
-  const MAXQ20_OPCODE_INFO *end;	/* The last opcode.  */
-}
-MAXQ20_OPCODES;
-
-/* The entry into the hash table will be of the type MAXX_OPCODES.  */
-
-/* The definition of the table.  */
-const MAXQ20_OPCODE_INFO op_table[] =
-{
-  /* LOGICAL OPERATIONS */
-  /* AND src : f001 1010 ssss ssss */
-  {"AND", 1, {A_IMM | A_REG | A_MEM | A_DISP, 0}, FMT, {0x1a, 0},
-   {REG | MEM | IMM | DISP, 0}, MAX, 0x11},
-  /* AND Acc.<b> : 1111 1010 bbbb 1010 */
-  {"AND", 1, {ACC_BIT, 0}, 1, {0x1a, 0}, {BIT, 0xa}, MAX, 0x39},
-  /* OR src : f010 1010 ssss ssss */
-  {"OR", 1, {A_IMM | A_REG | A_MEM | A_DISP, 0}, FMT, {0x2a, 0},
-   {REG | MEM | IMM | DISP, 0}, MAX, 0x12},
-  /* OR Acc.<b> : 1010 1010 bbbb 1010 */
-  {"OR", 1, {ACC_BIT, 0}, 1, {0x2a, 0}, {BIT, 0xa}, MAX, 0x3A},
-  /* XOR src : f011 1010 ssss ssss */
-  {"XOR", 1, {A_IMM | A_REG | A_MEM | A_DISP, 0}, FMT, {0x3a, 0},
-   {REG | MEM | IMM | DISP, 0}, MAX, 0x13},
-  /* XOR Acc.<b> : 1011 1010 bbbb 1010 */
-  {"XOR", 1, {ACC_BIT, 0}, 1, {0x3a, 0}, {BIT, 0xa}, MAX, 0x3B},
-  /* LOGICAL OPERATIONS INVOLVING ONLY THE ACCUMULATOR */
-  /* CPL : 1000 1010 0001 1010 */
-  {"CPL", 0, {0, 0}, 1, {0x0a, 0}, {0x1a, 0}, MAX, 0x21},
-  /* CPL C : 1101 1010 0010 1010 */
-  {"CPL", 1, {FLAG_C, 0}, 1, {0x5a, 0}, {0x2a, 0}, MAX, 0x3D},
-  /* NEG : 1000 1010 1001 1010 */
-  {"NEG", 0, {0, 0}, 1, {0x0a, 0}, {0x9a, 0}, MAX, 0x29},
-  /* SLA : 1000 1010 0010 1010 */
-  {"SLA", 0, {0, 0}, 1, {0x0a, 0}, {0x2a, 0}, MAX, 0x22},
-  /* SLA2: 1000 1010 0011 1010 */
-  {"SLA2", 0, {0, 0}, 1, {0x0a, 0}, {0x3a, 0}, MAX, 0x23},
-  /* SLA4: 1000 1010 0110 1010 */
-  {"SLA4", 0, {0, 0}, 1, {0x0a, 0}, {0x6a, 0}, MAX, 0x26},
-  /* RL : 1000 1010 0100 1010 */
-  {"RL", 0, {0, 0}, 1, {0x0a, 0}, {0x4a, 0}, MAX, 0x24},
-  /* RLC : 1000 1010 0101 1010 */
-  {"RLC", 0, {0, 0}, 1, {0x0a, 0}, {0x5a, 0}, MAX, 0x25},
-  /* SRA : 1000 1010 1111 1010 */
-  {"SRA", 0, {0, 0}, 1, {0x0a, 0}, {0xfa, 0}, MAX, 0x2F},
-  /* SRA2: 1000 1010 1110 1010 */
-  {"SRA2", 0, {0, 0}, 1, {0x0a, 0}, {0xea, 0}, MAX, 0x2E},
-  /* SRA4: 1000 1010 1011 1010 */
-  {"SRA4", 0, {0, 0}, 1, {0x0a, 0}, {0xba, 0}, MAX, 0x2B},
-  /* SR : 1000 1010 1010 1010 */
-  {"SR", 0, {0, 0}, 1, {0x0a, 0}, {0xaa, 0}, MAX, 0x2A},
-  /* RR : 1000 1010 1100 1010 */
-  {"RR", 0, {0, 0}, 1, {0x0a, 0}, {0xca, 0}, MAX, 0x2C},
-  /* RRC : 1000 1010 1101 1010 */
-  {"RRC", 0, {0, 0}, 1, {0x0a, 0}, {0xda, 0}, MAX, 0x2D},
-  /* MATH OPERATIONS */
-  /* ADD src : f100 1010 ssss ssss */
-  {"ADD", 1, {A_IMM | A_REG | A_MEM | A_DISP, 0}, FMT, {0x4a, 0},
-   {IMM | REG | MEM | DISP, 0}, MAX, 0x14},
-  /* ADDC src : f110 1010 ssss ssss */
-  {"ADDC", 1, {A_IMM | A_REG | A_MEM | A_DISP, 0}, FMT, {0x6a, 0},
-   {IMM | REG | MEM | DISP, 0}, MAX, 0x16},
-  /* SUB src : f101 1010 ssss ssss */
-  {"SUB", 1, {A_IMM | A_REG | A_MEM | A_DISP, 0}, FMT, {0x5a, 0},
-   {IMM | REG | MEM | DISP, 0}, MAX, 0x15},
-  /* SUBB src : f111 1010 ssss ssss */
-  {"SUBB", 1, {A_IMM | A_REG | A_MEM | A_DISP, 0}, FMT, {0x7a, 0},
-   {IMM | REG | MEM | DISP, 0}, MAX, 0x17},
-  /* BRANCHING OPERATIONS */
-
-  /* DJNZ LC[0] src: f100 1101 ssss ssss */
-  {"DJNZ", 2, {A_REG, A_IMM | A_REG | A_MEM | A_DISP}, FMT, {0x4d, 0},
-   {IMM | REG | MEM | DISP, 0}, MAX, 0xA4},
-  /* DJNZ LC[1] src: f101 1101 ssss ssss */
-  {"DJNZ", 2, {A_REG, A_IMM | A_REG | A_MEM | A_DISP}, FMT, {0x5d, 0},
-   {IMM | REG | MEM | DISP, 0}, MAX, 0xA5},
-  /* CALL src : f011 1101 ssss ssss */
-  {"CALL", 1, {A_IMM | A_REG | A_MEM | A_DISP, 0}, FMT, {0x3d, 0},
-   {IMM | REG | MEM | DISP, 0}, MAX, 0xA3},
-  /* JUMP src : f000 1100 ssss ssss */
-  {"JUMP", 1, {A_IMM | A_REG | A_MEM | A_DISP, 0}, FMT, {0x0c, 0},
-   {IMM | REG | MEM | DISP, 0}, MAX, 0x50},
-  /* JUMP C,src : f010 1100 ssss ssss */
-  {"JUMP", 2, {FLAG_C, A_IMM | A_REG | A_MEM | A_DISP}, FMT, {0x2c, 0},
-   {IMM | REG | MEM | DISP, 0}, MAX, 0x52},
-  /* JUMP NC,src: f110 1100 ssss ssss */
-  {"JUMP", 2, {FLAG_NC, A_IMM | A_REG | A_MEM | A_DISP}, FMT, {0x6c, 0},
-   {IMM | REG | MEM | DISP, 0}, MAX, 0x56},
-  /* JUMP Z,src : f001 1100 ssss ssss */
-  {"JUMP", 2, {FLAG_Z, A_IMM | A_REG | A_MEM | A_DISP}, FMT, {0x1c, 0},
-   {IMM | REG | MEM | DISP, 0}, MAX, 0x51},
-  /* JUMP NZ,src: f101 1100 ssss ssss */
-  {"JUMP", 2, {FLAG_NZ, A_IMM | A_REG | A_MEM | A_DISP}, FMT, {0x5c, 0},
-   {IMM | REG | MEM | DISP, 0}, MAX, 0x55},
-  /* JUMP E,src : 0011 1100 ssss ssss */
-  {"JUMP", 2, {FLAG_E, A_IMM | A_DISP}, 0, {0x3c, 0}, {IMM, 0}, MAX, 0x53},
-  /* JUMP NE,src: 0111 1100 ssss ssss */
-  {"JUMP", 2, {FLAG_NE, A_IMM | A_DISP}, 0, {0x7c, 0}, {IMM, 0}, MAX, 0x57},
-  /* JUMP S,src : f100 1100 ssss ssss */
-  {"JUMP", 2, {FLAG_S, A_IMM | A_REG | A_MEM | A_DISP}, FMT, {0x4c, 0},
-   {IMM | REG | MEM | DISP, 0}, MAX, 0x54},
-  /* RET : 1000 1100 0000 1101 */
-  {"RET", 0, {0, 0}, 1, {0x0c, 0}, {0x0d, 0}, MAX, 0x68},
-  /* RET C : 1010 1100 0000 1101 */
-  {"RET", 1, {FLAG_C, 0}, 1, {0x2c, 0}, {0x0d, 0}, MAX, 0x6A},
-  /* RET NC : 1110 1100 0000 1101 */
-  {"RET", 1, {FLAG_NC, 0}, 1, {0x6c, 0}, {0x0d, 0}, MAX, 0x6E},
-  /* RET Z : 1001 1100 0000 1101 */
-  {"RET", 1, {FLAG_Z, 0}, 1, {0x1c, 0}, {0x0d, 0}, MAX, 0x69},
-  /* RET NZ : 1101 1100 0000 1101 */
-  {"RET", 1, {FLAG_NZ, 0}, 1, {0x5c, 0}, {0x0d, 0}, MAX, 0x6D},
-  /* RET S : 1100 1100 0000 1101 */
-  {"RET", 1, {FLAG_S, 0}, 1, {0x4c, 0}, {0x0d, 0}, MAX, 0x6C},
-  /* RETI : 1000 1100 1000 1101 */
-  {"RETI", 0, {0, 0}, 1, {0x0c, 0}, {0x8d, 0}, MAX, 0x78},
-  /* ADDED ACCORDING TO NEW SPECIFICATION */
-
-  /* RETI C : 1010 1100 1000 1101 */
-  {"RETI", 1, {FLAG_C, 0}, 1, {0x2c, 0}, {0x8d, 0}, MAX, 0x7A},
-  /* RETI NC : 1110 1100 1000 1101 */
-  {"RETI", 1, {FLAG_NC, 0}, 1, {0x6c, 0}, {0x8d, 0}, MAX, 0x7E},
-  /* RETI Z : 1001 1100 1000 1101 */
-  {"RETI", 1, {FLAG_Z, 0}, 1, {0x1c, 0}, {0x8d, 0}, MAX, 0x79},
-  /* RETI NZ : 1101 1100 1000 1101 */
-  {"RETI", 1, {FLAG_NZ, 0}, 1, {0x5c, 0}, {0x8d, 0}, MAX, 0x7D},
-  /* RETI S : 1100 1100 1000 1101 */
-  {"RETI", 1, {FLAG_S, 0}, 1, {0x4c, 0}, {0x8d, 0}, MAX, 0x7C},
-  /* MISCELLANEOUS INSTRUCTIONS */
-  /* CMP src : f111 1000 ssss ssss */
-  {"CMP", 1, {A_REG | A_IMM | A_MEM | A_DISP, 0}, FMT, {0x78, 0},
-   {REG | MEM | IMM | DISP, 0}, MAX, 0xD7},
-  /* DATA TRANSFER OPERATIONS */
-  /* XCH : 1000 1010 1000 1010 */
-  {"XCH", 0, {0, 0}, 1, {0x0a, 0}, {0x8a, 0}, MAXQ20, 0x28},
-  /* XCHN : 1000 1010 0111 1010 */
-  {"XCHN", 0, {0, 0}, 1, {0x0a, 0}, {0x7a, 0}, MAX, 0x27},
-  /* PUSH src : f000 1101 ssss ssss */
-  {"PUSH", 1, {A_REG | A_IMM | A_MEM | A_DISP, 0}, FMT, {0x0d, 0},
-   {IMM | REG | MEM | DISP, 0}, MAX, 0xA0},
-  /* POP dst : 1ddd dddd 0000 1101 */
-  {"POP", 1, {A_REG, 0}, 1, {REG, 0}, {0x0d, 0}, MAX, 0xB0},
-  /* Added according to new spec */
-  /* POPI dst : 1ddd dddd 1000 1101 */
-  {"POPI", 1, {A_REG, 0}, 1, {REG, 0}, {0x8d, 0}, MAX, 0xC0},
-  /* MOVE dst,src: fddd dddd ssss ssss */
-  {"MOVE", 2, {A_REG | A_MEM, A_REG | A_IMM | A_MEM | A_DATA | A_DISP}, FMT,
-   {REG | MEM, 0}, {REG | IMM | MEM | DATA | A_DISP, 0}, MAX, 0x80},
-  /* BIT OPERATIONS */
-  /* MOVE C,Acc.<b> : 1110 1010 bbbb 1010 */
-  {"MOVE", 2, {FLAG_C, ACC_BIT}, 1, {0x6a, 0}, {BIT, 0xa}, MAX, 0x3E},
-  /* MOVE C,#0 : 1101 1010 0000 1010 */
-  {"MOVE", 2, {FLAG_C, A_BIT_0}, 1, {0x5a, 0}, {0x0a, 0}, MAX, 0x3D},
-  /* MOVE C,#1 : 1101 1010 0001 1010 */
-  {"MOVE", 2, {FLAG_C, A_BIT_1}, 1, {0x5a, 0}, {0x1a, 0}, MAX, 0x3D},
-  /* MOVE Acc.<b>,C : 1111 1010 bbbb 1010 */
-  {"MOVE", 2, {ACC_BIT, FLAG_C}, 1, {0x7a, 0}, {BIT, 0xa}, MAX, 0x3F},
-  /* MOVE dst.<b>,#0 : 1ddd dddd 0bbb 0111 */
-  {"MOVE", 2, {DST_BIT, A_BIT_0}, 1, {REG, 0}, {ZEROBIT, 0x7}, MAX, 0x40},
-  /* MOVE dst.<b>,#1 : 1ddd dddd 1bbb 0111 */
-  {"MOVE", 2, {DST_BIT, A_BIT_1}, 1, {REG, 0}, {ONEBIT, 0x7}, MAX, 0x41},
-  /* MOVE C,src.<b> : fbbb 0111 ssss ssss */
-  {"MOVE", 2, {FLAG_C, SRC_BIT}, FMT, {BIT, 0x7}, {REG, 0}, MAX, 0x97},
-  /* NOP : 1101 1010 0011 1010 */
-  {"NOP", 0, {0, 0}, NOP_FMT, {NOP_DST, 0}, {NOP_SRC, 0}, MAX, 0x3D},
-  {NULL, 0, {0, 0}, 0, {0, 0}, {0, 0}, 0, 0x00}
-};
-
-/* All the modules.  */
-
-#define	MOD0 0x0
-#define MOD1 0x1
-#define MOD2 0x2
-#define MOD3 0x3
-#define MOD4 0x4
-#define MOD5 0x5
-#define MOD6 0x6
-#define MOD7 0x7
-#define MOD8 0x8
-#define MOD9 0x9
-#define MODA 0xa
-#define MODB 0xb
-#define MODC 0xc
-#define MODD 0xd
-#define MODE 0xe
-#define MODF 0xf
-
-/* Added according to new specification.  */
-#define MOD10 0x10
-#define MOD11 0x11
-#define MOD12 0x12
-#define MOD13 0x13
-#define MOD14 0x14
-#define MOD15 0x15
-#define MOD16 0x16
-#define MOD17 0x17
-#define MOD18 0x18
-#define MOD19 0x19
-#define MOD1A 0x1a
-#define MOD1B 0x1b
-#define MOD1C 0x1c
-#define MOD1D 0x1d
-#define MOD1E 0x1e
-#define MOD1F 0x1f
-
-/* - Peripheral Register Modules - */
-/* Serial Register Modules.  */
-#define CTRL		MOD8	/* For the module containing the control registers.  */
-#define ACC	 	MOD9	/* For the module containing the 16 accumulators.  */
-#define Act_ACC 	MODA	/* For the module containing the active accumulator.  */
-#define PFX  		MODB	/* For the module containing the prefix registers.  */
-#define IP	 	MODC	/* For the module containing the instruction pointer register.  */
-#define SPIV 		MODD	/* For the module containing the stack pointer and the interrupt vector.  */
-#define	LC 		MODD	/* For the module containing the loop counters and HILO registers.  */
-#define DP 		MODF	/* For the module containig the data pointer registers.  */
-
-/* Register Types.  */
-typedef enum _Reg_type
-{ Reg_8R,			/* 8 bit register. read only.  */
-  Reg_16R,			/* 16 bit register, read only.  */
-  Reg_8W,			/* 8 bit register, both read and write.  */
-  Reg_16W			/* 16 bit register, both read and write.  */
-}
-Reg_type;
-
-/* Register Structure.  */
-typedef struct reg
-{
-  char *reg_name;		/* Register name.  */
-  short int Mod_name;		/* The module name.  */
-  short int Mod_index;		/* The module index.  */
-  int opcode;			/* The opcode of the register.  */
-  Reg_type rtype;		/* 8 bit/16 bit and read only/read write.  */
-  int arch;			/* The Machine architecture.  */
-}
-reg_entry;
-
-reg_entry *new_reg_table = NULL;
-int num_of_reg = 0;
-
-typedef struct
-{
-  char *rname;
-  int rindex;
-}
-reg_index;
-
-/* Register Table description.  */
-reg_entry system_reg_table[] =
-{
-  /* Serial Registers */
-  /* MODULE 8 Registers : I call them the control registers.  */
-  /* Accumulator Pointer CTRL[0h] */
-  {
-   "AP", CTRL, 0x0, 0x00 | CTRL, Reg_8W, MAX},
-  /* Accumulator Pointer Control Register : CTRL[1h] */
-
-  {
-   "APC", CTRL, 0x1, 0x10 | CTRL, Reg_8W, MAX},
-  /* Processor Status Flag Register CTRL[4h] Note: Bits 6 and 7 read only */
-  {
-   "PSF", CTRL, 0x4, 0x40 | CTRL, Reg_8W, MAX},
-  /* Interrupt and Control Register : CTRL[5h] */
-  {
-   "IC", CTRL, 0x5, 0x50 | CTRL, Reg_8W, MAX},
-  /* Interrupt Mask Register : CTRL[6h] */
-  {
-   "IMR", CTRL, 0x6, 0x60 | CTRL, Reg_8W, MAX},
-  /* Interrupt System Control : CTRL[8h] */
-  {
-   "SC", CTRL, 0x8, 0x80 | CTRL, Reg_8W, MAX},
-  /* Interrupt Identification Register : CTRL[Bh] */
-  {
-   "IIR", CTRL, 0xb, 0xb0 | CTRL, Reg_8R, MAX},
-  /* System Clock Control Register : CTRL[Eh] Note: Bit 5 is read only */
-  {
-   "CKCN", CTRL, 0xe, 0xe0 | CTRL, Reg_8W, MAX},
-  /* Watchdog Control Register : CTRL[Fh] */
-  {
-   "WDCN", CTRL, 0xf, 0xf0 | CTRL, Reg_8W, MAX},
-  /* The 16 accumulator registers : ACC[0h-Fh] */
-  {
-   "A[0]", ACC, 0x0, 0x00 | ACC, Reg_16W, MAXQ20},
-  {
-   "A[1]", ACC, 0x1, 0x10 | ACC, Reg_16W, MAXQ20},
-  {
-   "A[2]", ACC, 0x2, 0x20 | ACC, Reg_16W, MAXQ20},
-  {
-   "A[3]", ACC, 0x3, 0x30 | ACC, Reg_16W, MAXQ20},
-  {
-   "A[4]", ACC, 0x4, 0x40 | ACC, Reg_16W, MAXQ20},
-  {
-   "A[5]", ACC, 0x5, 0x50 | ACC, Reg_16W, MAXQ20},
-  {
-   "A[6]", ACC, 0x6, 0x60 | ACC, Reg_16W, MAXQ20},
-  {
-   "A[7]", ACC, 0x7, 0x70 | ACC, Reg_16W, MAXQ20},
-  {
-   "A[8]", ACC, 0x8, 0x80 | ACC, Reg_16W, MAXQ20},
-  {
-   "A[9]", ACC, 0x9, 0x90 | ACC, Reg_16W, MAXQ20},
-  {
-   "A[10]", ACC, 0xa, 0xa0 | ACC, Reg_16W, MAXQ20},
-  {
-   "A[11]", ACC, 0xb, 0xb0 | ACC, Reg_16W, MAXQ20},
-  {
-   "A[12]", ACC, 0xc, 0xc0 | ACC, Reg_16W, MAXQ20},
-  {
-   "A[13]", ACC, 0xd, 0xd0 | ACC, Reg_16W, MAXQ20},
-  {
-   "A[14]", ACC, 0xe, 0xe0 | ACC, Reg_16W, MAXQ20},
-  {
-   "A[15]", ACC, 0xf, 0xf0 | ACC, Reg_16W, MAXQ20},
-  /* The Active Accumulators : Act_Acc[0h-1h] */
-  {
-   "ACC", Act_ACC, 0x0, 0x00 | Act_ACC, Reg_16W, MAXQ20},
-  {
-   "A[AP]", Act_ACC, 0x1, 0x10 | Act_ACC, Reg_16W, MAXQ20},
-  /* The 16 accumulator registers : ACC[0h-Fh] */
-  {
-   "A[0]", ACC, 0x0, 0x00 | ACC, Reg_8W, MAXQ10},
-  {
-   "A[1]", ACC, 0x1, 0x10 | ACC, Reg_8W, MAXQ10},
-  {
-   "A[2]", ACC, 0x2, 0x20 | ACC, Reg_8W, MAXQ10},
-  {
-   "A[3]", ACC, 0x3, 0x30 | ACC, Reg_8W, MAXQ10},
-  {
-   "A[4]", ACC, 0x4, 0x40 | ACC, Reg_8W, MAXQ10},
-  {
-   "A[5]", ACC, 0x5, 0x50 | ACC, Reg_8W, MAXQ10},
-  {
-   "A[6]", ACC, 0x6, 0x60 | ACC, Reg_8W, MAXQ10},
-  {
-   "A[7]", ACC, 0x7, 0x70 | ACC, Reg_8W, MAXQ10},
-  {
-   "A[8]", ACC, 0x8, 0x80 | ACC, Reg_8W, MAXQ10},
-  {
-   "A[9]", ACC, 0x9, 0x90 | ACC, Reg_8W, MAXQ10},
-  {
-   "A[10]", ACC, 0xa, 0xa0 | ACC, Reg_8W, MAXQ10},
-  {
-   "A[11]", ACC, 0xb, 0xb0 | ACC, Reg_8W, MAXQ10},
-  {
-   "A[12]", ACC, 0xc, 0xc0 | ACC, Reg_8W, MAXQ10},
-  {
-   "A[13]", ACC, 0xd, 0xd0 | ACC, Reg_8W, MAXQ10},
-  {
-   "A[14]", ACC, 0xe, 0xe0 | ACC, Reg_8W, MAXQ10},
-  {
-   "A[15]", ACC, 0xf, 0xf0 | ACC, Reg_8W, MAXQ10},
-  /* The Active Accumulators : Act_Acc[0h-1h] */
-  {
-   "A[AP]", Act_ACC, 0x1, 0x10 | Act_ACC, Reg_8W, MAXQ10},
-  /* The Active Accumulators : Act_Acc[0h-1h] */
-  {
-   "ACC", Act_ACC, 0x0, 0x00 | Act_ACC, Reg_8W, MAXQ10},
-  /* The Prefix Registers : PFX[0h,2h] */
-  {
-   "PFX[0]", PFX, 0x0, 0x00 | PFX, Reg_16W, MAX},
-  {
-   "PFX[1]", PFX, 0x1, 0x10 | PFX, Reg_16W, MAX},
-  {
-   "PFX[2]", PFX, 0x2, 0x20 | PFX, Reg_16W, MAX},
-  {
-   "PFX[3]", PFX, 0x3, 0x30 | PFX, Reg_16W, MAX},
-  {
-   "PFX[4]", PFX, 0x4, 0x40 | PFX, Reg_16W, MAX},
-  {
-   "PFX[5]", PFX, 0x5, 0x50 | PFX, Reg_16W, MAX},
-  {
-   "PFX[6]", PFX, 0x6, 0x60 | PFX, Reg_16W, MAX},
-  {
-   "PFX[7]", PFX, 0x7, 0x70 | PFX, Reg_16W, MAX},
-  /* The Instruction Pointer Registers : IP[0h,8h] */
-  {
-   "IP", IP, 0x0, 0x00 | IP, Reg_16W, MAX},
-  /* The Stack Pointer Registers : SPIV[1h,9h] */
-  {
-   "SP", SPIV, 0x1, 0x10 | SPIV, Reg_16W, MAX},
-  /* The Interrupt Vector Registers : SPIV[2h,Ah] */
-  {
-   "IV", SPIV, 0x2, 0x20 | SPIV, Reg_16W, MAX},
-  /* ADDED for New Specification */
-
-  /* The Loop Counter Registers : LCHILO[0h-4h,8h-Bh] */
-  {
-   "LC[0]", LC, 0x6, 0x60 | LC, Reg_16W, MAX},
-  {
-   "LC[1]", LC, 0x7, 0x70 | LC, Reg_16W, MAX},
-  /* MODULE Eh Whole Column has changed */
-
-  {
-   "OFFS", MODE, 0x3, 0x30 | MODE, Reg_8W, MAX},
-  {
-   "DPC", MODE, 0x4, 0x40 | MODE, Reg_16W, MAX},
-  {
-   "GR", MODE, 0x5, 0x50 | MODE, Reg_16W, MAX},
-  {
-   "GRL", MODE, 0x6, 0x60 | MODE, Reg_8W, MAX},
-  {
-   "BP", MODE, 0x7, 0x70 | MODE, Reg_16W, MAX},
-  {
-   "GRS", MODE, 0x8, 0x80 | MODE, Reg_16W, MAX},
-  {
-   "GRH", MODE, 0x9, 0x90 | MODE, Reg_8W, MAX},
-  {
-   "GRXL", MODE, 0xA, 0xA0 | MODE, Reg_8R, MAX},
-  {
-   "FP", MODE, 0xB, 0xB0 | MODE, Reg_16R, MAX},
-  /* The Data Pointer registers : DP[3h,7h,Bh,Fh] */
-  {
-   "DP[0]", DP, 0x3, 0x30 | DP, Reg_16W, MAX},
-  {
-   "DP[1]", DP, 0x7, 0x70 | DP, Reg_16W, MAX},
-};
-typedef struct
-{
-  char *name;
-  int type;
-}
-match_table;
-
-#define GPIO0   	0x00	/* Gerneral Purpose I/O Module 0.  */
-#define GPIO1   	0x01	/* Gerneral Purpose I/O Module 1.  */
-#define RTC	  	0x00	/* Real Time Clock Module.  */
-#define MAC	  	0x02	/* Hardware Multiplier Module.  */
-#define SER0	  	0x02	/* Contains the UART Registers.  */
-#define SPI	  	0x03	/* Serial Pheripheral Interface Module.  */
-#define OWBM  		0x03	/* One Wire Bus Module.  */
-#define SER1	  	0x03	/* Contains the UART Registers.  */
-#define TIMER20		0x03	/* Timer Counter Module 2.  */
-#define TIMER21		0x04	/* Timer Counter Module 2.  */
-#define JTAGD 		0x03	/* In-Circuit Debugging Support.  */
-#define LCD		0x03	/* LCD register Modules.  */
-
-/* Plugable modules register table f.  */
-
-reg_entry peripheral_reg_table[] =
-{
-  /* -------- The GPIO Module Registers -------- */
-  /* Port n Output Registers : GPIO[0h-4h] */
-  {
-   "PO0", GPIO0, 0x0, 0x00 | MOD0, Reg_8W, MAX},
-  {
-   "PO1", GPIO0, 0x1, 0x10 | MOD0, Reg_8W, MAX},
-  {
-   "PO2", GPIO0, 0x2, 0x20 | MOD0, Reg_8W, MAX},
-  {
-   "PO3", GPIO0, 0x3, 0x30 | MOD0, Reg_8W, MAX},
-  /* External Interrupt Flag Register : GPIO[6h] */
-  {
-   "EIF0", GPIO0, 0x6, 0x60 | MOD0, Reg_8W, MAX},
-  /* External Interrupt Enable Register : GPIO[7h] */
-  {
-   "EIE0", GPIO0, 0x7, 0x70 | MOD0, Reg_8W, MAX},
-  /* Port n Input Registers : GPIO[8h-Bh] */
-  {
-   "PI0", GPIO0, 0x8, 0x80 | MOD0, Reg_8W, MAX},
-  {
-   "PI1", GPIO0, 0x9, 0x90 | MOD0, Reg_8W, MAX},
-  {
-   "PI2", GPIO0, 0xa, 0xa0 | MOD0, Reg_8W, MAX},
-  {
-   "PI3", GPIO0, 0xb, 0xb0 | MOD0, Reg_8W, MAX},
-  {
-   "EIES0", GPIO0, 0xc, 0xc0 | MOD0, Reg_8W, MAX},
-  /* Port n Direction Registers : GPIO[Ch-Fh] */
-  {
-   "PD0", GPIO0, 0x10, 0x10 | MOD0, Reg_8W, MAX},
-  {
-   "PD1", GPIO0, 0x11, 0x11 | MOD0, Reg_8W, MAX},
-  {
-   "PD2", GPIO0, 0x12, 0x12 | MOD0, Reg_8W, MAX},
-  {
-   "PD3", GPIO0, 0x13, 0x13 | MOD0, Reg_8W, MAX},
-  /* -------- Real Time Counter Module RTC -------- */
-  /* RTC Control Register : [01h] */
-  {
-   "RCNT", RTC, 0x19, 0x19 | MOD0, Reg_16W, MAX},
-  /* RTC Seconds High [02h] */
-  {
-   "RTSS", RTC, 0x1A, 0x1A | MOD0, Reg_8W, MAX},
-  /* RTC Seconds Low [03h] */
-  {
-   "RTSH", RTC, 0x1b, 0x1b | MOD0, Reg_16W, MAX},
-  /* RTC Subsecond Register [04h] */
-  {
-   "RTSL", RTC, 0x1C, 0x1C | MOD0, Reg_16W, MAX},
-  /* RTC Alarm seconds high [05h] */
-  {
-   "RSSA", RTC, 0x1D, 0x1D | MOD0, Reg_8W, MAX},
-  /* RTC Alarm seconds high [06h] */
-  {
-   "RASH", RTC, 0x1E, 0x1E | MOD0, Reg_8W, MAX},
-  /* RTC Subsecond Alarm Register [07h] */
-  {
-   "RASL", RTC, 0x1F, 0x1F | MOD0, Reg_16W, MAX},
-  /* -------- The GPIO Module Registers -------- */
-  /* Port n Output Registers : GPIO[0h-4h] */
-  {
-   "PO4", GPIO1, 0x0, 0x00 | MOD1, Reg_8W, MAX},
-  {
-   "PO5", GPIO1, 0x1, 0x10 | MOD1, Reg_8W, MAX},
-  {
-   "PO6", GPIO1, 0x2, 0x20 | MOD1, Reg_8W, MAX},
-  {
-   "PO7", GPIO1, 0x3, 0x30 | MOD1, Reg_8W, MAX},
-  /* External Interrupt Flag Register : GPIO[6h] */
-  {
-   "EIF1", GPIO0, 0x6, 0x60 | MOD1, Reg_8W, MAX},
-  /* External Interrupt Enable Register : GPIO[7h] */
-  {
-   "EIE1", GPIO0, 0x7, 0x70 | MOD1, Reg_8W, MAX},
-  /* Port n Input Registers : GPIO[8h-Bh] */
-  {
-   "PI4", GPIO1, 0x8, 0x80 | MOD1, Reg_8W, MAX},
-  {
-   "PI5", GPIO1, 0x9, 0x90 | MOD1, Reg_8W, MAX},
-  {
-   "PI6", GPIO1, 0xa, 0xa0 | MOD1, Reg_8W, MAX},
-  {
-   "PI7", GPIO1, 0xb, 0xb0 | MOD1, Reg_8W, MAX},
-  {
-   "EIES1", GPIO1, 0xc, 0xc0 | MOD1, Reg_8W, MAX},
-  /* Port n Direction Registers : GPIO[Ch-Fh] */
-  {
-   "PD4", GPIO1, 0x10, 0x10 | MOD1, Reg_8W, MAX},
-  {
-   "PD5", GPIO1, 0x11, 0x11 | MOD1, Reg_8W, MAX},
-  {
-   "PD6", GPIO1, 0x12, 0x12 | MOD1, Reg_8W, MAX},
-  {
-   "PD7", GPIO1, 0x13, 0x13 | MOD1, Reg_8W, MAX},
-#if 0
-  /* Supply Boltage Check Register */
-  {
-   "SVS", GPIO1, 0x1e, 0x1e | GPIO1, Reg_8W, MAX},
-  /* Wake up output register */
-  {
-   "WK0", GPIO1, 0x1f, 0x1f | GPIO1, Reg_8W, MAX},
-#endif /* */
-
-  /* -------- MAC Hardware multiplier module -------- */
-  /* MAC Hardware Multiplier control register: [01h] */
-  {
-   "MCNT", MAC, 0x1, 0x10 | MOD2, Reg_8W, MAX},
-  /* MAC Multiplier Operand A Register [02h] */
-  {
-   "MA", MAC, 0x2, 0x20 | MOD2, Reg_16W, MAX},
-  /* MAC Multiplier Operand B Register [03h] */
-  {
-   "MB", MAC, 0x3, 0x30 | MOD2, Reg_16W, MAX},
-  /* MAC Multiplier Accumulator 2 Register [04h] */
-  {
-   "MC2", MAC, 0x4, 0x40 | MOD2, Reg_16W, MAX},
-  /* MAC Multiplier Accumulator 1 Register [05h] */
-  {
-   "MC1", MAC, 0x5, 0x50 | MOD2, Reg_16W, MAX},
-  /* MAC Multiplier Accumulator 0 Register [06h] */
-  {
-   "MC0", MAC, 0x6, 0x60 | MOD2, Reg_16W, MAX},
-  /* -------- The Serial I/O module SER -------- */
-  /* UART registers */
-  /* Serial Port Control Register : SER[6h] */
-  {
-   "SCON0", SER0, 0x6, 0x60 | MOD2, Reg_8W, MAX},
-  /* Serial Data Buffer Register : SER[7h] */
-  {
-   "SBUF0", SER0, 0x7, 0x70 | MOD2, Reg_8W, MAX},
-  /* Serial Port Mode Register : SER[4h] */
-  {
-   "SMD0", SER0, 0x8, 0x80 | MOD2, Reg_8W, MAX},
-  /* Serial Port Phase Register : SER[4h] */
-  {
-   "PR0", SER1, 0x9, 0x90 | MOD2, Reg_16W, MAX},
-  /* ------ LCD Display Module ---------- */
-  {
-   "LCRA", LCD, 0xd, 0xd0 | MOD2, Reg_16W, MAX},
-  {
-   "LCFG", LCD, 0xe, 0xe0 | MOD2, Reg_8W, MAX},
-  {
-   "LCD16", LCD, 0xf, 0xf0 | MOD2, Reg_8W, MAX},
-  {
-   "LCD0", LCD, 0x10, 0x10 | MOD2, Reg_8W, MAX},
-  {
-   "LCD1", LCD, 0x11, 0x11 | MOD2, Reg_8W, MAX},
-  {
-   "LCD2", LCD, 0x12, 0x12 | MOD2, Reg_8W, MAX},
-  {
-   "LCD3", LCD, 0x13, 0x13 | MOD2, Reg_8W, MAX},
-  {
-   "LCD4", LCD, 0x14, 0x14 | MOD2, Reg_8W, MAX},
-  {
-   "LCD5", LCD, 0x15, 0x15 | MOD2, Reg_8W, MAX},
-  {
-   "LCD6", LCD, 0x16, 0x16 | MOD2, Reg_8W, MAX},
-  {
-   "LCD7", LCD, 0x17, 0x17 | MOD2, Reg_8W, MAX},
-  {
-   "LCD8", LCD, 0x18, 0x18 | MOD2, Reg_8W, MAX},
-  {
-   "LCD9", LCD, 0x19, 0x19 | MOD2, Reg_8W, MAX},
-  {
-   "LCD10", LCD, 0x1a, 0x1a | MOD2, Reg_8W, MAX},
-  {
-   "LCD11", LCD, 0x1b, 0x1b | MOD2, Reg_8W, MAX},
-  {
-   "LCD12", LCD, 0x1c, 0x1c | MOD2, Reg_8W, MAX},
-  {
-   "LCD13", LCD, 0x1d, 0x1d | MOD2, Reg_8W, MAX},
-  {
-   "LCD14", LCD, 0x1e, 0x1e | MOD2, Reg_8W, MAX},
-  {
-   "LCD15", LCD, 0x1f, 0x1f | MOD2, Reg_8W, MAX},
-  /* -------- SPI registers -------- */
-  /* SPI data buffer Register : SER[7h] */
-  {
-   "SPIB", SPI, 0x5, 0x50 | MOD3, Reg_16W, MAX},
-  /* SPI Control Register : SER[8h] Note : Bit 7 is a read only bit */
-  {
-   "SPICN", SPI, 0x15, 0x15 | MOD3, Reg_8W, MAX},
-  /* SPI Configuration Register : SER[9h] Note : Bits 4,3 and 2 are read
-     only.  */
-  {
-   "SPICF", SPI, 0x16, 0x16 | MOD3, Reg_8W, MAX},
-  /* SPI Clock Register : SER[Ah] */
-  {
-   "SPICK", SPI, 0x17, 0x17 | MOD3, Reg_8W, MAX},
-  /* -------- One Wire Bus Master OWBM -------- */
-  /* OWBM One Wire address Register register: [01h] */
-  {
-   "OWA", OWBM, 0x13, 0x13 | MOD3, Reg_8W, MAX},
-  /* OWBM One Wire Data register: [02h] */
-  {
-   "OWD", OWBM, 0x14, 0x14 | MOD3, Reg_8W, MAX},
-  /* -------- The Serial I/O module SER -------- */
-  /* UART registers */
-  /* Serial Port Control Register : SER[6h] */
-  {
-   "SCON1", SER1, 0x6, 0x60 | MOD3, Reg_8W, MAX},
-  /* Serial Data Buffer Register : SER[7h] */
-  {
-   "SBUF1", SER1, 0x7, 0x70 | MOD3, Reg_8W, MAX},
-  /* Serial Port Mode Register : SER[4h] */
-  {
-   "SMD1", SER1, 0x8, 0x80 | MOD3, Reg_8W, MAX},
-  /* Serial Port Phase Register : SER[4h] */
-  {
-   "PR1", SER1, 0x9, 0x90 | MOD3, Reg_16W, MAX},
-  /* -------- Timer/Counter 2 Module -------- */
-  /* Timer 2 configuration Register : TC[3h] */
-  {
-   "T2CNA0", TIMER20, 0x0, 0x00 | MOD3, Reg_8W, MAX},
-  {
-   "T2H0", TIMER20, 0x1, 0x10 | MOD3, Reg_8W, MAX},
-  {
-   "T2RH0", TIMER20, 0x2, 0x20 | MOD3, Reg_8W, MAX},
-  {
-   "T2CH0", TIMER20, 0x3, 0x30 | MOD3, Reg_8W, MAX},
-  {
-   "T2CNB0", TIMER20, 0xc, 0xc0 | MOD3, Reg_8W, MAX},
-  {
-   "T2V0", TIMER20, 0xd, 0xd0 | MOD3, Reg_16W, MAX},
-  {
-   "T2R0", TIMER20, 0xe, 0xe0 | MOD3, Reg_16W, MAX},
-  {
-   "T2C0", TIMER20, 0xf, 0xf0 | MOD3, Reg_16W, MAX},
-  {
-   "T2CFG0", TIMER20, 0x10, 0x10 | MOD3, Reg_8W, MAX},
-  /* Timer 2-1 configuration Register : TC[4h] */
-
-  {
-   "T2CNA1", TIMER21, 0x0, 0x00 | MOD4, Reg_8W, MAX},
-  {
-   "T2H1", TIMER21, 0x1, 0x10 | MOD4, Reg_8W, MAX},
-  {
-   "T2RH1", TIMER21, 0x2, 0x20 | MOD4, Reg_8W, MAX},
-  {
-   "T2CH1", TIMER21, 0x3, 0x30 | MOD4, Reg_8W, MAX},
-  {
-   "T2CNA2", TIMER21, 0x4, 0x40 | MOD4, Reg_8W, MAX},
-  {
-   "T2H2", TIMER21, 0x5, 0x50 | MOD4, Reg_8W, MAX},
-  {
-   "T2RH2", TIMER21, 0x6, 0x60 | MOD4, Reg_8W, MAX},
-  {
-   "T2CH2", TIMER21, 0x7, 0x70 | MOD4, Reg_8W, MAX},
-  {
-   "T2CNB1", TIMER21, 0x8, 0x80 | MOD4, Reg_8W, MAX},
-  {
-   "T2V1", TIMER21, 0x9, 0x90 | MOD4, Reg_16W, MAX},
-  {
-   "T2R1", TIMER21, 0xa, 0xa0 | MOD4, Reg_16W, MAX},
-  {
-   "T2C1", TIMER21, 0xb, 0xb0 | MOD4, Reg_16W, MAX},
-  {
-   "T2CNB2", TIMER21, 0xc, 0xc0 | MOD4, Reg_8W, MAX},
-  {
-   "T2V2", TIMER21, 0xd, 0xd0 | MOD4, Reg_16W, MAX},
-  {
-   "T2R2", TIMER21, 0xe, 0xe0 | MOD4, Reg_16W, MAX},
-  {
-   "T2C2", TIMER21, 0xf, 0xf0 | MOD4, Reg_16W, MAX},
-  {
-   "T2CFG1", TIMER21, 0x10, 0x10 | MOD4, Reg_8W, MAX},
-  {
-   "T2CFG2", TIMER21, 0x11, 0x11 | MOD4, Reg_8W, MAX},
-  {
-   NULL, 0, 0, 0, 0, 0}
-};
-
-/* Memory access argument.  */
-struct mem_access
-{
-  char *name;			/* Name of the Memory access operand.  */
-  int opcode;			/* Its corresponding opcode.  */
-};
-typedef struct mem_access mem_access;
-
-/* The Memory table for accessing the data memory through particular registers.  */
-struct mem_access mem_table[] =
-{
-  /* The Pop Operation on the stack.  */
-  {"@SP--", 0x0d},
-  /* Data Pointer 0 */
-  {"@DP[0]", 0x0f},
-  /* Data Ponter 1 */
-  {"@DP[1]", 0x4f},
-  /* Data Pointer 0 post increment */
-  {"@DP[0]++", 0x1f},
-  /* Data Pointer 1 post increment */
-  {"@DP[1]++", 0x5f},
-  /* Data Pointer 0 post decrement */
-  {"@DP[0]--", 0x2f},
-  /* Data Pointer 1 post decrement */
-  {"@DP[1]--", 0x6f},
-  /* ADDED According to New Specification.  */
-
-  {"@BP[OFFS]", 0x0E},
-  {"@BP[OFFS++]", 0x1E},
-  {"@BP[OFFS--]", 0x2E},
-  {"NUL", 0x76},
-  {"@++SP", 0x0D},
-  {"@BP[++OFFS]", 0x1E},
-  {"@BP[--OFFS]", 0x2E},
-  {"@++DP[0]", 0x1F},
-  {"@++DP[1]", 0x5F}, {"@--DP[0]", 0x2F}, {"@--DP[1]", 0x6F}
-};
-
-/* Register bit argument.  */
-struct reg_bit
-{
-  reg_entry *reg;
-  int bit;
-};
-typedef struct reg_bit reg_bit;
-
-/* There are certain names given to particular bits of some registers.
-   These will be taken care of here.  */
-struct bit_name
-{
-  char *name;
-  char *reg_bit;
-};
-typedef struct bit_name bit_name;
-
-bit_name bit_table[] =
-{
-  {
-   "RI", "SCON.0"},
-  /* FOr APC */
-  {
-   "MOD0", "APC.0"},
-  {
-   "MOD1", "APC.1"},
-  {
-   "MOD2", "APC.2"},
-  {
-   "IDS", "APC.6"},
-  {
-   "CLR", "APC.6"},
-  /* For PSF */
-  {
-   "E", "PSF.0"},
-  {
-   "C", "PSF.1"},
-  {
-   "OV", "PSF.2"},
-  {
-   "S", "PSF.6"},
-  {
-   "Z", "PSF.7"},
-  /* For IC */
-
-  {
-   "IGE", "IC.0"},
-  {
-   "INS", "IC.1"},
-  {
-   "CGDS", "IC.5"},
-  /* For IMR */
-
-  {
-   "IM0", "IMR.0"},
-  {
-   "IM1", "IMR.1"},
-  {
-   "IM2", "IMR.2"},
-  {
-   "IM3", "IMR.3"},
-  {
-   "IM4", "IMR.4"},
-  {
-   "IM5", "IMR.5"},
-  {
-   "IMS", "IMR.7"},
-  /* For SC */
-  {
-   "PWL", "SC.1"},
-  {
-   "ROD", "SC.2"},
-  {
-   "UPA", "SC.3"},
-  {
-   "CDA0", "SC.4"},
-  {
-   "CDA1", "SC.5"},
-  /* For IIR */
-
-  {
-   "II0", "IIR.0"},
-  {
-   "II1", "IIR.1"},
-  {
-   "II2", "IIR.2"},
-  {
-   "II3", "IIR.3"},
-  {
-   "II4", "IIR.4"},
-  {
-   "II5", "IIR.5"},
-  {
-   "IIS", "IIR.7"},
-  /* For CKCN */
-
-  {
-   "CD0", "CKCN.0"},
-  {
-   "CD1", "CKCN.1"},
-  {
-   "PMME", "CKCN.2"},
-  {
-   "SWB", "CKCN.3"},
-  {
-   "STOP", "CKCN.4"},
-  {
-   "RGMD", "CKCN.5"},
-  {
-   "RGSL", "CKCN.6"},
-  /* For WDCN */
-
-  {
-   "RWT", "WDCN.0"},
-  {
-   "EWT", "WDCN.1"},
-  {
-   "WTRF", "WDCN.2"},
-  {
-   "WDIF", "WDCN.3"},
-  {
-   "WD0", "WDCN.4"},
-  {
-   "WD1", "WDCN.5"},
-  {
-   "EWDI", "WDCN.6"},
-  {
-   "POR", "WDCN.7"},
-  /* For DPC */
-
-  {
-   "DPS0", "DPC.0"},
-  {
-   "DPS1", "DPC.1"},
-  {
-   "WBS0", "DPC.2"},
-  {
-   "WBS1", "DPC.3"},
-  {
-   "WBS2", "DPC.4"},
-
-   /* For SCON */  
-  {
-   "TI", "SCON.1"},
-  {
-   "RB8", "SCON.2"},
-  {
-   "TB8", "SCON.3"},
-  {
-   "REN", "SCON.4"},
-  {
-   "SM2", "SCON.5"},
-  {
-   "SM1", "SCON.6"},
-  {
-   "SM0", "SCON.7"},
-  {
-   "FE", "SCON.7"}
-};
-
-const char *LSInstr[] =
-{
-  "LJUMP", "SJUMP", "LDJNZ", "SDJNZ", "LCALL", "SCALL", "JUMP",
-  "DJNZ", "CALL", NULL
-};
-
-typedef enum
-{
-  DST,
-  SRC,
-  BOTH,
-}
-type1;
-
-struct mem_access_syntax
-{
-  char name[12];		/* Name of the Memory access operand.  */
-  type1 type;
-  char *invalid_op[5];
-};
-typedef struct mem_access_syntax mem_access_syntax;
-
-/* The Memory Access table for accessing the data memory through particular
-   registers.  */
-const mem_access_syntax mem_access_syntax_table[] =
-{
-  {
-   "@SP--", SRC,
-   {
-    NULL, NULL, NULL, NULL, NULL}},
-  /* Data Pointer 0 */
-  {
-   "@DP[0]", BOTH,
-   {
-    "@DP[0]--", "@DP[0]++", NULL, NULL, NULL}},
-  /* Data Ponter 1 */
-  {
-   "@DP[1]", BOTH,
-   {
-    "@DP[1]--", "@DP[1]++", NULL, NULL, NULL}},
-  /* Data Pointer 0 post increment */
-  {
-   "@DP[0]++", SRC,
-   {
-    NULL, NULL, NULL, NULL, NULL}},
-  /* Data Pointer 1 post increment */
-  {
-   "@DP[1]++", SRC,
-   {
-    NULL, NULL, NULL, NULL, NULL}},
-  /* Data Pointer 0 post decrement */
-  {
-   "@DP[0]--", SRC,
-   {
-    NULL, NULL, NULL, NULL, NULL}},
-  /* Data Pointer 1 post decrement */
-  {
-   "@DP[1]--", SRC,
-   {
-    NULL, NULL, NULL, NULL, NULL}},
-  /* ADDED According to New Specification */
-
-  {
-   "@BP[OFFS]", BOTH,
-   {
-    "@BP[OFFS++]", "@BP[OFFS--]", NULL, NULL, NULL}},
-  {
-   "@BP[OFFS++]", SRC,
-   {
-    NULL, NULL, NULL, NULL, NULL}},
-  {
-   "@BP[OFFS--]", SRC,
-   {
-    NULL, NULL, NULL, NULL, NULL}},
-  {
-   "NUL", DST,
-   {
-    NULL, NULL, NULL, NULL, NULL}},
-  {
-   "@++SP", DST,
-   {
-    NULL, NULL, NULL, NULL, NULL}},
-  {
-   "@BP[++OFFS]", DST,
-   {
-    "@BP[OFFS--]", "@BP[OFFS++]", NULL, NULL, NULL}},
-  {
-   "@BP[--OFFS]", DST,
-   {
-    "@BP[OFFS--]", "@BP[OFFS++]", NULL, NULL, NULL}},
-  {
-   "@++DP[0]", DST,
-   {
-    "@DP[0]--", "@DP[0]++", NULL, NULL, NULL}},
-  {
-   "@++DP[1]", DST,
-   {
-    "@DP[1]--", "@DP[1]++", NULL, NULL, NULL}},
-  {
-   "@--DP[0]", DST,
-   {
-    "@DP[0]++", "@DP[0]--", NULL, NULL, NULL}},
-  {
-   "@--DP[1]", DST,
-   {
-    "@DP[1]++", "@DP[1]--", NULL, NULL, NULL}}
-};
-
-#endif
diff --git a/include/opcode/mips.h b/include/opcode/mips.h
deleted file mode 100644
index dd99c4d..0000000
--- a/include/opcode/mips.h
+++ /dev/null
@@ -1,1015 +0,0 @@
-/* mips.h.  Mips opcode list for GDB, the GNU debugger.
-   Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-   2003, 2004, 2005
-   Free Software Foundation, Inc.
-   Contributed by Ralph Campbell and OSF
-   Commented and modified by Ian Lance Taylor, Cygnus Support
-
-This file is part of GDB, GAS, and the GNU binutils.
-
-GDB, GAS, and the GNU binutils are free software; you can redistribute
-them and/or modify them 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.
-
-GDB, GAS, and the GNU binutils are distributed in the hope that they
-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 file; see the file COPYING.  If not, write to the Free
-Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _MIPS_H_
-#define _MIPS_H_
-
-/* These are bit masks and shift counts to use to access the various
-   fields of an instruction.  To retrieve the X field of an
-   instruction, use the expression
-	(i >> OP_SH_X) & OP_MASK_X
-   To set the same field (to j), use
-	i = (i &~ (OP_MASK_X << OP_SH_X)) | (j << OP_SH_X)
-
-   Make sure you use fields that are appropriate for the instruction,
-   of course.
-
-   The 'i' format uses OP, RS, RT and IMMEDIATE.
-
-   The 'j' format uses OP and TARGET.
-
-   The 'r' format uses OP, RS, RT, RD, SHAMT and FUNCT.
-
-   The 'b' format uses OP, RS, RT and DELTA.
-
-   The floating point 'i' format uses OP, RS, RT and IMMEDIATE.
-
-   The floating point 'r' format uses OP, FMT, FT, FS, FD and FUNCT.
-
-   A breakpoint instruction uses OP, CODE and SPEC (10 bits of the
-   breakpoint instruction are not defined; Kane says the breakpoint
-   code field in BREAK is 20 bits; yet MIPS assemblers and debuggers
-   only use ten bits).  An optional two-operand form of break/sdbbp
-   allows the lower ten bits to be set too, and MIPS32 and later
-   architectures allow 20 bits to be set with a signal operand
-   (using CODE20).
-
-   The syscall instruction uses CODE20.
-
-   The general coprocessor instructions use COPZ.  */
-
-#define OP_MASK_OP		0x3f
-#define OP_SH_OP		26
-#define OP_MASK_RS		0x1f
-#define OP_SH_RS		21
-#define OP_MASK_FR		0x1f
-#define OP_SH_FR		21
-#define OP_MASK_FMT		0x1f
-#define OP_SH_FMT		21
-#define OP_MASK_BCC		0x7
-#define OP_SH_BCC		18
-#define OP_MASK_CODE		0x3ff
-#define OP_SH_CODE		16
-#define OP_MASK_CODE2		0x3ff
-#define OP_SH_CODE2		6
-#define OP_MASK_RT		0x1f
-#define OP_SH_RT		16
-#define OP_MASK_FT		0x1f
-#define OP_SH_FT		16
-#define OP_MASK_CACHE		0x1f
-#define OP_SH_CACHE		16
-#define OP_MASK_RD		0x1f
-#define OP_SH_RD		11
-#define OP_MASK_FS		0x1f
-#define OP_SH_FS		11
-#define OP_MASK_PREFX		0x1f
-#define OP_SH_PREFX		11
-#define OP_MASK_CCC		0x7
-#define OP_SH_CCC		8
-#define OP_MASK_CODE20		0xfffff /* 20 bit syscall/breakpoint code.  */
-#define OP_SH_CODE20		6
-#define OP_MASK_SHAMT		0x1f
-#define OP_SH_SHAMT		6
-#define OP_MASK_FD		0x1f
-#define OP_SH_FD		6
-#define OP_MASK_TARGET		0x3ffffff
-#define OP_SH_TARGET		0
-#define OP_MASK_COPZ		0x1ffffff
-#define OP_SH_COPZ		0
-#define OP_MASK_IMMEDIATE	0xffff
-#define OP_SH_IMMEDIATE		0
-#define OP_MASK_DELTA		0xffff
-#define OP_SH_DELTA		0
-#define OP_MASK_FUNCT		0x3f
-#define OP_SH_FUNCT		0
-#define OP_MASK_SPEC		0x3f
-#define OP_SH_SPEC		0
-#define OP_SH_LOCC              8       /* FP condition code.  */
-#define OP_SH_HICC              18      /* FP condition code.  */
-#define OP_MASK_CC              0x7
-#define OP_SH_COP1NORM          25      /* Normal COP1 encoding.  */
-#define OP_MASK_COP1NORM        0x1     /* a single bit.  */
-#define OP_SH_COP1SPEC          21      /* COP1 encodings.  */
-#define OP_MASK_COP1SPEC        0xf
-#define OP_MASK_COP1SCLR        0x4
-#define OP_MASK_COP1CMP         0x3
-#define OP_SH_COP1CMP           4
-#define OP_SH_FORMAT            21      /* FP short format field.  */
-#define OP_MASK_FORMAT          0x7
-#define OP_SH_TRUE              16
-#define OP_MASK_TRUE            0x1
-#define OP_SH_GE                17
-#define OP_MASK_GE              0x01
-#define OP_SH_UNSIGNED          16
-#define OP_MASK_UNSIGNED        0x1
-#define OP_SH_HINT              16
-#define OP_MASK_HINT            0x1f
-#define OP_SH_MMI               0       /* Multimedia (parallel) op.  */
-#define OP_MASK_MMI             0x3f
-#define OP_SH_MMISUB            6
-#define OP_MASK_MMISUB          0x1f
-#define OP_MASK_PERFREG		0x1f	/* Performance monitoring.  */
-#define OP_SH_PERFREG		1
-#define OP_SH_SEL		0	/* Coprocessor select field.  */
-#define OP_MASK_SEL		0x7	/* The sel field of mfcZ and mtcZ.  */
-#define OP_SH_CODE19		6       /* 19 bit wait code.  */
-#define OP_MASK_CODE19		0x7ffff
-#define OP_SH_ALN		21
-#define OP_MASK_ALN		0x7
-#define OP_SH_VSEL		21
-#define OP_MASK_VSEL		0x1f
-#define OP_MASK_VECBYTE		0x7	/* Selector field is really 4 bits,
-					   but 0x8-0xf don't select bytes.  */
-#define OP_SH_VECBYTE		22
-#define OP_MASK_VECALIGN	0x7	/* Vector byte-align (alni.ob) op.  */
-#define OP_SH_VECALIGN		21
-#define OP_MASK_INSMSB		0x1f	/* "ins" MSB.  */
-#define OP_SH_INSMSB		11
-#define OP_MASK_EXTMSBD		0x1f	/* "ext" MSBD.  */
-#define OP_SH_EXTMSBD		11
-
-/* MIPS DSP ASE */
-#define OP_SH_DSPACC		11
-#define OP_MASK_DSPACC  	0x3
-#define OP_SH_DSPACC_S  	21
-#define OP_MASK_DSPACC_S	0x3
-#define OP_SH_DSPSFT		20
-#define OP_MASK_DSPSFT  	0x3f
-#define OP_SH_DSPSFT_7  	19
-#define OP_MASK_DSPSFT_7	0x7f
-#define OP_SH_SA3		21
-#define OP_MASK_SA3		0x7
-#define OP_SH_SA4		21
-#define OP_MASK_SA4		0xf
-#define OP_SH_IMM8		16
-#define OP_MASK_IMM8		0xff
-#define OP_SH_IMM10		16
-#define OP_MASK_IMM10		0x3ff
-#define OP_SH_WRDSP		11
-#define OP_MASK_WRDSP		0x3f
-#define OP_SH_RDDSP		16
-#define OP_MASK_RDDSP		0x3f
-
-/* MIPS MT ASE */
-#define OP_SH_MT_U		5
-#define OP_MASK_MT_U		0x1
-#define OP_SH_MT_H		4
-#define OP_MASK_MT_H		0x1
-#define OP_SH_MTACC_T		18
-#define OP_MASK_MTACC_T		0x3
-#define OP_SH_MTACC_D		13
-#define OP_MASK_MTACC_D		0x3
-
-#define	OP_OP_COP0		0x10
-#define	OP_OP_COP1		0x11
-#define	OP_OP_COP2		0x12
-#define	OP_OP_COP3		0x13
-#define	OP_OP_LWC1		0x31
-#define	OP_OP_LWC2		0x32
-#define	OP_OP_LWC3		0x33	/* a.k.a. pref */
-#define	OP_OP_LDC1		0x35
-#define	OP_OP_LDC2		0x36
-#define	OP_OP_LDC3		0x37	/* a.k.a. ld */
-#define	OP_OP_SWC1		0x39
-#define	OP_OP_SWC2		0x3a
-#define	OP_OP_SWC3		0x3b
-#define	OP_OP_SDC1		0x3d
-#define	OP_OP_SDC2		0x3e
-#define	OP_OP_SDC3		0x3f	/* a.k.a. sd */
-
-/* Values in the 'VSEL' field.  */
-#define MDMX_FMTSEL_IMM_QH	0x1d
-#define MDMX_FMTSEL_IMM_OB	0x1e
-#define MDMX_FMTSEL_VEC_QH	0x15
-#define MDMX_FMTSEL_VEC_OB	0x16
-
-/* UDI */
-#define OP_SH_UDI1		6
-#define OP_MASK_UDI1		0x1f
-#define OP_SH_UDI2		6
-#define OP_MASK_UDI2		0x3ff
-#define OP_SH_UDI3		6
-#define OP_MASK_UDI3		0x7fff
-#define OP_SH_UDI4		6
-#define OP_MASK_UDI4		0xfffff
-
-/* This structure holds information for a particular instruction.  */
-
-struct mips_opcode
-{
-  /* The name of the instruction.  */
-  const char *name;
-  /* A string describing the arguments for this instruction.  */
-  const char *args;
-  /* The basic opcode for the instruction.  When assembling, this
-     opcode is modified by the arguments to produce the actual opcode
-     that is used.  If pinfo is INSN_MACRO, then this is 0.  */
-  unsigned long match;
-  /* If pinfo is not INSN_MACRO, then this is a bit mask for the
-     relevant portions of the opcode when disassembling.  If the
-     actual opcode anded with the match field equals the opcode field,
-     then we have found the correct instruction.  If pinfo is
-     INSN_MACRO, then this field is the macro identifier.  */
-  unsigned long mask;
-  /* For a macro, this is INSN_MACRO.  Otherwise, it is a collection
-     of bits describing the instruction, notably any relevant hazard
-     information.  */
-  unsigned long pinfo;
-  /* A collection of additional bits describing the instruction. */
-  unsigned long pinfo2;
-  /* A collection of bits describing the instruction sets of which this
-     instruction or macro is a member. */
-  unsigned long membership;
-};
-
-/* These are the characters which may appear in the args field of an
-   instruction.  They appear in the order in which the fields appear
-   when the instruction is used.  Commas and parentheses in the args
-   string are ignored when assembling, and written into the output
-   when disassembling.
-
-   Each of these characters corresponds to a mask field defined above.
-
-   "<" 5 bit shift amount (OP_*_SHAMT)
-   ">" shift amount between 32 and 63, stored after subtracting 32 (OP_*_SHAMT)
-   "a" 26 bit target address (OP_*_TARGET)
-   "b" 5 bit base register (OP_*_RS)
-   "c" 10 bit breakpoint code (OP_*_CODE)
-   "d" 5 bit destination register specifier (OP_*_RD)
-   "h" 5 bit prefx hint (OP_*_PREFX)
-   "i" 16 bit unsigned immediate (OP_*_IMMEDIATE)
-   "j" 16 bit signed immediate (OP_*_DELTA)
-   "k" 5 bit cache opcode in target register position (OP_*_CACHE)
-       Also used for immediate operands in vr5400 vector insns.
-   "o" 16 bit signed offset (OP_*_DELTA)
-   "p" 16 bit PC relative branch target address (OP_*_DELTA)
-   "q" 10 bit extra breakpoint code (OP_*_CODE2)
-   "r" 5 bit same register used as both source and target (OP_*_RS)
-   "s" 5 bit source register specifier (OP_*_RS)
-   "t" 5 bit target register (OP_*_RT)
-   "u" 16 bit upper 16 bits of address (OP_*_IMMEDIATE)
-   "v" 5 bit same register used as both source and destination (OP_*_RS)
-   "w" 5 bit same register used as both target and destination (OP_*_RT)
-   "U" 5 bit same destination register in both OP_*_RD and OP_*_RT
-       (used by clo and clz)
-   "C" 25 bit coprocessor function code (OP_*_COPZ)
-   "B" 20 bit syscall/breakpoint function code (OP_*_CODE20)
-   "J" 19 bit wait function code (OP_*_CODE19)
-   "x" accept and ignore register name
-   "z" must be zero register
-   "K" 5 bit Hardware Register (rdhwr instruction) (OP_*_RD)
-   "+A" 5 bit ins/ext/dins/dext/dinsm/dextm position, which becomes
-        LSB (OP_*_SHAMT).
-	Enforces: 0 <= pos < 32.
-   "+B" 5 bit ins/dins size, which becomes MSB (OP_*_INSMSB).
-	Requires that "+A" or "+E" occur first to set position.
-	Enforces: 0 < (pos+size) <= 32.
-   "+C" 5 bit ext/dext size, which becomes MSBD (OP_*_EXTMSBD).
-	Requires that "+A" or "+E" occur first to set position.
-	Enforces: 0 < (pos+size) <= 32.
-	(Also used by "dext" w/ different limits, but limits for
-	that are checked by the M_DEXT macro.)
-   "+E" 5 bit dinsu/dextu position, which becomes LSB-32 (OP_*_SHAMT).
-	Enforces: 32 <= pos < 64.
-   "+F" 5 bit "dinsm/dinsu" size, which becomes MSB-32 (OP_*_INSMSB).
-	Requires that "+A" or "+E" occur first to set position.
-	Enforces: 32 < (pos+size) <= 64.
-   "+G" 5 bit "dextm" size, which becomes MSBD-32 (OP_*_EXTMSBD).
-	Requires that "+A" or "+E" occur first to set position.
-	Enforces: 32 < (pos+size) <= 64.
-   "+H" 5 bit "dextu" size, which becomes MSBD (OP_*_EXTMSBD).
-	Requires that "+A" or "+E" occur first to set position.
-	Enforces: 32 < (pos+size) <= 64.
-
-   Floating point instructions:
-   "D" 5 bit destination register (OP_*_FD)
-   "M" 3 bit compare condition code (OP_*_CCC) (only used for mips4 and up)
-   "N" 3 bit branch condition code (OP_*_BCC) (only used for mips4 and up)
-   "S" 5 bit fs source 1 register (OP_*_FS)
-   "T" 5 bit ft source 2 register (OP_*_FT)
-   "R" 5 bit fr source 3 register (OP_*_FR)
-   "V" 5 bit same register used as floating source and destination (OP_*_FS)
-   "W" 5 bit same register used as floating target and destination (OP_*_FT)
-
-   Coprocessor instructions:
-   "E" 5 bit target register (OP_*_RT)
-   "G" 5 bit destination register (OP_*_RD)
-   "H" 3 bit sel field for (d)mtc* and (d)mfc* (OP_*_SEL)
-   "P" 5 bit performance-monitor register (OP_*_PERFREG)
-   "e" 5 bit vector register byte specifier (OP_*_VECBYTE)
-   "%" 3 bit immediate vr5400 vector alignment operand (OP_*_VECALIGN)
-   see also "k" above
-   "+D" Combined destination register ("G") and sel ("H") for CP0 ops,
-	for pretty-printing in disassembly only.
-
-   Macro instructions:
-   "A" General 32 bit expression
-   "I" 32 bit immediate (value placed in imm_expr).
-   "+I" 32 bit immediate (value placed in imm2_expr).
-   "F" 64 bit floating point constant in .rdata
-   "L" 64 bit floating point constant in .lit8
-   "f" 32 bit floating point constant
-   "l" 32 bit floating point constant in .lit4
-
-   MDMX instruction operands (note that while these use the FP register
-   fields, they accept both $fN and $vN names for the registers):  
-   "O"	MDMX alignment offset (OP_*_ALN)
-   "Q"	MDMX vector/scalar/immediate source (OP_*_VSEL and OP_*_FT)
-   "X"	MDMX destination register (OP_*_FD) 
-   "Y"	MDMX source register (OP_*_FS)
-   "Z"	MDMX source register (OP_*_FT)
-
-   DSP ASE usage:
-   "3" 3 bit unsigned immediate (OP_*_SA3)
-   "4" 4 bit unsigned immediate (OP_*_SA4)
-   "5" 8 bit unsigned immediate (OP_*_IMM8)
-   "6" 5 bit unsigned immediate (OP_*_RS)
-   "7" 2 bit dsp accumulator register (OP_*_DSPACC)
-   "8" 6 bit unsigned immediate (OP_*_WRDSP)
-   "9" 2 bit dsp accumulator register (OP_*_DSPACC_S)
-   "0" 6 bit signed immediate (OP_*_DSPSFT)
-   ":" 7 bit signed immediate (OP_*_DSPSFT_7)
-   "'" 6 bit unsigned immediate (OP_*_RDDSP)
-   "@" 10 bit signed immediate (OP_*_IMM10)
-
-   MT ASE usage:
-   "!" 1 bit usermode flag (OP_*_MT_U)
-   "$" 1 bit load high flag (OP_*_MT_H)
-   "*" 2 bit dsp/smartmips accumulator register (OP_*_MTACC_T)
-   "&" 2 bit dsp/smartmips accumulator register (OP_*_MTACC_D)
-   "g" 5 bit coprocessor 1 and 2 destination register (OP_*_RD)
-   "+t" 5 bit coprocessor 0 destination register (OP_*_RT)
-   "+T" 5 bit coprocessor 0 destination register (OP_*_RT) - disassembly only
-
-   UDI immediates:
-   "+1" UDI immediate bits 6-10
-   "+2" UDI immediate bits 6-15
-   "+3" UDI immediate bits 6-20
-   "+4" UDI immediate bits 6-25
-
-   Other:
-   "()" parens surrounding optional value
-   ","  separates operands
-   "[]" brackets around index for vector-op scalar operand specifier (vr5400)
-   "+"  Start of extension sequence.
-
-   Characters used so far, for quick reference when adding more:
-   "34567890"
-   "%[]<>(),+:'@!$*&"
-   "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
-   "abcdefghijklopqrstuvwxz"
-
-   Extension character sequences used so far ("+" followed by the
-   following), for quick reference when adding more:
-   "1234"
-   "ABCDEFGHIT"
-   "t"
-*/
-
-/* These are the bits which may be set in the pinfo field of an
-   instructions, if it is not equal to INSN_MACRO.  */
-
-/* Modifies the general purpose register in OP_*_RD.  */
-#define INSN_WRITE_GPR_D            0x00000001
-/* Modifies the general purpose register in OP_*_RT.  */
-#define INSN_WRITE_GPR_T            0x00000002
-/* Modifies general purpose register 31.  */
-#define INSN_WRITE_GPR_31           0x00000004
-/* Modifies the floating point register in OP_*_FD.  */
-#define INSN_WRITE_FPR_D            0x00000008
-/* Modifies the floating point register in OP_*_FS.  */
-#define INSN_WRITE_FPR_S            0x00000010
-/* Modifies the floating point register in OP_*_FT.  */
-#define INSN_WRITE_FPR_T            0x00000020
-/* Reads the general purpose register in OP_*_RS.  */
-#define INSN_READ_GPR_S             0x00000040
-/* Reads the general purpose register in OP_*_RT.  */
-#define INSN_READ_GPR_T             0x00000080
-/* Reads the floating point register in OP_*_FS.  */
-#define INSN_READ_FPR_S             0x00000100
-/* Reads the floating point register in OP_*_FT.  */
-#define INSN_READ_FPR_T             0x00000200
-/* Reads the floating point register in OP_*_FR.  */
-#define INSN_READ_FPR_R		    0x00000400
-/* Modifies coprocessor condition code.  */
-#define INSN_WRITE_COND_CODE        0x00000800
-/* Reads coprocessor condition code.  */
-#define INSN_READ_COND_CODE         0x00001000
-/* TLB operation.  */
-#define INSN_TLB                    0x00002000
-/* Reads coprocessor register other than floating point register.  */
-#define INSN_COP                    0x00004000
-/* Instruction loads value from memory, requiring delay.  */
-#define INSN_LOAD_MEMORY_DELAY      0x00008000
-/* Instruction loads value from coprocessor, requiring delay.  */
-#define INSN_LOAD_COPROC_DELAY	    0x00010000
-/* Instruction has unconditional branch delay slot.  */
-#define INSN_UNCOND_BRANCH_DELAY    0x00020000
-/* Instruction has conditional branch delay slot.  */
-#define INSN_COND_BRANCH_DELAY      0x00040000
-/* Conditional branch likely: if branch not taken, insn nullified.  */
-#define INSN_COND_BRANCH_LIKELY	    0x00080000
-/* Moves to coprocessor register, requiring delay.  */
-#define INSN_COPROC_MOVE_DELAY      0x00100000
-/* Loads coprocessor register from memory, requiring delay.  */
-#define INSN_COPROC_MEMORY_DELAY    0x00200000
-/* Reads the HI register.  */
-#define INSN_READ_HI		    0x00400000
-/* Reads the LO register.  */
-#define INSN_READ_LO		    0x00800000
-/* Modifies the HI register.  */
-#define INSN_WRITE_HI		    0x01000000
-/* Modifies the LO register.  */
-#define INSN_WRITE_LO		    0x02000000
-/* Takes a trap (easier to keep out of delay slot).  */
-#define INSN_TRAP                   0x04000000
-/* Instruction stores value into memory.  */
-#define INSN_STORE_MEMORY	    0x08000000
-/* Instruction uses single precision floating point.  */
-#define FP_S			    0x10000000
-/* Instruction uses double precision floating point.  */
-#define FP_D			    0x20000000
-/* Instruction is part of the tx39's integer multiply family.    */
-#define INSN_MULT                   0x40000000
-/* Instruction synchronize shared memory.  */
-#define INSN_SYNC		    0x80000000
-
-/* These are the bits which may be set in the pinfo2 field of an
-   instruction. */
-
-/* Instruction is a simple alias (I.E. "move" for daddu/addu/or) */
-#define	INSN2_ALIAS		    0x00000001
-/* Instruction reads MDMX accumulator. */
-#define INSN2_READ_MDMX_ACC	    0x00000002
-/* Instruction writes MDMX accumulator. */
-#define INSN2_WRITE_MDMX_ACC	    0x00000004
-
-/* Instruction is actually a macro.  It should be ignored by the
-   disassembler, and requires special treatment by the assembler.  */
-#define INSN_MACRO                  0xffffffff
-
-/* Masks used to mark instructions to indicate which MIPS ISA level
-   they were introduced in.  ISAs, as defined below, are logical
-   ORs of these bits, indicating that they support the instructions
-   defined at the given level.  */
-
-#define INSN_ISA_MASK		  0x00000fff
-#define INSN_ISA1                 0x00000001
-#define INSN_ISA2                 0x00000002
-#define INSN_ISA3                 0x00000004
-#define INSN_ISA4                 0x00000008
-#define INSN_ISA5                 0x00000010
-#define INSN_ISA32                0x00000020
-#define INSN_ISA64                0x00000040
-#define INSN_ISA32R2              0x00000080
-#define INSN_ISA64R2              0x00000100
-
-/* Masks used for MIPS-defined ASEs.  */
-#define INSN_ASE_MASK		  0x1c00f000
-
-/* DSP ASE */ 
-#define INSN_DSP                  0x00001000
-#define INSN_DSP64                0x00002000
-/* MIPS 16 ASE */
-#define INSN_MIPS16               0x00004000
-/* MIPS-3D ASE */
-#define INSN_MIPS3D               0x00008000
-
-/* Chip specific instructions.  These are bitmasks.  */
-
-/* MIPS R4650 instruction.  */
-#define INSN_4650                 0x00010000
-/* LSI R4010 instruction.  */
-#define INSN_4010                 0x00020000
-/* NEC VR4100 instruction.  */
-#define INSN_4100                 0x00040000
-/* Toshiba R3900 instruction.  */
-#define INSN_3900                 0x00080000
-/* MIPS R10000 instruction.  */
-#define INSN_10000                0x00100000
-/* Broadcom SB-1 instruction.  */
-#define INSN_SB1                  0x00200000
-/* NEC VR4111/VR4181 instruction.  */
-#define INSN_4111                 0x00400000
-/* NEC VR4120 instruction.  */
-#define INSN_4120                 0x00800000
-/* NEC VR5400 instruction.  */
-#define INSN_5400		  0x01000000
-/* NEC VR5500 instruction.  */
-#define INSN_5500		  0x02000000
-
-/* MDMX ASE */ 
-#define INSN_MDMX                 0x04000000
-/* MT ASE */
-#define INSN_MT                   0x08000000
-/* SmartMIPS ASE.  */
-#define INSN_SMARTMIPS            0x10000000
-
-/* MIPS ISA defines, use instead of hardcoding ISA level.  */
-
-#define       ISA_UNKNOWN     0               /* Gas internal use.  */
-#define       ISA_MIPS1       (INSN_ISA1)
-#define       ISA_MIPS2       (ISA_MIPS1 | INSN_ISA2)
-#define       ISA_MIPS3       (ISA_MIPS2 | INSN_ISA3)
-#define       ISA_MIPS4       (ISA_MIPS3 | INSN_ISA4)
-#define       ISA_MIPS5       (ISA_MIPS4 | INSN_ISA5)
-
-#define       ISA_MIPS32      (ISA_MIPS2 | INSN_ISA32)
-#define       ISA_MIPS64      (ISA_MIPS5 | INSN_ISA32 | INSN_ISA64)
-
-#define       ISA_MIPS32R2    (ISA_MIPS32 | INSN_ISA32R2)
-#define       ISA_MIPS64R2    (ISA_MIPS64 | INSN_ISA32R2 | INSN_ISA64R2)
-
-
-/* CPU defines, use instead of hardcoding processor number. Keep this
-   in sync with bfd/archures.c in order for machine selection to work.  */
-#define CPU_UNKNOWN	0               /* Gas internal use.  */
-#define CPU_R3000	3000
-#define CPU_R3900	3900
-#define CPU_R4000	4000
-#define CPU_R4010	4010
-#define CPU_VR4100	4100
-#define CPU_R4111	4111
-#define CPU_VR4120	4120
-#define CPU_R4300	4300
-#define CPU_R4400	4400
-#define CPU_R4600	4600
-#define CPU_R4650	4650
-#define CPU_R5000	5000
-#define CPU_VR5400	5400
-#define CPU_VR5500	5500
-#define CPU_R6000	6000
-#define CPU_RM7000	7000
-#define CPU_R8000	8000
-#define CPU_RM9000	9000
-#define CPU_R10000	10000
-#define CPU_R12000	12000
-#define CPU_MIPS16	16
-#define CPU_MIPS32	32
-#define CPU_MIPS32R2	33
-#define CPU_MIPS5       5
-#define CPU_MIPS64      64
-#define CPU_MIPS64R2	65
-#define CPU_SB1         12310201        /* octal 'SB', 01.  */
-
-/* Test for membership in an ISA including chip specific ISAs.  INSN
-   is pointer to an element of the opcode table; ISA is the specified
-   ISA/ASE bitmask to test against; and CPU is the CPU specific ISA to
-   test, or zero if no CPU specific ISA test is desired.  */
-
-#define OPCODE_IS_MEMBER(insn, isa, cpu)				\
-    (((insn)->membership & isa) != 0					\
-     || (cpu == CPU_R4650 && ((insn)->membership & INSN_4650) != 0)	\
-     || (cpu == CPU_RM7000 && ((insn)->membership & INSN_4650) != 0)	\
-     || (cpu == CPU_RM9000 && ((insn)->membership & INSN_4650) != 0)	\
-     || (cpu == CPU_R4010 && ((insn)->membership & INSN_4010) != 0)	\
-     || (cpu == CPU_VR4100 && ((insn)->membership & INSN_4100) != 0)	\
-     || (cpu == CPU_R3900 && ((insn)->membership & INSN_3900) != 0)	\
-     || ((cpu == CPU_R10000 || cpu == CPU_R12000)			\
-	 && ((insn)->membership & INSN_10000) != 0)			\
-     || (cpu == CPU_SB1 && ((insn)->membership & INSN_SB1) != 0)	\
-     || (cpu == CPU_R4111 && ((insn)->membership & INSN_4111) != 0)	\
-     || (cpu == CPU_VR4120 && ((insn)->membership & INSN_4120) != 0)	\
-     || (cpu == CPU_VR5400 && ((insn)->membership & INSN_5400) != 0)	\
-     || (cpu == CPU_VR5500 && ((insn)->membership & INSN_5500) != 0)	\
-     || 0)	/* Please keep this term for easier source merging.  */
-
-/* This is a list of macro expanded instructions.
-
-   _I appended means immediate
-   _A appended means address
-   _AB appended means address with base register
-   _D appended means 64 bit floating point constant
-   _S appended means 32 bit floating point constant.  */
-
-enum
-{
-  M_ABS,
-  M_ADD_I,
-  M_ADDU_I,
-  M_AND_I,
-  M_BEQ,
-  M_BEQ_I,
-  M_BEQL_I,
-  M_BGE,
-  M_BGEL,
-  M_BGE_I,
-  M_BGEL_I,
-  M_BGEU,
-  M_BGEUL,
-  M_BGEU_I,
-  M_BGEUL_I,
-  M_BGT,
-  M_BGTL,
-  M_BGT_I,
-  M_BGTL_I,
-  M_BGTU,
-  M_BGTUL,
-  M_BGTU_I,
-  M_BGTUL_I,
-  M_BLE,
-  M_BLEL,
-  M_BLE_I,
-  M_BLEL_I,
-  M_BLEU,
-  M_BLEUL,
-  M_BLEU_I,
-  M_BLEUL_I,
-  M_BLT,
-  M_BLTL,
-  M_BLT_I,
-  M_BLTL_I,
-  M_BLTU,
-  M_BLTUL,
-  M_BLTU_I,
-  M_BLTUL_I,
-  M_BNE,
-  M_BNE_I,
-  M_BNEL_I,
-  M_CACHE_AB,
-  M_DABS,
-  M_DADD_I,
-  M_DADDU_I,
-  M_DDIV_3,
-  M_DDIV_3I,
-  M_DDIVU_3,
-  M_DDIVU_3I,
-  M_DEXT,
-  M_DINS,
-  M_DIV_3,
-  M_DIV_3I,
-  M_DIVU_3,
-  M_DIVU_3I,
-  M_DLA_AB,
-  M_DLCA_AB,
-  M_DLI,
-  M_DMUL,
-  M_DMUL_I,
-  M_DMULO,
-  M_DMULO_I,
-  M_DMULOU,
-  M_DMULOU_I,
-  M_DREM_3,
-  M_DREM_3I,
-  M_DREMU_3,
-  M_DREMU_3I,
-  M_DSUB_I,
-  M_DSUBU_I,
-  M_DSUBU_I_2,
-  M_J_A,
-  M_JAL_1,
-  M_JAL_2,
-  M_JAL_A,
-  M_L_DOB,
-  M_L_DAB,
-  M_LA_AB,
-  M_LB_A,
-  M_LB_AB,
-  M_LBU_A,
-  M_LBU_AB,
-  M_LCA_AB,
-  M_LD_A,
-  M_LD_OB,
-  M_LD_AB,
-  M_LDC1_AB,
-  M_LDC2_AB,
-  M_LDC3_AB,
-  M_LDL_AB,
-  M_LDR_AB,
-  M_LH_A,
-  M_LH_AB,
-  M_LHU_A,
-  M_LHU_AB,
-  M_LI,
-  M_LI_D,
-  M_LI_DD,
-  M_LI_S,
-  M_LI_SS,
-  M_LL_AB,
-  M_LLD_AB,
-  M_LS_A,
-  M_LW_A,
-  M_LW_AB,
-  M_LWC0_A,
-  M_LWC0_AB,
-  M_LWC1_A,
-  M_LWC1_AB,
-  M_LWC2_A,
-  M_LWC2_AB,
-  M_LWC3_A,
-  M_LWC3_AB,
-  M_LWL_A,
-  M_LWL_AB,
-  M_LWR_A,
-  M_LWR_AB,
-  M_LWU_AB,
-  M_MOVE,
-  M_MUL,
-  M_MUL_I,
-  M_MULO,
-  M_MULO_I,
-  M_MULOU,
-  M_MULOU_I,
-  M_NOR_I,
-  M_OR_I,
-  M_REM_3,
-  M_REM_3I,
-  M_REMU_3,
-  M_REMU_3I,
-  M_DROL,
-  M_ROL,
-  M_DROL_I,
-  M_ROL_I,
-  M_DROR,
-  M_ROR,
-  M_DROR_I,
-  M_ROR_I,
-  M_S_DA,
-  M_S_DOB,
-  M_S_DAB,
-  M_S_S,
-  M_SC_AB,
-  M_SCD_AB,
-  M_SD_A,
-  M_SD_OB,
-  M_SD_AB,
-  M_SDC1_AB,
-  M_SDC2_AB,
-  M_SDC3_AB,
-  M_SDL_AB,
-  M_SDR_AB,
-  M_SEQ,
-  M_SEQ_I,
-  M_SGE,
-  M_SGE_I,
-  M_SGEU,
-  M_SGEU_I,
-  M_SGT,
-  M_SGT_I,
-  M_SGTU,
-  M_SGTU_I,
-  M_SLE,
-  M_SLE_I,
-  M_SLEU,
-  M_SLEU_I,
-  M_SLT_I,
-  M_SLTU_I,
-  M_SNE,
-  M_SNE_I,
-  M_SB_A,
-  M_SB_AB,
-  M_SH_A,
-  M_SH_AB,
-  M_SW_A,
-  M_SW_AB,
-  M_SWC0_A,
-  M_SWC0_AB,
-  M_SWC1_A,
-  M_SWC1_AB,
-  M_SWC2_A,
-  M_SWC2_AB,
-  M_SWC3_A,
-  M_SWC3_AB,
-  M_SWL_A,
-  M_SWL_AB,
-  M_SWR_A,
-  M_SWR_AB,
-  M_SUB_I,
-  M_SUBU_I,
-  M_SUBU_I_2,
-  M_TEQ_I,
-  M_TGE_I,
-  M_TGEU_I,
-  M_TLT_I,
-  M_TLTU_I,
-  M_TNE_I,
-  M_TRUNCWD,
-  M_TRUNCWS,
-  M_ULD,
-  M_ULD_A,
-  M_ULH,
-  M_ULH_A,
-  M_ULHU,
-  M_ULHU_A,
-  M_ULW,
-  M_ULW_A,
-  M_USH,
-  M_USH_A,
-  M_USW,
-  M_USW_A,
-  M_USD,
-  M_USD_A,
-  M_XOR_I,
-  M_COP0,
-  M_COP1,
-  M_COP2,
-  M_COP3,
-  M_NUM_MACROS
-};
-
-
-/* The order of overloaded instructions matters.  Label arguments and
-   register arguments look the same. Instructions that can have either
-   for arguments must apear in the correct order in this table for the
-   assembler to pick the right one. In other words, entries with
-   immediate operands must apear after the same instruction with
-   registers.
-
-   Many instructions are short hand for other instructions (i.e., The
-   jal <register> instruction is short for jalr <register>).  */
-
-extern const struct mips_opcode mips_builtin_opcodes[];
-extern const int bfd_mips_num_builtin_opcodes;
-extern struct mips_opcode *mips_opcodes;
-extern int bfd_mips_num_opcodes;
-#define NUMOPCODES bfd_mips_num_opcodes
-
-
-/* The rest of this file adds definitions for the mips16 TinyRISC
-   processor.  */
-
-/* These are the bitmasks and shift counts used for the different
-   fields in the instruction formats.  Other than OP, no masks are
-   provided for the fixed portions of an instruction, since they are
-   not needed.
-
-   The I format uses IMM11.
-
-   The RI format uses RX and IMM8.
-
-   The RR format uses RX, and RY.
-
-   The RRI format uses RX, RY, and IMM5.
-
-   The RRR format uses RX, RY, and RZ.
-
-   The RRI_A format uses RX, RY, and IMM4.
-
-   The SHIFT format uses RX, RY, and SHAMT.
-
-   The I8 format uses IMM8.
-
-   The I8_MOVR32 format uses RY and REGR32.
-
-   The IR_MOV32R format uses REG32R and MOV32Z.
-
-   The I64 format uses IMM8.
-
-   The RI64 format uses RY and IMM5.
-   */
-
-#define MIPS16OP_MASK_OP	0x1f
-#define MIPS16OP_SH_OP		11
-#define MIPS16OP_MASK_IMM11	0x7ff
-#define MIPS16OP_SH_IMM11	0
-#define MIPS16OP_MASK_RX	0x7
-#define MIPS16OP_SH_RX		8
-#define MIPS16OP_MASK_IMM8	0xff
-#define MIPS16OP_SH_IMM8	0
-#define MIPS16OP_MASK_RY	0x7
-#define MIPS16OP_SH_RY		5
-#define MIPS16OP_MASK_IMM5	0x1f
-#define MIPS16OP_SH_IMM5	0
-#define MIPS16OP_MASK_RZ	0x7
-#define MIPS16OP_SH_RZ		2
-#define MIPS16OP_MASK_IMM4	0xf
-#define MIPS16OP_SH_IMM4	0
-#define MIPS16OP_MASK_REGR32	0x1f
-#define MIPS16OP_SH_REGR32	0
-#define MIPS16OP_MASK_REG32R	0x1f
-#define MIPS16OP_SH_REG32R	3
-#define MIPS16OP_EXTRACT_REG32R(i) ((((i) >> 5) & 7) | ((i) & 0x18))
-#define MIPS16OP_MASK_MOVE32Z	0x7
-#define MIPS16OP_SH_MOVE32Z	0
-#define MIPS16OP_MASK_IMM6	0x3f
-#define MIPS16OP_SH_IMM6	5
-
-/* These are the characters which may appears in the args field of an
-   instruction.  They appear in the order in which the fields appear
-   when the instruction is used.  Commas and parentheses in the args
-   string are ignored when assembling, and written into the output
-   when disassembling.
-
-   "y" 3 bit register (MIPS16OP_*_RY)
-   "x" 3 bit register (MIPS16OP_*_RX)
-   "z" 3 bit register (MIPS16OP_*_RZ)
-   "Z" 3 bit register (MIPS16OP_*_MOVE32Z)
-   "v" 3 bit same register as source and destination (MIPS16OP_*_RX)
-   "w" 3 bit same register as source and destination (MIPS16OP_*_RY)
-   "0" zero register ($0)
-   "S" stack pointer ($sp or $29)
-   "P" program counter
-   "R" return address register ($ra or $31)
-   "X" 5 bit MIPS register (MIPS16OP_*_REGR32)
-   "Y" 5 bit MIPS register (MIPS16OP_*_REG32R)
-   "6" 6 bit unsigned break code (MIPS16OP_*_IMM6)
-   "a" 26 bit jump address
-   "e" 11 bit extension value
-   "l" register list for entry instruction
-   "L" register list for exit instruction
-
-   The remaining codes may be extended.  Except as otherwise noted,
-   the full extended operand is a 16 bit signed value.
-   "<" 3 bit unsigned shift count * 0 (MIPS16OP_*_RZ) (full 5 bit unsigned)
-   ">" 3 bit unsigned shift count * 0 (MIPS16OP_*_RX) (full 5 bit unsigned)
-   "[" 3 bit unsigned shift count * 0 (MIPS16OP_*_RZ) (full 6 bit unsigned)
-   "]" 3 bit unsigned shift count * 0 (MIPS16OP_*_RX) (full 6 bit unsigned)
-   "4" 4 bit signed immediate * 0 (MIPS16OP_*_IMM4) (full 15 bit signed)
-   "5" 5 bit unsigned immediate * 0 (MIPS16OP_*_IMM5)
-   "H" 5 bit unsigned immediate * 2 (MIPS16OP_*_IMM5)
-   "W" 5 bit unsigned immediate * 4 (MIPS16OP_*_IMM5)
-   "D" 5 bit unsigned immediate * 8 (MIPS16OP_*_IMM5)
-   "j" 5 bit signed immediate * 0 (MIPS16OP_*_IMM5)
-   "8" 8 bit unsigned immediate * 0 (MIPS16OP_*_IMM8)
-   "V" 8 bit unsigned immediate * 4 (MIPS16OP_*_IMM8)
-   "C" 8 bit unsigned immediate * 8 (MIPS16OP_*_IMM8)
-   "U" 8 bit unsigned immediate * 0 (MIPS16OP_*_IMM8) (full 16 bit unsigned)
-   "k" 8 bit signed immediate * 0 (MIPS16OP_*_IMM8)
-   "K" 8 bit signed immediate * 8 (MIPS16OP_*_IMM8)
-   "p" 8 bit conditional branch address (MIPS16OP_*_IMM8)
-   "q" 11 bit branch address (MIPS16OP_*_IMM11)
-   "A" 8 bit PC relative address * 4 (MIPS16OP_*_IMM8)
-   "B" 5 bit PC relative address * 8 (MIPS16OP_*_IMM5)
-   "E" 5 bit PC relative address * 4 (MIPS16OP_*_IMM5)
-   "m" 7 bit register list for save instruction (18 bit extended)
-   "M" 7 bit register list for restore instruction (18 bit extended)
-  */
-
-/* Save/restore encoding for the args field when all 4 registers are
-   either saved as arguments or saved/restored as statics.  */
-#define MIPS16_ALL_ARGS    0xe
-#define MIPS16_ALL_STATICS 0xb
-
-/* For the mips16, we use the same opcode table format and a few of
-   the same flags.  However, most of the flags are different.  */
-
-/* Modifies the register in MIPS16OP_*_RX.  */
-#define MIPS16_INSN_WRITE_X		    0x00000001
-/* Modifies the register in MIPS16OP_*_RY.  */
-#define MIPS16_INSN_WRITE_Y		    0x00000002
-/* Modifies the register in MIPS16OP_*_RZ.  */
-#define MIPS16_INSN_WRITE_Z		    0x00000004
-/* Modifies the T ($24) register.  */
-#define MIPS16_INSN_WRITE_T		    0x00000008
-/* Modifies the SP ($29) register.  */
-#define MIPS16_INSN_WRITE_SP		    0x00000010
-/* Modifies the RA ($31) register.  */
-#define MIPS16_INSN_WRITE_31		    0x00000020
-/* Modifies the general purpose register in MIPS16OP_*_REG32R.  */
-#define MIPS16_INSN_WRITE_GPR_Y		    0x00000040
-/* Reads the register in MIPS16OP_*_RX.  */
-#define MIPS16_INSN_READ_X		    0x00000080
-/* Reads the register in MIPS16OP_*_RY.  */
-#define MIPS16_INSN_READ_Y		    0x00000100
-/* Reads the register in MIPS16OP_*_MOVE32Z.  */
-#define MIPS16_INSN_READ_Z		    0x00000200
-/* Reads the T ($24) register.  */
-#define MIPS16_INSN_READ_T		    0x00000400
-/* Reads the SP ($29) register.  */
-#define MIPS16_INSN_READ_SP		    0x00000800
-/* Reads the RA ($31) register.  */
-#define MIPS16_INSN_READ_31		    0x00001000
-/* Reads the program counter.  */
-#define MIPS16_INSN_READ_PC		    0x00002000
-/* Reads the general purpose register in MIPS16OP_*_REGR32.  */
-#define MIPS16_INSN_READ_GPR_X		    0x00004000
-/* Is a branch insn. */
-#define MIPS16_INSN_BRANCH                  0x00010000
-
-/* The following flags have the same value for the mips16 opcode
-   table:
-   INSN_UNCOND_BRANCH_DELAY
-   INSN_COND_BRANCH_DELAY
-   INSN_COND_BRANCH_LIKELY (never used)
-   INSN_READ_HI
-   INSN_READ_LO
-   INSN_WRITE_HI
-   INSN_WRITE_LO
-   INSN_TRAP
-   INSN_ISA3
-   */
-
-extern const struct mips_opcode mips16_opcodes[];
-extern const int bfd_mips16_num_opcodes;
-
-#endif /* _MIPS_H_ */
diff --git a/include/opcode/mmix.h b/include/opcode/mmix.h
deleted file mode 100644
index 7f561c6..0000000
--- a/include/opcode/mmix.h
+++ /dev/null
@@ -1,186 +0,0 @@
-/* mmix.h -- Header file for MMIX opcode table
-   Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-   Written by Hans-Peter Nilsson (hp@bitrange.com)
-
-This file is part of GDB, GAS, and the GNU binutils.
-
-GDB, GAS, and the GNU binutils are free software; you can redistribute
-them and/or modify them 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.
-
-GDB, GAS, and the GNU binutils are distributed in the hope that they
-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 file; see the file COPYING.  If not, write to the Free
-Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* We could have just a char*[] table indexed by the register number, but
-   that would not allow for synonyms.  The table is terminated with an
-   entry with a NULL name.  */
-struct mmix_spec_reg
-{
-  const char *name;
-  unsigned int number;
-};
-
-/* General indication of the type of instruction.  */
-enum mmix_insn_type
- {
-   mmix_type_pseudo,
-   mmix_type_normal,
-   mmix_type_branch,
-   mmix_type_condbranch,
-   mmix_type_memaccess_octa,
-   mmix_type_memaccess_tetra,
-   mmix_type_memaccess_wyde,
-   mmix_type_memaccess_byte,
-   mmix_type_memaccess_block,
-   mmix_type_jsr
- };
-
-/* Type of operands an instruction takes.  Use when parsing assembly code
-   and disassembling.  */
-enum mmix_operands_type
- {
-   mmix_operands_none = 0,
-
-   /* All operands are registers: "$X,$Y,$Z".  */
-   mmix_operands_regs,
-
-   /* "$X,YZ", like SETH.  */
-   mmix_operands_reg_yz,
-
-   /* The regular "$X,$Y,$Z|Z".
-      The Z is optional; if only "$X,$Y" is given, then "$X,$Y,0" is
-      assumed.  */
-   mmix_operands_regs_z_opt,
-
-   /* The regular "$X,$Y,$Z|Z".  */
-   mmix_operands_regs_z,
-
-   /* "Address"; only JMP.  Zero operands allowed unless GNU syntax.  */
-   mmix_operands_jmp,
-
-   /* "$X|X,$Y,$Z|Z": PUSHGO; like "3", but X can be expressed as an
-      integer.  */
-   mmix_operands_pushgo,
-
-   /* Two registers or a register and a byte, like FLOT, possibly with
-      rounding: "$X,$Z|Z" or "$X,ROUND_MODE,$Z|Z".  */
-   mmix_operands_roundregs_z,
-
-   /* "X,YZ", POP.  Unless GNU syntax, zero or one operand is allowed.  */
-   mmix_operands_pop,
-
-   /* Two registers, possibly with rounding: "$X,$Z" or
-      "$X,ROUND_MODE,$Z".  */
-   mmix_operands_roundregs,
-
-   /* "XYZ", like SYNC.  */
-   mmix_operands_sync,
-
-   /* "X,$Y,$Z|Z", like SYNCD.  */
-   mmix_operands_x_regs_z,
-
-   /* "$X,Y,$Z|Z", like NEG and NEGU.  The Y field is optional, default 0.  */
-   mmix_operands_neg,
-
-   /* "$X,Address, like GETA or branches.  */
-   mmix_operands_regaddr,
-
-   /* "$X|X,Address, like PUSHJ.  */
-   mmix_operands_pushj,
-
-   /* "$X,spec_reg"; GET.  */
-   mmix_operands_get,
-
-   /* "spec_reg,$Z|Z"; PUT.  */
-   mmix_operands_put,
-
-   /* Two registers, "$X,$Y".  */
-   mmix_operands_set,
-
-   /* "$X,0"; SAVE.  */
-   mmix_operands_save,
-
-   /* "0,$Z"; UNSAVE. */
-   mmix_operands_unsave,
-
-   /* "X,Y,Z"; like SWYM or TRAP.  Zero (or 1 if GNU syntax) to three
-      operands, interpreted as 0; XYZ; X, YZ and X, Y, Z.  */
-   mmix_operands_xyz_opt,
-
-   /* Just "Z", like RESUME.  Unless GNU syntax, the operand can be omitted
-      and will then be assumed zero.  */
-   mmix_operands_resume,
-
-   /* These are specials to handle that pseudo-directives are specified
-      like ordinary insns when being mmixal-compatible.  They signify the
-      specific pseudo-directive rather than the operands type.  */
-
-   /* LOC.  */
-   mmix_operands_loc,
-
-   /* PREFIX.  */
-   mmix_operands_prefix,
-
-   /* BYTE.  */
-   mmix_operands_byte,
-
-   /* WYDE.  */
-   mmix_operands_wyde,
-
-   /* TETRA.  */
-   mmix_operands_tetra,
-
-   /* OCTA.  */
-   mmix_operands_octa,
-
-   /* LOCAL.  */
-   mmix_operands_local,
-
-   /* BSPEC.  */
-   mmix_operands_bspec,
-
-   /* ESPEC.  */
-   mmix_operands_espec,
- };
-
-struct mmix_opcode
- {
-   const char *name;
-   unsigned long match;
-   unsigned long lose;
-   enum mmix_operands_type operands;
-
-   /* This is used by the disassembly function.  */
-   enum mmix_insn_type type;
- };
-
-/* Declare the actual tables.  */
-extern const struct mmix_opcode mmix_opcodes[];
-
-/* This one is terminated with an entry with a NULL name.  */
-extern const struct mmix_spec_reg mmix_spec_regs[];
-
-/* Some insn values we use when padding and synthesizing address loads.  */
-#define IMM_OFFSET_BIT 1
-#define COND_INV_BIT 0x8
-#define PRED_INV_BIT 0x10
-
-#define PUSHGO_INSN_BYTE 0xbe
-#define GO_INSN_BYTE 0x9e
-#define SETL_INSN_BYTE 0xe3
-#define INCML_INSN_BYTE 0xe6
-#define INCMH_INSN_BYTE 0xe5
-#define INCH_INSN_BYTE 0xe4
-#define SWYM_INSN_BYTE 0xfd
-#define JMP_INSN_BYTE 0xf0
-
-/* We can have 256 - 32 (local registers) - 1 ($255 is not allocatable)
-   global registers.  */
-#define MAX_GREGS 223
diff --git a/include/opcode/mn10200.h b/include/opcode/mn10200.h
deleted file mode 100644
index 51e44c6..0000000
--- a/include/opcode/mn10200.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* mn10200.h -- Header file for Matsushita 10200 opcode table
-   Copyright 1996, 1997 Free Software Foundation, Inc.
-   Written by Jeff Law, Cygnus Support
-
-This file is part of GDB, GAS, and the GNU binutils.
-
-GDB, GAS, and the GNU binutils are free software; you can redistribute
-them and/or modify them 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.
-
-GDB, GAS, and the GNU binutils are distributed in the hope that they
-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 file; see the file COPYING.  If not, write to the Free
-Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef MN10200_H
-#define MN10200_H
-
-/* The opcode table is an array of struct mn10200_opcode.  */
-
-struct mn10200_opcode
-{
-  /* The opcode name.  */
-  const char *name;
-
-  /* The opcode itself.  Those bits which will be filled in with
-     operands are zeroes.  */
-  unsigned long opcode;
-
-  /* The opcode mask.  This is used by the disassembler.  This is a
-     mask containing ones indicating those bits which must match the
-     opcode field, and zeroes indicating those bits which need not
-     match (and are presumably filled in by operands).  */
-  unsigned long mask;
-
-  /* The format of this opcode.  */
-  unsigned char format;
-
-  /* An array of operand codes.  Each code is an index into the
-     operand table.  They appear in the order which the operands must
-     appear in assembly code, and are terminated by a zero.  */
-  unsigned char operands[8];
-};
-
-/* The table itself is sorted by major opcode number, and is otherwise
-   in the order in which the disassembler should consider
-   instructions.  */
-extern const struct mn10200_opcode mn10200_opcodes[];
-extern const int mn10200_num_opcodes;
-
-
-/* The operands table is an array of struct mn10200_operand.  */
-
-struct mn10200_operand
-{
-  /* The number of bits in the operand.  */
-  int bits;
-
-  /* How far the operand is left shifted in the instruction.  */
-  int shift;
-
-  /* One bit syntax flags.  */
-  int flags;
-};
-
-/* Elements in the table are retrieved by indexing with values from
-   the operands field of the mn10200_opcodes table.  */
-
-extern const struct mn10200_operand mn10200_operands[];
-
-/* Values defined for the flags field of a struct mn10200_operand.  */
-#define MN10200_OPERAND_DREG 0x1
-
-#define MN10200_OPERAND_AREG 0x2
-
-#define MN10200_OPERAND_PSW 0x4
-
-#define MN10200_OPERAND_MDR 0x8
-
-#define MN10200_OPERAND_SIGNED 0x10
-
-#define MN10200_OPERAND_PROMOTE 0x20
-
-#define MN10200_OPERAND_PAREN 0x40
-
-#define MN10200_OPERAND_REPEATED 0x80
-
-#define MN10200_OPERAND_EXTENDED 0x100
-
-#define MN10200_OPERAND_NOCHECK 0x200
-
-#define MN10200_OPERAND_PCREL 0x400
-
-#define MN10200_OPERAND_MEMADDR 0x800
-
-#define MN10200_OPERAND_RELAX 0x1000
-
-#define FMT_1 1
-#define FMT_2 2
-#define FMT_3 3
-#define FMT_4 4
-#define FMT_5 5
-#define FMT_6 6
-#define FMT_7 7
-#endif /* MN10200_H */
diff --git a/include/opcode/mn10300.h b/include/opcode/mn10300.h
deleted file mode 100644
index a47ef48..0000000
--- a/include/opcode/mn10300.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/* mn10300.h -- Header file for Matsushita 10300 opcode table
-   Copyright 1996, 1997, 1998, 1999, 2003 Free Software Foundation, Inc.
-   Written by Jeff Law, Cygnus Support
-
-This file is part of GDB, GAS, and the GNU binutils.
-
-GDB, GAS, and the GNU binutils are free software; you can redistribute
-them and/or modify them 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.
-
-GDB, GAS, and the GNU binutils are distributed in the hope that they
-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 file; see the file COPYING.  If not, write to the Free
-Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef MN10300_H
-#define MN10300_H
-
-/* The opcode table is an array of struct mn10300_opcode.  */
-
-#define MN10300_MAX_OPERANDS 8
-struct mn10300_opcode
-{
-  /* The opcode name.  */
-  const char *name;
-
-  /* The opcode itself.  Those bits which will be filled in with
-     operands are zeroes.  */
-  unsigned long opcode;
-
-  /* The opcode mask.  This is used by the disassembler.  This is a
-     mask containing ones indicating those bits which must match the
-     opcode field, and zeroes indicating those bits which need not
-     match (and are presumably filled in by operands).  */
-  unsigned long mask;
-
-  /* A bitmask.  For each operand, nonzero if it must not have the same
-     register specification as all other operands with a nonzero bit in
-     this flag.  ie 0x81 would indicate that operands 7 and 0 must not
-     match.  Note that we count operands from left to right as they appear
-     in the operands specification below.  */
-  unsigned int no_match_operands;
-
-  /* The format of this opcode.  */
-  unsigned char format;
-
-  /* Bitmask indicating what cpu variants this opcode is available on.
-     We assume mn10300 base opcodes are available everywhere, so we only
-     have to note opcodes which are available on other variants.  */
-  unsigned int machine;
-
-  /* An array of operand codes.  Each code is an index into the
-     operand table.  They appear in the order which the operands must
-     appear in assembly code, and are terminated by a zero.  */
-  unsigned char operands[MN10300_MAX_OPERANDS];
-};
-
-/* The table itself is sorted by major opcode number, and is otherwise
-   in the order in which the disassembler should consider
-   instructions.  */
-extern const struct mn10300_opcode mn10300_opcodes[];
-extern const int mn10300_num_opcodes;
-
-
-/* The operands table is an array of struct mn10300_operand.  */
-
-struct mn10300_operand
-{
-  /* The number of bits in the operand.  */
-  int bits;
-
-  /* How far the operand is left shifted in the instruction.  */
-  int shift;
-
-  /* One bit syntax flags.  */
-  int flags;
-};
-
-/* Elements in the table are retrieved by indexing with values from
-   the operands field of the mn10300_opcodes table.  */
-
-extern const struct mn10300_operand mn10300_operands[];
-
-/* Values defined for the flags field of a struct mn10300_operand.  */
-#define MN10300_OPERAND_DREG 0x1
-
-#define MN10300_OPERAND_AREG 0x2
-
-#define MN10300_OPERAND_SP 0x4
-
-#define MN10300_OPERAND_PSW 0x8
-
-#define MN10300_OPERAND_MDR 0x10
-
-#define MN10300_OPERAND_SIGNED 0x20
-
-#define MN10300_OPERAND_PROMOTE 0x40
-
-#define MN10300_OPERAND_PAREN 0x80
-
-#define MN10300_OPERAND_REPEATED 0x100
-
-#define MN10300_OPERAND_EXTENDED 0x200
-
-#define MN10300_OPERAND_SPLIT 0x400
-
-#define MN10300_OPERAND_REG_LIST 0x800
-
-#define MN10300_OPERAND_PCREL 0x1000
-
-#define MN10300_OPERAND_MEMADDR 0x2000
-
-#define MN10300_OPERAND_RELAX 0x4000
-
-#define MN10300_OPERAND_USP 0x8000
-
-#define MN10300_OPERAND_SSP 0x10000
-
-#define MN10300_OPERAND_MSP 0x20000
-
-#define MN10300_OPERAND_PC 0x40000
-
-#define MN10300_OPERAND_EPSW 0x80000
-
-#define MN10300_OPERAND_RREG 0x100000
-
-#define MN10300_OPERAND_XRREG 0x200000
-
-#define MN10300_OPERAND_PLUS 0x400000
-
-#define MN10300_OPERAND_24BIT 0x800000
-
-#define MN10300_OPERAND_FSREG 0x1000000
-
-#define MN10300_OPERAND_FDREG 0x2000000
-
-#define MN10300_OPERAND_FPCR 0x4000000
-
-/* Opcode Formats.  */
-#define FMT_S0 1
-#define FMT_S1 2
-#define FMT_S2 3
-#define FMT_S4 4
-#define FMT_S6 5
-#define FMT_D0 6
-#define FMT_D1 7
-#define FMT_D2 8
-#define FMT_D4 9
-#define FMT_D5 10
-#define FMT_D6 11
-#define FMT_D7 12
-#define FMT_D8 13
-#define FMT_D9 14
-#define FMT_D10 15
-#define FMT_D3 16
-
-/* Variants of the mn10300 which have additional opcodes.  */
-#define MN103 300
-#define AM30  300
-
-#define AM33 330
-#define AM33_2 332
-
-#endif /* MN10300_H */
diff --git a/include/opcode/msp430.h b/include/opcode/msp430.h
deleted file mode 100644
index eec2f1e..0000000
--- a/include/opcode/msp430.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Opcode table for the TI MSP430 microcontrollers
-
-   Copyright 2002, 2004 Free Software Foundation, Inc.
-   Contributed by Dmitry Diky <diwil@mail.ru>
-   
-   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, 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef __MSP430_H_
-#define __MSP430_H_
-
-struct msp430_operand_s
-{
-  int ol;	/* Operand length words.  */
-  int am;	/* Addr mode.  */
-  int reg;	/* Register.  */
-  int mode;	/* Pperand mode.  */
-#define OP_REG		0
-#define OP_EXP		1
-#ifndef DASM_SECTION
-  expressionS	exp;
-#endif
-};
-
-#define BYTE_OPERATION  (1 << 6)  /* Byte operation flag for all instructions.  */
-
-struct  msp430_opcode_s
-{
-  char *name;
-  int fmt;
-  int insn_opnumb;
-  int bin_opcode;
-  int bin_mask;
-};
-
-#define MSP_INSN(name, size, numb, bin, mask) { #name, size, numb, bin, mask }
-
-static struct msp430_opcode_s msp430_opcodes[] = 
-{
-  MSP_INSN (and,   1, 2, 0xf000, 0xf000),
-  MSP_INSN (inv,   0, 1, 0xe330, 0xfff0),
-  MSP_INSN (xor,   1, 2, 0xe000, 0xf000),
-  MSP_INSN (setz,  0, 0, 0xd322, 0xffff),
-  MSP_INSN (setc,  0, 0, 0xd312, 0xffff),
-  MSP_INSN (eint,  0, 0, 0xd232, 0xffff),
-  MSP_INSN (setn,  0, 0, 0xd222, 0xffff),
-  MSP_INSN (bis,   1, 2, 0xd000, 0xf000),
-  MSP_INSN (clrz,  0, 0, 0xc322, 0xffff),
-  MSP_INSN (clrc,  0, 0, 0xc312, 0xffff),
-  MSP_INSN (dint,  0, 0, 0xc232, 0xffff),
-  MSP_INSN (clrn,  0, 0, 0xc222, 0xffff),
-  MSP_INSN (bic,   1, 2, 0xc000, 0xf000),
-  MSP_INSN (bit,   1, 2, 0xb000, 0xf000),
-  MSP_INSN (dadc,  0, 1, 0xa300, 0xff30),
-  MSP_INSN (dadd,  1, 2, 0xa000, 0xf000),
-  MSP_INSN (tst,   0, 1, 0x9300, 0xff30),
-  MSP_INSN (cmp,   1, 2, 0x9000, 0xf000),
-  MSP_INSN (decd,  0, 1, 0x8320, 0xff30),
-  MSP_INSN (dec,   0, 1, 0x8310, 0xff30),
-  MSP_INSN (sub,   1, 2, 0x8000, 0xf000),
-  MSP_INSN (sbc,   0, 1, 0x7300, 0xff30),
-  MSP_INSN (subc,  1, 2, 0x7000, 0xf000),
-  MSP_INSN (adc,   0, 1, 0x6300, 0xff30),
-  MSP_INSN (rlc,   0, 2, 0x6000, 0xf000),
-  MSP_INSN (addc,  1, 2, 0x6000, 0xf000),
-  MSP_INSN (incd,  0, 1, 0x5320, 0xff30),
-  MSP_INSN (inc,   0, 1, 0x5310, 0xff30),
-  MSP_INSN (rla,   0, 2, 0x5000, 0xf000),
-  MSP_INSN (add,   1, 2, 0x5000, 0xf000),
-  MSP_INSN (nop,   0, 0, 0x4303, 0xffff),
-  MSP_INSN (clr,   0, 1, 0x4300, 0xff30),
-  MSP_INSN (ret,   0, 0, 0x4130, 0xff30),
-  MSP_INSN (pop,   0, 1, 0x4130, 0xff30),
-  MSP_INSN (br,    0, 3, 0x4000, 0xf000),
-  MSP_INSN (mov,   1, 2, 0x4000, 0xf000),
-  MSP_INSN (jmp,   3, 1, 0x3c00, 0xfc00),
-  MSP_INSN (jl,    3, 1, 0x3800, 0xfc00),
-  MSP_INSN (jge,   3, 1, 0x3400, 0xfc00),
-  MSP_INSN (jn,    3, 1, 0x3000, 0xfc00),
-  MSP_INSN (jc,    3, 1, 0x2c00, 0xfc00),
-  MSP_INSN (jhs,   3, 1, 0x2c00, 0xfc00),
-  MSP_INSN (jnc,   3, 1, 0x2800, 0xfc00),
-  MSP_INSN (jlo,   3, 1, 0x2800, 0xfc00),
-  MSP_INSN (jz,    3, 1, 0x2400, 0xfc00),
-  MSP_INSN (jeq,   3, 1, 0x2400, 0xfc00),
-  MSP_INSN (jnz,   3, 1, 0x2000, 0xfc00),
-  MSP_INSN (jne,   3, 1, 0x2000, 0xfc00),
-  MSP_INSN (reti,  2, 0, 0x1300, 0xffc0),
-  MSP_INSN (call,  2, 1, 0x1280, 0xffc0),
-  MSP_INSN (push,  2, 1, 0x1200, 0xff80),
-  MSP_INSN (sxt,   2, 1, 0x1180, 0xffc0),
-  MSP_INSN (rra,   2, 1, 0x1100, 0xff80),
-  MSP_INSN (swpb,  2, 1, 0x1080, 0xffc0),
-  MSP_INSN (rrc,   2, 1, 0x1000, 0xff80),
-  /* Simple polymorphs.  */
-  MSP_INSN (beq,   4, 0, 0, 0xffff),
-  MSP_INSN (bne,   4, 1, 0, 0xffff),
-  MSP_INSN (blt,   4, 2, 0, 0xffff),
-  MSP_INSN (bltu,  4, 3, 0, 0xffff),
-  MSP_INSN (bge,   4, 4, 0, 0xffff),
-  MSP_INSN (bgeu,  4, 5, 0, 0xffff),
-  MSP_INSN (bltn,  4, 6, 0, 0xffff),
-  MSP_INSN (jump,  4, 7, 0, 0xffff),
-  /* Long polymorphs.  */
-  MSP_INSN (bgt,   5, 0, 0, 0xffff),
-  MSP_INSN (bgtu,  5, 1, 0, 0xffff),
-  MSP_INSN (bleu,  5, 2, 0, 0xffff),
-  MSP_INSN (ble,   5, 3, 0, 0xffff),
-
-  /* End of instruction set.  */
-  { NULL, 0, 0, 0, 0 }
-};
-
-#endif
diff --git a/include/opcode/np1.h b/include/opcode/np1.h
deleted file mode 100644
index ebe37f5..0000000
--- a/include/opcode/np1.h
+++ /dev/null
@@ -1,422 +0,0 @@
-/* Print GOULD NPL instructions for GDB, the GNU debugger.
-   Copyright 1986, 1987, 1989, 1991 Free Software Foundation, Inc.
-
-This file is part of GDB.
-
-GDB 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.
-
-GDB 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 GDB; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-struct gld_opcode
-{
-  char *name;
-  unsigned long opcode;
-  unsigned long mask;
-  char *args;
-  int length;
-};
-
-/* We store four bytes of opcode for all opcodes because that
-   is the most any of them need.  The actual length of an instruction
-   is always at least 2 bytes, and at most four.  The length of the
-   instruction is based on the opcode.
-
-   The mask component is a mask saying which bits must match
-   particular opcode in order for an instruction to be an instance
-   of that opcode.
-
-   The args component is a string containing characters
-   that are used to format the arguments to the instruction. */
-
-/* Kinds of operands:
-   r  Register in first field
-   R  Register in second field
-   b  Base register in first field
-   B  Base register in second field
-   v  Vector register in first field
-   V  Vector register in first field
-   A  Optional address register (base register)
-   X  Optional index register
-   I  Immediate data (16bits signed)
-   O  Offset field (16bits signed)
-   h  Offset field (15bits signed)
-   d  Offset field (14bits signed)
-   S  Shift count field
-
-   any other characters are printed as is...
-*/
-
-/* The assembler requires that this array be sorted as follows:
-   all instances of the same mnemonic must be consecutive.
-   All instances of the same mnemonic with the same number of operands
-   must be consecutive.
- */
-struct gld_opcode gld_opcodes[] =
-{
-{ "lb",		0xb4080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "lnb",	0xb8080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "lbs",	0xec080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "lh",		0xb4000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "lnh",	0xb8000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "lw",		0xb4000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "lnw",	0xb8000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "ld",		0xb4000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "lnd",	0xb8000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "li",		0xf8000000,	0xfc7f0000,	"r,I",		4 },
-{ "lpa",	0x50080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "la",		0x50000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "labr",	0x58080000,	0xfc080000,	"b,xOA,X",	4 },
-{ "lbp",	0x90080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "lhp",	0x90000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "lwp",	0x90000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "ldp",	0x90000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "suabr",	0x58000000,	0xfc080000,	"b,xOA,X",	4 },
-{ "lf",		0xbc000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "lfbr",	0xbc080000,	0xfc080000,	"b,xOA,X",	4 },
-{ "lwbr",	0x5c000000,	0xfc080000,	"b,xOA,X",	4 },
-{ "stb",	0xd4080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "sth",	0xd4000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "stw",	0xd4000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "std",	0xd4000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "stf",	0xdc000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "stfbr",	0xdc080000,	0xfc080000,	"b,xOA,X",	4 },
-{ "stwbr",	0x54000000,	0xfc080000,	"b,xOA,X",	4 },
-{ "zmb",	0xd8080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "zmh",	0xd8000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "zmw",	0xd8000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "zmd",	0xd8000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "stbp",	0x94080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "sthp",	0x94000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "stwp",	0x94000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "stdp",	0x94000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "lil",	0xf80b0000,	0xfc7f0000,	"r,D",		4 },
-{ "lwsl1",	0xec000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "lwsl2",	0xfc000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "lwsl3",	0xfc080000,	0xfc080000,	"r,xOA,X",	4 },
-
-{ "lvb",	0xb0080000,	0xfc080000,	"v,xOA,X",	4 },
-{ "lvh",	0xb0000001,	0xfc080001,	"v,xOA,X",	4 },
-{ "lvw",	0xb0000000,	0xfc080000,	"v,xOA,X",	4 },
-{ "lvd",	0xb0000002,	0xfc080002,	"v,xOA,X",	4 },
-{ "liv",	0x3c040000,	0xfc0f0000,	"v,R",		2 },
-{ "livf",	0x3c080000,	0xfc0f0000,	"v,R",		2 },
-{ "stvb",	0xd0080000,	0xfc080000,	"v,xOA,X",	4 },
-{ "stvh",	0xd0000001,	0xfc080001,	"v,xOA,X",	4 },
-{ "stvw",	0xd0000000,	0xfc080000,	"v,xOA,X",	4 },
-{ "stvd",	0xd0000002,	0xfc080002,	"v,xOA,X",	4 },
-
-{ "trr",	0x2c000000,	0xfc0f0000,	"r,R",		2 },
-{ "trn",	0x2c040000,	0xfc0f0000,	"r,R",		2 },
-{ "trnd",	0x2c0c0000,	0xfc0f0000,	"r,R",		2 },
-{ "trabs",	0x2c010000,	0xfc0f0000,	"r,R",		2 },
-{ "trabsd",	0x2c090000,	0xfc0f0000,	"r,R",		2 },
-{ "trc",	0x2c030000,	0xfc0f0000,	"r,R",		2 },
-{ "xcr",	0x28040000,	0xfc0f0000,	"r,R",		2 },
-{ "cxcr",	0x2c060000,	0xfc0f0000,	"r,R",		2 },
-{ "cxcrd",	0x2c0e0000,	0xfc0f0000,	"r,R",		2 },
-{ "tbrr",	0x2c020000,	0xfc0f0000,	"r,B",		2 },
-{ "trbr",	0x28030000,	0xfc0f0000,	"b,R",		2 },
-{ "xcbr",	0x28020000,	0xfc0f0000,	"b,B",		2 },
-{ "tbrbr",	0x28010000,	0xfc0f0000,	"b,B",		2 },
-
-{ "trvv",	0x28050000,	0xfc0f0000,	"v,V",		2 },
-{ "trvvn",	0x2c050000,	0xfc0f0000,	"v,V",		2 },
-{ "trvvnd",	0x2c0d0000,	0xfc0f0000,	"v,V",		2 },
-{ "trvab",	0x2c070000,	0xfc0f0000,	"v,V",		2 },
-{ "trvabd",	0x2c0f0000,	0xfc0f0000,	"v,V",		2 },
-{ "cmpv",	0x14060000,	0xfc0f0000,	"v,V",		2 },
-{ "expv",	0x14070000,	0xfc0f0000,	"v,V",		2 },
-{ "mrvvlt",	0x10030000,	0xfc0f0000,	"v,V",		2 },
-{ "mrvvle",	0x10040000,	0xfc0f0000,	"v,V",		2 },
-{ "mrvvgt",	0x14030000,	0xfc0f0000,	"v,V",		2 },
-{ "mrvvge",	0x14040000,	0xfc0f0000,	"v,V",		2 },
-{ "mrvveq",	0x10050000,	0xfc0f0000,	"v,V",		2 },
-{ "mrvvne",	0x10050000,	0xfc0f0000,	"v,V",		2 },
-{ "mrvrlt",	0x100d0000,	0xfc0f0000,	"v,R",		2 },
-{ "mrvrle",	0x100e0000,	0xfc0f0000,	"v,R",		2 },
-{ "mrvrgt",	0x140d0000,	0xfc0f0000,	"v,R",		2 },
-{ "mrvrge",	0x140e0000,	0xfc0f0000,	"v,R",		2 },
-{ "mrvreq",	0x100f0000,	0xfc0f0000,	"v,R",		2 },
-{ "mrvrne",	0x140f0000,	0xfc0f0000,	"v,R",		2 },
-{ "trvr",	0x140b0000,	0xfc0f0000,	"r,V",		2 },
-{ "trrv",	0x140c0000,	0xfc0f0000,	"v,R",		2 },
-
-{ "bu",		0x40000000,	0xff880000,	"xOA,X",	4 },
-{ "bns",	0x70080000,	0xff880000,	"xOA,X",	4 },
-{ "bnco",	0x70880000,	0xff880000,	"xOA,X",	4 },
-{ "bge",	0x71080000,	0xff880000,	"xOA,X",	4 },
-{ "bne",	0x71880000,	0xff880000,	"xOA,X",	4 },
-{ "bunge",	0x72080000,	0xff880000,	"xOA,X",	4 },
-{ "bunle",	0x72880000,	0xff880000,	"xOA,X",	4 },
-{ "bgt",	0x73080000,	0xff880000,	"xOA,X",	4 },
-{ "bnany",	0x73880000,	0xff880000,	"xOA,X",	4 },
-{ "bs"	,	0x70000000,	0xff880000,	"xOA,X",	4 },
-{ "bco",	0x70800000,	0xff880000,	"xOA,X",	4 },
-{ "blt",	0x71000000,	0xff880000,	"xOA,X",	4 },
-{ "beq",	0x71800000,	0xff880000,	"xOA,X",	4 },
-{ "buge",	0x72000000,	0xff880000,	"xOA,X",	4 },
-{ "bult",	0x72800000,	0xff880000,	"xOA,X",	4 },
-{ "ble",	0x73000000,	0xff880000,	"xOA,X",	4 },
-{ "bany",	0x73800000,	0xff880000,	"xOA,X",	4 },
-{ "brlnk",	0x44000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "bib",	0x48000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "bih",	0x48080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "biw",	0x4c000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "bid",	0x4c080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "bivb",	0x60000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "bivh",	0x60080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "bivw",	0x64000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "bivd",	0x64080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "bvsb",	0x68000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "bvsh",	0x68080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "bvsw",	0x6c000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "bvsd",	0x6c080000,	0xfc080000,	"r,xOA,X",	4 },
-
-{ "camb",	0x80080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "camh",	0x80000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "camw",	0x80000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "camd",	0x80000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "car",	0x10000000,	0xfc0f0000,	"r,R",		2 },
-{ "card",	0x14000000,	0xfc0f0000,	"r,R",		2 },
-{ "ci",		0xf8050000,	0xfc7f0000,	"r,I",		4 },
-{ "chkbnd",	0x5c080000,	0xfc080000,	"r,xOA,X",	4 },
-
-{ "cavv",	0x10010000,	0xfc0f0000,	"v,V",		2 },
-{ "cavr",	0x10020000,	0xfc0f0000,	"v,R",		2 },
-{ "cavvd",	0x10090000,	0xfc0f0000,	"v,V",		2 },
-{ "cavrd",	0x100b0000,	0xfc0f0000,	"v,R",		2 },
-
-{ "anmb",	0x84080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "anmh",	0x84000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "anmw",	0x84000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "anmd",	0x84000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "anr",	0x04000000,	0xfc0f0000,	"r,R",		2 },
-{ "ani",	0xf8080000,	0xfc7f0000,	"r,I",		4 },
-{ "ormb",	0xb8080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "ormh",	0xb8000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "ormw",	0xb8000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "ormd",	0xb8000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "orr",	0x08000000,	0xfc0f0000,	"r,R",		2 },
-{ "oi",		0xf8090000,	0xfc7f0000,	"r,I",		4 },
-{ "eomb",	0x8c080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "eomh",	0x8c000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "eomw",	0x8c000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "eomd",	0x8c000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "eor",	0x0c000000,	0xfc0f0000,	"r,R",		2 },
-{ "eoi",	0xf80a0000,	0xfc7f0000,	"r,I",		4 },
-
-{ "anvv",	0x04010000,	0xfc0f0000,	"v,V",		2 },
-{ "anvr",	0x04020000,	0xfc0f0000,	"v,R",		2 },
-{ "orvv",	0x08010000,	0xfc0f0000,	"v,V",		2 },
-{ "orvr",	0x08020000,	0xfc0f0000,	"v,R",		2 },
-{ "eovv",	0x0c010000,	0xfc0f0000,	"v,V",		2 },
-{ "eovr",	0x0c020000,	0xfc0f0000,	"v,R",		2 },
-
-{ "sacz",	0x100c0000,	0xfc0f0000,	"r,R",		2 },
-{ "sla",	0x1c400000,	0xfc600000,	"r,S",		2 },
-{ "sll",	0x1c600000,	0xfc600000,	"r,S",		2 },
-{ "slc",	0x24400000,	0xfc600000,	"r,S",		2 },
-{ "slad",	0x20400000,	0xfc600000,	"r,S",		2 },
-{ "slld",	0x20600000,	0xfc600000,	"r,S",		2 },
-{ "sra",	0x1c000000,	0xfc600000,	"r,S",		2 },
-{ "srl",	0x1c200000,	0xfc600000,	"r,S",		2 },
-{ "src",	0x24000000,	0xfc600000,	"r,S",		2 },
-{ "srad",	0x20000000,	0xfc600000,	"r,S",		2 },
-{ "srld",	0x20200000,	0xfc600000,	"r,S",		2 },
-{ "sda",	0x3c030000,	0xfc0f0000,	"r,R",		2 },
-{ "sdl",	0x3c020000,	0xfc0f0000,	"r,R",		2 },
-{ "sdc",	0x3c010000,	0xfc0f0000,	"r,R",		2 },
-{ "sdad",	0x3c0b0000,	0xfc0f0000,	"r,R",		2 },
-{ "sdld",	0x3c0a0000,	0xfc0f0000,	"r,R",		2 },
-
-{ "svda",	0x3c070000,	0xfc0f0000,	"v,R",		2 },
-{ "svdl",	0x3c060000,	0xfc0f0000,	"v,R",		2 },
-{ "svdc",	0x3c050000,	0xfc0f0000,	"v,R",		2 },
-{ "svdad",	0x3c0e0000,	0xfc0f0000,	"v,R",		2 },
-{ "svdld",	0x3c0d0000,	0xfc0f0000,	"v,R",		2 },
-
-{ "sbm",	0xac080000,	0xfc080000,	"f,xOA,X",	4 },
-{ "zbm",	0xac000000,	0xfc080000,	"f,xOA,X",	4 },
-{ "tbm",	0xa8080000,	0xfc080000,	"f,xOA,X",	4 },
-{ "incmb",	0xa0000000,	0xfc080000,	"xOA,X",	4 },
-{ "incmh",	0xa0080000,	0xfc080000,	"xOA,X",	4 },
-{ "incmw",	0xa4000000,	0xfc080000,	"xOA,X",	4 },
-{ "incmd",	0xa4080000,	0xfc080000,	"xOA,X",	4 },
-{ "sbmd",	0x7c080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "zbmd",	0x7c000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "tbmd",	0x78080000,	0xfc080000,	"r,xOA,X",	4 },
-
-{ "ssm",	0x9c080000,	0xfc080000,	"f,xOA,X",	4 },
-{ "zsm",	0x9c000000,	0xfc080000,	"f,xOA,X",	4 },
-{ "tsm",	0x98080000,	0xfc080000,	"f,xOA,X",	4 },
-
-{ "admb",	0xc8080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "admh",	0xc8000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "admw",	0xc8000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "admd",	0xc8000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "adr",	0x38000000,	0xfc0f0000,	"r,R",		2 },
-{ "armb",	0xe8080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "armh",	0xe8000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "armw",	0xe8000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "armd",	0xe8000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "adi",	0xf8010000,	0xfc0f0000,	"r,I",		4 },
-{ "sumb",	0xcc080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "sumh",	0xcc000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "sumw",	0xcc000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "sumd",	0xcc000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "sur",	0x3c000000,	0xfc0f0000,	"r,R",		2 },
-{ "sui",	0xf8020000,	0xfc0f0000,	"r,I",		4 },
-{ "mpmb",	0xc0080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "mpmh",	0xc0000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "mpmw",	0xc0000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "mpr",	0x38020000,	0xfc0f0000,	"r,R",		2 },
-{ "mprd",	0x3c0f0000,	0xfc0f0000,	"r,R",		2 },
-{ "mpi",	0xf8030000,	0xfc0f0000,	"r,I",		4 },
-{ "dvmb",	0xc4080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "dvmh",	0xc4000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "dvmw",	0xc4000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "dvr",	0x380a0000,	0xfc0f0000,	"r,R",		2 },
-{ "dvi",	0xf8040000,	0xfc0f0000,	"r,I",		4 },
-{ "exs",	0x38080000,	0xfc0f0000,	"r,R",		2 },
-
-{ "advv",	0x30000000,	0xfc0f0000,	"v,V",		2 },
-{ "advvd",	0x30080000,	0xfc0f0000,	"v,V",		2 },
-{ "adrv",	0x34000000,	0xfc0f0000,	"v,R",		2 },
-{ "adrvd",	0x34080000,	0xfc0f0000,	"v,R",		2 },
-{ "suvv",	0x30010000,	0xfc0f0000,	"v,V",		2 },
-{ "suvvd",	0x30090000,	0xfc0f0000,	"v,V",		2 },
-{ "surv",	0x34010000,	0xfc0f0000,	"v,R",		2 },
-{ "survd",	0x34090000,	0xfc0f0000,	"v,R",		2 },
-{ "mpvv",	0x30020000,	0xfc0f0000,	"v,V",		2 },
-{ "mprv",	0x34020000,	0xfc0f0000,	"v,R",		2 },
-
-{ "adfw",	0xe0080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "adfd",	0xe0080002,	0xfc080002,	"r,xOA,X",	4 },
-{ "adrfw",	0x38010000,	0xfc0f0000,	"r,R",		2 },
-{ "adrfd",	0x38090000,	0xfc0f0000,	"r,R",		2 },
-{ "surfw",	0xe0000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "surfd",	0xe0000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "surfw",	0x38030000,	0xfc0f0000,	"r,R",		2 },
-{ "surfd",	0x380b0000,	0xfc0f0000,	"r,R",		2 },
-{ "mpfw",	0xe4080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "mpfd",	0xe4080002,	0xfc080002,	"r,xOA,X",	4 },
-{ "mprfw",	0x38060000,	0xfc0f0000,	"r,R",		2 },
-{ "mprfd",	0x380e0000,	0xfc0f0000,	"r,R",		2 },
-{ "rfw",	0xe4000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "rfd",	0xe4000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "rrfw",	0x0c0e0000,	0xfc0f0000,	"r",		2 },
-{ "rrfd",	0x0c0f0000,	0xfc0f0000,	"r",		2 },
-
-{ "advvfw",	0x30040000,	0xfc0f0000,	"v,V",		2 },
-{ "advvfd",	0x300c0000,	0xfc0f0000,	"v,V",		2 },
-{ "adrvfw",	0x34040000,	0xfc0f0000,	"v,R",		2 },
-{ "adrvfd",	0x340c0000,	0xfc0f0000,	"v,R",		2 },
-{ "suvvfw",	0x30050000,	0xfc0f0000,	"v,V",		2 },
-{ "suvvfd",	0x300d0000,	0xfc0f0000,	"v,V",		2 },
-{ "survfw",	0x34050000,	0xfc0f0000,	"v,R",		2 },
-{ "survfd",	0x340d0000,	0xfc0f0000,	"v,R",		2 },
-{ "mpvvfw",	0x30060000,	0xfc0f0000,	"v,V",		2 },
-{ "mpvvfd",	0x300e0000,	0xfc0f0000,	"v,V",		2 },
-{ "mprvfw",	0x34060000,	0xfc0f0000,	"v,R",		2 },
-{ "mprvfd",	0x340e0000,	0xfc0f0000,	"v,R",		2 },
-{ "rvfw",	0x30070000,	0xfc0f0000,	"v",		2 },
-{ "rvfd",	0x300f0000,	0xfc0f0000,	"v",		2 },
-
-{ "fltw",	0x38070000,	0xfc0f0000,	"r,R",		2 },
-{ "fltd",	0x380f0000,	0xfc0f0000,	"r,R",		2 },
-{ "fixw",	0x38050000,	0xfc0f0000,	"r,R",		2 },
-{ "fixd",	0x380d0000,	0xfc0f0000,	"r,R",		2 },
-{ "cfpds",	0x3c090000,	0xfc0f0000,	"r,R",		2 },
-
-{ "fltvw",	0x080d0000,	0xfc0f0000,	"v,V",		2 },
-{ "fltvd",	0x080f0000,	0xfc0f0000,	"v,V",		2 },
-{ "fixvw",	0x080c0000,	0xfc0f0000,	"v,V",		2 },
-{ "fixvd",	0x080e0000,	0xfc0f0000,	"v,V",		2 },
-{ "cfpvds",	0x0c0d0000,	0xfc0f0000,	"v,V",		2 },
-
-{ "orvrn",	0x000a0000,	0xfc0f0000,	"r,V",		2 },
-{ "andvrn",	0x00080000,	0xfc0f0000,	"r,V",		2 },
-{ "frsteq",	0x04090000,	0xfc0f0000,	"r,V",		2 },
-{ "sigma",	0x0c080000,	0xfc0f0000,	"r,V",		2 },
-{ "sigmad",	0x0c0a0000,	0xfc0f0000,	"r,V",		2 },
-{ "sigmf",	0x08080000,	0xfc0f0000,	"r,V",		2 },
-{ "sigmfd",	0x080a0000,	0xfc0f0000,	"r,V",		2 },
-{ "prodf",	0x04080000,	0xfc0f0000,	"r,V",		2 },
-{ "prodfd",	0x040a0000,	0xfc0f0000,	"r,V",		2 },
-{ "maxv",	0x10080000,	0xfc0f0000,	"r,V",		2 },
-{ "maxvd",	0x100a0000,	0xfc0f0000,	"r,V",		2 },
-{ "minv",	0x14080000,	0xfc0f0000,	"r,V",		2 },
-{ "minvd",	0x140a0000,	0xfc0f0000,	"r,V",		2 },
-
-{ "lpsd",	0xf0000000,	0xfc080000,	"xOA,X",	4 },
-{ "ldc",	0xf0080000,	0xfc080000,	"xOA,X",	4 },
-{ "spm",	0x040c0000,	0xfc0f0000,	"r",		2 },
-{ "rpm",	0x040d0000,	0xfc0f0000,	"r",		2 },
-{ "tritr",	0x00070000,	0xfc0f0000,	"r",		2 },
-{ "trrit",	0x00060000,	0xfc0f0000,	"r",		2 },
-{ "rpswt",	0x04080000,	0xfc0f0000,	"r",		2 },
-{ "exr",	0xf8070000,	0xfc0f0000,	"",		4 },
-{ "halt",	0x00000000,	0xfc0f0000,	"",		2 },
-{ "wait",	0x00010000,	0xfc0f0000,	"",		2 },
-{ "nop",	0x00020000,	0xfc0f0000,	"",		2 },
-{ "eiae",	0x00030000,	0xfc0f0000,	"",		2 },
-{ "efae",	0x000d0000,	0xfc0f0000,	"",		2 },
-{ "diae",	0x000e0000,	0xfc0f0000,	"",		2 },
-{ "dfae",	0x000f0000,	0xfc0f0000,	"",		2 },
-{ "spvc",	0xf8060000,	0xfc0f0000,	"r,T,N",	4 },
-{ "rdsts",	0x00090000,	0xfc0f0000,	"r",		2 },
-{ "setcpu",	0x000c0000,	0xfc0f0000,	"r",		2 },
-{ "cmc",	0x000b0000,	0xfc0f0000,	"r",		2 },
-{ "trrcu",	0x00040000,	0xfc0f0000,	"r",		2 },
-{ "attnio",	0x00050000,	0xfc0f0000,	"",		2 },
-{ "fudit",	0x28080000,	0xfc0f0000,	"",		2 },
-{ "break",	0x28090000,	0xfc0f0000,	"",		2 },
-{ "frzss",	0x280a0000,	0xfc0f0000,	"",		2 },
-{ "ripi",	0x04040000,	0xfc0f0000,	"r,R",		2 },
-{ "xcp",	0x04050000,	0xfc0f0000,	"r",		2 },
-{ "block",	0x04060000,	0xfc0f0000,	"",		2 },
-{ "unblock",	0x04070000,	0xfc0f0000,	"",		2 },
-{ "trsc",	0x08060000,	0xfc0f0000,	"r,R",		2 },
-{ "tscr",	0x08070000,	0xfc0f0000,	"r,R",		2 },
-{ "fq",		0x04080000,	0xfc0f0000,	"r",		2 },
-{ "flupte",	0x2c080000,	0xfc0f0000,	"r",		2 },
-{ "rviu",	0x040f0000,	0xfc0f0000,	"",		2 },
-{ "ldel",	0x280c0000,	0xfc0f0000,	"r,R",		2 },
-{ "ldu",	0x280d0000,	0xfc0f0000,	"r,R",		2 },
-{ "stdecc",	0x280b0000,	0xfc0f0000,	"r,R",		2 },
-{ "trpc",	0x08040000,	0xfc0f0000,	"r",		2 },
-{ "tpcr",	0x08050000,	0xfc0f0000,	"r",		2 },
-{ "ghalt",	0x0c050000,	0xfc0f0000,	"r",		2 },
-{ "grun",	0x0c040000,	0xfc0f0000,	"",		2 },
-{ "tmpr",	0x2c0a0000,	0xfc0f0000,	"r,R",		2 },
-{ "trmp",	0x2c0b0000,	0xfc0f0000,	"r,R",		2 },
-
-{ "trrve",	0x28060000,	0xfc0f0000,	"r",		2 },
-{ "trver",	0x28070000,	0xfc0f0000,	"r",		2 },
-{ "trvlr",	0x280f0000,	0xfc0f0000,	"r",		2 },
-
-{ "linkfl",	0x18000000,	0xfc0f0000,	"r,R",		2 },
-{ "linkbl",	0x18020000,	0xfc0f0000,	"r,R",		2 },
-{ "linkfp",	0x18010000,	0xfc0f0000,	"r,R",		2 },
-{ "linkbp",	0x18030000,	0xfc0f0000,	"r,R",		2 },
-{ "linkpl",	0x18040000,	0xfc0f0000,	"r,R",		2 },
-{ "ulinkl",	0x18080000,	0xfc0f0000,	"r,R",		2 },
-{ "ulinkp",	0x18090000,	0xfc0f0000,	"r,R",		2 },
-{ "ulinktl",	0x180a0000,	0xfc0f0000,	"r,R",		2 },
-{ "ulinktp",	0x180b0000,	0xfc0f0000,	"r,R",		2 },
-};
-
-int numopcodes = sizeof(gld_opcodes) / sizeof(gld_opcodes[0]);
-
-struct gld_opcode *endop = gld_opcodes + sizeof(gld_opcodes) /
-		 		sizeof(gld_opcodes[0]);
diff --git a/include/opcode/ns32k.h b/include/opcode/ns32k.h
deleted file mode 100644
index 5cb2f97..0000000
--- a/include/opcode/ns32k.h
+++ /dev/null
@@ -1,487 +0,0 @@
-/* ns32k-opcode.h -- Opcode table for National Semi 32k processor
-   Copyright 1987, 1991, 1994, 2002 Free Software Foundation, Inc.
-
-This file is part of GAS, the GNU Assembler.
-
-GAS 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.
-
-GAS 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 GAS; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-
-#ifdef SEQUENT_COMPATABILITY
-#define DEF_MODEC 20
-#define DEF_MODEL 21
-#endif
-
-#ifndef DEF_MODEC
-#define DEF_MODEC 20
-#endif
-
-#ifndef DEF_MODEL
-#define DEF_MODEL 20
-#endif
-/*
-   After deciding the instruction entry (via hash.c) the instruction parser
-   will try to match the operands after the instruction to the required set
-   given in the entry operandfield. Every operand will result in a change in
-   the opcode or the addition of data to the opcode.
-   The operands in the source instruction are checked for inconsistent
-   semantics.
-
-	F : 32 bit float	general form
-	L : 64 bit float	    "
-	B : byte		    "
-	W : word		    "
-	D : double-word		    "
-	A : double-word		gen-address-form ie no regs, no immediate
-	I : integer writeable   gen int except immediate (A + reg)
-	Z : floating writeable	gen float except immediate (Z + freg)
-	d : displacement
-	b : displacement - pc relative addressing  acb
-	p : displacement - pc relative addressing  br bcond bsr cxp
-	q : quick
-	i : immediate (8 bits)
-	    This is not a standard ns32k operandtype, it is used to build
-	    instructions like    svc arg1,arg2
-	    Svc is the instruction SuperVisorCall and is sometimes used to
-	    call OS-routines from usermode. Some args might be handy!
-	r : register number (3 bits)
-	O : setcfg instruction optionslist
-	C : cinv instruction optionslist
-	S : stringinstruction optionslist
-	U : registerlist	save,enter
-	u : registerlist	restore,exit
-	M : mmu register
-	P : cpu register
-	g : 3:rd operand of inss or exts instruction
-	G : 4:th operand of inss or exts instruction
-	    Those operands are encoded in the same byte.
-	    This byte is placed last in the instruction.
-	f : operand of sfsr
-	H : sequent-hack for bsr (Warning)
-
-column	1 	instructions
-	2 	number of bits in opcode.
-	3 	number of bits in opcode explicitly
-		determined by the instruction type.
-	4 	opcodeseed, the number we build our opcode
-		from.
-	5 	operandtypes, used by operandparser.
-	6 	size in bytes of immediate
-*/
-struct ns32k_opcode {
-  const char *name;
-  unsigned char opcode_id_size; /* not used by the assembler */
-  unsigned char opcode_size;
-  unsigned long opcode_seed;
-  const char *operands;
-  unsigned char im_size;	/* not used by dissassembler */
-  const char *default_args;	/* default to those args when none given */
-  char default_modec;		/* default to this addr-mode when ambigous
-				   ie when the argument of a general addr-mode
-				   is a plain constant */
-  char default_model;		/* is a plain label */
-};
-
-#ifdef comment
-/* This section was from the gdb version of this file. */
-
-#ifndef ns32k_opcodeT
-#define ns32k_opcodeT int
-#endif /* no ns32k_opcodeT */
-
-struct not_wot			/* ns32k opcode table: wot to do with this */
-				/* particular opcode */
-{
-  int obits;			/* number of opcode bits */
-  int ibits;			/* number of instruction bits */
-  ns32k_opcodeT code;		/* op-code (may be > 8 bits!) */
-  const char *args;		/* how to compile said opcode */
-};
-
-struct not			/* ns32k opcode text */
-{
-  const char *name;		/* opcode name: lowercase string  [key]  */
-  struct not_wot detail;	/* rest of opcode table          [datum] */
-};
-
-/* Instructions look like this:
-
-   basic instruction--1, 2, or 3 bytes
-   index byte for operand A, if operand A is indexed--1 byte
-   index byte for operand B, if operand B is indexed--1 byte
-   addressing extension for operand A
-   addressing extension for operand B
-   implied operands
-
-   Operand A is the operand listed first in the following opcode table.
-   Operand B is the operand listed second in the following opcode table.
-   All instructions have at most 2 general operands, so this is enough.
-   The implied operands are associated with operands other than A and B.
-
-   Each operand has a digit and a letter.
-
-   The digit gives the position in the assembly language.  The letter,
-   one of the following, tells us what kind of operand it is.  */
-
-/* F : 32 bit float
- * L : 64 bit float
- * B : byte
- * W : word
- * D : double-word
- * I : integer not immediate
- * Z : floating not immediate
- * d : displacement
- * q : quick
- * i : immediate (8 bits)
- * r : register number (3 bits)
- * p : displacement - pc relative addressing
-*/
-
-
-#endif /* comment */
-
-static const struct ns32k_opcode ns32k_opcodes[]=
-{
-  { "absf",	14,24,	0x35be,	"1F2Z",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "absl",	14,24,	0x34be,	"1L2Z",		8,	"",	DEF_MODEC,DEF_MODEL	},
-  { "absb",	14,24,	0x304e, "1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "absw",	14,24,	0x314e, "1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "absd",	14,24,	0x334e, "1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "acbb",	 7,16,	0x4c,	"2I1q3p",	1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "acbw",	 7,16,	0x4d,	"2I1q3p",	2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "acbd",	 7,16,	0x4f,	"2I1q3p",	4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "addf",	14,24,	0x01be,	"1F2Z",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "addl",	14,24,	0x00be, "1L2Z",		8,	"",	DEF_MODEC,DEF_MODEL	},
-  { "addb",	 6,16,	0x00,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "addw",	 6,16,	0x01,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "addd",	 6,16,	0x03,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "addcb",	 6,16,	0x10,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "addcw",	 6,16,	0x11,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "addcd",	 6,16,	0x13,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "addpb",	14,24,	0x3c4e,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "addpw",	14,24,	0x3d4e,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "addpd",	14,24,	0x3f4e,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "addqb",	 7,16,	0x0c,	"2I1q",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "addqw",	 7,16,	0x0d,	"2I1q",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "addqd",	 7,16,	0x0f,	"2I1q",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "addr",	 6,16,	0x27,	"1A2I",		4,	"",	21,21	},
-  { "adjspb",	11,16,	0x057c,	"1B",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "adjspw",	11,16,	0x057d,	"1W", 		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "adjspd",	11,16,	0x057f,	"1D", 		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "andb",	 6,16,	0x28,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "andw",	 6,16,	0x29,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "andd",	 6,16,	0x2b,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "ashb",	14,24,	0x044e,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "ashw",	14,24,	0x054e,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "ashd",	14,24,	0x074e,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "beq",	 8,8,	0x0a,	"1p",		0,	"",	21,21	},
-  { "bne",	 8,8,	0x1a,	"1p",		0,	"",	21,21	},
-  { "bcs",	 8,8,	0x2a,	"1p",		0,	"",	21,21	},
-  { "bcc",	 8,8,	0x3a,	"1p",		0,	"",	21,21	},
-  { "bhi",	 8,8,	0x4a,	"1p",		0,	"",	21,21	},
-  { "bls",	 8,8,	0x5a,	"1p",		0,	"",	21,21	},
-  { "bgt",	 8,8,	0x6a,	"1p",		0,	"",	21,21	},
-  { "ble",	 8,8,	0x7a,	"1p",		0,	"",	21,21	},
-  { "bfs",	 8,8,	0x8a,	"1p",		0,	"",	21,21	},
-  { "bfc",	 8,8,	0x9a,	"1p",		0,	"",	21,21	},
-  { "blo",	 8,8,	0xaa,	"1p",		0,	"",	21,21	},
-  { "bhs",	 8,8,	0xba,	"1p",		0,	"",	21,21	},
-  { "blt",	 8,8,	0xca,	"1p",		0,	"",	21,21	},
-  { "bge",	 8,8,	0xda,	"1p",		0,	"",	21,21	},
-  { "but",	 8,8,	0xea,	"1p",		0,	"",	21,21	},
-  { "buf",	 8,8,	0xfa,	"1p",		0,	"",	21,21	},
-  { "bicb",	 6,16,	0x08,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "bicw",	 6,16,	0x09,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "bicd",	 6,16,	0x0b,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "bicpsrb",	11,16,	0x17c,	"1B",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "bicpsrw",	11,16,	0x17d,	"1W",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "bispsrb",	11,16,	0x37c,	"1B",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "bispsrw",	11,16,	0x37d,	"1W",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "bpt",	 8,8,	0xf2,	"",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "br",	 8,8,	0xea,	"1p",		0,	"",	21,21	},
-#ifdef SEQUENT_COMPATABILITY
-  { "bsr",	 8,8,	0x02,	"1H",		0,	"",	21,21	},
-#else
-  { "bsr",	 8,8,	0x02,	"1p",		0,	"",	21,21	},
-#endif
-  { "caseb",	11,16,	0x77c,	"1B",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "casew",	11,16,	0x77d,	"1W",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cased",	11,16,	0x77f,	"1D",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cbitb",	14,24,	0x084e,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cbitw",	14,24,	0x094e,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cbitd",	14,24,	0x0b4e,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cbitib",	14,24,	0x0c4e,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cbitiw",	14,24,	0x0d4e,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cbitid",	14,24,	0x0f4e,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "checkb",	11,24,	0x0ee,	"2A3B1r",	1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "checkw",	11,24,	0x1ee,	"2A3W1r",	2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "checkd",	11,24,	0x3ee,	"2A3D1r",	4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cinv",	14,24,	0x271e,	"2D1C",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cmpf",	14,24,	0x09be,	"1F2F",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cmpl",	14,24,	0x08be,	"1L2L",		8,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cmpb",	 6,16,	0x04,	"1B2B",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cmpw",	 6,16,	0x05,	"1W2W",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cmpd",	 6,16,	0x07,	"1D2D",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cmpmb",	14,24,	0x04ce,	"1A2A3b",	1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cmpmw",	14,24,	0x05ce,	"1A2A3b",	2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cmpmd",	14,24,	0x07ce,	"1A2A3b",	4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cmpqb",	 7,16,	0x1c,	"2B1q",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cmpqw",	 7,16,	0x1d,	"2W1q",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cmpqd",	 7,16,	0x1f,	"2D1q",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cmpsb",	16,24,	0x040e,	"1S",		0,	"[]",	DEF_MODEC,DEF_MODEL	},
-  { "cmpsw",	16,24,	0x050e,	"1S",		0,	"[]",	DEF_MODEC,DEF_MODEL	},
-  { "cmpsd",	16,24,	0x070e,	"1S",		0,	"[]",	DEF_MODEC,DEF_MODEL	},
-  { "cmpst",	16,24,	0x840e,	"1S",		0,	"[]",	DEF_MODEC,DEF_MODEL	},
-  { "comb",	14,24,	0x344e,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "comw",	14,24,	0x354e,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "comd",	14,24,	0x374e,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cvtp",	11,24,	0x036e,	"2A3D1r",	4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "cxp",	 8,8,	0x22,	"1p",		0,	"",	21,21	},
-  { "cxpd",	11,16,	0x07f,	"1A",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "deib",	14,24,	0x2cce,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "deiw",	14,24,	0x2dce,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "deid",	14,24,	0x2fce,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "dia",	 8,8,	0xc2,	"",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "divf",	14,24,	0x21be,	"1F2Z",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "divl",	14,24,	0x20be,	"1L2Z",		8,	"",	DEF_MODEC,DEF_MODEL	},
-  { "divb",	14,24,	0x3cce,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "divw",	14,24,	0x3dce,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "divd",	14,24,	0x3fce,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "enter",	 8,8,	0x82,	"1U2d",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "exit",	 8,8,	0x92,	"1u",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "extb",	11,24,	0x02e,	"2I3B1r4d",	1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "extw",	11,24,	0x12e,	"2I3W1r4d",	2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "extd",	11,24,	0x32e,	"2I3D1r4d",	4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "extsb",	14,24,	0x0cce,	"1I2I4G3g",	1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "extsw",	14,24,	0x0dce,	"1I2I4G3g",	2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "extsd",	14,24,	0x0fce,	"1I2I4G3g",	4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "ffsb",	14,24,	0x046e,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "ffsw",	14,24,	0x056e,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "ffsd",	14,24,	0x076e,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "flag",	 8,8,	0xd2,	"",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "floorfb",	14,24,	0x3c3e,	"1F2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "floorfw",	14,24,	0x3d3e,	"1F2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "floorfd",	14,24,	0x3f3e,	"1F2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "floorlb",	14,24,	0x383e,	"1L2I",		8,	"",	DEF_MODEC,DEF_MODEL	},
-  { "floorlw",	14,24,	0x393e,	"1L2I",		8,	"",	DEF_MODEC,DEF_MODEL	},
-  { "floorld",	14,24,	0x3b3e,	"1L2I",		8,	"",	DEF_MODEC,DEF_MODEL	},
-  { "ibitb",	14,24,	0x384e,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "ibitw",	14,24,	0x394e,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "ibitd",	14,24,	0x3b4e,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "indexb",	11,24,	0x42e,	"2B3B1r",	1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "indexw",	11,24,	0x52e,	"2W3W1r",	2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "indexd",	11,24,	0x72e,	"2D3D1r",	4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "insb",	11,24,	0x0ae,	"2B3I1r4d",	1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "insw",	11,24,	0x1ae,	"2W3I1r4d",	2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "insd",	11,24,	0x3ae,	"2D3I1r4d",	4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "inssb",	14,24,	0x08ce,	"1B2I4G3g",	1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "inssw",	14,24,	0x09ce,	"1W2I4G3g",	2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "inssd",	14,24,	0x0bce,	"1D2I4G3g",	4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "jsr",	11,16,	0x67f,	"1A",		4,	"",	21,21	},
-  { "jump",	11,16,	0x27f,	"1A",		4,	"",	21,21	},
-  { "lfsr",	19,24,	0x00f3e,"1D",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "lmr",	15,24,	0x0b1e,	"2D1M",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "lprb",	 7,16,	0x6c,	"2B1P",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "lprw",	 7,16,	0x6d,	"2W1P",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "lprd",	 7,16,	0x6f,	"2D1P",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "lshb",	14,24,	0x144e,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "lshw",	14,24,	0x154e,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "lshd",	14,24,	0x174e,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "meib",	14,24,	0x24ce,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "meiw",	14,24,	0x25ce,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "meid",	14,24,	0x27ce,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "modb",	14,24,	0x38ce,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "modw",	14,24,	0x39ce,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "modd",	14,24,	0x3bce,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movf",	14,24,	0x05be,	"1F2Z",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movl",	14,24,	0x04be,	"1L2Z",		8,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movb",	 6,16,	0x14,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movw",	 6,16,	0x15,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movd",	 6,16,	0x17,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movbf",	14,24,	0x043e,	"1B2Z",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movwf",	14,24,	0x053e,	"1W2Z",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movdf",	14,24,	0x073e,	"1D2Z",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movbl",	14,24,	0x003e,	"1B2Z",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movwl",	14,24,	0x013e,	"1W2Z",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movdl",	14,24,	0x033e,	"1D2Z",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movfl",	14,24,	0x1b3e,	"1F2Z",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movlf",	14,24,	0x163e,	"1L2Z",		8,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movmb",	14,24,	0x00ce,	"1A2A3b",	1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movmw",	14,24,	0x01ce,	"1A2A3b",	2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movmd",	14,24,	0x03ce,	"1A2A3b",	4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movqb",	 7,16,	0x5c,	"2I1q",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movqw",	 7,16,	0x5d,	"2I1q",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movqd",	 7,16,	0x5f,	"2I1q",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movsb",	16,24,	0x000e,	"1S",		0,	"[]",	DEF_MODEC,DEF_MODEL	},
-  { "movsw",	16,24,	0x010e,	"1S",		0,	"[]",	DEF_MODEC,DEF_MODEL	},
-  { "movsd",	16,24,	0x030e,	"1S",		0,	"[]",	DEF_MODEC,DEF_MODEL	},
-  { "movst",	16,24,	0x800e,	"1S",		0,	"[]",	DEF_MODEC,DEF_MODEL	},
-  { "movsub",	14,24,	0x0cae,	"1A2A",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movsuw",	14,24,	0x0dae,	"1A2A",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movsud",	14,24,	0x0fae,	"1A2A",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movusb",	14,24,	0x1cae,	"1A2A",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movusw",	14,24,	0x1dae,	"1A2A",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movusd",	14,24,	0x1fae,	"1A2A",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movxbd",	14,24,	0x1cce,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movxwd",	14,24,	0x1dce,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movxbw",	14,24,	0x10ce,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movzbd",	14,24,	0x18ce,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movzwd",	14,24,	0x19ce,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "movzbw",	14,24,	0x14ce,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "mulf",	14,24,	0x31be,	"1F2Z",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "mull",	14,24,	0x30be,	"1L2Z",		8,	"",	DEF_MODEC,DEF_MODEL	},
-  { "mulb",	14,24,	0x20ce, "1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "mulw",	14,24,	0x21ce, "1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "muld",	14,24,	0x23ce, "1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "negf",	14,24,	0x15be, "1F2Z",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "negl",	14,24,	0x14be, "1L2Z",		8,	"",	DEF_MODEC,DEF_MODEL	},
-  { "negb",	14,24,	0x204e, "1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "negw",	14,24,	0x214e, "1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "negd",	14,24,	0x234e, "1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "nop",	 8,8,	0xa2,	"",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "notb",	14,24,	0x244e, "1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "notw",	14,24,	0x254e, "1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "notd",	14,24,	0x274e, "1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "orb",	 6,16,	0x18,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "orw",	 6,16,	0x19,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "ord",	 6,16,	0x1b,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "quob",	14,24,	0x30ce,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "quow",	14,24,	0x31ce,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "quod",	14,24,	0x33ce,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "rdval",	19,24,	0x0031e,"1A",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "remb",	14,24,	0x34ce,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "remw",	14,24,	0x35ce,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "remd",	14,24,	0x37ce,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "restore",	 8,8,	0x72,	"1u",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "ret",	 8,8,	0x12,	"1d",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "reti",	 8,8,	0x52,	"",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "rett",	 8,8,	0x42,	"1d",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "rotb",	14,24,	0x004e,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "rotw",	14,24,	0x014e,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "rotd",	14,24,	0x034e,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "roundfb",	14,24,	0x243e,	"1F2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "roundfw",	14,24,	0x253e,	"1F2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "roundfd",	14,24,	0x273e,	"1F2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "roundlb",	14,24,	0x203e,	"1L2I",		8,	"",	DEF_MODEC,DEF_MODEL	},
-  { "roundlw",	14,24,	0x213e,	"1L2I",		8,	"",	DEF_MODEC,DEF_MODEL	},
-  { "roundld",	14,24,	0x233e,	"1L2I",		8,	"",	DEF_MODEC,DEF_MODEL	},
-  { "rxp",	 8,8,	0x32,	"1d",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "seqb",	11,16,	0x3c,	"1B",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "seqw",	11,16,	0x3d,	"1W",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "seqd",	11,16,	0x3f,	"1D",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sneb",	11,16,	0xbc,	"1B",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "snew",	11,16,	0xbd,	"1W",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sned",	11,16,	0xbf,	"1D",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "scsb",	11,16,	0x13c,	"1B",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "scsw",	11,16,	0x13d,	"1W",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "scsd",	11,16,	0x13f,	"1D",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sccb",	11,16,	0x1bc,	"1B",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sccw",	11,16,	0x1bd,	"1W",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sccd",	11,16,	0x1bf,	"1D",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "shib",	11,16,	0x23c,	"1B",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "shiw",	11,16,	0x23d,	"1W",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "shid",	11,16,	0x23f,	"1D",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "slsb",	11,16,	0x2bc,	"1B",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "slsw",	11,16,	0x2bd,	"1W",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "slsd",	11,16,	0x2bf,	"1D",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sgtb",	11,16,	0x33c,	"1B",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sgtw",	11,16,	0x33d,	"1W",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sgtd",	11,16,	0x33f,	"1D",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sleb",	11,16,	0x3bc,	"1B",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "slew",	11,16,	0x3bd,	"1W",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sled",	11,16,	0x3bf,	"1D",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sfsb",	11,16,	0x43c,	"1B",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sfsw",	11,16,	0x43d,	"1W",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sfsd",	11,16,	0x43f,	"1D",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sfcb",	11,16,	0x4bc,	"1B",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sfcw",	11,16,	0x4bd,	"1W",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sfcd",	11,16,	0x4bf,	"1D",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "slob",	11,16,	0x53c,	"1B",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "slow",	11,16,	0x53d,	"1W",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "slod",	11,16,	0x53f,	"1D",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "shsb",	11,16,	0x5bc,	"1B",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "shsw",	11,16,	0x5bd,	"1W",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "shsd",	11,16,	0x5bf,	"1D",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sltb",	11,16,	0x63c,	"1B",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sltw",	11,16,	0x63d,	"1W",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sltd",	11,16,	0x63f,	"1D",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sgeb",	11,16,	0x6bc,	"1B",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sgew",	11,16,	0x6bd,	"1W",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sged",	11,16,	0x6bf,	"1D",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sutb",	11,16,	0x73c,	"1B",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sutw",	11,16,	0x73d,	"1W",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sutd",	11,16,	0x73f,	"1D",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sufb",	11,16,	0x7bc,	"1B",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sufw",	11,16,	0x7bd,	"1W",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sufd",	11,16,	0x7bf,	"1D",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "save",	 8,8,	0x62,	"1U",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sbitb",    14,24,	0x184e,	"1B2A",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sbitw",	14,24,	0x194e,	"1W2A",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sbitd",	14,24,	0x1b4e,	"1D2A",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sbitib",	14,24,	0x1c4e,	"1B2A",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sbitiw",	14,24,	0x1d4e,	"1W2A",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sbitid",	14,24,	0x1f4e,	"1D2A",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "setcfg",	15,24,	0x0b0e,	"1O",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sfsr",	14,24,	0x373e,	"1f",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "skpsb",	16,24,	0x0c0e,	"1S",		0,	"[]",	DEF_MODEC,DEF_MODEL	},
-  { "skpsw",	16,24,	0x0d0e,	"1S",		0,	"[]",	DEF_MODEC,DEF_MODEL	},
-  { "skpsd",	16,24,	0x0f0e, "1S",		0,	"[]",	DEF_MODEC,DEF_MODEL	},
-  { "skpst",	16,24,	0x8c0e,	"1S",		0,	"[]",	DEF_MODEC,DEF_MODEL	},
-  { "smr",	15,24,	0x0f1e,	"2I1M",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sprb",	 7,16,	0x2c,	"2I1P",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sprw",	 7,16,	0x2d,	"2I1P",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "sprd",	 7,16,	0x2f,	"2I1P",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "subf",	14,24,	0x11be,	"1F2Z",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "subl",	14,24,	0x10be,	"1L2Z",		8,	"",	DEF_MODEC,DEF_MODEL	},
-  { "subb",	 6,16,	0x20,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "subw",	 6,16,	0x21,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "subd",	 6,16,	0x23,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "subcb",	 6,16,	0x30,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "subcw",	 6,16,	0x31,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "subcd",	 6,16,	0x33,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "subpb",	14,24,	0x2c4e,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "subpw",	14,24,	0x2d4e,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "subpd",	14,24,	0x2f4e,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-#ifdef NS32K_SVC_IMMED_OPERANDS
-  { "svc",	 8,8,	0xe2,	"2i1i",		1,	"",	DEF_MODEC,DEF_MODEL	}, /* not really, but some unix uses it */
-#else
-  { "svc",	 8,8,	0xe2,	"",		0,	"",	DEF_MODEC,DEF_MODEL	},
-#endif
-  { "tbitb",	 6,16,	0x34,	"1B2A",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "tbitw",	 6,16,	0x35,	"1W2A",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "tbitd",	 6,16,	0x37,	"1D2A",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "truncfb",	14,24,	0x2c3e,	"1F2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "truncfw",	14,24,	0x2d3e,	"1F2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "truncfd",	14,24,	0x2f3e,	"1F2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "trunclb",	14,24,	0x283e,	"1L2I",		8,	"",	DEF_MODEC,DEF_MODEL	},
-  { "trunclw",	14,24,	0x293e,	"1L2I",		8,	"",	DEF_MODEC,DEF_MODEL	},
-  { "truncld",	14,24,	0x2b3e,	"1L2I",		8,	"",	DEF_MODEC,DEF_MODEL	},
-  { "wait",	 8,8,	0xb2,	"",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "wrval",	19,24,	0x0071e,"1A",		0,	"",	DEF_MODEC,DEF_MODEL	},
-  { "xorb",	 6,16,	0x38,	"1B2I",		1,	"",	DEF_MODEC,DEF_MODEL	},
-  { "xorw",	 6,16,	0x39,	"1W2I",		2,	"",	DEF_MODEC,DEF_MODEL	},
-  { "xord",	 6,16,	0x3b,	"1D2I",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "dotf",	14,24,  0x0dfe, "1F2F",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "dotl",	14,24,  0x0cfe, "1L2L",		8,	"",	DEF_MODEC,DEF_MODEL	},
-  { "logbf",	14,24,  0x15fe, "1F2Z",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "logbl",	14,24,  0x14fe, "1L2Z",		8,	"",	DEF_MODEC,DEF_MODEL	},
-  { "polyf",	14,24,  0x09fe, "1F2F",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "polyl",	14,24,  0x08fe, "1L2L",		8,	"",	DEF_MODEC,DEF_MODEL	},
-  { "scalbf",	14,24,  0x11fe, "1F2Z",		4,	"",	DEF_MODEC,DEF_MODEL	},
-  { "scalbl",	14,24,  0x10fe, "1L2Z",		8,	"",	DEF_MODEC,DEF_MODEL	},
-};
-
-#define MAX_ARGS 4
-#define ARG_LEN 50
-
diff --git a/include/opcode/or32.h b/include/opcode/or32.h
deleted file mode 100644
index 3412b22..0000000
--- a/include/opcode/or32.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/* Table of opcodes for the OpenRISC 1000 ISA.
-   Copyright 2002, 2003 Free Software Foundation, Inc.
-   Contributed by Damjan Lampret (lampret@opencores.org).
-   
-   This file is part of or1k_gen_isa, or1ksim, GDB and GAS.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* We treat all letters the same in encode/decode routines so
-   we need to assign some characteristics to them like signess etc.  */
-
-#ifndef OR32_H_ISA
-#define OR32_H_ISA
-
-#define NUM_UNSIGNED (0)
-#define NUM_SIGNED (1)
-
-#define MAX_GPRS 32
-#define PAGE_SIZE 4096
-#undef __HALF_WORD_INSN__
-
-#define OPERAND_DELIM (',')
-
-#define OR32_IF_DELAY (1)
-#define OR32_W_FLAG   (2)
-#define OR32_R_FLAG   (4)
-
-struct or32_letter
-{
-  char letter;
-  int  sign;
-  /* int  reloc; relocation per letter ??  */
-};
-
-/* Main instruction specification array.  */
-struct or32_opcode
-{
-  /* Name of the instruction.  */
-  char *name;
-
-  /* A string of characters which describe the operands.
-     Valid characters are:
-     ,() Itself.  Characters appears in the assembly code.
-     rA	 Register operand.
-     rB  Register operand.
-     rD  Register operand.
-     I	 An immediate operand, range -32768 to 32767.
-     J	 An immediate operand, range . (unused)
-     K	 An immediate operand, range 0 to 65535.
-     L	 An immediate operand, range 0 to 63.
-     M	 An immediate operand, range . (unused)
-     N	 An immediate operand, range -33554432 to 33554431.
-     O	 An immediate operand, range . (unused).  */
-  char *args;
-  
-  /* Opcode and operand encoding.  */
-  char *encoding;
-  void (*exec) (void);
-  unsigned int flags;
-};
-
-#define OPTYPE_LAST (0x80000000)
-#define OPTYPE_OP   (0x40000000)
-#define OPTYPE_REG  (0x20000000)
-#define OPTYPE_SIG  (0x10000000)
-#define OPTYPE_DIS  (0x08000000)
-#define OPTYPE_DST  (0x04000000)
-#define OPTYPE_SBIT (0x00001F00)
-#define OPTYPE_SHR  (0x0000001F)
-#define OPTYPE_SBIT_SHR (8)
-
-/* MM: Data how to decode operands.  */
-extern struct insn_op_struct
-{
-  unsigned long type;
-  unsigned long data;
-} **op_start;
-
-#ifdef HAS_EXECUTION
-extern void l_invalid (void);
-extern void l_sfne    (void);
-extern void l_bf      (void);
-extern void l_add     (void);
-extern void l_sw      (void);
-extern void l_sb      (void);
-extern void l_sh      (void);
-extern void l_lwz     (void);
-extern void l_lbs     (void);
-extern void l_lbz     (void);
-extern void l_lhs     (void);
-extern void l_lhz     (void);
-extern void l_movhi   (void);
-extern void l_and     (void);
-extern void l_or      (void);
-extern void l_xor     (void);
-extern void l_sub     (void);
-extern void l_mul     (void);
-extern void l_div     (void);
-extern void l_divu    (void);
-extern void l_sll     (void);
-extern void l_sra     (void);
-extern void l_srl     (void);
-extern void l_j       (void);
-extern void l_jal     (void);
-extern void l_jalr    (void);
-extern void l_jr      (void);
-extern void l_rfe     (void);
-extern void l_nop     (void);
-extern void l_bnf     (void);
-extern void l_sfeq    (void);
-extern void l_sfgts   (void);
-extern void l_sfges   (void);
-extern void l_sflts   (void);
-extern void l_sfles   (void);
-extern void l_sfgtu   (void);
-extern void l_sfgeu   (void);
-extern void l_sfltu   (void);
-extern void l_sfleu   (void);
-extern void l_mtspr   (void);
-extern void l_mfspr   (void);
-extern void l_sys     (void);
-extern void l_trap    (void); /* CZ 21/06/01.  */
-extern void l_macrc   (void);
-extern void l_mac     (void);
-extern void l_msb     (void);
-extern void l_invalid (void);
-extern void l_cust1   (void);
-extern void l_cust2   (void);
-extern void l_cust3   (void);
-extern void l_cust4   (void);
-#endif
-extern void l_none    (void);
-
-extern const struct or32_letter or32_letters[];
-
-extern const struct  or32_opcode or32_opcodes[];
-
-extern const unsigned int or32_num_opcodes;
-
-/* Calculates instruction length in bytes.  Always 4 for OR32.  */
-extern int insn_len (int);
-
-/* Is individual insn's operand signed or unsigned?  */
-extern int letter_signed (char);
-
-/* Number of letters in the individual lettered operand.  */
-extern int letter_range (char);
-
-/* MM: Returns index of given instruction name.  */
-extern int insn_index (char *);
-
-/* MM: Returns instruction name from index.  */
-extern const char *insn_name (int);
-
-/* MM: Constructs new FSM, based on or32_opcodes.  */ 
-extern void build_automata (void);
-
-/* MM: Destructs FSM.  */ 
-extern void destruct_automata (void);
-
-/* MM: Decodes instruction using FSM.  Call build_automata first.  */
-extern int insn_decode (unsigned int);
-
-/* Disassemble one instruction from insn to disassemble.
-   Return the size of the instruction.  */
-int disassemble_insn (unsigned long);
-
-#endif
diff --git a/include/opcode/pdp11.h b/include/opcode/pdp11.h
deleted file mode 100644
index 0f0256b..0000000
--- a/include/opcode/pdp11.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* PDP-11 opcde list.
-   Copyright 2001, 2002 Free Software Foundation, Inc.
-
-This file is part of GDB and GAS.
-
-GDB and GAS are 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.
-
-GDB and GAS are 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 GDB or GAS; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/*
- * PDP-11 opcode types.
- */
-
-#define PDP11_OPCODE_NO_OPS	 0
-#define PDP11_OPCODE_REG	 1	/* register */
-#define PDP11_OPCODE_OP		 2	/* generic operand */
-#define PDP11_OPCODE_REG_OP	 3	/* register and generic operand */
-#define PDP11_OPCODE_REG_OP_REV	 4	/* register and generic operand,
-					   reversed syntax */
-#define PDP11_OPCODE_AC_FOP	 5	/* fpu accumulator and generic float
-					   operand */
-#define PDP11_OPCODE_OP_OP	 6	/* two generic operands */
-#define PDP11_OPCODE_DISPL	 7	/* pc-relative displacement */
-#define PDP11_OPCODE_REG_DISPL	 8	/* redister and pc-relative
-					   displacement */
-#define PDP11_OPCODE_IMM8	 9	/* 8-bit immediate */
-#define PDP11_OPCODE_IMM6	10	/* 6-bit immediate */
-#define PDP11_OPCODE_IMM3	11	/* 3-bit immediate */
-#define PDP11_OPCODE_ILLEGAL	12	/* illegal instruction */
-#define PDP11_OPCODE_FOP_AC	13	/* generic float argument, then fpu
-					   accumulator */
-#define PDP11_OPCODE_FOP	14	/* generic float operand */
-#define PDP11_OPCODE_AC_OP	15	/* fpu accumulator and generic int
-					   operand */
-#define PDP11_OPCODE_OP_AC	16	/* generic int argument, then fpu
-					   accumulator */
-
-/*
- * PDP-11 instruction set extensions.
- *
- * Please keep the numbers low, as they are used as indices into
- * an array.
- */
-
-#define PDP11_NONE	 0	/* not in instruction set */
-#define PDP11_BASIC	 1	/* basic instruction set (11/20 etc) */
-#define PDP11_CSM	 2	/* commercial instruction set */
-#define PDP11_CIS	 3	/* commercial instruction set */
-#define PDP11_EIS	 4	/* extended instruction set (11/45 etc) */
-#define PDP11_FIS	 5	/* KEV11 floating-point instructions */
-#define PDP11_FPP	 6	/* FP-11 floating-point instructions */
-#define PDP11_LEIS	 7	/* limited extended instruction set
-				   (11/40 etc) */
-#define PDP11_MFPT	 8	/* move from processor type */
-#define PDP11_MPROC	 9	/* multiprocessor instructions: tstset,
-				   wrtlck */
-#define PDP11_MXPS	10	/* move from/to processor status */
-#define PDP11_SPL	11	/* set priority level */
-#define PDP11_UCODE	12	/* microcode instructions: ldub, med, xfc */
-#define PDP11_EXT_NUM	13	/* total number of extension types */
-
-struct pdp11_opcode
-{
-  const char *name;
-  int opcode;
-  int mask;
-  int type;
-  int extension;
-};
-
-extern const struct pdp11_opcode pdp11_opcodes[];
-extern const struct pdp11_opcode pdp11_aliases[];
-extern const int pdp11_num_opcodes, pdp11_num_aliases;
-
-/* end of pdp11.h */
diff --git a/include/opcode/pj.h b/include/opcode/pj.h
deleted file mode 100644
index 30201d6..0000000
--- a/include/opcode/pj.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Definitions for decoding the picoJava opcode table.
-   Copyright 1999, 2002, 2003 Free Software Foundation, Inc.
-   Contributed by Steve Chamberlain of Transmeta (sac@pobox.com).
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-
-/* Names used to describe the type of instruction arguments, used by
-   the assembler and disassembler.  Attributes are encoded in various fields. */
-
-/*            reloc  size pcrel    uns */
-#define O_N    0
-#define O_16  (1<<4 | 2 | (0<<6) | (0<<3))
-#define O_U16 (1<<4 | 2 | (0<<6) | (1<<3))
-#define O_R16 (2<<4 | 2 | (1<<6) | (0<<3))
-#define O_8   (3<<4 | 1 | (0<<6) | (0<<3))
-#define O_U8  (3<<4 | 1 | (0<<6) | (1<<3))
-#define O_R8  (4<<4 | 1 | (0<<6) | (0<<3))
-#define O_R32 (5<<4 | 4 | (1<<6) | (0<<3))
-#define O_32  (6<<4 | 4 | (0<<6) | (0<<3))
-
-#define ASIZE(x)  ((x) & 0x7)
-#define PCREL(x)  (!!((x) & (1<<6)))
-#define UNS(x)    (!!((x) & (1<<3)))
-
-                  
-typedef struct pj_opc_info_t
-{
-  short opcode;
-  short opcode_next;
-  char len;
-  unsigned char arg[2];
-  union {
-    const char *name;
-    void (*func) (struct pj_opc_info_t *, char *);
-  } u;
-} pj_opc_info_t;
diff --git a/include/opcode/pn.h b/include/opcode/pn.h
deleted file mode 100644
index f8d474f..0000000
--- a/include/opcode/pn.h
+++ /dev/null
@@ -1,282 +0,0 @@
-/* Print GOULD PN (PowerNode) instructions for GDB, the GNU debugger.
-   Copyright 1986, 1987, 1989, 1991 Free Software Foundation, Inc.
-
-This file is part of GDB.
-
-GDB 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.
-
-GDB 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 GDB; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-struct gld_opcode
-{
-  char *name;
-  unsigned long opcode;
-  unsigned long mask;
-  char *args;
-  int length;
-};
-
-/* We store four bytes of opcode for all opcodes because that
-   is the most any of them need.  The actual length of an instruction
-   is always at least 2 bytes, and at most four.  The length of the
-   instruction is based on the opcode.
-
-   The mask component is a mask saying which bits must match
-   particular opcode in order for an instruction to be an instance
-   of that opcode.
-
-   The args component is a string containing characters
-   that are used to format the arguments to the instruction. */
-
-/* Kinds of operands:
-   r  Register in first field
-   R  Register in second field
-   b  Base register in first field
-   B  Base register in second field
-   v  Vector register in first field
-   V  Vector register in first field
-   A  Optional address register (base register)
-   X  Optional index register
-   I  Immediate data (16bits signed)
-   O  Offset field (16bits signed)
-   h  Offset field (15bits signed)
-   d  Offset field (14bits signed)
-   S  Shift count field
-
-   any other characters are printed as is...
-*/
-
-/* The assembler requires that this array be sorted as follows:
-   all instances of the same mnemonic must be consecutive.
-   All instances of the same mnemonic with the same number of operands
-   must be consecutive.
- */
-struct gld_opcode gld_opcodes[] =
-{
-{ "abm",	0xa0080000,	0xfc080000,	"f,xOA,X",	4 },
-{ "abr",	0x18080000,	0xfc0c0000,	"r,f",		2 },
-{ "aci",	0xfc770000,	0xfc7f8000,	"r,I",		4 },
-{ "adfd",	0xe0080002,	0xfc080002,	"r,xOA,X",	4 },
-{ "adfw",	0xe0080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "adi",	0xc8010000,	0xfc7f0000,	"r,I",		4 },
-{ "admb",	0xb8080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "admd",	0xb8000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "admh",	0xb8000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "admw",	0xb8000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "adr",	0x38000000,	0xfc0f0000,	"r,R",		2 },
-{ "adrfd",	0x38090000,	0xfc0f0000,	"r,R",		2 },
-{ "adrfw",	0x38010000,	0xfc0f0000,	"r,R",		2 },
-{ "adrm",	0x38080000,	0xfc0f0000,	"r,R",		2 },
-{ "ai", 	0xfc030000,	0xfc07ffff,	"I",		4 },
-{ "anmb",	0x84080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "anmd",	0x84000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "anmh",	0x84000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "anmw",	0x84000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "anr",	0x04000000,	0xfc0f0000,	"r,R",		2 },
-{ "armb",	0xe8080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "armd",	0xe8000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "armh",	0xe8000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "armw",	0xe8000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "bcf",	0xf0000000,	0xfc080000,	"I,xOA,X",	4 },
-{ "bct",	0xec000000,	0xfc080000,	"I,xOA,X",	4 },
-{ "bei",	0x00060000,	0xffff0000,	"",		2 },
-{ "bft",	0xf0000000,	0xff880000,	"xOA,X",	4 },
-{ "bib",	0xf4000000,	0xfc780000,	"r,xOA",	4 },
-{ "bid",	0xf4600000,	0xfc780000,	"r,xOA",	4 },
-{ "bih",	0xf4200000,	0xfc780000,	"r,xOA",	4 },
-{ "biw",	0xf4400000,	0xfc780000,	"r,xOA",	4 },
-{ "bl", 	0xf8800000,	0xff880000,	"xOA,X",	4 },
-{ "bsub",	0x5c080000,	0xff8f0000,	"",		2 },
-{ "bsubm",	0x28080000,	0xfc080000,	"",		4 },
-{ "bu", 	0xec000000,	0xff880000,	"xOA,X",	4 },
-{ "call",	0x28080000,	0xfc0f0000,	"",		2 },
-{ "callm",	0x5c080000,	0xff880000,	"",		4 },
-{ "camb",	0x90080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "camd",	0x90000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "camh",	0x90000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "camw",	0x90000000,	0xfc080000,	"r.xOA,X",	4 },
-{ "car",	0x10000000,	0xfc0f0000,	"r,R",		2 },
-{ "cd", 	0xfc060000,	0xfc070000,	"r,f",		4 },
-{ "cea",	0x000f0000,	0xffff0000,	"",		2 },
-{ "ci", 	0xc8050000,	0xfc7f0000,	"r,I",		4 },
-{ "cmc",	0x040a0000,	0xfc7f0000,	"r",		2 },
-{ "cmmb",	0x94080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "cmmd",	0x94000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "cmmh",	0x94000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "cmmw",	0x94000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "cmr",	0x14000000,	0xfc0f0000,	"r,R",		2 },
-{ "daci",	0xfc7f0000,	0xfc7f8000,	"r,I",		4 },
-{ "dae",	0x000e0000,	0xffff0000,	"",		2 },
-{ "dai",	0xfc040000,	0xfc07ffff,	"I",		4 },
-{ "dci",	0xfc6f0000,	0xfc7f8000,	"r,I",		4 },
-{ "di", 	0xfc010000,	0xfc07ffff,	"I",		4 },
-{ "dvfd",	0xe4000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "dvfw",	0xe4000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "dvi",	0xc8040000,	0xfc7f0000,	"r,I",		4 },
-{ "dvmb",	0xc4080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "dvmh",	0xc4000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "dvmw",	0xc4000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "dvr",	0x380a0000,	0xfc0f0000,	"r,R",		2 },
-{ "dvrfd",	0x380c0000,	0xfc0f0000,	"r,R",		4 },
-{ "dvrfw",	0x38040000,	0xfc0f0000,	"r,xOA,X",	4 },
-{ "eae",	0x00080000,	0xffff0000,	"",		2 },
-{ "eci",	0xfc670000,	0xfc7f8080,	"r,I",		4 },
-{ "ecwcs",	0xfc4f0000,	0xfc7f8000,	"",		4 },
-{ "ei", 	0xfc000000,	0xfc07ffff,	"I",		4 },
-{ "eomb",	0x8c080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "eomd",	0x8c000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "eomh",	0x8c000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "eomw",	0x8c000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "eor",	0x0c000000,	0xfc0f0000,	"r,R",		2 },
-{ "eorm",	0x0c080000,	0xfc0f0000,	"r,R",		2 },
-{ "es", 	0x00040000,	0xfc7f0000,	"r",		2 },
-{ "exm",	0xa8000000,	0xff880000,	"xOA,X",	4 },
-{ "exr",	0xc8070000,	0xfc7f0000,	"r",		2 },
-{ "exrr",	0xc8070002,	0xfc7f0002,	"r",		2 },
-{ "fixd",	0x380d0000,	0xfc0f0000,	"r,R",		2 },
-{ "fixw",	0x38050000,	0xfc0f0000,	"r,R",		2 },
-{ "fltd",	0x380f0000,	0xfc0f0000,	"r,R",		2 },
-{ "fltw",	0x38070000,	0xfc0f0000,	"r,R",		2 },
-{ "grio",	0xfc3f0000,	0xfc7f8000,	"r,I",		4 },
-{ "halt",	0x00000000,	0xffff0000,	"",		2 },
-{ "hio",	0xfc370000,	0xfc7f8000,	"r,I",		4 },
-{ "jwcs",	0xfa080000,	0xff880000,	"xOA,X",	4 },
-{ "la", 	0x50000000,	0xfc000000,	"r,xOA,X",	4 },
-{ "labr",	0x58080000,	0xfc080000,	"b,xOA,X",	4 },
-{ "lb", 	0xac080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "lcs", 	0x00030000,	0xfc7f0000,	"r",		2 },
-{ "ld", 	0xac000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "lear", 	0x80000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "lf", 	0xcc000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "lfbr", 	0xcc080000,	0xfc080000,	"b,xOA,X",	4 },
-{ "lh", 	0xac000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "li", 	0xc8000000,	0xfc7f0000,	"r,I",		4 },
-{ "lmap",	0x2c070000,	0xfc7f0000,	"r",		2 },
-{ "lmb",	0xb0080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "lmd",	0xb0000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "lmh",	0xb0000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "lmw",	0xb0000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "lnb",	0xb4080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "lnd",	0xb4000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "lnh",	0xb4000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "lnw",	0xb4000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "lpsd",	0xf9800000,	0xff880000,	"r,xOA,X",	4 },
-{ "lpsdcm",	0xfa800000,	0xff880000,	"r,xOA,X",	4 },
-{ "lw", 	0xac000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "lwbr", 	0x5c000000,	0xfc080000,	"b,xOA,X",	4 },
-{ "mpfd",	0xe4080002,	0xfc080002,	"r,xOA,X",	4 },
-{ "mpfw",	0xe4080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "mpi",	0xc8030000,	0xfc7f0000,	"r,I",		4 },
-{ "mpmb",	0xc0080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "mpmh",	0xc0000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "mpmw",	0xc0000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "mpr",	0x38020000,	0xfc0f0000,	"r,R",		2 },
-{ "mprfd",	0x380e0000,	0xfc0f0000,	"r,R",		2 },
-{ "mprfw",	0x38060000,	0xfc0f0000,	"r,R",		2 },
-{ "nop",	0x00020000,	0xffff0000,	"",		2 },
-{ "ormb",	0x88080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "ormd",	0x88000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "ormh",	0x88000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "ormw",	0x88000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "orr",	0x08000000,	0xfc0f0000,	"r,R",		2 },
-{ "orrm",	0x08080000,	0xfc0f0000,	"r,R",		2 },
-{ "rdsts",	0x00090000,	0xfc7f0000,	"r",		2 },
-{ "return",	0x280e0000,	0xfc7f0000,	"",		2 },
-{ "ri", 	0xfc020000,	0xfc07ffff,	"I",		4 },
-{ "rnd",	0x00050000,	0xfc7f0000,	"r",		2 },
-{ "rpswt",	0x040b0000,	0xfc7f0000,	"r",		2 },
-{ "rschnl",	0xfc2f0000,	0xfc7f8000,	"r,I",		4 },
-{ "rsctl",	0xfc470000,	0xfc7f8000,	"r,I",		4 },
-{ "rwcs",	0x000b0000,	0xfc0f0000,	"r,R",		2 },
-{ "sacz",	0x10080000,	0xfc0f0000,	"r,R",		2 },
-{ "sbm",	0x98080000,	0xfc080000,	"f,xOA,X",	4 },
-{ "sbr",	0x18000000,	0xfc0c0000,	"r,f",		4 },
-{ "sea",	0x000d0000,	0xffff0000,	"",		2 },
-{ "setcpu",	0x2c090000,	0xfc7f0000,	"r",		2 },
-{ "sio",	0xfc170000,	0xfc7f8000,	"r,I",		4 },
-{ "sipu",	0x000a0000,	0xffff0000,	"",		2 },
-{ "sla",	0x1c400000,	0xfc600000,	"r,S",		2 },
-{ "slad",	0x20400000,	0xfc600000,	"r,S",		2 },
-{ "slc",	0x24400000,	0xfc600000,	"r,S",		2 },
-{ "sll",	0x1c600000,	0xfc600000,	"r,S",		2 },
-{ "slld",	0x20600000,	0xfc600000,	"r,S",		2 },
-{ "smc",	0x04070000,	0xfc070000,	"",		2 },
-{ "sra",	0x1c000000,	0xfc600000,	"r,S",		2 },
-{ "srad",	0x20000000,	0xfc600000,	"r,S",		2 },
-{ "src",	0x24000000,	0xfc600000,	"r,S",		2 },
-{ "srl",	0x1c200000,	0xfc600000,	"r,S",		2 },
-{ "srld",	0x20200000,	0xfc600000,	"r,S",		2 },
-{ "stb",	0xd4080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "std",	0xd4000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "stf",	0xdc000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "stfbr",	0x54000000,	0xfc080000,	"b,xOA,X",	4 },
-{ "sth",	0xd4000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "stmb",	0xd8080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "stmd",	0xd8000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "stmh",	0xd8000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "stmw",	0xd8000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "stpio",	0xfc270000,	0xfc7f8000,	"r,I",		4 },
-{ "stw",	0xd4000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "stwbr",	0x54000000,	0xfc080000,	"b,xOA,X",	4 },
-{ "suabr",	0x58000000,	0xfc080000,	"b,xOA,X",	4 },
-{ "sufd",	0xe0000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "sufw",	0xe0000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "sui",	0xc8020000,	0xfc7f0000,	"r,I",		4 },
-{ "sumb",	0xbc080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "sumd",	0xbc000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "sumh",	0xbc000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "sumw",	0xbc000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "sur",	0x3c000000,	0xfc0f0000,	"r,R",		2 },
-{ "surfd",	0x380b0000,	0xfc0f0000,	"r,xOA,X",	4 },
-{ "surfw",	0x38030000,	0xfc0f0000,	"r,R",		2 },
-{ "surm",	0x3c080000,	0xfc0f0000,	"r,R",		2 },
-{ "svc",	0xc8060000,	0xffff0000,	"",		4 },
-{ "tbm",	0xa4080000,	0xfc080000,	"f,xOA,X",	4 },
-{ "tbr",	0x180c0000,	0xfc0c0000,	"r,f",		2 },
-{ "tbrr",	0x2c020000,	0xfc0f0000,	"r,B",		2 },
-{ "tccr",	0x28040000,	0xfc7f0000,	"",		2 },
-{ "td", 	0xfc050000,	0xfc070000,	"r,f",		4 },
-{ "tio",	0xfc1f0000,	0xfc7f8000,	"r,I",		4 },
-{ "tmapr",	0x2c0a0000,	0xfc0f0000,	"r,R",		2 },
-{ "tpcbr",	0x280c0000,	0xfc7f0000,	"r",		2 },
-{ "trbr",	0x2c010000,	0xfc0f0000,	"b,R",		2 },
-{ "trc",	0x2c030000,	0xfc0f0000,	"r,R",		2 },
-{ "trcc",	0x28050000,	0xfc7f0000,	"",		2 },
-{ "trcm",	0x2c0b0000,	0xfc0f0000,	"r,R",		2 },
-{ "trn",	0x2c040000,	0xfc0f0000,	"r,R",		2 },
-{ "trnm",	0x2c0c0000,	0xfc0f0000,	"r,R",		2 },
-{ "trr",	0x2c000000,	0xfc0f0000,	"r,R",		2 },
-{ "trrm",	0x2c080000,	0xfc0f0000,	"r,R",		2 },
-{ "trsc",	0x2c0e0000,	0xfc0f0000,	"r,R",		2 },
-{ "trsw",	0x28000000,	0xfc7f0000,	"r",		2 },
-{ "tscr",	0x2c0f0000,	0xfc0f0000,	"r,R",		2 },
-{ "uei",	0x00070000,	0xffff0000,	"",		2 },
-{ "wait",	0x00010000,	0xffff0000,	"",		2 },
-{ "wcwcs",	0xfc5f0000,	0xfc7f8000,	"",		4 },
-{ "wwcs",	0x000c0000,	0xfc0f0000,	"r,R",		2 },
-{ "xcbr",	0x28020000,	0xfc0f0000,	"b,B",		2 },
-{ "xcr",	0x2c050000,	0xfc0f0000,	"r,R",		2 },
-{ "xcrm",	0x2c0d0000,	0xfc0f0000,	"r,R",		2 },
-{ "zbm",	0x9c080000,	0xfc080000,	"f,xOA,X",	4 },
-{ "zbr",	0x18040000,	0xfc0c0000,	"r,f",		2 },
-{ "zmb",	0xf8080000,	0xfc080000,	"r,xOA,X",	4 },
-{ "zmd",	0xf8000002,	0xfc080002,	"r,xOA,X",	4 },
-{ "zmh",	0xf8000001,	0xfc080001,	"r,xOA,X",	4 },
-{ "zmw",	0xf8000000,	0xfc080000,	"r,xOA,X",	4 },
-{ "zr", 	0x0c000000,	0xfc0f0000,	"r",		2 },
-};
-
-int numopcodes = sizeof(gld_opcodes) / sizeof(gld_opcodes[0]);
-
-struct gld_opcode *endop = gld_opcodes + sizeof(gld_opcodes) /
-		sizeof(gld_opcodes[0]);
diff --git a/include/opcode/ppc.h b/include/opcode/ppc.h
deleted file mode 100644
index fc4d41f..0000000
--- a/include/opcode/ppc.h
+++ /dev/null
@@ -1,320 +0,0 @@
-/* ppc.h -- Header file for PowerPC opcode table
-   Copyright 1994, 1995, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-   Free Software Foundation, Inc.
-   Written by Ian Lance Taylor, Cygnus Support
-
-This file is part of GDB, GAS, and the GNU binutils.
-
-GDB, GAS, and the GNU binutils are free software; you can redistribute
-them and/or modify them 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.
-
-GDB, GAS, and the GNU binutils are distributed in the hope that they
-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 file; see the file COPYING.  If not, write to the Free
-Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef PPC_H
-#define PPC_H
-
-/* The opcode table is an array of struct powerpc_opcode.  */
-
-struct powerpc_opcode
-{
-  /* The opcode name.  */
-  const char *name;
-
-  /* The opcode itself.  Those bits which will be filled in with
-     operands are zeroes.  */
-  unsigned long opcode;
-
-  /* The opcode mask.  This is used by the disassembler.  This is a
-     mask containing ones indicating those bits which must match the
-     opcode field, and zeroes indicating those bits which need not
-     match (and are presumably filled in by operands).  */
-  unsigned long mask;
-
-  /* One bit flags for the opcode.  These are used to indicate which
-     specific processors support the instructions.  The defined values
-     are listed below.  */
-  unsigned long flags;
-
-  /* An array of operand codes.  Each code is an index into the
-     operand table.  They appear in the order which the operands must
-     appear in assembly code, and are terminated by a zero.  */
-  unsigned char operands[8];
-};
-
-/* The table itself is sorted by major opcode number, and is otherwise
-   in the order in which the disassembler should consider
-   instructions.  */
-extern const struct powerpc_opcode powerpc_opcodes[];
-extern const int powerpc_num_opcodes;
-
-/* Values defined for the flags field of a struct powerpc_opcode.  */
-
-/* Opcode is defined for the PowerPC architecture.  */
-#define PPC_OPCODE_PPC			 1
-
-/* Opcode is defined for the POWER (RS/6000) architecture.  */
-#define PPC_OPCODE_POWER		 2
-
-/* Opcode is defined for the POWER2 (Rios 2) architecture.  */
-#define PPC_OPCODE_POWER2		 4
-
-/* Opcode is only defined on 32 bit architectures.  */
-#define PPC_OPCODE_32			 8
-
-/* Opcode is only defined on 64 bit architectures.  */
-#define PPC_OPCODE_64		      0x10
-
-/* Opcode is supported by the Motorola PowerPC 601 processor.  The 601
-   is assumed to support all PowerPC (PPC_OPCODE_PPC) instructions,
-   but it also supports many additional POWER instructions.  */
-#define PPC_OPCODE_601		      0x20
-
-/* Opcode is supported in both the Power and PowerPC architectures
-   (ie, compiler's -mcpu=common or assembler's -mcom).  */
-#define PPC_OPCODE_COMMON	      0x40
-
-/* Opcode is supported for any Power or PowerPC platform (this is
-   for the assembler's -many option, and it eliminates duplicates).  */
-#define PPC_OPCODE_ANY		      0x80
-
-/* Opcode is supported as part of the 64-bit bridge.  */
-#define PPC_OPCODE_64_BRIDGE	     0x100
-
-/* Opcode is supported by Altivec Vector Unit */
-#define PPC_OPCODE_ALTIVEC	     0x200
-
-/* Opcode is supported by PowerPC 403 processor.  */
-#define PPC_OPCODE_403		     0x400
-
-/* Opcode is supported by PowerPC BookE processor.  */
-#define PPC_OPCODE_BOOKE	     0x800
-
-/* Opcode is only supported by 64-bit PowerPC BookE processor.  */
-#define PPC_OPCODE_BOOKE64	    0x1000
-
-/* Opcode is supported by PowerPC 440 processor.  */
-#define PPC_OPCODE_440		    0x2000
-
-/* Opcode is only supported by Power4 architecture.  */
-#define PPC_OPCODE_POWER4	    0x4000
-
-/* Opcode isn't supported by Power4 architecture.  */
-#define PPC_OPCODE_NOPOWER4	    0x8000
-
-/* Opcode is only supported by POWERPC Classic architecture.  */
-#define PPC_OPCODE_CLASSIC	   0x10000
-
-/* Opcode is only supported by e500x2 Core.  */
-#define PPC_OPCODE_SPE		   0x20000
-
-/* Opcode is supported by e500x2 Integer select APU.  */
-#define PPC_OPCODE_ISEL		   0x40000
-
-/* Opcode is an e500 SPE floating point instruction.  */
-#define PPC_OPCODE_EFS		   0x80000
-
-/* Opcode is supported by branch locking APU.  */
-#define PPC_OPCODE_BRLOCK	  0x100000
-
-/* Opcode is supported by performance monitor APU.  */
-#define PPC_OPCODE_PMR		  0x200000
-
-/* Opcode is supported by cache locking APU.  */
-#define PPC_OPCODE_CACHELCK	  0x400000
-
-/* Opcode is supported by machine check APU.  */
-#define PPC_OPCODE_RFMCI	  0x800000
-
-/* Opcode is only supported by Power5 architecture.  */
-#define PPC_OPCODE_POWER5	 0x1000000
-
-/* Opcode is supported by PowerPC e300 family.  */
-#define PPC_OPCODE_E300          0x2000000
-
-/* Opcode is only supported by Power6 architecture.  */
-#define PPC_OPCODE_POWER6	 0x4000000
-
-
-/* A macro to extract the major opcode from an instruction.  */
-#define PPC_OP(i) (((i) >> 26) & 0x3f)
-
-/* The operands table is an array of struct powerpc_operand.  */
-
-struct powerpc_operand
-{
-  /* The number of bits in the operand.  */
-  int bits;
-
-  /* How far the operand is left shifted in the instruction.  */
-  int shift;
-
-  /* Insertion function.  This is used by the assembler.  To insert an
-     operand value into an instruction, check this field.
-
-     If it is NULL, execute
-	 i |= (op & ((1 << o->bits) - 1)) << o->shift;
-     (i is the instruction which we are filling in, o is a pointer to
-     this structure, and op is the opcode value; this assumes twos
-     complement arithmetic).
-
-     If this field is not NULL, then simply call it with the
-     instruction and the operand value.  It will return the new value
-     of the instruction.  If the ERRMSG argument is not NULL, then if
-     the operand value is illegal, *ERRMSG will be set to a warning
-     string (the operand will be inserted in any case).  If the
-     operand value is legal, *ERRMSG will be unchanged (most operands
-     can accept any value).  */
-  unsigned long (*insert)
-    (unsigned long instruction, long op, int dialect, const char **errmsg);
-
-  /* Extraction function.  This is used by the disassembler.  To
-     extract this operand type from an instruction, check this field.
-
-     If it is NULL, compute
-	 op = ((i) >> o->shift) & ((1 << o->bits) - 1);
-	 if ((o->flags & PPC_OPERAND_SIGNED) != 0
-	     && (op & (1 << (o->bits - 1))) != 0)
-	   op -= 1 << o->bits;
-     (i is the instruction, o is a pointer to this structure, and op
-     is the result; this assumes twos complement arithmetic).
-
-     If this field is not NULL, then simply call it with the
-     instruction value.  It will return the value of the operand.  If
-     the INVALID argument is not NULL, *INVALID will be set to
-     non-zero if this operand type can not actually be extracted from
-     this operand (i.e., the instruction does not match).  If the
-     operand is valid, *INVALID will not be changed.  */
-  long (*extract) (unsigned long instruction, int dialect, int *invalid);
-
-  /* One bit syntax flags.  */
-  unsigned long flags;
-};
-
-/* Elements in the table are retrieved by indexing with values from
-   the operands field of the powerpc_opcodes table.  */
-
-extern const struct powerpc_operand powerpc_operands[];
-
-/* Values defined for the flags field of a struct powerpc_operand.  */
-
-/* This operand takes signed values.  */
-#define PPC_OPERAND_SIGNED (01)
-
-/* This operand takes signed values, but also accepts a full positive
-   range of values when running in 32 bit mode.  That is, if bits is
-   16, it takes any value from -0x8000 to 0xffff.  In 64 bit mode,
-   this flag is ignored.  */
-#define PPC_OPERAND_SIGNOPT (02)
-
-/* This operand does not actually exist in the assembler input.  This
-   is used to support extended mnemonics such as mr, for which two
-   operands fields are identical.  The assembler should call the
-   insert function with any op value.  The disassembler should call
-   the extract function, ignore the return value, and check the value
-   placed in the valid argument.  */
-#define PPC_OPERAND_FAKE (04)
-
-/* The next operand should be wrapped in parentheses rather than
-   separated from this one by a comma.  This is used for the load and
-   store instructions which want their operands to look like
-       reg,displacement(reg)
-   */
-#define PPC_OPERAND_PARENS (010)
-
-/* This operand may use the symbolic names for the CR fields, which
-   are
-       lt  0	gt  1	eq  2	so  3	un  3
-       cr0 0	cr1 1	cr2 2	cr3 3
-       cr4 4	cr5 5	cr6 6	cr7 7
-   These may be combined arithmetically, as in cr2*4+gt.  These are
-   only supported on the PowerPC, not the POWER.  */
-#define PPC_OPERAND_CR (020)
-
-/* This operand names a register.  The disassembler uses this to print
-   register names with a leading 'r'.  */
-#define PPC_OPERAND_GPR (040)
-
-/* Like PPC_OPERAND_GPR, but don't print a leading 'r' for r0.  */
-#define PPC_OPERAND_GPR_0 (0100)
-
-/* This operand names a floating point register.  The disassembler
-   prints these with a leading 'f'.  */
-#define PPC_OPERAND_FPR (0200)
-
-/* This operand is a relative branch displacement.  The disassembler
-   prints these symbolically if possible.  */
-#define PPC_OPERAND_RELATIVE (0400)
-
-/* This operand is an absolute branch address.  The disassembler
-   prints these symbolically if possible.  */
-#define PPC_OPERAND_ABSOLUTE (01000)
-
-/* This operand is optional, and is zero if omitted.  This is used for
-   example, in the optional BF field in the comparison instructions.  The
-   assembler must count the number of operands remaining on the line,
-   and the number of operands remaining for the opcode, and decide
-   whether this operand is present or not.  The disassembler should
-   print this operand out only if it is not zero.  */
-#define PPC_OPERAND_OPTIONAL (02000)
-
-/* This flag is only used with PPC_OPERAND_OPTIONAL.  If this operand
-   is omitted, then for the next operand use this operand value plus
-   1, ignoring the next operand field for the opcode.  This wretched
-   hack is needed because the Power rotate instructions can take
-   either 4 or 5 operands.  The disassembler should print this operand
-   out regardless of the PPC_OPERAND_OPTIONAL field.  */
-#define PPC_OPERAND_NEXT (04000)
-
-/* This operand should be regarded as a negative number for the
-   purposes of overflow checking (i.e., the normal most negative
-   number is disallowed and one more than the normal most positive
-   number is allowed).  This flag will only be set for a signed
-   operand.  */
-#define PPC_OPERAND_NEGATIVE (010000)
-
-/* This operand names a vector unit register.  The disassembler
-   prints these with a leading 'v'.  */
-#define PPC_OPERAND_VR (020000)
-
-/* This operand is for the DS field in a DS form instruction.  */
-#define PPC_OPERAND_DS (040000)
-
-/* This operand is for the DQ field in a DQ form instruction.  */
-#define PPC_OPERAND_DQ (0100000)
-
-/* The POWER and PowerPC assemblers use a few macros.  We keep them
-   with the operands table for simplicity.  The macro table is an
-   array of struct powerpc_macro.  */
-
-struct powerpc_macro
-{
-  /* The macro name.  */
-  const char *name;
-
-  /* The number of operands the macro takes.  */
-  unsigned int operands;
-
-  /* One bit flags for the opcode.  These are used to indicate which
-     specific processors support the instructions.  The values are the
-     same as those for the struct powerpc_opcode flags field.  */
-  unsigned long flags;
-
-  /* A format string to turn the macro into a normal instruction.
-     Each %N in the string is replaced with operand number N (zero
-     based).  */
-  const char *format;
-};
-
-extern const struct powerpc_macro powerpc_macros[];
-extern const int powerpc_num_macros;
-
-#endif /* PPC_H */
diff --git a/include/opcode/pyr.h b/include/opcode/pyr.h
deleted file mode 100644
index a523dfd..0000000
--- a/include/opcode/pyr.h
+++ /dev/null
@@ -1,305 +0,0 @@
-/* pyramid.opcode.h -- gdb initial attempt.
-
-   Copyright 2001 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 2, 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., 51 Franklin Street - Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
-   
-/* pyramid opcode table: wot to do with this
-   particular opcode */
-
-struct pyr_datum
-{
-  char              nargs;
-  char *            args;	/* how to compile said opcode */
-  unsigned long     mask;	/* Bit vector: which operand modes are valid
-				   for this opcode */
-  unsigned char     code;	/* op-code (always 6(?) bits */
-};
-
-typedef struct pyr_insn_format
-{
-    unsigned int mode :4;
-    unsigned int operator :8;
-    unsigned int index_scale :2;
-    unsigned int index_reg :6;
-    unsigned int operand_1 :6;
-    unsigned int operand_2:6;
-} pyr_insn_format;
-	
-
-/* We store four bytes of opcode for all opcodes.
-   Pyramid is sufficiently RISCy that:
-      - insns are always an integral number of words;
-      - the length of any insn can be told from the first word of
-        the insn. (ie, if there are zero, one, or two words of
-	immediate operand/offset).
-
-   
-   The args component is a string containing two characters for each
-   operand of the instruction.  The first specifies the kind of operand;
-   the second, the place it is stored. */
-
-/* Kinds of operands:
-   mask	 assembler syntax	description
-   0x0001:  movw Rn,Rn		register to register
-   0x0002:  movw K,Rn		quick immediate to register
-   0x0004:  movw I,Rn		long immediate to register
-   0x0008:  movw (Rn),Rn	register indirect to register
-   	    movw (Rn)[x],Rn	register indirect to register
-   0x0010:  movw I(Rn),Rn	offset register indirect to register
-   	    movw I(Rn)[x],Rn	offset register indirect, indexed, to register
-
-   0x0020:  movw Rn,(Rn)	register to register indirect                
-   0x0040:  movw K,(Rn)		quick immediate to register indirect         
-   0x0080:  movw I,(Rn)		long immediate to register indirect          
-   0x0100:  movw (Rn),(Rn)	register indirect to-register indirect       
-   0x0100:  movw (Rn),(Rn)	register indirect to-register indirect       
-   0x0200:  movw I(Rn),(Rn)	register indirect+offset to register indirect
-   0x0200:  movw I(Rn),(Rn)	register indirect+offset to register indirect
-
-   0x0400:  movw Rn,I(Rn)	register to register indirect+offset
-   0x0800:  movw K,I(Rn)	quick immediate to register indirect+offset
-   0x1000:  movw I,I(Rn)	long immediate to register indirect+offset
-   0x1000:  movw (Rn),I(Rn)	register indirect to-register indirect+offset
-   0x1000:  movw I(Rn),I(Rn)	register indirect+offset to register indirect
-   					+offset
-   0x0000:  (irregular)		???
-   
-
-   Each insn has a four-bit field encoding the type(s) of its operands.
-*/
-
-/* Some common combinations
-   */
-
-/* the first 5,(0x1|0x2|0x4|0x8|0x10) ie (1|2|4|8|16), ie ( 32 -1)*/
-#define GEN_TO_REG (31)
-
-#define	UNKNOWN ((unsigned long)-1)
-#define ANY (GEN_TO_REG | (GEN_TO_REG << 5) | (GEN_TO_REG << 15))
-
-#define CONVERT (1|8|0x10|0x20|0x200)
-
-#define K_TO_REG (2)
-#define I_TO_REG (4)
-#define NOTK_TO_REG (GEN_TO_REG & ~K_TO_REG)
-#define NOTI_TO_REG (GEN_TO_REG & ~I_TO_REG)
-
-/* The assembler requires that this array be sorted as follows:
-   all instances of the same mnemonic must be consecutive.
-   All instances of the same mnemonic with the same number of operands
-   must be consecutive.
- */
-
-struct pyr_opcode		/* pyr opcode text */
-{
-  char *            name;	/* opcode name: lowercase string  [key]  */
-  struct pyr_datum  datum;	/* rest of opcode table          [datum] */
-};
-
-#define pyr_how args
-#define pyr_nargs nargs
-#define pyr_mask mask
-#define pyr_name name
-
-struct pyr_opcode pyr_opcodes[] =
-{
-  {"movb",	{ 2, "", UNKNOWN,		0x11}, },
-  {"movh",	{ 2, "", UNKNOWN,		0x12} },
-  {"movw",	{ 2, "", ANY,			0x10} },
-  {"movl",	{ 2, "", ANY,			0x13} },
-  {"mnegw",	{ 2, "", (0x1|0x8|0x10),	0x14} },
-  {"mnegf",	{ 2, "", 0x1,			0x15} },
-  {"mnegd",	{ 2, "", 0x1,			0x16} },
-  {"mcomw",	{ 2, "", (0x1|0x8|0x10),	0x17} },
-  {"mabsw",	{ 2, "", (0x1|0x8|0x10),	0x18} },
-  {"mabsf",	{ 2, "", 0x1,			0x19} },
-  {"mabsd",	{ 2, "", 0x1,			0x1a} },
-  {"mtstw",	{ 2, "", (0x1|0x8|0x10),	0x1c} },
-  {"mtstf",	{ 2, "", 0x1,			0x1d} },
-  {"mtstd",	{ 2, "", 0x1,			0x1e} },
-  {"mova",	{ 2, "", 0x8|0x10,		0x1f} },
-  {"movzbw",	{ 2, "", (0x1|0x8|0x10),	0x20} },
-  {"movzhw",	{ 2, "", (0x1|0x8|0x10),	0x21} },
-				/* 2 insns out of order here */
-  {"movbl",	{ 2, "", 1,			0x4f} },
-  {"filbl",	{ 2, "", 1,			0x4e} },
-
-  {"cvtbw",	{ 2, "", CONVERT,		0x22} },
-  {"cvthw",	{ 2, "", CONVERT,		0x23} },
-  {"cvtwb",	{ 2, "", CONVERT,		0x24} },
-  {"cvtwh",	{ 2, "", CONVERT,		0x25} },
-  {"cvtwf",	{ 2, "", CONVERT,		0x26} },
-  {"cvtwd",	{ 2, "", CONVERT,		0x27} },
-  {"cvtfw",	{ 2, "", CONVERT,		0x28} },
-  {"cvtfd",	{ 2, "", CONVERT,		0x29} },
-  {"cvtdw",	{ 2, "", CONVERT,		0x2a} },
-  {"cvtdf",	{ 2, "", CONVERT,		0x2b} },
-
-  {"addw",	{ 2, "", GEN_TO_REG,		0x40} },
-  {"addwc",	{ 2, "", GEN_TO_REG,		0x41} },
-  {"subw",	{ 2, "", GEN_TO_REG,		0x42} },
-  {"subwb",	{ 2, "", GEN_TO_REG,		0x43} },
-  {"rsubw",	{ 2, "", GEN_TO_REG,		0x44} },
-  {"mulw",	{ 2, "", GEN_TO_REG,		0x45} },
-  {"emul",	{ 2, "", GEN_TO_REG,		0x47} },
-  {"umulw",	{ 2, "", GEN_TO_REG,		0x46} },
-  {"divw",	{ 2, "", GEN_TO_REG,		0x48} },
-  {"ediv",	{ 2, "", GEN_TO_REG,		0x4a} },
-  {"rdivw",	{ 2, "", GEN_TO_REG,		0x4b} },
-  {"udivw",	{ 2, "", GEN_TO_REG,		0x49} },
-  {"modw",	{ 2, "", GEN_TO_REG,		0x4c} },
-  {"umodw",	{ 2, "", GEN_TO_REG,		0x4d} },
-
-
-  {"addf",	{ 2, "", 1,			0x50} },
-  {"addd",	{ 2, "", 1,			0x51} },
-  {"subf",	{ 2, "", 1,			0x52} },
-  {"subd",	{ 2, "", 1,			0x53} },
-  {"mulf",	{ 2, "", 1,			0x56} },
-  {"muld",	{ 2, "", 1,			0x57} },
-  {"divf",	{ 2, "", 1,			0x58} },
-  {"divd",	{ 2, "", 1,			0x59} },
-
-
-  {"cmpb",	{ 2, "", UNKNOWN,		0x61} },
-  {"cmph",	{ 2, "", UNKNOWN,		0x62} },
-  {"cmpw",	{ 2, "", UNKNOWN,		0x60} },
-  {"ucmpb",	{ 2, "", UNKNOWN,		0x66} },
-  /* WHY no "ucmph"??? */
-  {"ucmpw",	{ 2, "", UNKNOWN,		0x65} },
-  {"xchw",	{ 2, "", UNKNOWN,		0x0f} },
-
-
-  {"andw",	{ 2, "", GEN_TO_REG,		0x30} },
-  {"orw",	{ 2, "", GEN_TO_REG,		0x31} },
-  {"xorw",	{ 2, "", GEN_TO_REG,		0x32} },
-  {"bicw",	{ 2, "", GEN_TO_REG,		0x33} },
-  {"lshlw",	{ 2, "", GEN_TO_REG,		0x38} },
-  {"ashlw",	{ 2, "", GEN_TO_REG,		0x3a} },
-  {"ashll",	{ 2, "", GEN_TO_REG,		0x3c} },
-  {"ashrw",	{ 2, "", GEN_TO_REG,		0x3b} },
-  {"ashrl",	{ 2, "", GEN_TO_REG,		0x3d} },
-  {"rotlw",	{ 2, "", GEN_TO_REG,		0x3e} },
-  {"rotrw",	{ 2, "", GEN_TO_REG,		0x3f} },
-
-  /* push and pop insns are "going away next release". */
-  {"pushw",	{ 2, "", GEN_TO_REG,		0x0c} },
-  {"popw",	{ 2, "", (0x1|0x8|0x10),	0x0d} },
-  {"pusha",	{ 2, "", (0x8|0x10),		0x0e} },
-
-  {"bitsw",	{ 2, "", UNKNOWN,		0x35} },
-  {"bitcw",	{ 2, "", UNKNOWN,		0x36} },
-  /* some kind of ibra/dbra insns??*/
-  {"icmpw",	{ 2, "", UNKNOWN,		0x67} },
-  {"dcmpw",	{ 2, "", (1|4|0x20|0x80|0x400|0x1000),	0x69} },/*FIXME*/
-  {"acmpw",	{ 2, "", 1,			0x6b} },
-
-  /* Call is written as a 1-op insn, but is always (dis)assembled as a 2-op
-     insn with a 2nd op of tr14.   The assembler will have to grok this.  */
-  {"call",	{ 2, "", GEN_TO_REG,		0x04} },
-  {"call",	{ 1, "", GEN_TO_REG,		0x04} },
-
-  {"callk",	{ 1, "", UNKNOWN,		0x06} },/* system call?*/
-  /* Ret is usually written as a 0-op insn, but gets disassembled as a
-     1-op insn. The operand is always tr15. */
-  {"ret",	{ 0, "", UNKNOWN,		0x09} },
-  {"ret",	{ 1, "", UNKNOWN,		0x09} },
-  {"adsf",	{ 2, "", (1|2|4),		0x08} },
-  {"retd",	{ 2, "", UNKNOWN,		0x0a} },
-  {"btc",	{ 2, "", UNKNOWN,		0x01} },
-  {"bfc",	{ 2, "", UNKNOWN,		0x02} },
-  /* Careful: halt is 0x00000000. Jump must have some other (mode?)bit set?? */
-  {"jump",	{ 1, "", UNKNOWN,		0x00} },
-  {"btp",	{ 2, "", UNKNOWN,		0xf00} },
-  /* read control-stack pointer is another 1-or-2 operand insn. */
-  {"rcsp",	{ 2, "", UNKNOWN,		0x01f} },
-  {"rcsp",	{ 1, "", UNKNOWN,		0x01f} }
-};
-
-/* end: pyramid.opcode.h */
-/* One day I will have to take the time to find out what operands
-   are valid for these insns, and guess at what they mean.
-
-   I can't imagine what the "I???" insns (iglob, etc) do.
-
-   the arithmetic-sounding insns ending in "p" sound awfully like BCD
-   arithmetic insns:
-   	dshlp -> Decimal SHift Left Packed
-	dshrp -> Decimal SHift Right Packed
-   and cvtlp would be convert long to packed.
-   I have no idea how the operands are interpreted; but having them be
-   a long register with (address, length) of an in-memory packed BCD operand
-   would not be surprising.
-   They are unlikely to be a packed bcd string: 64 bits of long give
-   is only 15 digits+sign, which isn't enough for COBOL.
- */ 
-#if 0
-  {"wcsp",	{ 2, "", UNKNOWN,		0x00} }, /*write csp?*/
-  /* The OSx Operating System Porting Guide claims SSL does things
-     with tr12 (a register reserved to it) to do with static block-structure
-     references.  SSL=Set Static Link?  It's "Going away next release". */
-  {"ssl",	{ 2, "", UNKNOWN,		0x00} },
-  {"ccmps",	{ 2, "", UNKNOWN,		0x00} },
-  {"lcd",	{ 2, "", UNKNOWN,		0x00} },
-  {"uemul",	{ 2, "", UNKNOWN,		0x00} }, /*unsigned emul*/
-  {"srf",	{ 2, "", UNKNOWN,		0x00} }, /*Gidget time???*/
-  {"mnegp",	{ 2, "", UNKNOWN,		0x00} }, /move-neg phys?*/
-  {"ldp",	{ 2, "", UNKNOWN,		0x00} }, /*load phys?*/
-  {"ldti",	{ 2, "", UNKNOWN,		0x00} },
-  {"ldb",	{ 2, "", UNKNOWN,		0x00} },
-  {"stp",	{ 2, "", UNKNOWN,		0x00} },
-  {"stti",	{ 2, "", UNKNOWN,		0x00} },
-  {"stb",	{ 2, "", UNKNOWN,		0x00} },
-  {"stu",	{ 2, "", UNKNOWN,		0x00} },
-  {"addp",	{ 2, "", UNKNOWN,		0x00} },
-  {"subp",	{ 2, "", UNKNOWN,		0x00} },
-  {"mulp",	{ 2, "", UNKNOWN,		0x00} },
-  {"divp",	{ 2, "", UNKNOWN,		0x00} },
-  {"dshlp",	{ 2, "", UNKNOWN,		0x00} },  /* dec shl packed? */
-  {"dshrp",	{ 2, "", UNKNOWN,		0x00} }, /* dec shr packed? */
-  {"movs",	{ 2, "", UNKNOWN,		0x00} }, /*move (string?)?*/
-  {"cmpp",	{ 2, "", UNKNOWN,		0x00} }, /* cmp phys?*/
-  {"cmps",	{ 2, "", UNKNOWN,		0x00} }, /* cmp (string?)?*/
-  {"cvtlp",	{ 2, "", UNKNOWN,		0x00} }, /* cvt long to p??*/
-  {"cvtpl",	{ 2, "", UNKNOWN,		0x00} }, /* cvt p to l??*/
-  {"dintr",	{ 2, "", UNKNOWN,		0x00} }, /* ?? intr ?*/
-  {"rphysw",	{ 2, "", UNKNOWN,		0x00} }, /* read phys word?*/
-  {"wphysw",	{ 2, "", UNKNOWN,		0x00} }, /* write phys word?*/
-  {"cmovs",	{ 2, "", UNKNOWN,		0x00} },
-  {"rsubw",	{ 2, "", UNKNOWN,		0x00} },
-  {"bicpsw",	{ 2, "", UNKNOWN,		0x00} }, /* clr bit in psw? */
-  {"bispsw",	{ 2, "", UNKNOWN,		0x00} }, /* set bit in psw? */
-  {"eio",	{ 2, "", UNKNOWN,		0x00} }, /* ?? ?io ? */
-  {"callp",	{ 2, "", UNKNOWN,		0x00} }, /* call phys?*/
-  {"callr",	{ 2, "", UNKNOWN,		0x00} },
-  {"lpcxt",	{ 2, "", UNKNOWN,		0x00} }, /*load proc context*/
-  {"rei",	{ 2, "", UNKNOWN,		0x00} }, /*ret from intrpt*/
-  {"rport",	{ 2, "", UNKNOWN,		0x00} }, /*read-port?*/
-  {"rtod",	{ 2, "", UNKNOWN,		0x00} }, /*read-time-of-day?*/
-  {"ssi",	{ 2, "", UNKNOWN,		0x00} },
-  {"vtpa",	{ 2, "", UNKNOWN,		0x00} }, /*virt-to-phys-addr?*/
-  {"wicl",	{ 2, "", UNKNOWN,		0x00} }, /* write icl ? */
-  {"wport",	{ 2, "", UNKNOWN,		0x00} }, /*write-port?*/
-  {"wtod",	{ 2, "", UNKNOWN,		0x00} }, /*write-time-of-day?*/
-  {"flic",	{ 2, "", UNKNOWN,		0x00} },
-  {"iglob",	{ 2, "", UNKNOWN,		0x00} }, /* I global? */
-  {"iphys",	{ 2, "", UNKNOWN,		0x00} }, /* I physical? */
-  {"ipid",	{ 2, "", UNKNOWN,		0x00} }, /* I pid? */
-  {"ivect",	{ 2, "", UNKNOWN,		0x00} }, /* I vector? */
-  {"lamst",	{ 2, "", UNKNOWN,		0x00} },
-  {"tio",	{ 2, "", UNKNOWN,		0x00} },
-#endif
diff --git a/include/opcode/s390.h b/include/opcode/s390.h
deleted file mode 100644
index 7bb30de..0000000
--- a/include/opcode/s390.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/* s390.h -- Header file for S390 opcode table
-   Copyright 2000, 2001, 2003 Free Software Foundation, Inc.
-   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA
-   02110-1301, USA.  */
-
-#ifndef S390_H
-#define S390_H
-
-/* List of instruction sets variations. */
-
-enum s390_opcode_mode_val
-  {
-    S390_OPCODE_ESA = 0,
-    S390_OPCODE_ZARCH
-  };
-
-enum s390_opcode_cpu_val
-  {
-    S390_OPCODE_G5 = 0,
-    S390_OPCODE_G6,
-    S390_OPCODE_Z900,
-    S390_OPCODE_Z990,
-    S390_OPCODE_Z9_109
-  };
-
-/* The opcode table is an array of struct s390_opcode.  */
-
-struct s390_opcode
-  {
-    /* The opcode name.  */
-    const char * name;
-
-    /* The opcode itself.  Those bits which will be filled in with
-       operands are zeroes.  */
-    unsigned char opcode[6];
-
-    /* The opcode mask.  This is used by the disassembler.  This is a
-       mask containing ones indicating those bits which must match the
-       opcode field, and zeroes indicating those bits which need not
-       match (and are presumably filled in by operands).  */
-    unsigned char mask[6];
-
-    /* The opcode length in bytes. */
-    int oplen;
-
-    /* An array of operand codes.  Each code is an index into the
-       operand table.  They appear in the order which the operands must
-       appear in assembly code, and are terminated by a zero.  */
-    unsigned char operands[6];
-
-    /* Bitmask of execution modes this opcode is available for.  */
-    unsigned int modes;
-
-    /* First cpu this opcode is available for.  */
-    enum s390_opcode_cpu_val min_cpu;
-  };
-
-/* The table itself is sorted by major opcode number, and is otherwise
-   in the order in which the disassembler should consider
-   instructions.  */
-extern const struct s390_opcode s390_opcodes[];
-extern const int                s390_num_opcodes;
-
-/* A opcode format table for the .insn pseudo mnemonic.  */
-extern const struct s390_opcode s390_opformats[];
-extern const int                s390_num_opformats;
-
-/* Values defined for the flags field of a struct powerpc_opcode.  */
-
-/* The operands table is an array of struct s390_operand.  */
-
-struct s390_operand
-  {
-    /* The number of bits in the operand.  */
-    int bits;
-
-    /* How far the operand is left shifted in the instruction.  */
-    int shift;
-
-    /* One bit syntax flags.  */
-    unsigned long flags;
-  };
-
-/* Elements in the table are retrieved by indexing with values from
-   the operands field of the powerpc_opcodes table.  */
-
-extern const struct s390_operand s390_operands[];
-
-/* Values defined for the flags field of a struct s390_operand.  */
-
-/* This operand names a register.  The disassembler uses this to print
-   register names with a leading 'r'.  */
-#define S390_OPERAND_GPR 0x1
-
-/* This operand names a floating point register.  The disassembler
-   prints these with a leading 'f'. */
-#define S390_OPERAND_FPR 0x2
-
-/* This operand names an access register.  The disassembler
-   prints these with a leading 'a'.  */
-#define S390_OPERAND_AR 0x4
-
-/* This operand names a control register.  The disassembler
-   prints these with a leading 'c'.  */
-#define S390_OPERAND_CR 0x8
-
-/* This operand is a displacement.  */
-#define S390_OPERAND_DISP 0x10
-
-/* This operand names a base register.  */
-#define S390_OPERAND_BASE 0x20
-
-/* This operand names an index register, it can be skipped.  */
-#define S390_OPERAND_INDEX 0x40
-
-/* This operand is a relative branch displacement.  The disassembler
-   prints these symbolically if possible.  */
-#define S390_OPERAND_PCREL 0x80
-
-/* This operand takes signed values.  */
-#define S390_OPERAND_SIGNED 0x100
-
-/* This operand is a length.  */
-#define S390_OPERAND_LENGTH 0x200
-
-/* This operand is optional. Only a single operand at the end of
-   the instruction may be optional.  */
-#define S390_OPERAND_OPTIONAL 0x400
-
-	#endif /* S390_H */
diff --git a/include/opcode/sparc.h b/include/opcode/sparc.h
deleted file mode 100644
index 9e238be..0000000
--- a/include/opcode/sparc.h
+++ /dev/null
@@ -1,237 +0,0 @@
-/* Definitions for opcode table for the sparc.
-   Copyright 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2000, 2002,
-   2003, 2005 Free Software Foundation, Inc.
-
-   This file is part of GAS, the GNU Assembler, GDB, the GNU debugger, and
-   the GNU Binutils.
-
-   GAS/GDB 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.
-
-   GAS/GDB 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 GAS or GDB; see the file COPYING.	If not, write to
-   the Free Software Foundation, 51 Franklin Street - Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
-
-#include "ansidecl.h"
-
-/* The SPARC opcode table (and other related data) is defined in
-   the opcodes library in sparc-opc.c.  If you change anything here, make
-   sure you fix up that file, and vice versa.  */
-
- /* 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. */
-
-/* List of instruction sets variations.
-   These values are such that each element is either a superset of a
-   preceding each one or they conflict in which case SPARC_OPCODE_CONFLICT_P
-   returns non-zero.
-   The values are indices into `sparc_opcode_archs' defined in sparc-opc.c.
-   Don't change this without updating sparc-opc.c.  */
-
-enum sparc_opcode_arch_val
-{
-  SPARC_OPCODE_ARCH_V6 = 0,
-  SPARC_OPCODE_ARCH_V7,
-  SPARC_OPCODE_ARCH_V8,
-  SPARC_OPCODE_ARCH_SPARCLET,
-  SPARC_OPCODE_ARCH_SPARCLITE,
-  /* V9 variants must appear last.  */
-  SPARC_OPCODE_ARCH_V9,
-  SPARC_OPCODE_ARCH_V9A, /* V9 with ultrasparc additions.  */
-  SPARC_OPCODE_ARCH_V9B, /* V9 with ultrasparc and cheetah additions.  */
-  SPARC_OPCODE_ARCH_BAD  /* Error return from sparc_opcode_lookup_arch.  */
-};
-
-/* The highest architecture in the table.  */
-#define SPARC_OPCODE_ARCH_MAX (SPARC_OPCODE_ARCH_BAD - 1)
-
-/* Given an enum sparc_opcode_arch_val, return the bitmask to use in
-   insn encoding/decoding.  */
-#define SPARC_OPCODE_ARCH_MASK(arch) (1 << (arch))
-
-/* Given a valid sparc_opcode_arch_val, return non-zero if it's v9.  */
-#define SPARC_OPCODE_ARCH_V9_P(arch) ((arch) >= SPARC_OPCODE_ARCH_V9)
-
-/* Table of cpu variants.  */
-
-typedef struct sparc_opcode_arch
-{
-  const char *name;
-  /* Mask of sparc_opcode_arch_val's supported.
-     EG: For v7 this would be
-     (SPARC_OPCODE_ARCH_MASK (..._V6) | SPARC_OPCODE_ARCH_MASK (..._V7)).
-     These are short's because sparc_opcode.architecture is.  */
-  short supported;
-} sparc_opcode_arch;
-
-extern const struct sparc_opcode_arch sparc_opcode_archs[];
-
-/* Given architecture name, look up it's sparc_opcode_arch_val value.  */
-extern enum sparc_opcode_arch_val sparc_opcode_lookup_arch (const char *);
-
-/* Return the bitmask of supported architectures for ARCH.  */
-#define SPARC_OPCODE_SUPPORTED(ARCH) (sparc_opcode_archs[ARCH].supported)
-
-/* Non-zero if ARCH1 conflicts with ARCH2.
-   IE: ARCH1 as a supported bit set that ARCH2 doesn't, and vice versa.  */
-#define SPARC_OPCODE_CONFLICT_P(ARCH1, ARCH2) \
- (((SPARC_OPCODE_SUPPORTED (ARCH1) & SPARC_OPCODE_SUPPORTED (ARCH2)) \
-   != SPARC_OPCODE_SUPPORTED (ARCH1)) \
-  && ((SPARC_OPCODE_SUPPORTED (ARCH1) & SPARC_OPCODE_SUPPORTED (ARCH2)) \
-     != SPARC_OPCODE_SUPPORTED (ARCH2)))
-
-/* Structure of an opcode table entry.  */
-
-typedef struct sparc_opcode
-{
-  const char *name;
-  unsigned long match;	/* Bits that must be set.  */
-  unsigned long lose;	/* Bits that must not be set.  */
-  const char *args;
-  /* This was called "delayed" in versions before the flags.  */
-  char flags;
-  short architecture;	/* Bitmask of sparc_opcode_arch_val's.  */
-} sparc_opcode;
-
-#define	F_DELAYED	1	/* Delayed branch.  */
-#define	F_ALIAS		2	/* Alias for a "real" instruction.  */
-#define	F_UNBR		4	/* Unconditional branch.  */
-#define	F_CONDBR	8	/* Conditional branch.  */
-#define	F_JSR		16	/* Subroutine call.  */
-#define F_FLOAT		32	/* Floating point instruction (not a branch).  */
-#define F_FBR		64	/* Floating point branch.  */
-/* FIXME: Add F_ANACHRONISTIC flag for v9.  */
-
-/* All sparc opcodes are 32 bits, except for the `set' instruction (really a
-   macro), which is 64 bits. It is handled as a special case.
-
-   The match component is a mask saying which bits must match a particular
-   opcode in order for an instruction to be an instance of that opcode.
-
-   The args component is a string containing one character for each operand of the
-   instruction.
-
-   Kinds of operands:
-	#	Number used by optimizer.	It is ignored.
-	1	rs1 register.
-	2	rs2 register.
-	d	rd register.
-	e	frs1 floating point register.
-	v	frs1 floating point register (double/even).
-	V	frs1 floating point register (quad/multiple of 4).
-	f	frs2 floating point register.
-	B	frs2 floating point register (double/even).
-	R	frs2 floating point register (quad/multiple of 4).
-	g	frsd floating point register.
-	H	frsd floating point register (double/even).
-	J	frsd floating point register (quad/multiple of 4).
-	b	crs1 coprocessor register
-	c	crs2 coprocessor register
-	D	crsd coprocessor register
-	m	alternate space register (asr) in rd
-	M	alternate space register (asr) in rs1
-	h	22 high bits.
-	X	5 bit unsigned immediate
-	Y	6 bit unsigned immediate
-	3	SIAM mode (3 bits). (v9b)
-	K	MEMBAR mask (7 bits). (v9)
-	j	10 bit Immediate. (v9)
-	I	11 bit Immediate. (v9)
-	i	13 bit Immediate.
-	n	22 bit immediate.
-	k	2+14 bit PC relative immediate. (v9)
-	G	19 bit PC relative immediate. (v9)
-	l	22 bit PC relative immediate.
-	L	30 bit PC relative immediate.
-	a	Annul.	The annul bit is set.
-	A	Alternate address space. Stored as 8 bits.
-	C	Coprocessor state register.
-	F	floating point state register.
-	p	Processor state register.
-	N	Branch predict clear ",pn" (v9)
-	T	Branch predict set ",pt" (v9)
-	z	%icc. (v9)
-	Z	%xcc. (v9)
-	q	Floating point queue.
-	r	Single register that is both rs1 and rd.
-	O	Single register that is both rs2 and rd.
-	Q	Coprocessor queue.
-	S	Special case.
-	t	Trap base register.
-	w	Window invalid mask register.
-	y	Y register.
-	u	sparclet coprocessor registers in rd position
-	U	sparclet coprocessor registers in rs1 position
-	E	%ccr. (v9)
-	s	%fprs. (v9)
-	P	%pc.  (v9)
-	W	%tick.	(v9)
-	o	%asi. (v9)
-	6	%fcc0. (v9)
-	7	%fcc1. (v9)
-	8	%fcc2. (v9)
-	9	%fcc3. (v9)
-	!	Privileged Register in rd (v9)
-	?	Privileged Register in rs1 (v9)
-	*	Prefetch function constant. (v9)
-	x	OPF field (v9 impdep).
-	0	32/64 bit immediate for set or setx (v9) insns
-	_	Ancillary state register in rd (v9a)
-	/	Ancillary state register in rs1 (v9a)
-
-  The following chars are unused: (note: ,[] are used as punctuation)
-  [45].  */
-
-#define OP2(x)		(((x) & 0x7) << 22)  /* Op2 field of format2 insns.  */
-#define OP3(x)		(((x) & 0x3f) << 19) /* Op3 field of format3 insns.  */
-#define OP(x)		((unsigned) ((x) & 0x3) << 30) /* Op field of all insns.  */
-#define OPF(x)		(((x) & 0x1ff) << 5) /* Opf field of float insns.  */
-#define OPF_LOW5(x)	OPF ((x) & 0x1f)     /* V9.  */
-#define F3F(x, y, z)	(OP (x) | OP3 (y) | OPF (z)) /* Format3 float insns.  */
-#define F3I(x)		(((x) & 0x1) << 13)  /* Immediate field of format 3 insns.  */
-#define F2(x, y)	(OP (x) | OP2(y))    /* Format 2 insns.  */
-#define F3(x, y, z)	(OP (x) | OP3(y) | F3I(z)) /* Format3 insns.  */
-#define F1(x)		(OP (x))
-#define DISP30(x)	((x) & 0x3fffffff)
-#define ASI(x)		(((x) & 0xff) << 5)  /* Asi field of format3 insns.  */
-#define RS2(x)		((x) & 0x1f)         /* Rs2 field.  */
-#define SIMM13(x)	((x) & 0x1fff)       /* Simm13 field.  */
-#define RD(x)		(((x) & 0x1f) << 25) /* Destination register field.  */
-#define RS1(x)		(((x) & 0x1f) << 14) /* Rs1 field.  */
-#define ASI_RS2(x)	(SIMM13 (x))
-#define MEMBAR(x)	((x) & 0x7f)
-#define SLCPOP(x)	(((x) & 0x7f) << 6)  /* Sparclet cpop.  */
-
-#define ANNUL	(1 << 29)
-#define BPRED	(1 << 19)	/* V9.  */
-#define	IMMED	F3I (1)
-#define RD_G0	RD (~0)
-#define	RS1_G0	RS1 (~0)
-#define	RS2_G0	RS2 (~0)
-
-extern const struct sparc_opcode sparc_opcodes[];
-extern const int sparc_num_opcodes;
-
-extern int sparc_encode_asi (const char *);
-extern const char *sparc_decode_asi (int);
-extern int sparc_encode_membar (const char *);
-extern const char *sparc_decode_membar (int);
-extern int sparc_encode_prefetch (const char *);
-extern const char *sparc_decode_prefetch (int);
-extern int sparc_encode_sparclet_cpreg (const char *);
-extern const char *sparc_decode_sparclet_cpreg (int);
-
-/* Local Variables:
-   fill-column: 131
-   comment-column: 0
-   End: */
-
diff --git a/include/opcode/tahoe.h b/include/opcode/tahoe.h
deleted file mode 100644
index b5cee24..0000000
--- a/include/opcode/tahoe.h
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * Ported by the State University of New York at Buffalo by the Distributed
- * Computer Systems Lab, Department of Computer Science, 1991.
- */
-
-#ifndef tahoe_opcodeT
-#define tahoe_opcodeT int
-#endif /* no tahoe_opcodeT */
-
-struct vot_wot                  /* tahoe opcode table: wot to do with this */
-                                /* particular opcode */
-{
-  char *            args;       /* how to compile said opcode */
-  tahoe_opcodeT       code;     /* op-code (may be > 8 bits!) */
-};
-
-struct vot                      /* tahoe opcode text */
-{
-  char *            name;       /* opcode name: lowercase string  [key]  */
-  struct vot_wot    detail;     /* rest of opcode table          [datum] */
-};
-
-#define vot_how args
-#define vot_code code
-#define vot_detail detail
-#define vot_name name
-
-static struct vot
-votstrs[] =
-{
-{    "halt",	{"",			0x00	} },
-{    "sinf",    {"",                    0x05    } },
-{    "ldf",     {"rl",                  0x06    } },
-{    "ldd",     {"rq",                  0x07    } },
-{    "addb2",	{"rbmb",		0x08	} },
-{    "movb",	{"rbwb",		0x09	} },
-{    "addw2",	{"rwmw",		0x0a	} },
-{    "movw",	{"rwww",		0x0b	} },
-{    "addl2",	{"rlml",		0x0c	} },
-{    "movl",	{"rlwl",		0x0d	} },
-{    "bbs",	{"rlvlbw",		0x0e	} },
-{    "nop",     {"",                    0x10    } },
-{    "brb",	{"bb",			0x11	} },
-{    "brw",	{"bw",			0x13	} },
-{    "cosf",    {"",                    0x15    } },
-{    "lnf",     {"rl",                  0x16    } },
-{    "lnd",     {"rq",                  0x17    } },
-{    "addb3",	{"rbrbwb",		0x18	} },
-{    "cmpb",	{"rbwb",		0x19	} }, 
-{    "addw3",	{"rwrwww",		0x1a	} },
-{    "cmpw",	{"rwww",		0x1b	} },
-{    "addl3",	{"rlrlwl",		0x1c	} },
-{    "cmpl",	{"rlwl",		0x1d	} },
-{    "bbc",	{"rlvlbw",		0x1e	} },
-{    "rei",	{"",			0x20	} },
-{    "bneq",	{"bb",			0x21	} },
-{    "bnequ",	{"bb",			0x21	} },
-{    "cvtwl",	{"rwwl",		0x23	} },
-{    "stf",     {"wl",                  0x26    } },
-{    "std",     {"wq",                  0x27    } },
-{    "subb2",	{"rbmb",		0x28	} },
-{    "mcomb",	{"rbwb",		0x29	} },
-{    "subw2",	{"rwmw",		0x2a	} },
-{    "mcomw",	{"rwww",		0x2b	} },
-{    "subl2",   {"rlml",                0x2c    } },
-{    "mcoml",   {"rlwl",                0x2d    } },
-{    "emul",	{"rlrlrlwq",		0x2e	} },
-{    "aoblss",	{"rlmlbw",		0x2f	} },
-{    "bpt",	{"",			0x30	} },
-{    "beql",	{"bb",			0x31	} },
-{    "beqlu",	{"bb",			0x31	} },
-{    "cvtwb",	{"rwwb",		0x33	} },
-{    "logf",    {"",                    0x35    } },
-{    "cmpf",    {"rl",                  0x36    } },
-{    "cmpd",    {"rq",                  0x37    } },
-{    "subb3",	{"rbrbwb",		0x38	} },
-{    "bitb",	{"rbrb",		0x39	} },
-{    "subw3",	{"rwrwww",		0x3a	} },
-{    "bitw",	{"rwrw",		0x3b	} },
-{    "subl3",	{"rlrlwl",		0x3c	} },
-{    "bitl",	{"rlrl",		0x3d	} },
-{    "ediv",	{"rlrqwlwl",		0x3e	} },
-{    "aobleq",	{"rlmlbw",		0x3f	} },
-{    "ret",	{"",			0x40	} },
-{    "bgtr",	{"bb",			0x41	} },
-{    "sqrtf",   {"",                    0x45    } },
-{    "cmpf2",   {"rl",                  0x46    } },
-{    "cmpd2",   {"rqrq",                0x47    } },
-{    "shll",    {"rbrlwl",              0x48    } },
-{    "clrb",	{"wb",			0x49	} },
-{    "shlq",	{"rbrqwq",		0x4a	} },
-{    "clrw",	{"ww",			0x4b	} },
-{    "mull2",	{"rlml",		0x4c	} },
-{    "clrl",	{"wl",			0x4d	} },
-{    "shal",    {"rbrlwl",		0x4e	} },
-{    "bleq",	{"bb",			0x51	} },
-{    "expf",    {"",                    0x55    } },
-{    "tstf",    {"",                    0x56    } },
-{    "tstd",    {"",                    0x57    } },
-{    "shrl",    {"rbrlwl",		0x58	} },
-{    "tstb",	{"rb",			0x59	} },
-{    "shrq",    {"rbrqwq",		0x5a	} },
-{    "tstw",	{"rw",			0x5b	} },
-{    "mull3",	{"rlrlwl",		0x5c	} },
-{    "tstl",	{"rl",			0x5d	} },
-{    "shar",	{"rbrlwl",		0x5e	} },
-{    "bbssi",	{"rlmlbw",		0x5f	} },
-{    "ldpctx",	{"",			0x60	} },
-{    "pushd",   {"",                    0x67    } },
-{    "incb",	{"mb",			0x69	} },
-{    "incw",	{"mw",			0x6b	} },
-{    "divl2",	{"rlml",		0x6c	} },
-{    "incl",	{"ml",			0x6d	} },
-{    "cvtlb",	{"rlwb",		0x6f	} },
-{    "svpctx",	{"",			0x70	} },
-{    "jmp",	{"ab",			0x71	} },
-{    "cvlf",    {"rl",                  0x76    } },
-{    "cvld",    {"rl",                  0x77    } },
-{    "decb",	{"mb",			0x79	} },
-{    "decw",	{"mw",			0x7b	} },
-{    "divl3",	{"rlrlwl",		0x7c	} },
-{    "decl",	{"ml",			0x7d	} },
-{    "cvtlw",	{"rlww",		0x7f	} },
-{    "bgeq",	{"bb",			0x81	} },
-{    "movs2",	{"abab",		0x82	} },
-{    "cvfl",    {"wl",                  0x86    } },
-{    "cvdl",    {"wl",                  0x87    } },
-{    "orb2",	{"rbmb",		0x88	} },
-{    "cvtbl",	{"rbwl",		0x89	} },
-{    "orw2",	{"rwmw",		0x8a	} },
-{    "bispsw",	{"rw",			0x8b	} },
-{    "orl2",    {"rlml",                0x8c    } },
-{    "adwc",	{"rlml",		0x8d	} },
-{    "adda", 	{"rlml",		0x8e	} },
-{    "blss",	{"bb",			0x91	} },
-{    "cmps2",   {"abab",		0x92	} },
-{    "ldfd",    {"rl",                  0x97    } },
-{    "orb3",	{"rbrbwb",		0x98	} },
-{    "cvtbw",	{"rbww",		0x99	} },
-{    "orw3",   	{"rwrwww",		0x9a	} },
-{    "bicpsw",	{"rw",			0x9b	} },
-{    "orl3",    {"rlrlwl",              0x9c    } },
-{    "sbwc",	{"rlml",		0x9d	} },
-{    "suba",    {"rlml",                0x9e    } },
-{    "bgtru",	{"bb",			0xa1	} },
-{    "cvdf",    {"",                    0xa6    } },
-{    "andb2",   {"rbmb",		0xa8    } },
-{    "movzbl",	{"rbwl",		0xa9	} },
-{    "andw2",   {"rwmw",		0xaa    } },
-{    "loadr",   {"rwal",		0xab	} },
-{    "andl2",   {"rlml",		0xac    } },
-{    "mtpr",	{"rlrl",		0xad	} },
-{    "ffs",	{"rlwl",		0xae	} },
-{    "blequ",	{"bb",			0xb1	} },
-{    "negf",    {"",                    0xb6    } },
-{    "negd",    {"",                    0xb7    } },
-{    "andb3",   {"rbrbwb",              0xb8    } },
-{    "movzbw",	{"rbww",		0xb9	} },
-{    "andw3",   {"rwrwww",		0xba    } },
-{    "storer",  {"rwal",                0xbb    } },
-{    "andl3",   {"rlrlwl",		0xbc    } },
-{    "mfpr",	{"rlwl",		0xbd	} },
-{    "ffc",	{"rlwl",		0xbe	} },
-{    "calls",	{"rbab",		0xbf	} },
-{    "prober",	{"rbabrl",		0xc0	} },
-{    "bvc",	{"bb",			0xc1	} },
-{    "movs3",	{"ababrw",		0xc2	} },
-{    "movzwl",	{"rwwl",		0xc3	} },
-{    "addf",    {"rl",                  0xc6    } },
-{    "addd",    {"rq",                  0xc7    } },
-{    "xorb2",   {"rbmb",                0xc8    } },
-{    "movob",   {"rbwb",                0xc9    } },
-{    "xorw2",   {"rwmw",                0xca    } },
-{    "movow",   {"rwww",                0xcb	} },
-{    "xorl2",	{"rlml",                0xcc    } },
-{    "movpsl",  {"wl",                  0xcd    } },
-{    "kcall",   {"rw",			0xcf	} },
-{    "probew",  {"rbabrl",		0xd0	} },
-{    "bvs",     {"bb",			0xd1	} },
-{    "cmps3",   {"ababrw",		0xd2	} },
-{    "subf",    {"rq",                  0xd6    } },
-{    "subd",    {"rq",                  0xd7    } },
-{    "xorb3",	{"rbrbwb",		0xd8	} },
-{    "pushb",   {"rb",			0xd9	} },
-{    "xorw3",	{"rwrwww",		0xda	} },
-{    "pushw",   {"rw", 			0xdb	} },
-{    "xorl3",	{"rlrlwl",		0xdc	} },
-{    "pushl",	{"rl",			0xdd	} },
-{    "insque",	{"abab",		0xe0	} },
-{    "bcs",	{"bb",			0xe1	} },
-{    "bgequ",	{"bb",			0xe1	} },
-{    "mulf",    {"rq",                  0xe6    } },
-{    "muld",    {"rq",                  0xe7    } },
-{    "mnegb",	{"rbwb",		0xe8	} },
-{    "movab",	{"abwl",		0xe9	} },
-{    "mnegw",	{"rwww",		0xea	} },
-{    "movaw",	{"awwl",		0xeb	} },
-{    "mnegl",	{"rlwl",		0xec	} },
-{    "moval",	{"alwl",		0xed	} },
-{    "remque",	{"ab",  		0xf0	} },
-{    "bcc",	{"bb",			0xf1	} },
-{    "blssu",	{"bb",			0xf1	} },
-{    "divf",    {"rq",                  0xf6    } },
-{    "divd",    {"rq",                  0xf7    } },
-{    "movblk",  {"alalrw",              0xf8	} },
-{    "pushab",	{"ab",			0xf9	} },
-{    "pushaw",	{"aw",			0xfb	} },
-{    "casel",	{"rlrlrl",		0xfc	} },
-{    "pushal",	{"al",			0xfd	} },
-{    "callf",	{"rbab",		0xfe	} },
-{      ""       ,   ""          } /* empty is end sentinel */
-
-};
diff --git a/include/opcode/tic30.h b/include/opcode/tic30.h
deleted file mode 100644
index 198e04e..0000000
--- a/include/opcode/tic30.h
+++ /dev/null
@@ -1,691 +0,0 @@
-/* tic30.h -- Header file for TI TMS320C30 opcode table
-   Copyright 1998 Free Software Foundation, Inc.
-   Contributed by Steven Haworth (steve@pm.cse.rmit.edu.au)
-
-This file is part of GDB, GAS, and the GNU binutils.
-
-GDB, GAS, and the GNU binutils are free software; you can redistribute
-them and/or modify them 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.
-
-GDB, GAS, and the GNU binutils are distributed in the hope that they
-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 file; see the file COPYING.  If not, write to the Free
-Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
-02110-1301, USA.  */
-
-/* FIXME: The opcode table should be in opcodes/tic30-opc.c, not in a
-   header file.  */
-
-#ifndef _TMS320_H_
-#define _TMS320_H_
-
-struct _register
-{
-  char *name;
-  unsigned char opcode;
-  unsigned char regtype;
-};
-
-typedef struct _register reg;
-
-#define REG_Rn    0x01
-#define REG_ARn   0x02
-#define REG_DP    0x03
-#define REG_OTHER 0x04
-
-static const reg tic30_regtab[] = {
-  { "r0", 0x00, REG_Rn },
-  { "r1", 0x01, REG_Rn },
-  { "r2", 0x02, REG_Rn },
-  { "r3", 0x03, REG_Rn },
-  { "r4", 0x04, REG_Rn },
-  { "r5", 0x05, REG_Rn },
-  { "r6", 0x06, REG_Rn },
-  { "r7", 0x07, REG_Rn },
-  { "ar0",0x08, REG_ARn },
-  { "ar1",0x09, REG_ARn },
-  { "ar2",0x0A, REG_ARn },
-  { "ar3",0x0B, REG_ARn },
-  { "ar4",0x0C, REG_ARn },
-  { "ar5",0x0D, REG_ARn },
-  { "ar6",0x0E, REG_ARn },
-  { "ar7",0x0F, REG_ARn },
-  { "dp", 0x10, REG_DP },
-  { "ir0",0x11, REG_OTHER },
-  { "ir1",0x12, REG_OTHER },
-  { "bk", 0x13, REG_OTHER },
-  { "sp", 0x14, REG_OTHER },
-  { "st", 0x15, REG_OTHER },
-  { "ie", 0x16, REG_OTHER },
-  { "if", 0x17, REG_OTHER },
-  { "iof",0x18, REG_OTHER },
-  { "rs", 0x19, REG_OTHER },
-  { "re", 0x1A, REG_OTHER },
-  { "rc", 0x1B, REG_OTHER },
-  { "R0", 0x00, REG_Rn },
-  { "R1", 0x01, REG_Rn },
-  { "R2", 0x02, REG_Rn },
-  { "R3", 0x03, REG_Rn },
-  { "R4", 0x04, REG_Rn },
-  { "R5", 0x05, REG_Rn },
-  { "R6", 0x06, REG_Rn },
-  { "R7", 0x07, REG_Rn },
-  { "AR0",0x08, REG_ARn },
-  { "AR1",0x09, REG_ARn },
-  { "AR2",0x0A, REG_ARn },
-  { "AR3",0x0B, REG_ARn },
-  { "AR4",0x0C, REG_ARn },
-  { "AR5",0x0D, REG_ARn },
-  { "AR6",0x0E, REG_ARn },
-  { "AR7",0x0F, REG_ARn },
-  { "DP", 0x10, REG_DP },
-  { "IR0",0x11, REG_OTHER },
-  { "IR1",0x12, REG_OTHER },
-  { "BK", 0x13, REG_OTHER },
-  { "SP", 0x14, REG_OTHER },
-  { "ST", 0x15, REG_OTHER },
-  { "IE", 0x16, REG_OTHER },
-  { "IF", 0x17, REG_OTHER },
-  { "IOF",0x18, REG_OTHER },
-  { "RS", 0x19, REG_OTHER },
-  { "RE", 0x1A, REG_OTHER },
-  { "RC", 0x1B, REG_OTHER },
-  { "",   0, 0 }
-};
-
-static const reg *const tic30_regtab_end
-  = tic30_regtab + sizeof(tic30_regtab)/sizeof(tic30_regtab[0]);
-
-/* Indirect Addressing Modes Modification Fields */
-/* Indirect Addressing with Displacement */
-#define PreDisp_Add        0x00
-#define PreDisp_Sub        0x01
-#define PreDisp_Add_Mod    0x02
-#define PreDisp_Sub_Mod    0x03
-#define PostDisp_Add_Mod   0x04
-#define PostDisp_Sub_Mod   0x05
-#define PostDisp_Add_Circ  0x06
-#define PostDisp_Sub_Circ  0x07
-/* Indirect Addressing with Index Register IR0 */
-#define PreIR0_Add         0x08
-#define PreIR0_Sub         0x09
-#define PreIR0_Add_Mod     0x0A
-#define PreIR0_Sub_Mod     0x0B
-#define PostIR0_Add_Mod    0x0C
-#define PostIR0_Sub_Mod    0x0D
-#define PostIR0_Add_Circ   0x0E
-#define PostIR0_Sub_Circ   0x0F
-/* Indirect Addressing with Index Register IR1 */
-#define PreIR1_Add         0x10
-#define PreIR1_Sub         0x11
-#define PreIR1_Add_Mod     0x12
-#define PreIR1_Sub_Mod     0x13
-#define PostIR1_Add_Mod    0x14
-#define PostIR1_Sub_Mod    0x15
-#define PostIR1_Add_Circ   0x16
-#define PostIR1_Sub_Circ   0x17
-/* Indirect Addressing (Special Cases) */
-#define IndirectOnly       0x18
-#define PostIR0_Add_BitRev 0x19
-
-typedef struct {
-  char *syntax;
-  unsigned char modfield;
-  unsigned char displacement;
-} ind_addr_type;
-
-#define IMPLIED_DISP  0x01
-#define DISP_REQUIRED 0x02
-#define NO_DISP       0x03
-
-static const ind_addr_type tic30_indaddr_tab[] = {
-  { "*+ar",       PreDisp_Add,        IMPLIED_DISP },
-  { "*-ar",       PreDisp_Sub,        IMPLIED_DISP },
-  { "*++ar",      PreDisp_Add_Mod,    IMPLIED_DISP },
-  { "*--ar",      PreDisp_Sub_Mod,    IMPLIED_DISP },
-  { "*ar++",      PostDisp_Add_Mod,   IMPLIED_DISP },
-  { "*ar--",      PostDisp_Sub_Mod,   IMPLIED_DISP },
-  { "*ar++%",     PostDisp_Add_Circ,  IMPLIED_DISP },
-  { "*ar--%",     PostDisp_Sub_Circ,  IMPLIED_DISP },
-  { "*+ar()",     PreDisp_Add,        DISP_REQUIRED },
-  { "*-ar()",     PreDisp_Sub,        DISP_REQUIRED },
-  { "*++ar()",    PreDisp_Add_Mod,    DISP_REQUIRED },
-  { "*--ar()",    PreDisp_Sub_Mod,    DISP_REQUIRED },
-  { "*ar++()",    PostDisp_Add_Mod,   DISP_REQUIRED },
-  { "*ar--()",    PostDisp_Sub_Mod,   DISP_REQUIRED },
-  { "*ar++()%",   PostDisp_Add_Circ,  DISP_REQUIRED },
-  { "*ar--()%",   PostDisp_Sub_Circ,  DISP_REQUIRED },
-  { "*+ar(ir0)",  PreIR0_Add,         NO_DISP },
-  { "*-ar(ir0)",  PreIR0_Sub,         NO_DISP },
-  { "*++ar(ir0)", PreIR0_Add_Mod,     NO_DISP },
-  { "*--ar(ir0)", PreIR0_Sub_Mod,     NO_DISP },
-  { "*ar++(ir0)", PostIR0_Add_Mod,    NO_DISP },
-  { "*ar--(ir0)", PostIR0_Sub_Mod,    NO_DISP },
-  { "*ar++(ir0)%",PostIR0_Add_Circ,   NO_DISP },
-  { "*ar--(ir0)%",PostIR0_Sub_Circ,   NO_DISP },
-  { "*+ar(ir1)",  PreIR1_Add,         NO_DISP },
-  { "*-ar(ir1)",  PreIR1_Sub,         NO_DISP },
-  { "*++ar(ir1)", PreIR1_Add_Mod,     NO_DISP },
-  { "*--ar(ir1)", PreIR1_Sub_Mod,     NO_DISP },
-  { "*ar++(ir1)", PostIR1_Add_Mod,    NO_DISP },
-  { "*ar--(ir1)", PostIR1_Sub_Mod,    NO_DISP },
-  { "*ar++(ir1)%",PostIR1_Add_Circ,   NO_DISP },
-  { "*ar--(ir1)%",PostIR1_Sub_Circ,   NO_DISP },
-  { "*ar",        IndirectOnly,       NO_DISP },
-  { "*ar++(ir0)b",PostIR0_Add_BitRev, NO_DISP },
-  { "",           0,0 }
-};
-
-static const ind_addr_type *const tic30_indaddrtab_end
-  = tic30_indaddr_tab + sizeof(tic30_indaddr_tab)/sizeof(tic30_indaddr_tab[0]);
-
-/* Possible operand types */
-/* Register types */
-#define Rn       0x0001
-#define ARn      0x0002
-#define DPReg    0x0004
-#define OtherReg 0x0008
-/* Addressing mode types */
-#define Direct   0x0010
-#define Indirect 0x0020
-#define Imm16    0x0040
-#define Disp     0x0080
-#define Imm24    0x0100
-#define Abs24    0x0200
-/* 3 operand addressing mode types */
-#define op3T1    0x0400
-#define op3T2    0x0800
-/* Interrupt vector */
-#define IVector  0x1000
-/* Not required */
-#define NotReq   0x2000
-
-#define GAddr1   Rn | Direct | Indirect | Imm16
-#define GAddr2   GAddr1 | AllReg
-#define TAddr1   op3T1 | Rn | Indirect
-#define TAddr2   op3T2 | Rn | Indirect
-#define Reg      Rn | ARn
-#define AllReg   Reg | DPReg | OtherReg
-
-typedef struct _template
-{
-  char *name;
-  unsigned int operands; /* how many operands */
-  unsigned int base_opcode; /* base_opcode is the fundamental opcode byte */
-  /* the bits in opcode_modifier are used to generate the final opcode from
-     the base_opcode.  These bits also are used to detect alternate forms of
-     the same instruction */
-  unsigned int opcode_modifier;
-
-  /* opcode_modifier bits: */
-#define AddressMode 0x00600000
-#define PCRel       0x02000000
-#define StackOp     0x001F0000
-#define Rotate      StackOp
-  
-  /* operand_types[i] describes the type of operand i.  This is made
-     by OR'ing together all of the possible type masks.  (e.g.
-     'operand_types[i] = Reg|Imm' specifies that operand i can be
-     either a register or an immediate operand */
-  unsigned int operand_types[3];
-  /* This defines the number type of an immediate argument to an instruction. */
-  int imm_arg_type;
-#define Imm_None  0
-#define Imm_Float 1
-#define Imm_SInt  2
-#define Imm_UInt  3
-}
-template;
-
-static const template tic30_optab[] = {
-  { "absf"   ,2,0x00000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "absi"   ,2,0x00800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "addc"   ,2,0x01000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "addc3"  ,3,0x20000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
-  { "addf"   ,2,0x01800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "addf3"  ,3,0x20800000,AddressMode, { TAddr1, TAddr2, Rn }, Imm_None },
-  { "addi"   ,2,0x02000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "addi3"  ,3,0x21000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
-  { "and"    ,2,0x02800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt },
-  { "and3"   ,3,0x21800000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
-  { "andn"   ,2,0x03000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt },
-  { "andn3"  ,3,0x22000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
-  { "ash"    ,2,0x03800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ash3"   ,3,0x22800000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
-  { "b"      ,1,0x68000000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bu"     ,1,0x68000000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "blo"    ,1,0x68010000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bls"    ,1,0x68020000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bhi"    ,1,0x68030000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bhs"    ,1,0x68040000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "beq"    ,1,0x68050000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bne"    ,1,0x68060000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "blt"    ,1,0x68070000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "ble"    ,1,0x68080000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bgt"    ,1,0x68090000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bge"    ,1,0x680A0000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bz"     ,1,0x68050000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bnz"    ,1,0x68060000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bp"     ,1,0x68090000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bn"     ,1,0x68070000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bnn"    ,1,0x680A0000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bnv"    ,1,0x680C0000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bv"     ,1,0x680D0000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bnuf"   ,1,0x680E0000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "buf"    ,1,0x680F0000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bnc"    ,1,0x68040000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bc"     ,1,0x68010000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bnlv"   ,1,0x68100000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "blv"    ,1,0x68110000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bnluf"  ,1,0x68120000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bluf"   ,1,0x68130000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bzuf"   ,1,0x68140000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bd"     ,1,0x68200000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bud"    ,1,0x68200000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "blod"   ,1,0x68210000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "blsd"   ,1,0x68220000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bhid"   ,1,0x68230000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bhsd"   ,1,0x68240000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "beqd"   ,1,0x68250000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bned"   ,1,0x68260000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bltd"   ,1,0x68270000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bled"   ,1,0x68280000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bgtd"   ,1,0x68290000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bged"   ,1,0x682A0000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bzd"    ,1,0x68250000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bnzd"   ,1,0x68260000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bpd"    ,1,0x68290000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bnd"    ,1,0x68270000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bnnd"   ,1,0x682A0000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bnvd"   ,1,0x682C0000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bvd"    ,1,0x682D0000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bnufd"  ,1,0x682E0000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bufd"   ,1,0x682F0000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bncd"   ,1,0x68240000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bcd"    ,1,0x68210000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bnlvd"  ,1,0x68300000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "blvd"   ,1,0x68310000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bnlufd" ,1,0x68320000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "blufd"  ,1,0x68330000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "bzufd"  ,1,0x68340000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_None },
-  { "br"     ,1,0x60000000,0,           { Imm24, 0, 0 }, Imm_UInt },
-  { "brd"    ,1,0x61000000,0,           { Imm24, 0, 0 }, Imm_UInt },
-  { "call"   ,1,0x62000000,0,           { Imm24, 0, 0 }, Imm_UInt },
-  { "callu"  ,1,0x70000000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "calllo" ,1,0x70010000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "callls" ,1,0x70020000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "callhi" ,1,0x70030000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "callhs" ,1,0x70040000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "calleq" ,1,0x70050000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "callne" ,1,0x70060000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "calllt" ,1,0x70070000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "callle" ,1,0x70080000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "callgt" ,1,0x70090000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "callge" ,1,0x700A0000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "callz"  ,1,0x70050000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "callnz" ,1,0x70060000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "callp"  ,1,0x70090000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "calln"  ,1,0x70070000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "callnn" ,1,0x700A0000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "callnv" ,1,0x700C0000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "callv"  ,1,0x700D0000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "callnuf",1,0x700E0000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "calluf" ,1,0x700F0000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "callnc" ,1,0x70040000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "callc"  ,1,0x70010000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "callnlv",1,0x70100000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "calllv" ,1,0x70110000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "callnluf",1,0x70120000,PCRel,      { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "callluf",1,0x70130000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "callzuf",1,0x70140000,PCRel,       { AllReg|Disp, 0, 0 }, Imm_UInt },
-  { "cmpf"   ,2,0x04000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "cmpf3"  ,2,0x23000000,AddressMode, { TAddr1, TAddr2, 0 }, Imm_None },
-  { "cmpi"   ,2,0x04800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "cmpi3"  ,2,0x23800000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, 0 }, Imm_None },
-  { "db"     ,2,0x6C000000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbu"    ,2,0x6C000000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dblo"   ,2,0x6C010000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbls"   ,2,0x6C020000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbhi"   ,2,0x6C030000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbhs"   ,2,0x6C040000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbeq"   ,2,0x6C050000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbne"   ,2,0x6C060000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dblt"   ,2,0x6C070000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dble"   ,2,0x6C080000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbgt"   ,2,0x6C090000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbge"   ,2,0x6C0A0000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbz"    ,2,0x6C050000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbnz"   ,2,0x6C060000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbp"    ,2,0x6C090000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbn"    ,2,0x6C070000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbnn"   ,2,0x6C0A0000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbnv"   ,2,0x6C0C0000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbv"    ,2,0x6C0D0000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbnuf"  ,2,0x6C0E0000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbuf"   ,2,0x6C0F0000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbnc"   ,2,0x6C040000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbc"    ,2,0x6C010000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbnlv"  ,2,0x6C100000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dblv"   ,2,0x6C110000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbnluf" ,2,0x6C120000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbluf"  ,2,0x6C130000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbzuf"  ,2,0x6C140000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbd"    ,2,0x6C200000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbud"   ,2,0x6C200000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dblod"  ,2,0x6C210000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dblsd"  ,2,0x6C220000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbhid"  ,2,0x6C230000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbhsd"  ,2,0x6C240000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbeqd"  ,2,0x6C250000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbned"  ,2,0x6C260000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbltd"  ,2,0x6C270000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbled"  ,2,0x6C280000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbgtd"  ,2,0x6C290000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbged"  ,2,0x6C2A0000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbzd"   ,2,0x6C250000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbnzd"  ,2,0x6C260000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbpd"   ,2,0x6C290000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbnd"   ,2,0x6C270000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbnnd"  ,2,0x6C2A0000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbnvd"  ,2,0x6C2C0000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbvd"   ,2,0x6C2D0000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbnufd" ,2,0x6C2E0000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbufd"  ,2,0x6C2F0000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbncd"  ,2,0x6C240000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbcd"   ,2,0x6C210000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbnlvd" ,2,0x6C300000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dblvd"  ,2,0x6C310000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbnlufd",2,0x6C320000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dblufd" ,2,0x6C330000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "dbzufd" ,2,0x6C340000,PCRel,       { ARn, AllReg|Disp, 0 }, Imm_None },
-  { "fix"    ,2,0x05000000,AddressMode, { GAddr1, AllReg, 0 }, Imm_Float },
-  { "float"  ,2,0x05800000,AddressMode, { GAddr2, Rn, 0 }, Imm_SInt },
-  { "iack"   ,1,0x1B000000,AddressMode, { Direct|Indirect, 0, 0 }, Imm_None },
-  { "idle"   ,0,0x06000000,0,           { 0, 0, 0 }, Imm_None },
-  { "idle2"  ,0,0x06000001,0,           { 0, 0, 0 }, Imm_None }, /* LC31 Only */
-  { "lde"    ,2,0x06800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldf"    ,2,0x07000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfu"   ,2,0x40000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldflo"  ,2,0x40800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfls"  ,2,0x41000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfhi"  ,2,0x41800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfhs"  ,2,0x42000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfeq"  ,2,0x42800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfne"  ,2,0x43000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldflt"  ,2,0x43800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfle"  ,2,0x44000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfgt"  ,2,0x44800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfge"  ,2,0x45000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfz"   ,2,0x42800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfnz"  ,2,0x43000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfp"   ,2,0x44800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfn"   ,2,0x43800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfnn"  ,2,0x45000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfnv"  ,2,0x46000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfv"   ,2,0x46800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfnuf" ,2,0x47000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfuf"  ,2,0x47800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfnc"  ,2,0x42000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfc"   ,2,0x40800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfnlv" ,2,0x48000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldflv"  ,2,0x48800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfnluf",2,0x49000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfluf" ,2,0x49800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfzuf" ,2,0x4A000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldfi"   ,2,0x07800000,AddressMode, { Direct|Indirect, Rn, 0 }, Imm_None },
-  { "ldi"    ,2,0x08000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldiu"   ,2,0x50000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldilo"  ,2,0x50800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldils"  ,2,0x51000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldihi"  ,2,0x51800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldihs"  ,2,0x52000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldieq"  ,2,0x52800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldine"  ,2,0x53000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldilt"  ,2,0x53800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldile"  ,2,0x54000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldigt"  ,2,0x54800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldige"  ,2,0x55000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldiz"   ,2,0x52800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldinz"  ,2,0x53000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldip"   ,2,0x54800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldin"   ,2,0x53800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldinn"  ,2,0x55000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldinv"  ,2,0x56000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldiv"   ,2,0x56800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldinuf" ,2,0x57000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldiuf"  ,2,0x57800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldinc"  ,2,0x52000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldic"   ,2,0x50800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldinlv" ,2,0x58000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldilv"  ,2,0x58800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldinluf",2,0x59000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldiluf" ,2,0x59800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldizuf" ,2,0x5A000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "ldii"   ,2,0x08800000,AddressMode, { Direct|Indirect, AllReg, 0 }, Imm_None },
-  { "ldm"    ,2,0x09000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "ldp"    ,2,0x08700000,0,           { Abs24|Direct, DPReg|NotReq, 0 }, Imm_UInt },
-  { "lopower",0,0x10800001,0,           { 0, 0, 0 }, Imm_None }, /* LC31 Only */
-  { "lsh"    ,2,0x09800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt },
-  { "lsh3"   ,3,0x24000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
-  { "maxspeed",0,0x10800000,0,          { 0, 0, 0 }, Imm_None }, /* LC31 Only */
-  { "mpyf"   ,2,0x0A000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "mpyf3"  ,3,0x24800000,AddressMode, { TAddr1, TAddr2, Rn }, Imm_None },
-  { "mpyi"   ,2,0x0A800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "mpyi3"  ,3,0x25000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
-  { "negb"   ,2,0x0B000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "negf"   ,2,0x0B800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "negi"   ,2,0x0C000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "nop"    ,1,0x0C800000,AddressMode, { AllReg|Indirect|NotReq, 0, 0 }, Imm_None },
-  { "norm"   ,2,0x0D000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, /*Check another source*/
-  { "not"    ,2,0x0D800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt },
-  { "or"     ,2,0x10000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt },
-  { "or3"    ,3,0x25800000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
-  { "pop"    ,1,0x0E200000,StackOp,     { AllReg, 0, 0 }, Imm_None },
-  { "popf"   ,1,0x0EA00000,StackOp,     { Rn, 0, 0 }, Imm_None },
-  { "push"   ,1,0x0F200000,StackOp,     { AllReg, 0, 0 }, Imm_None },
-  { "pushf"  ,1,0x0FA00000,StackOp,     { Rn, 0, 0 }, Imm_None },
-  { "reti"   ,0,0x78000000,0,           { 0, 0, 0 }, Imm_None },
-  { "retiu"  ,0,0x78000000,0,           { 0, 0, 0 }, Imm_None },
-  { "retilo" ,0,0x78010000,0,           { 0, 0, 0 }, Imm_None },
-  { "retils" ,0,0x78020000,0,           { 0, 0, 0 }, Imm_None },
-  { "retihi" ,0,0x78030000,0,           { 0, 0, 0 }, Imm_None },
-  { "retihs" ,0,0x78040000,0,           { 0, 0, 0 }, Imm_None },
-  { "retieq" ,0,0x78050000,0,           { 0, 0, 0 }, Imm_None },
-  { "retine" ,0,0x78060000,0,           { 0, 0, 0 }, Imm_None },
-  { "retilt" ,0,0x78070000,0,           { 0, 0, 0 }, Imm_None },
-  { "retile" ,0,0x78080000,0,           { 0, 0, 0 }, Imm_None },
-  { "retigt" ,0,0x78090000,0,           { 0, 0, 0 }, Imm_None },
-  { "retige" ,0,0x780A0000,0,           { 0, 0, 0 }, Imm_None },
-  { "retiz"  ,0,0x78050000,0,           { 0, 0, 0 }, Imm_None },
-  { "retinz" ,0,0x78060000,0,           { 0, 0, 0 }, Imm_None },
-  { "retip"  ,0,0x78090000,0,           { 0, 0, 0 }, Imm_None },
-  { "retin"  ,0,0x78070000,0,           { 0, 0, 0 }, Imm_None },
-  { "retinn" ,0,0x780A0000,0,           { 0, 0, 0 }, Imm_None },
-  { "retinv" ,0,0x780C0000,0,           { 0, 0, 0 }, Imm_None },
-  { "retiv"  ,0,0x780D0000,0,           { 0, 0, 0 }, Imm_None },
-  { "retinuf",0,0x780E0000,0,           { 0, 0, 0 }, Imm_None },
-  { "retiuf" ,0,0x780F0000,0,           { 0, 0, 0 }, Imm_None },
-  { "retinc" ,0,0x78040000,0,           { 0, 0, 0 }, Imm_None },
-  { "retic"  ,0,0x78010000,0,           { 0, 0, 0 }, Imm_None },
-  { "retinlv",0,0x78100000,0,           { 0, 0, 0 }, Imm_None },
-  { "retilv" ,0,0x78110000,0,           { 0, 0, 0 }, Imm_None },
-  { "retinluf",0,0x78120000,0,          { 0, 0, 0 }, Imm_None },
-  { "retiluf",0,0x78130000,0,           { 0, 0, 0 }, Imm_None },
-  { "retizuf",0,0x78140000,0,           { 0, 0, 0 }, Imm_None },
-  { "rets"   ,0,0x78800000,0,           { 0, 0, 0 }, Imm_None },
-  { "retsu"  ,0,0x78800000,0,           { 0, 0, 0 }, Imm_None },
-  { "retslo" ,0,0x78810000,0,           { 0, 0, 0 }, Imm_None },
-  { "retsls" ,0,0x78820000,0,           { 0, 0, 0 }, Imm_None },
-  { "retshi" ,0,0x78830000,0,           { 0, 0, 0 }, Imm_None },
-  { "retshs" ,0,0x78840000,0,           { 0, 0, 0 }, Imm_None },
-  { "retseq" ,0,0x78850000,0,           { 0, 0, 0 }, Imm_None },
-  { "retsne" ,0,0x78860000,0,           { 0, 0, 0 }, Imm_None },
-  { "retslt" ,0,0x78870000,0,           { 0, 0, 0 }, Imm_None },
-  { "retsle" ,0,0x78880000,0,           { 0, 0, 0 }, Imm_None },
-  { "retsgt" ,0,0x78890000,0,           { 0, 0, 0 }, Imm_None },
-  { "retsge" ,0,0x788A0000,0,           { 0, 0, 0 }, Imm_None },
-  { "retsz"  ,0,0x78850000,0,           { 0, 0, 0 }, Imm_None },
-  { "retsnz" ,0,0x78860000,0,           { 0, 0, 0 }, Imm_None },
-  { "retsp"  ,0,0x78890000,0,           { 0, 0, 0 }, Imm_None },
-  { "retsn"  ,0,0x78870000,0,           { 0, 0, 0 }, Imm_None },
-  { "retsnn" ,0,0x788A0000,0,           { 0, 0, 0 }, Imm_None },
-  { "retsnv" ,0,0x788C0000,0,           { 0, 0, 0 }, Imm_None },
-  { "retsv"  ,0,0x788D0000,0,           { 0, 0, 0 }, Imm_None },
-  { "retsnuf",0,0x788E0000,0,           { 0, 0, 0 }, Imm_None },
-  { "retsuf" ,0,0x788F0000,0,           { 0, 0, 0 }, Imm_None },
-  { "retsnc" ,0,0x78840000,0,           { 0, 0, 0 }, Imm_None },
-  { "retsc"  ,0,0x78810000,0,           { 0, 0, 0 }, Imm_None },
-  { "retsnlv",0,0x78900000,0,           { 0, 0, 0 }, Imm_None },
-  { "retslv" ,0,0x78910000,0,           { 0, 0, 0 }, Imm_None },
-  { "retsnluf",0,0x78920000,0,          { 0, 0, 0 }, Imm_None },
-  { "retsluf",0,0x78930000,0,           { 0, 0, 0 }, Imm_None },
-  { "retszuf",0,0x78940000,0,           { 0, 0, 0 }, Imm_None },
-  { "rnd"    ,2,0x11000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "rol"    ,1,0x11E00001,Rotate,      { AllReg, 0, 0 }, Imm_None },
-  { "rolc"   ,1,0x12600001,Rotate,      { AllReg, 0, 0 }, Imm_None },
-  { "ror"    ,1,0x12E0FFFF,Rotate,      { AllReg, 0, 0 }, Imm_None },
-  { "rorc"   ,1,0x1360FFFF,Rotate,      { AllReg, 0, 0 }, Imm_None },
-  { "rptb"   ,1,0x64000000,0,           { Imm24, 0, 0 }, Imm_UInt },
-  { "rpts"   ,1,0x139B0000,AddressMode, { GAddr2, 0, 0 }, Imm_UInt },
-  { "sigi"   ,0,0x16000000,0,           { 0, 0, 0 }, Imm_None },
-  { "stf"    ,2,0x14000000,AddressMode, { Rn, Direct|Indirect, 0 }, Imm_Float },
-  { "stfi"   ,2,0x14800000,AddressMode, { Rn, Direct|Indirect, 0 }, Imm_Float },
-  { "sti"    ,2,0x15000000,AddressMode, { AllReg, Direct|Indirect, 0 }, Imm_SInt },
-  { "stii"   ,2,0x15800000,AddressMode, { AllReg, Direct|Indirect, 0 }, Imm_SInt },
-  { "subb"   ,2,0x16800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "subb3"  ,3,0x26000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
-  { "subc"   ,2,0x17000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt },
-  { "subf"   ,2,0x17800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "subf3"  ,3,0x26800000,AddressMode, { TAddr1, TAddr2, Rn }, Imm_None },
-  { "subi"   ,2,0x18000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "subi3"  ,3,0x27000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
-  { "subrb"  ,2,0x18800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "subrf"  ,2,0x19000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
-  { "subri"  ,2,0x19800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
-  { "swi"    ,0,0x66000000,0,           { 0, 0, 0 }, Imm_None },
-  { "trap"   ,1,0x74800020,0,           { IVector, 0, 0 }, Imm_None },
-  { "trapu"  ,1,0x74800020,0,           { IVector, 0, 0 }, Imm_None },
-  { "traplo" ,1,0x74810020,0,           { IVector, 0, 0 }, Imm_None },
-  { "trapls" ,1,0x74820020,0,           { IVector, 0, 0 }, Imm_None },
-  { "traphi" ,1,0x74830020,0,           { IVector, 0, 0 }, Imm_None },
-  { "traphs" ,1,0x74840020,0,           { IVector, 0, 0 }, Imm_None },
-  { "trapeq" ,1,0x74850020,0,           { IVector, 0, 0 }, Imm_None },
-  { "trapne" ,1,0x74860020,0,           { IVector, 0, 0 }, Imm_None },
-  { "traplt" ,1,0x74870020,0,           { IVector, 0, 0 }, Imm_None },
-  { "traple" ,1,0x74880020,0,           { IVector, 0, 0 }, Imm_None },
-  { "trapgt" ,1,0x74890020,0,           { IVector, 0, 0 }, Imm_None },
-  { "trapge" ,1,0x748A0020,0,           { IVector, 0, 0 }, Imm_None },
-  { "trapz"  ,1,0x74850020,0,           { IVector, 0, 0 }, Imm_None },
-  { "trapnz" ,1,0x74860020,0,           { IVector, 0, 0 }, Imm_None },
-  { "trapp"  ,1,0x74890020,0,           { IVector, 0, 0 }, Imm_None },
-  { "trapn"  ,1,0x74870020,0,           { IVector, 0, 0 }, Imm_None },
-  { "trapnn" ,1,0x748A0020,0,           { IVector, 0, 0 }, Imm_None },
-  { "trapnv" ,1,0x748C0020,0,           { IVector, 0, 0 }, Imm_None },
-  { "trapv"  ,1,0x748D0020,0,           { IVector, 0, 0 }, Imm_None },
-  { "trapnuf",1,0x748E0020,0,           { IVector, 0, 0 }, Imm_None },
-  { "trapuf" ,1,0x748F0020,0,           { IVector, 0, 0 }, Imm_None },
-  { "trapnc" ,1,0x74840020,0,           { IVector, 0, 0 }, Imm_None },
-  { "trapc"  ,1,0x74810020,0,           { IVector, 0, 0 }, Imm_None },
-  { "trapnlv",1,0x74900020,0,           { IVector, 0, 0 }, Imm_None },
-  { "traplv" ,1,0x74910020,0,           { IVector, 0, 0 }, Imm_None },
-  { "trapnluf",1,0x74920020,0,          { IVector, 0, 0 }, Imm_None },
-  { "trapluf",1,0x74930020,0,           { IVector, 0, 0 }, Imm_None },
-  { "trapzuf",1,0x74940020,0,           { IVector, 0, 0 }, Imm_None },
-  { "tstb"   ,2,0x1A000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt },
-  { "tstb3"  ,2,0x27800000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, 0 }, Imm_None },
-  { "xor"    ,2,0x1A800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt },
-  { "xor3"   ,3,0x28000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
-  { ""       ,0,0x00000000,0,           { 0, 0, 0 }, 0 }
-};
-
-static const template *const tic30_optab_end =
-  tic30_optab + sizeof(tic30_optab)/sizeof(tic30_optab[0]);
-
-typedef struct {
-  char *name;
-  unsigned int operands_1;
-  unsigned int operands_2;
-  unsigned int base_opcode;
-  unsigned int operand_types[2][3];
-  /* Which operand fits into which part of the final opcode word. */
-  int oporder;
-} partemplate;
-
-/* oporder defines - not very descriptive. */
-#define OO_4op1   0
-#define OO_4op2   1
-#define OO_4op3   2
-#define OO_5op1   3
-#define OO_5op2   4
-#define OO_PField 5
-
-static const partemplate tic30_paroptab[] = {
-  { "q_absf_stf",   2,2,0xC8000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } },
-	OO_4op1 },
-  { "q_absi_sti",   2,2,0xCA000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } },
-	OO_4op1 },
-  { "q_addf3_stf",  3,2,0xCC000000, { { Indirect, Rn, Rn }, { Rn, Indirect, 0 } },
-	OO_5op1 },
-  { "q_addi3_sti",  3,2,0xCE000000, { { Indirect, Rn, Rn }, { Rn, Indirect, 0 } },
-	OO_5op1 },
-  { "q_and3_sti",   3,2,0xD0000000, { { Indirect, Rn, Rn }, { Rn, Indirect, 0 } },
-	OO_5op1 },
-  { "q_ash3_sti",   3,2,0xD2000000, { { Rn, Indirect, Rn }, { Rn, Indirect, 0 } },
-	OO_5op2 },
-  { "q_fix_sti",    2,2,0xD4000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } },
-	OO_4op1 },
-  { "q_float_stf",  2,2,0xD6000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } },
-	OO_4op1 },
-  { "q_ldf_ldf",    2,2,0xC4000000, { { Indirect, Rn, 0 }, { Indirect, Rn, 0 } },
-	OO_4op2 },
-  { "q_ldf_stf",    2,2,0xD8000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } },
-	OO_4op1 },
-  { "q_ldi_ldi",    2,2,0xC6000000, { { Indirect, Rn, 0 }, { Indirect, Rn, 0 } },
-	OO_4op2 },
-  { "q_ldi_sti",    2,2,0xDA000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } },
-	OO_4op1 },
-  { "q_lsh3_sti",   3,2,0xDC000000, { { Rn, Indirect, Rn }, { Rn, Indirect, 0 } },
-	OO_5op2 },
-  { "q_mpyf3_addf3",3,3,0x80000000, { { Rn | Indirect, Rn | Indirect, Rn },
- 	                              { Rn | Indirect, Rn | Indirect, Rn } }, OO_PField },
-  { "q_mpyf3_stf",  3,2,0xDE000000, { { Indirect, Rn, Rn }, { Rn, Indirect, 0 } },
-	OO_5op1 },
-  { "q_mpyf3_subf3",3,3,0x84000000, { { Rn | Indirect, Rn | Indirect, Rn },
-	                              { Rn | Indirect, Rn | Indirect, Rn } }, OO_PField },
-  { "q_mpyi3_addi3",3,3,0x88000000, { { Rn | Indirect, Rn | Indirect, Rn },
-	                              { Rn | Indirect, Rn | Indirect, Rn } }, OO_PField },
-  { "q_mpyi3_sti",  3,2,0xE0000000, { { Indirect, Rn, Rn }, { Rn, Indirect, 0 } },
-	OO_5op1 },
-  { "q_mpyi3_subi3",3,3,0x8C000000, { { Rn | Indirect, Rn | Indirect, Rn },
-	                              { Rn | Indirect, Rn | Indirect, Rn } }, OO_PField },
-  { "q_negf_stf",   2,2,0xE2000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } },
-	OO_4op1 },
-  { "q_negi_sti",   2,2,0xE4000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } },
-	OO_4op1 },
-  { "q_not_sti",    2,2,0xE6000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } },
-	OO_4op1 },
-  { "q_or3_sti",    3,2,0xE8000000, { { Indirect, Rn, Rn }, { Rn, Indirect, 0 } },
-	OO_5op1 },
-  { "q_stf_stf",    2,2,0xC0000000, { { Rn, Indirect, 0 }, { Rn, Indirect, 0 } },
-	OO_4op3 },
-  { "q_sti_sti",    2,2,0xC2000000, { { Rn, Indirect, 0 }, { Rn, Indirect, 0 } },
-	OO_4op3 },
-  { "q_subf3_stf",  3,2,0xEA000000, { { Rn, Indirect, Rn }, { Rn, Indirect, 0 } },
-	OO_5op2 },
-  { "q_subi3_sti",  3,2,0xEC000000, { { Rn, Indirect, Rn }, { Rn, Indirect, 0 } },
-	OO_5op2 },
-  { "q_xor3_sti",   3,2,0xEE000000, { { Indirect, Rn, Rn }, { Rn, Indirect, 0 } },
-	OO_5op1 },
-  { "",             0,0,0x00000000, { { 0, 0, 0 }, { 0, 0, 0 } }, 0 }
-};
-
-static const partemplate *const tic30_paroptab_end =
-  tic30_paroptab + sizeof(tic30_paroptab)/sizeof(tic30_paroptab[0]);
-
-#endif
diff --git a/include/opcode/tic4x.h b/include/opcode/tic4x.h
deleted file mode 100644
index 8830a7d..0000000
--- a/include/opcode/tic4x.h
+++ /dev/null
@@ -1,1079 +0,0 @@
-/* Table of opcodes for the Texas Instruments TMS320C[34]X family.
-
-   Copyright (C) 2002, 2003 Free Software Foundation.
-  
-   Contributed by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz)
-   
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#define IS_CPU_TIC3X(v) ((v) == 30 || (v) == 31 || (v) == 32 || (v) == 33)
-#define IS_CPU_TIC4X(v) ((v) ==  0 || (v) == 40 || (v) == 44)
-
-/* Define some bitfield extraction/insertion macros.  */
-#define EXTR(inst, m, l)          ((inst) << (31 - (m)) >> (31 - ((m) - (l)))) 
-#define EXTRU(inst, m, l)         EXTR ((unsigned long)(inst), (m), (l))
-#define EXTRS(inst, m, l)         EXTR ((long)(inst), (m), (l))
-#define INSERTU(inst, val, m, l)  (inst |= ((val) << (l))) 
-#define INSERTS(inst, val, m, l)  INSERTU (inst, ((val) & ((1 << ((m) - (l) + 1)) - 1)), m, l)
-
-/* Define register numbers.  */
-typedef enum
-  {
-    REG_R0, REG_R1, REG_R2, REG_R3,
-    REG_R4, REG_R5, REG_R6, REG_R7,
-    REG_AR0, REG_AR1, REG_AR2, REG_AR3,
-    REG_AR4, REG_AR5, REG_AR6, REG_AR7,
-    REG_DP, REG_IR0, REG_IR1, REG_BK,
-    REG_SP, REG_ST, REG_DIE, REG_IIE,
-    REG_IIF, REG_RS, REG_RE, REG_RC,
-    REG_R8, REG_R9, REG_R10, REG_R11,
-    REG_IVTP, REG_TVTP
-  }
-c4x_reg_t;
-
-/* Note that the actual register numbers for IVTP is 0 and TVTP is 1.  */
-
-#define REG_IE REG_DIE		/* C3x only */
-#define REG_IF REG_IIE		/* C3x only */
-#define REG_IOF REG_IIF		/* C3x only */
-
-#define TIC3X_REG_MAX REG_RC
-#define TIC4X_REG_MAX REG_TVTP
-
-/* Register table size including C4x expansion regs.  */
-#define REG_TABLE_SIZE (TIC4X_REG_MAX + 1)
-
-struct tic4x_register
-{
-  char *        name;
-  unsigned long regno;
-};
-
-typedef struct tic4x_register tic4x_register_t;
-
-/* We could store register synonyms here.  */
-static const tic4x_register_t tic3x_registers[] =
-{
-  {"f0",  REG_R0},
-  {"r0",  REG_R0},
-  {"f1",  REG_R1},
-  {"r1",  REG_R1},
-  {"f2",  REG_R2},
-  {"r2",  REG_R2},
-  {"f3",  REG_R3},
-  {"r3",  REG_R3},
-  {"f4",  REG_R4},
-  {"r4",  REG_R4},
-  {"f5",  REG_R5},
-  {"r5",  REG_R5},
-  {"f6",  REG_R6},
-  {"r6",  REG_R6},
-  {"f7",  REG_R7},
-  {"r7",  REG_R7},
-  {"ar0", REG_AR0},
-  {"ar1", REG_AR1},
-  {"ar2", REG_AR2},
-  {"ar3", REG_AR3},
-  {"ar4", REG_AR4},
-  {"ar5", REG_AR5},
-  {"ar6", REG_AR6},
-  {"ar7", REG_AR7},
-  {"dp",  REG_DP},
-  {"ir0", REG_IR0},
-  {"ir1", REG_IR1},
-  {"bk",  REG_BK},
-  {"sp",  REG_SP},
-  {"st",  REG_ST},
-  {"ie",  REG_IE},
-  {"if",  REG_IF},
-  {"iof", REG_IOF},
-  {"rs",  REG_RS},
-  {"re",  REG_RE},
-  {"rc",  REG_RC},
-  {"", 0}
-};
-
-const unsigned int tic3x_num_registers = (((sizeof tic3x_registers) / (sizeof tic3x_registers[0])) - 1);
-
-/* Define C4x registers in addition to C3x registers.  */
-static const tic4x_register_t tic4x_registers[] =
-{
-  {"die", REG_DIE},		/* Clobbers C3x REG_IE */
-  {"iie", REG_IIE},		/* Clobbers C3x REG_IF */
-  {"iif", REG_IIF},		/* Clobbers C3x REG_IOF */
-  {"f8",  REG_R8},
-  {"r8",  REG_R8},
-  {"f9",  REG_R9},
-  {"r9",  REG_R9},
-  {"f10", REG_R10},
-  {"r10", REG_R10},
-  {"f11", REG_R11},
-  {"r11", REG_R11},
-  {"ivtp", REG_IVTP},
-  {"tvtp", REG_TVTP},
-  {"", 0}
-};
-
-const unsigned int tic4x_num_registers = (((sizeof tic4x_registers) / (sizeof tic4x_registers[0])) - 1);
-
-struct tic4x_cond
-{
-  char *        name;
-  unsigned long cond;
-};
-
-typedef struct tic4x_cond tic4x_cond_t;
-
-/* Define conditional branch/load suffixes.  Put desired form for
-   disassembler last.  */
-static const tic4x_cond_t tic4x_conds[] =
-{
-  { "u",    0x00 },
-  { "c",    0x01 }, { "lo",  0x01 },
-  { "ls",   0x02 },
-  { "hi",   0x03 },
-  { "nc",   0x04 }, { "hs",  0x04 },
-  { "z",    0x05 }, { "eq",  0x05 },
-  { "nz",   0x06 }, { "ne",  0x06 },
-  { "n",    0x07 }, { "l",   0x07 }, { "lt",  0x07 },
-  { "le",   0x08 },
-  { "p",    0x09 }, { "gt",  0x09 },
-  { "nn",   0x0a }, { "ge",  0x0a },
-  { "nv",   0x0c },
-  { "v",    0x0d },
-  { "nuf",  0x0e },
-  { "uf",   0x0f },
-  { "nlv",  0x10 },
-  { "lv",   0x11 },
-  { "nluf", 0x12 },
-  { "luf",  0x13 },
-  { "zuf",  0x14 },
-  /* Dummy entry, not included in num_conds.  This
-     lets code examine entry i+1 without checking
-     if we've run off the end of the table.  */
-  { "",      0x0}
-};
-
-const unsigned int tic4x_num_conds = (((sizeof tic4x_conds) / (sizeof tic4x_conds[0])) - 1);
-
-struct tic4x_indirect
-{
-  char *        name;
-  unsigned long modn;
-};
-
-typedef struct tic4x_indirect tic4x_indirect_t;
-
-/* Define indirect addressing modes where:
-   d displacement (signed)
-   y ir0
-   z ir1  */
-
-static const tic4x_indirect_t tic4x_indirects[] =
-{
-  { "*+a(d)",   0x00 },
-  { "*-a(d)",   0x01 },
-  { "*++a(d)",  0x02 },
-  { "*--a(d)",  0x03 },
-  { "*a++(d)",  0x04 },
-  { "*a--(d)",  0x05 },
-  { "*a++(d)%", 0x06 },
-  { "*a--(d)%", 0x07 },
-  { "*+a(y)",   0x08 },
-  { "*-a(y)",   0x09 },
-  { "*++a(y)",  0x0a },
-  { "*--a(y)",  0x0b },
-  { "*a++(y)",  0x0c },
-  { "*a--(y)",  0x0d },
-  { "*a++(y)%", 0x0e },
-  { "*a--(y)%", 0x0f },
-  { "*+a(z)",   0x10 },
-  { "*-a(z)",   0x11 },
-  { "*++a(z)",  0x12 },
-  { "*--a(z)",  0x13 },
-  { "*a++(z)",  0x14 },
-  { "*a--(z)",  0x15 },
-  { "*a++(z)%", 0x16 },
-  { "*a--(z)%", 0x17 },
-  { "*a",       0x18 },
-  { "*a++(y)b", 0x19 },
-  /* Dummy entry, not included in num_indirects.  This
-     lets code examine entry i+1 without checking
-     if we've run off the end of the table.  */
-  { "",      0x0}
-};
-
-#define TIC3X_MODN_MAX 0x19
-
-const unsigned int tic4x_num_indirects = (((sizeof tic4x_indirects) / (sizeof tic4x_indirects[0])) - 1);
-
-/* Instruction template.  */
-struct tic4x_inst
-{
-  char *        name;
-  unsigned long opcode;
-  unsigned long opmask;
-  char *        args;
-  unsigned long oplevel;
-};
-
-typedef struct tic4x_inst tic4x_inst_t;
-
-/* Opcode infix
-   B  condition              16--20   U,C,Z,LO,HI, etc.
-   C  condition              23--27   U,C,Z,LO,HI, etc.
-
-   Arguments
-   ,  required arg follows
-   ;  optional arg follows
-
-   Argument types             bits    [classes] - example
-   -----------------------------------------------------------
-   *  indirect (all)          0--15   [A,AB,AU,AF,A2,A3,A6,A7,AY,B,BA,BB,BI,B6,B7] - *+AR0(5), *++AR0(IR0)
-   #  direct (for LDP)        0--15   [Z] - @start, start
-   @  direct                  0--15   [A,AB,AU,AF,A3,A6,A7,AY,B,BA,BB,BI,B6,B7] - @start, start
-   A  address register       22--24   [D] - AR0, AR7
-   B  unsigned integer        0--23   [I,I2] - @start, start  (absolute on C3x, relative on C4x)
-   C  indirect (disp - C4x)   0--7    [S,SC,S2,T,TC,T2,T2C] - *+AR0(5)
-   E  register (all)          0--7    [T,TC,T2,T2C] - R0, R7, R11, AR0, DP
-   e  register (0-11)         0--7    [S,SC,S2] - R0, R7, R11
-   F  short float immediate   0--15   [AF,B,BA,BB] - 3.5, 0e-3.5e-1
-   G  register (all)          8--15   [T,TC,T2,T2C] - R0, R7, R11, AR0, DP
-   g  register (0-11)         0--7    [S,SC,S2] - R0, R7, R11
-   H  register (0-7)         18--16   [LS,M,P,Q] - R0, R7
-   I  indirect (no disp)      0--7    [S,SC,S2,T,TC,T2,T2C] - *+AR0(1), *+AR0(IR0)
-   i  indirect (enhanced)     0--7    [LL,LS,M,P,Q,QC] - *+AR0(1), R5
-   J  indirect (no disp)      8--15   [LL,LS,P,Q,QC,S,SC,S2,T,TC,T2,T2C] - *+AR0(1), *+AR0(IR0)
-   j  indirect (enhanced)     8--15   [M] - *+AR0(1), R5
-   K  register               19--21   [LL,M,Q,QC] - R0, R7
-   L  register               22--24   [LL,LS,P,Q,QC] - R0, R7
-   M  register (R2,R3)       22--22   [M] R2, R3
-   N  register (R0,R1)       23--23   [M] R0, R1
-   O  indirect(disp - C4x)    8--15   [S,SC,S2,T,TC,T2] - *+AR0(5)
-   P  displacement (PC Rel)   0--15   [D,J,JS] - @start, start
-   Q  register (all)          0--15   [A,AB,AU,A2,A3,AY,BA,BI,D,I2,J,JS] - R0, AR0, DP, SP
-   q  register (0-11)         0--15   [AF,B,BB] - R0, R7, R11
-   R  register (all)         16--20   [A,AB,AU,AF,A6,A7,R,T,TC] - R0, AR0, DP, SP
-   r  register (0-11)        16--20   [B,BA,BB,BI,B6,B7,RF,S,SC] - R0, R1, R11
-   S  short int immediate     0--15   [A,AB,AY,BI] - -5, 5
-   T  integer (C4x)          16--20   [Z] - -5, 12
-   U  unsigned integer        0--15   [AU,A3] - 0, 65535
-   V  vector (C4x: 0--8)      0--4    [Z] - 25, 7
-   W  short int (C4x)         0--7    [T,TC,T2,T2C] - -3, 5
-   X  expansion reg (C4x)     0--4    [Z] - IVTP, TVTP
-   Y  address reg (C4x)      16--20   [Z] - AR0, DP, SP, IR0
-   Z  expansion reg (C4x)    16--20   [Z] - IVTP, TVTP
-*/
-
-#define TIC4X_OPERANDS_MAX 7	/* Max number of operands for an inst.  */
-#define TIC4X_NAME_MAX 16	/* Max number of chars in parallel name.  */
-
-/* Define the instruction level */
-#define OP_C3X   0x1   /* C30 support - supported by all */
-#define OP_C4X   0x2   /* C40 support - C40, C44 */
-#define OP_ENH   0x4   /* Class LL,LS,M,P,Q,QC enhancements. Argument type
-                          I and J is enhanced in these classes - C31>=6.0,
-                          C32>=2.0, C33 */
-#define OP_LPWR  0x8   /* Low power support (LOPOWER, MAXSPEED) - C30>=7.0,
-                          LC31, C31>=5.0, C32 */
-#define OP_IDLE2 0x10  /* Idle2 support (IDLE2) - C30>=7.0, LC31, C31>=5.0,
-                          C32, C33, C40>=5.0, C44 */
-
-/* The following class definition is a classification scheme for
-   putting instructions with similar type of arguments together. It
-   simplifies the op-code definitions significantly, as we then only
-   need to use the class macroes for 95% of the DSP's opcodes.
-*/
-
-/* A: General 2-operand integer operations
-   Syntax: <i> src, dst
-      src = Register (Q), Direct (@), Indirect (*), Signed immediate (S)
-      dst = Register (R)
-   Instr: 15/8 - ABSI, ADDC, ADDI, ASH, CMPI, LDI, LSH, MPYI, NEGB, NEGI,
-                SUBB, SUBC, SUBI, SUBRB, SUBRI, C4x: LBn, LHn, LWLn, LWRn,
-                MBn, MHn, MPYSHI, MPYUHI
-*/
-#define A_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x00000000, 0xffe00000, "Q;R", level }, \
-  { name, opcode|0x00200000, 0xffe00000, "@,R", level }, \
-  { name, opcode|0x00400000, 0xffe00000, "*,R", level }, \
-  { name, opcode|0x00600000, 0xffe00000, "S,R", level }
-
-/* AB: General 2-operand integer operation with condition
-   Syntax: <i>c src, dst
-       c   = Condition
-       src = Register (Q), Direct (@), Indirect (*), Signed immediate (S)
-       dst = Register (R)
-   Instr: 1/0 - LDIc
-*/
-#define AB_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x40000000, 0xf0600000, "Q;R", level }, \
-  { name, opcode|0x40200000, 0xf0600000, "@,R", level }, \
-  { name, opcode|0x40400000, 0xf0600000, "*,R", level }, \
-  { name, opcode|0x40600000, 0xf0600000, "S,R", level }
-
-/* AU: General 2-operand unsigned integer operation
-   Syntax: <i> src, dst
-        src = Register (Q), Direct (@), Indirect (*), Unsigned immediate (U)
-        dst = Register (R)
-   Instr: 6/2 - AND, ANDN, NOT, OR, TSTB, XOR, C4x: LBUn, LHUn
-*/
-#define AU_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x00000000, 0xffe00000, "Q;R", level }, \
-  { name, opcode|0x00200000, 0xffe00000, "@,R", level }, \
-  { name, opcode|0x00400000, 0xffe00000, "*,R", level }, \
-  { name, opcode|0x00600000, 0xffe00000, "U,R", level }
-
-/* AF: General 2-operand float to integer operation
-   Syntax: <i> src, dst
-        src = Register 0-11 (q), Direct (@), Indirect (*), Float immediate (F)
-        dst = Register (R)
-   Instr: 1/0 - FIX
-*/
-#define AF_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x00000000, 0xffe00000, "q;R", level }, \
-  { name, opcode|0x00200000, 0xffe00000, "@,R", level }, \
-  { name, opcode|0x00400000, 0xffe00000, "*,R", level }, \
-  { name, opcode|0x00600000, 0xffe00000, "F,R", level }
-
-/* A2: Limited 1-operand (integer) operation
-   Syntax: <i> src
-       src = Register (Q), Indirect (*), None
-   Instr: 1/0 - NOP
-*/
-#define A2_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x00000000, 0xffe00000, "Q", level }, \
-  { name, opcode|0x00400000, 0xffe00000, "*", level }, \
-  { name, opcode|0x00000000, 0xffe00000, "" , level }
-
-/* A3: General 1-operand unsigned integer operation
-   Syntax: <i> src
-        src = Register (Q), Direct (@), Indirect (*), Unsigned immediate (U)
-   Instr: 1/0 - RPTS
-*/
-#define A3_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x00000000, 0xffff0000, "Q", level }, \
-  { name, opcode|0x00200000, 0xffff0000, "@", level }, \
-  { name, opcode|0x00400000, 0xffff0000, "*", level }, \
-  { name, opcode|0x00600000, 0xffff0000, "U", level }
-
-/* A6: Limited 2-operand integer operation
-   Syntax: <i> src, dst
-       src = Direct (@), Indirect (*)
-       dst = Register (R)
-   Instr: 1/1 - LDII, C4x: SIGI
-*/
-#define A6_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x00200000, 0xffe00000, "@,R", level }, \
-  { name, opcode|0x00400000, 0xffe00000, "*,R", level }
-
-/* A7: Limited 2-operand integer store operation
-   Syntax: <i> src, dst
-       src = Register (R)
-       dst = Direct (@), Indirect (*)
-   Instr: 2/0 - STI, STII
-*/
-#define A7_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x00200000, 0xffe00000, "R,@", level }, \
-  { name, opcode|0x00400000, 0xffe00000, "R,*", level }
-
-/* AY: General 2-operand signed address load operation
-   Syntax: <i> src, dst
-        src = Register (Q), Direct (@), Indirect (*), Signed immediate (S)
-        dst = Address register - ARx, IRx, DP, BK, SP (Y)
-   Instr: 0/1 - C4x: LDA
-   Note: Q and Y should *never* be the same register
-*/
-#define AY_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x00000000, 0xffe00000, "Q,Y", level }, \
-  { name, opcode|0x00200000, 0xffe00000, "@,Y", level }, \
-  { name, opcode|0x00400000, 0xffe00000, "*,Y", level }, \
-  { name, opcode|0x00600000, 0xffe00000, "S,Y", level }
-
-/* B: General 2-operand float operation
-   Syntax: <i> src, dst
-       src = Register 0-11 (q), Direct (@), Indirect (*), Float immediate (F)
-       dst = Register 0-11 (r)
-   Instr: 12/2 - ABSF, ADDF, CMPF, LDE, LDF, LDM, MPYF, NEGF, NORM, RND,
-                 SUBF, SUBRF, C4x: RSQRF, TOIEEE
-*/
-#define B_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x00000000, 0xffe00000, "q;r", level }, \
-  { name, opcode|0x00200000, 0xffe00000, "@,r", level }, \
-  { name, opcode|0x00400000, 0xffe00000, "*,r", level }, \
-  { name, opcode|0x00600000, 0xffe00000, "F,r", level }
-
-/* BA: General 2-operand integer to float operation
-   Syntax: <i> src, dst
-       src = Register (Q), Direct (@), Indirect (*), Float immediate (F)
-       dst = Register 0-11 (r)
-   Instr: 0/1 - C4x: CRCPF
-*/
-#define BA_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x00000000, 0xffe00000, "Q;r", level }, \
-  { name, opcode|0x00200000, 0xffe00000, "@,r", level }, \
-  { name, opcode|0x00400000, 0xffe00000, "*,r", level }, \
-  { name, opcode|0x00600000, 0xffe00000, "F,r", level }
-
-/* BB: General 2-operand conditional float operation
-   Syntax: <i>c src, dst
-       c   = Condition
-       src = Register 0-11 (q), Direct (@), Indirect (*), Float immediate (F)
-       dst = Register 0-11 (r)
-   Instr: 1/0 - LDFc
-*/
-#define BB_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x40000000, 0xf0600000, "q;r", level }, \
-  { name, opcode|0x40200000, 0xf0600000, "@,r", level }, \
-  { name, opcode|0x40400000, 0xf0600000, "*,r", level }, \
-  { name, opcode|0x40600000, 0xf0600000, "F,r", level }
-
-/* BI: General 2-operand integer to float operation (yet different to BA)
-   Syntax: <i> src, dst
-       src = Register (Q), Direct (@), Indirect (*), Signed immediate (S)
-       dst = Register 0-11 (r)
-   Instr: 1/0 - FLOAT
-*/
-#define BI_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x00000000, 0xffe00000, "Q;r", level }, \
-  { name, opcode|0x00200000, 0xffe00000, "@,r", level }, \
-  { name, opcode|0x00400000, 0xffe00000, "*,r", level }, \
-  { name, opcode|0x00600000, 0xffe00000, "S,r", level }
-
-/* B6: Limited 2-operand float operation 
-   Syntax: <i> src, dst
-       src = Direct (@), Indirect (*)
-       dst = Register 0-11 (r)
-   Instr: 1/1 - LDFI, C4x: FRIEEE
-*/
-#define B6_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x00200000, 0xffe00000, "@,r", level }, \
-  { name, opcode|0x00400000, 0xffe00000, "*,r", level }
-
-/* B7: Limited 2-operand float store operation
-   Syntax: <i> src, dst
-       src = Register 0-11 (r)
-       dst = Direct (@), Indirect (*)
-   Instr: 2/0 - STF, STFI
-*/
-#define B7_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x00200000, 0xffe00000, "r,@", level }, \
-  { name, opcode|0x00400000, 0xffe00000, "r,*", level }
-
-/* D: Decrement and brach operations
-   Syntax: <i>c ARn, dst
-       c   = condition
-       ARn = AR register 0-7 (A)
-       dst = Register (Q), PC-relative (P)
-   Instr: 2/0 - DBc, DBcD
-   Alias: <name1> <name2>
-*/
-#define D_CLASS_INSN(name1, name2, opcode, level) \
-  { name1, opcode|0x00000000, 0xfe200000, "A,Q", level }, \
-  { name1, opcode|0x02000000, 0xfe200000, "A,P", level }, \
-  { name2, opcode|0x00000000, 0xfe200000, "A,Q", level }, \
-  { name2, opcode|0x02000000, 0xfe200000, "A,P", level }
-
-/* I: General branch operations
-   Syntax: <i> dst
-       dst = Address (B)
-   Instr: 3/1 - BR, BRD, CALL, C4x: LAJ
-*/
-
-/* I2: General branch operations (C4x addition)
-   Syntax: <i> dst
-       dst = Address (B), C4x: Register (Q)
-   Instr: 2/0 - RPTB, RPTBD
-*/
-
-/* J: General conditional branch operations
-   Syntax: <i>c dst
-       c   = Condition
-       dst = Register (Q), PC-relative (P)
-   Instr: 2/3 - Bc, BcD, C4x: BcAF, BcAT, LAJc
-   Alias: <name1> <name2>
-*/
-#define J_CLASS_INSN(name1, name2, opcode, level) \
-  { name1, opcode|0x00000000, 0xffe00000, "Q", level }, \
-  { name1, opcode|0x02000000, 0xffe00000, "P", level }, \
-  { name2, opcode|0x00000000, 0xffe00000, "Q", level }, \
-  { name2, opcode|0x02000000, 0xffe00000, "P", level }
-
-/* JS: General conditional branch operations
-   Syntax: <i>c dst
-       c   = Condition
-       dst = Register (Q), PC-relative (P)
-   Instr: 1/1 - CALLc, C4X: LAJc
-*/
-
-/* LL: Load-load parallell operation
-   Syntax: <i> src2, dst2 || <i> src1, dst1
-       src1 = Indirect 0,1,IR0,IR1 (J)
-       dst1 = Register 0-7 (K)
-       src2 = Indirect 0,1,IR0,IR1, ENH: Register (i)
-       dst2 = Register 0-7 (L)
-   Instr: 2/0 - LDF||LDF, LDI||LDI
-   Alias: i||i, i1||i2, i2||i1
-*/
-#define LL_CLASS_INSN(name, opcode, level) \
-  { name "_"  name    , opcode, 0xfe000000, "i;L|J,K", level }, \
-  { name "2_" name "1", opcode, 0xfe000000, "i;L|J,K", level }, \
-  { name "1_" name "2", opcode, 0xfe000000, "J,K|i;L", level }
-
-/* LS: Store-store parallell operation
-   Syntax: <i> src2, dst2 || <i> src1, dst1
-       src1 = Register 0-7 (H)
-       dst1 = Indirect 0,1,IR0,IR1 (J)
-       src2 = Register 0-7 (L)
-       dst2 = Indirect 0,1,IR0,IR1, ENH: register (i)
-   Instr: 2/0 - STF||STF, STI||STI
-   Alias: i||i, i1||i2, i2||i1.
-*/
-#define LS_CLASS_INSN(name, opcode, level) \
-  { name "_"  name    , opcode, 0xfe000000, "L;i|H,J", level }, \
-  { name "2_" name "1", opcode, 0xfe000000, "L;i|H,J", level }, \
-  { name "1_" name "2", opcode, 0xfe000000, "H,J|L;i", level }
-
-/* M: General multiply and add/sub operations
-   Syntax: <ia> src3,src4,dst1 || <ib> src2,src1,dst2 [00] - Manual
-           <ia> src3,src1,dst1 || <ib> src2,src4,dst2 [01] - Manual
-           <ia> src1,src3,dst1 || <ib> src2,src4,dst2 [01]
-           <ia> src1,src2,dst1 || <ib> src4,src3,dst2 [02] - Manual
-           <ia> src3,src1,dst1 || <ib> src4,src2,dst2 [03] - Manual
-           <ia> src1,src3,dst1 || <ib> src4,src2,dst2 [03]
-       src1 = Register 0-7 (K)
-       src2 = Register 0-7 (H)
-       src3 = Indirect 0,1,IR0,IR1, ENH: register (j)
-       src4 = Indirect 0,1,IR0,IR1, ENH: register (i)
-       dst1 = Register 0-1 (N)
-       dst2 = Register 2-3 (M)
-   Instr: 4/0 - MPYF3||ADDF3, MPYF3||SUBF3, MPYI3||ADDI3, MPYI3||SUBI3
-   Alias: a||b, a3||n, a||b3, a3||b3, b||a, b3||a, b||a3, b3||a3
-*/
-#define M_CLASS_INSN(namea, nameb, opcode, level) \
-  { namea "_" nameb, opcode|0x00000000, 0xff000000, "i;j;N|H;K;M", level }, \
-  { namea "_" nameb, opcode|0x01000000, 0xff000000, "j;K;N|H;i;M", level }, \
-  { namea "_" nameb, opcode|0x01000000, 0xff000000, "K;j;N|H;i;M", level }, \
-  { namea "_" nameb, opcode|0x02000000, 0xff000000, "H;K;N|i;j;M", level }, \
-  { namea "_" nameb, opcode|0x03000000, 0xff000000, "j;K;N|i;H;M", level }, \
-  { namea "_" nameb, opcode|0x03000000, 0xff000000, "K;j;N|i;H;M", level }, \
-  { namea "3_" nameb, opcode|0x00000000, 0xff000000, "i;j;N|H;K;M", level }, \
-  { namea "3_" nameb, opcode|0x01000000, 0xff000000, "j;K;N|H;i;M", level }, \
-  { namea "3_" nameb, opcode|0x01000000, 0xff000000, "K;j;N|H;i;M", level }, \
-  { namea "3_" nameb, opcode|0x02000000, 0xff000000, "H;K;N|i;j;M", level }, \
-  { namea "3_" nameb, opcode|0x03000000, 0xff000000, "j;K;N|i;H;M", level }, \
-  { namea "3_" nameb, opcode|0x03000000, 0xff000000, "K;j;N|i;H;M", level }, \
-  { namea "_" nameb "3", opcode|0x00000000, 0xff000000, "i;j;N|H;K;M", level }, \
-  { namea "_" nameb "3", opcode|0x01000000, 0xff000000, "j;K;N|H;i;M", level }, \
-  { namea "_" nameb "3", opcode|0x01000000, 0xff000000, "K;j;N|H;i;M", level }, \
-  { namea "_" nameb "3", opcode|0x02000000, 0xff000000, "H;K;N|i;j;M", level }, \
-  { namea "_" nameb "3", opcode|0x03000000, 0xff000000, "j;K;N|i;H;M", level }, \
-  { namea "_" nameb "3", opcode|0x03000000, 0xff000000, "K;j;N|i;H;M", level }, \
-  { namea "3_" nameb "3", opcode|0x00000000, 0xff000000, "i;j;N|H;K;M", level }, \
-  { namea "3_" nameb "3", opcode|0x01000000, 0xff000000, "j;K;N|H;i;M", level }, \
-  { namea "3_" nameb "3", opcode|0x01000000, 0xff000000, "K;j;N|H;i;M", level }, \
-  { namea "3_" nameb "3", opcode|0x02000000, 0xff000000, "H;K;N|i;j;M", level }, \
-  { namea "3_" nameb "3", opcode|0x03000000, 0xff000000, "j;K;N|i;H;M", level }, \
-  { namea "3_" nameb "3", opcode|0x03000000, 0xff000000, "K;j;N|i;H;M", level }, \
-  { nameb "_" namea, opcode|0x00000000, 0xff000000, "H;K;M|i;j;N", level }, \
-  { nameb "_" namea, opcode|0x01000000, 0xff000000, "H;i;M|j;K;N", level }, \
-  { nameb "_" namea, opcode|0x01000000, 0xff000000, "H;i;M|K;j;N", level }, \
-  { nameb "_" namea, opcode|0x02000000, 0xff000000, "i;j;M|H;K;N", level }, \
-  { nameb "_" namea, opcode|0x03000000, 0xff000000, "i;H;M|j;K;N", level }, \
-  { nameb "_" namea, opcode|0x03000000, 0xff000000, "i;H;M|K;j;N", level }, \
-  { nameb "3_" namea, opcode|0x00000000, 0xff000000, "H;K;M|i;j;N", level }, \
-  { nameb "3_" namea, opcode|0x01000000, 0xff000000, "H;i;M|j;K;N", level }, \
-  { nameb "3_" namea, opcode|0x01000000, 0xff000000, "H;i;M|K;j;N", level }, \
-  { nameb "3_" namea, opcode|0x02000000, 0xff000000, "i;j;M|H;K;N", level }, \
-  { nameb "3_" namea, opcode|0x03000000, 0xff000000, "i;H;M|j;K;N", level }, \
-  { nameb "3_" namea, opcode|0x03000000, 0xff000000, "i;H;M|K;j;N", level }, \
-  { nameb "_" namea "3", opcode|0x00000000, 0xff000000, "H;K;M|i;j;N", level }, \
-  { nameb "_" namea "3", opcode|0x01000000, 0xff000000, "H;i;M|j;K;N", level }, \
-  { nameb "_" namea "3", opcode|0x01000000, 0xff000000, "H;i;M|K;j;N", level }, \
-  { nameb "_" namea "3", opcode|0x02000000, 0xff000000, "i;j;M|H;K;N", level }, \
-  { nameb "_" namea "3", opcode|0x03000000, 0xff000000, "i;H;M|j;K;N", level }, \
-  { nameb "_" namea "3", opcode|0x03000000, 0xff000000, "i;H;M|K;j;N", level }, \
-  { nameb "3_" namea "3", opcode|0x00000000, 0xff000000, "H;K;M|i;j;N", level }, \
-  { nameb "3_" namea "3", opcode|0x01000000, 0xff000000, "H;i;M|j;K;N", level }, \
-  { nameb "3_" namea "3", opcode|0x01000000, 0xff000000, "H;i;M|K;j;N", level }, \
-  { nameb "3_" namea "3", opcode|0x02000000, 0xff000000, "i;j;M|H;K;N", level }, \
-  { nameb "3_" namea "3", opcode|0x03000000, 0xff000000, "i;H;M|j;K;N", level }, \
-  { nameb "3_" namea "3", opcode|0x03000000, 0xff000000, "i;H;M|K;j;N", level }
-
-/* P: General 2-operand operation with parallell store
-   Syntax: <ia> src2, dst1 || <ib> src3, dst2
-       src2 = Indirect 0,1,IR0,IR1, ENH: register (i)
-       dst1 = Register 0-7 (L)
-       src3 = Register 0-7 (H)
-       dst2 = Indirect 0,1,IR0,IR1 (J)
-   Instr: 9/2 - ABSF||STF, ABSI||STI, FIX||STI, FLOAT||STF, LDF||STF,
-                LDI||STI, NEGF||STF, NEGI||STI, NOT||STI, C4x: FRIEEE||STF,
-                TOIEEE||STF
-   Alias: a||b, b||a
-*/
-#define P_CLASS_INSN(namea, nameb, opcode, level) \
-  { namea "_" nameb, opcode, 0xfe000000, "i;L|H,J", level }, \
-  { nameb "_" namea, opcode, 0xfe000000, "H,J|i;L", level }
-
-/* Q: General 3-operand operation with parallell store
-   Syntax: <ia> src1, src2, dst1 || <ib> src3, dst2
-       src1 = Register 0-7 (K)
-       src2 = Indirect 0,1,IR0,IR1, ENH: register (i)
-       dst1 = Register 0-7 (L)
-       src3 = Register 0-7 (H)
-       dst2 = Indirect 0,1,IR0,IR1 (J)
-   Instr: 4/0 - ASH3||STI, LSH3||STI, SUBF3||STF, SUBI3||STI
-   Alias: a||b, b||a, a3||b, b||a3
-*/
-#define Q_CLASS_INSN(namea, nameb, opcode, level) \
-  { namea "_"  nameb    , opcode, 0xfe000000, "K,i;L|H,J", level }, \
-  { nameb "_"  namea    , opcode, 0xfe000000, "H,J|K,i;L", level }, \
-  { namea "3_" nameb    , opcode, 0xfe000000, "K,i;L|H,J", level }, \
-  { nameb "_"  namea "3", opcode, 0xfe000000, "H,J|K,i;L", level }
-
-/* QC: General commutative 3-operand operation with parallell store
-   Syntax: <ia> src2, src1, dst1 || <ib> src3, dst2
-           <ia> src1, src2, dst1 || <ib> src3, dst2 - Manual
-       src1 = Register 0-7 (K)
-       src2 = Indirect 0,1,IR0,IR1, ENH: register (i)
-       dst1 = Register 0-7 (L)
-       src3 = Register 0-7 (H)
-       dst2 = Indirect 0,1,IR0,IR1 (J)
-   Instr: 7/0 - ADDF3||STF, ADDI3||STI, AND3||STI, MPYF3||STF, MPYI3||STI,
-                OR3||STI, XOR3||STI
-   Alias: a||b, b||a, a3||b, b||a3
-*/
-#define QC_CLASS_INSN(namea, nameb, opcode, level) \
-  { namea "_"  nameb    , opcode, 0xfe000000, "i;K;L|H,J", level }, \
-  { namea "_"  nameb    , opcode, 0xfe000000, "K;i;L|H,J", level }, \
-  { nameb "_"  namea    , opcode, 0xfe000000, "H,J|i;K;L", level }, \
-  { nameb "_"  namea    , opcode, 0xfe000000, "H,J|K;i;L", level }, \
-  { namea "3_" nameb    , opcode, 0xfe000000, "i;K;L|H,J", level }, \
-  { namea "3_" nameb    , opcode, 0xfe000000, "K;i;L|H,J", level }, \
-  { nameb "_"  namea "3", opcode, 0xfe000000, "H,J|i;K;L", level }, \
-  { nameb "_"  namea "3", opcode, 0xfe000000, "H,J|K;i;L", level }
-
-/* R: General register integer operation
-   Syntax: <i> dst
-       dst = Register (R)
-   Instr: 6/0 - POP, PUSH, ROL, ROLC, ROR, RORC
-*/
-#define R_CLASS_INSN(name, opcode, level) \
-  { name, opcode, 0xffe0ffff, "R", level }
-
-/* RF: General register float operation
-   Syntax: <i> dst
-       dst = Register 0-11 (r)
-   Instr: 2/0 - POPF, PUSHF
-*/
-#define RF_CLASS_INSN(name, opcode, level) \
-  { name, opcode, 0xffe0ffff, "r", level }
-
-/* S: General 3-operand float operation
-   Syntax: <i> src2, src1, dst
-       src2 = Register 0-11 (e), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C)
-       src1 = Register 0-11 (g), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O)
-       dst  = Register 0-11 (r)
-   Instr: 1/0 - SUBF3
-   Alias: i, i3
-*/
-#define S_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x20000000, 0xffe00000, "e,g;r", level  }, \
-  { name, opcode|0x20200000, 0xffe00000, "e,J,r", level  }, \
-  { name, opcode|0x20400000, 0xffe00000, "I,g;r", level  }, \
-  { name, opcode|0x20600000, 0xffe00000, "I,J,r", level  }, \
-  { name, opcode|0x30200000, 0xffe00000, "C,g;r", OP_C4X }, \
-  { name, opcode|0x30600000, 0xffe00000, "C,O,r", OP_C4X }, \
-  { name "3", opcode|0x20000000, 0xffe00000, "e,g;r", level  }, \
-  { name "3", opcode|0x20200000, 0xffe00000, "e,J,r", level  }, \
-  { name "3", opcode|0x20400000, 0xffe00000, "I,g;r", level  }, \
-  { name "3", opcode|0x20600000, 0xffe00000, "I,J,r", level  }, \
-  { name "3", opcode|0x30200000, 0xffe00000, "C,g;r", OP_C4X }, \
-  { name "3", opcode|0x30600000, 0xffe00000, "C,O,r", OP_C4X }
-
-/* SC: General commutative 3-operand float operation
-   Syntax: <i> src2, src1, dst - Manual
-           <i> src1, src2, dst
-       src2 = Register 0-11 (e), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C)
-       src1 = Register 0-11 (g), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O)
-       dst  = Register 0-11 (r)
-   Instr: 2/0 - ADDF3, MPYF3
-   Alias: i, i3
-*/
-#define SC_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x20000000, 0xffe00000, "e,g;r", level  }, \
-  { name, opcode|0x20200000, 0xffe00000, "e,J,r", level  }, \
-  { name, opcode|0x20400000, 0xffe00000, "I,g;r", level  }, \
-  { name, opcode|0x20600000, 0xffe00000, "I,J,r", level  }, \
-  { name, opcode|0x30200000, 0xffe00000, "C,g;r", OP_C4X }, \
-  { name, opcode|0x30200000, 0xffe00000, "g,C,r", OP_C4X }, \
-  { name, opcode|0x30600000, 0xffe00000, "C,O,r", OP_C4X }, \
-  { name "3", opcode|0x20000000, 0xffe00000, "e,g;r", level  }, \
-  { name "3", opcode|0x20200000, 0xffe00000, "e,J,r", level  }, \
-  { name "3", opcode|0x20400000, 0xffe00000, "I,g;r", level  }, \
-  { name "3", opcode|0x20600000, 0xffe00000, "I,J,r", level  }, \
-  { name "3", opcode|0x30200000, 0xffe00000, "g,C,r", OP_C4X }, \
-  { name "3", opcode|0x30200000, 0xffe00000, "C,g;r", OP_C4X }, \
-  { name "3", opcode|0x30600000, 0xffe00000, "C,O,r", OP_C4X }
-
-/* S2: General 3-operand float operation with 2 args
-   Syntax: <i> src2, src1
-       src2 = Register 0-11 (e), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C)
-       src1 = Register 0-11 (g), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O)
-   Instr: 1/0 - CMPF3
-   Alias: i, i3
-*/
-#define S2_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x20000000, 0xffe00000, "e,g", level  }, \
-  { name, opcode|0x20200000, 0xffe00000, "e,J", level  }, \
-  { name, opcode|0x20400000, 0xffe00000, "I,g", level  }, \
-  { name, opcode|0x20600000, 0xffe00000, "I,J", level  }, \
-  { name, opcode|0x30200000, 0xffe00000, "C,g", OP_C4X }, \
-  { name, opcode|0x30600000, 0xffe00000, "C,O", OP_C4X }, \
-  { name "3", opcode|0x20000000, 0xffe00000, "e,g", level  }, \
-  { name "3", opcode|0x20200000, 0xffe00000, "e,J", level  }, \
-  { name "3", opcode|0x20400000, 0xffe00000, "I,g", level  }, \
-  { name "3", opcode|0x20600000, 0xffe00000, "I,J", level  }, \
-  { name "3", opcode|0x30200000, 0xffe00000, "C,g", OP_C4X }, \
-  { name "3", opcode|0x30600000, 0xffe00000, "C,O", OP_C4X }
-
-/* T: General 3-operand integer operand
-   Syntax: <i> src2, src1, dst
-       src2 = Register (E), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C), Immediate (W)
-       src1 = Register (G), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O)
-       dst  = Register (R)
-   Instr: 5/0 - ANDN3, ASH3, LSH3, SUBB3, SUBI3
-   Alias: i, i3
-*/
-#define T_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x20000000, 0xffe00000, "E,G;R", level  }, \
-  { name, opcode|0x20200000, 0xffe00000, "E,J,R", level  }, \
-  { name, opcode|0x20400000, 0xffe00000, "I,G;R", level  }, \
-  { name, opcode|0x20600000, 0xffe00000, "I,J,R", level  }, \
-  { name, opcode|0x30000000, 0xffe00000, "W,G;R", OP_C4X }, \
-  { name, opcode|0x30200000, 0xffe00000, "C,G;R", OP_C4X }, \
-  { name, opcode|0x30400000, 0xffe00000, "W,O,R", OP_C4X }, \
-  { name, opcode|0x30600000, 0xffe00000, "C,O,R", OP_C4X }, \
-  { name "3", opcode|0x20000000, 0xffe00000, "E,G;R", level  }, \
-  { name "3", opcode|0x20200000, 0xffe00000, "E,J,R", level  }, \
-  { name "3", opcode|0x20400000, 0xffe00000, "I,G;R", level  }, \
-  { name "3", opcode|0x20600000, 0xffe00000, "I,J,R", level  }, \
-  { name "3", opcode|0x30000000, 0xffe00000, "W,G;R", OP_C4X }, \
-  { name "3", opcode|0x30200000, 0xffe00000, "C,G;R", OP_C4X }, \
-  { name "3", opcode|0x30400000, 0xffe00000, "W,O,R", OP_C4X }, \
-  { name "3", opcode|0x30600000, 0xffe00000, "C,O,R", OP_C4X }
-
-/* TC: General commutative 3-operand integer operation
-   Syntax: <i> src2, src1, dst
-           <i> src1, src2, dst
-       src2 = Register (E), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C), Immediate (W)
-       src1 = Register (G), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O)
-       dst  = Register (R)
-   Instr: 6/2 - ADDC3, ADDI3, AND3, MPYI3, OR3, XOR3, C4x: MPYSHI, MPYUHI
-   Alias: i, i3
-*/
-#define TC_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x20000000, 0xffe00000, "E,G;R", level  }, \
-  { name, opcode|0x20200000, 0xffe00000, "E,J,R", level  }, \
-  { name, opcode|0x20400000, 0xffe00000, "I,G;R", level  }, \
-  { name, opcode|0x20600000, 0xffe00000, "I,J,R", level  }, \
-  { name, opcode|0x30000000, 0xffe00000, "W,G;R", OP_C4X }, \
-  { name, opcode|0x30000000, 0xffe00000, "G,W,R", OP_C4X }, \
-  { name, opcode|0x30200000, 0xffe00000, "C,G;R", OP_C4X }, \
-  { name, opcode|0x30200000, 0xffe00000, "G,C,R", OP_C4X }, \
-  { name, opcode|0x30400000, 0xffe00000, "W,O,R", OP_C4X }, \
-  { name, opcode|0x30400000, 0xffe00000, "O,W,R", OP_C4X }, \
-  { name, opcode|0x30600000, 0xffe00000, "C,O,R", OP_C4X }, \
-  { name "3", opcode|0x20000000, 0xffe00000, "E,G;R", level  }, \
-  { name "3", opcode|0x20200000, 0xffe00000, "E,J,R", level  }, \
-  { name "3", opcode|0x20400000, 0xffe00000, "I,G;R", level  }, \
-  { name "3", opcode|0x20600000, 0xffe00000, "I,J,R", level  }, \
-  { name "3", opcode|0x30000000, 0xffe00000, "W,G;R", OP_C4X }, \
-  { name "3", opcode|0x30000000, 0xffe00000, "G,W,R", OP_C4X }, \
-  { name "3", opcode|0x30200000, 0xffe00000, "C,G;R", OP_C4X }, \
-  { name "3", opcode|0x30200000, 0xffe00000, "G,C,R", OP_C4X }, \
-  { name "3", opcode|0x30400000, 0xffe00000, "W,O,R", OP_C4X }, \
-  { name "3", opcode|0x30400000, 0xffe00000, "O,W,R", OP_C4X }, \
-  { name "3", opcode|0x30600000, 0xffe00000, "C,O,R", OP_C4X }
-
-/* T2: General 3-operand integer operation with 2 args
-   Syntax: <i> src2, src1
-       src2 = Register (E), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C), Immediate (W)
-       src1 = Register (G), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O)
-   Instr: 1/0 - CMPI3
-   Alias: i, i3
-*/
-#define T2_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x20000000, 0xffe00000, "E,G", level  }, \
-  { name, opcode|0x20200000, 0xffe00000, "E,J", level  }, \
-  { name, opcode|0x20400000, 0xffe00000, "I,G", level  }, \
-  { name, opcode|0x20600000, 0xffe00000, "I,J", level  }, \
-  { name, opcode|0x30000000, 0xffe00000, "W,G", OP_C4X }, \
-  { name, opcode|0x30200000, 0xffe00000, "C,G", OP_C4X }, \
-  { name, opcode|0x30400000, 0xffe00000, "W,O", OP_C4X }, \
-  { name, opcode|0x30600000, 0xffe00000, "C,O", OP_C4X }, \
-  { name "3", opcode|0x20000000, 0xffe00000, "E,G", level  }, \
-  { name "3", opcode|0x20200000, 0xffe00000, "E,J", level  }, \
-  { name "3", opcode|0x20400000, 0xffe00000, "I,G", level  }, \
-  { name "3", opcode|0x20600000, 0xffe00000, "I,J", level  }, \
-  { name "3", opcode|0x30000000, 0xffe00000, "W,G", OP_C4X }, \
-  { name "3", opcode|0x30200000, 0xffe00000, "C,G", OP_C4X }, \
-  { name "3", opcode|0x30400000, 0xffe00000, "W,O", OP_C4X }, \
-  { name "3", opcode|0x30600000, 0xffe00000, "C,O", OP_C4X }
-
-/* T2C: General commutative 3-operand integer operation with 2 args 
-   Syntax: <i> src2, src1 - Manual
-           <i> src1, src2 
-       src2 = Register (E), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C), Immediate (W)
-       src1 = Register (G), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (0)
-   Instr: 1/0 - TSTB3
-   Alias: i, i3
-*/
-#define T2C_CLASS_INSN(name, opcode, level) \
-  { name, opcode|0x20000000, 0xffe00000, "E,G", level  }, \
-  { name, opcode|0x20200000, 0xffe00000, "E,J", level  }, \
-  { name, opcode|0x20400000, 0xffe00000, "I,G", level  }, \
-  { name, opcode|0x20600000, 0xffe00000, "I,J", level  }, \
-  { name, opcode|0x30000000, 0xffe00000, "W,G", OP_C4X }, \
-  { name, opcode|0x30000000, 0xffe00000, "G,W", OP_C4X }, \
-  { name, opcode|0x30200000, 0xffe00000, "C,G", OP_C4X }, \
-  { name, opcode|0x30200000, 0xffe00000, "G,C", OP_C4X }, \
-  { name, opcode|0x30400000, 0xffe00000, "W,O", OP_C4X }, \
-  { name, opcode|0x30400000, 0xffe00000, "O,W", OP_C4X }, \
-  { name, opcode|0x30600000, 0xffe00000, "C,O", OP_C4X }, \
-  { name "3", opcode|0x20000000, 0xffe00000, "E,G", level  }, \
-  { name "3", opcode|0x20200000, 0xffe00000, "E,J", level  }, \
-  { name "3", opcode|0x20400000, 0xffe00000, "I,G", level  }, \
-  { name "3", opcode|0x20600000, 0xffe00000, "I,J", level  }, \
-  { name "3", opcode|0x30000000, 0xffe00000, "W,G", OP_C4X }, \
-  { name "3", opcode|0x30000000, 0xffe00000, "G,W", OP_C4X }, \
-  { name "3", opcode|0x30200000, 0xffe00000, "C,G", OP_C4X }, \
-  { name "3", opcode|0x30200000, 0xffe00000, "G,C", OP_C4X }, \
-  { name "3", opcode|0x30400000, 0xffe00000, "W,O", OP_C4X }, \
-  { name "3", opcode|0x30400000, 0xffe00000, "O,W", OP_C4X }, \
-  { name "3", opcode|0x30600000, 0xffe00000, "C,O", OP_C4X }
-
-/* Z: Misc operations with or without arguments
-   Syntax: <i> <arg1>,...
-   Instr: 16 - RETIc, RETSc, SIGI(c3X), SWI, IDLE, IDLE2, RETIcD, 
-               TRAPc, LATc, LDEP, LDEHI, LDEPE, LDPK, STIK, LDP, IACK
-*/
-
-
-/* Define tic4x opcodes for assembler and disassembler.  */
-static const tic4x_inst_t tic4x_insts[] =
-{
-  /* Put synonyms after the desired forms in table so that they get
-     overwritten in the lookup table.  The disassembler will thus
-     print the `proper' mnemonics.  Note that the disassembler
-     only decodes the 11 MSBs, so instructions like ldp @0x500 will
-     be printed as ldiu 5, dp.  Note that with parallel instructions,
-     the second part is executed before the first part, unless
-     the sti1||sti2 form is used.  We also allow sti2||sti1
-     which is equivalent to the default sti||sti form.
-  */
-  B_CLASS_INSN(  "absf",          0x00000000, OP_C3X   ),
-  P_CLASS_INSN(  "absf",  "stf",  0xc8000000, OP_C3X   ),
-  A_CLASS_INSN(  "absi",          0x00800000, OP_C3X   ),
-  P_CLASS_INSN(  "absi",  "sti",  0xca000000, OP_C3X   ),
-  A_CLASS_INSN(  "addc",          0x01000000, OP_C3X   ),
-  TC_CLASS_INSN( "addc",          0x00000000, OP_C3X   ),
-  B_CLASS_INSN(  "addf",          0x01800000, OP_C3X   ),
-  SC_CLASS_INSN( "addf",          0x00800000, OP_C3X   ),
-  QC_CLASS_INSN( "addf",  "stf",  0xcc000000, OP_C3X   ),
-  A_CLASS_INSN(  "addi",          0x02000000, OP_C3X   ),
-  TC_CLASS_INSN( "addi",          0x01000000, OP_C3X   ),
-  QC_CLASS_INSN( "addi",  "sti",  0xce000000, OP_C3X   ),
-  AU_CLASS_INSN( "and",           0x02800000, OP_C3X   ),
-  TC_CLASS_INSN( "and",           0x01800000, OP_C3X   ),
-  QC_CLASS_INSN( "and",   "sti",  0xd0000000, OP_C3X   ),
-  AU_CLASS_INSN( "andn",          0x03000000, OP_C3X   ),
-  T_CLASS_INSN(  "andn",          0x02000000, OP_C3X   ),
-  A_CLASS_INSN(  "ash",           0x03800000, OP_C3X   ),
-  T_CLASS_INSN(  "ash",           0x02800000, OP_C3X   ),
-  Q_CLASS_INSN(  "ash",   "sti",  0xd2000000, OP_C3X   ),
-  J_CLASS_INSN(  "bB",    "b",    0x68000000, OP_C3X   ),
-  J_CLASS_INSN(  "bBd",   "bd",   0x68200000, OP_C3X   ),
-  J_CLASS_INSN(  "bBaf",  "baf",  0x68a00000, OP_C4X   ),
-  J_CLASS_INSN(  "bBat",  "bat",  0x68600000, OP_C4X   ),
-  { "br",     0x60000000, 0xff000000, "B"   , OP_C3X   },  /* I_CLASS */
-  { "brd",    0x61000000, 0xff000000, "B"   , OP_C3X   },  /* I_CLASS */
-  { "call",   0x62000000, 0xff000000, "B"   , OP_C3X   },  /* I_CLASS */
-  { "callB",  0x70000000, 0xffe00000, "Q"   , OP_C3X   },  /* JS_CLASS */
-  { "callB",  0x72000000, 0xffe00000, "P"   , OP_C3X   },  /* JS_CLASS */
-  B_CLASS_INSN(  "cmpf",          0x04000000, OP_C3X   ),
-  S2_CLASS_INSN( "cmpf",          0x03000000, OP_C3X   ),
-  A_CLASS_INSN(  "cmpi",          0x04800000, OP_C3X   ),
-  T2_CLASS_INSN( "cmpi",          0x03800000, OP_C3X   ),
-  D_CLASS_INSN(  "dbB",   "db",   0x6c000000, OP_C3X   ),
-  D_CLASS_INSN(  "dbBd",  "dbd",  0x6c200000, OP_C3X   ),
-  AF_CLASS_INSN( "fix",           0x05000000, OP_C3X   ),
-  P_CLASS_INSN(  "fix",   "sti",  0xd4000000, OP_C3X   ),
-  BI_CLASS_INSN( "float",         0x05800000, OP_C3X   ),
-  P_CLASS_INSN(  "float", "stf",  0xd6000000, OP_C3X   ),
-  B6_CLASS_INSN( "frieee",        0x1c000000, OP_C4X   ),
-  P_CLASS_INSN(  "frieee","stf",  0xf2000000, OP_C4X   ),
-  { "iack",   0x1b200000, 0xffe00000, "@"   , OP_C3X   },  /* Z_CLASS */
-  { "iack",   0x1b400000, 0xffe00000, "*"   , OP_C3X   },  /* Z_CLASS */
-  { "idle",   0x06000000, 0xffffffff, ""    , OP_C3X   },  /* Z_CLASS */
-  { "idlez",  0x06000000, 0xffffffff, ""    , OP_C3X   },  /* Z_CLASS */
-  { "idle2",  0x06000001, 0xffffffff, ""    , OP_IDLE2 },  /* Z_CLASS */
-  { "laj",    0x63000000, 0xff000000, "B"   , OP_C4X   },  /* I_CLASS */
-  { "lajB",   0x70200000, 0xffe00000, "Q"   , OP_C4X   },  /* JS_CLASS */
-  { "lajB",   0x72200000, 0xffe00000, "P"   , OP_C4X   },  /* JS_CLASS */
-  { "latB",   0x74800000, 0xffe00000, "V"   , OP_C4X   },  /* Z_CLASS */
-  A_CLASS_INSN(  "lb0",           0xb0000000, OP_C4X   ),
-  A_CLASS_INSN(  "lb1",           0xb0800000, OP_C4X   ),
-  A_CLASS_INSN(  "lb2",           0xb1000000, OP_C4X   ),
-  A_CLASS_INSN(  "lb3",           0xb1800000, OP_C4X   ),
-  AU_CLASS_INSN( "lbu0",          0xb2000000, OP_C4X   ),
-  AU_CLASS_INSN( "lbu1",          0xb2800000, OP_C4X   ),
-  AU_CLASS_INSN( "lbu2",          0xb3000000, OP_C4X   ),
-  AU_CLASS_INSN( "lbu3",          0xb3800000, OP_C4X   ),
-  AY_CLASS_INSN( "lda",           0x1e800000, OP_C4X   ),
-  B_CLASS_INSN(  "lde",           0x06800000, OP_C3X   ),
-  { "ldep",   0x76000000, 0xffe00000, "X,R" , OP_C4X   },  /* Z_CLASS */
-  B_CLASS_INSN(  "ldf",           0x07000000, OP_C3X   ),
-  LL_CLASS_INSN( "ldf",           0xc4000000, OP_C3X   ),
-  P_CLASS_INSN(  "ldf",   "stf",  0xd8000000, OP_C3X   ),
-  BB_CLASS_INSN( "ldfC",          0x00000000, OP_C3X   ),
-  B6_CLASS_INSN( "ldfi",          0x07800000, OP_C3X   ),
-  { "ldhi",   0x1fe00000, 0xffe00000, "U,R" , OP_C4X   },  /* Z_CLASS */
-  { "ldhi",   0x1fe00000, 0xffe00000, "#,R" , OP_C4X   },  /* Z_CLASS */
-  A_CLASS_INSN(  "ldi",           0x08000000, OP_C3X   ),
-  LL_CLASS_INSN( "ldi",           0xc6000000, OP_C3X   ),
-  P_CLASS_INSN(  "ldi",   "sti",  0xda000000, OP_C3X   ),
-  AB_CLASS_INSN( "ldiC",          0x10000000, OP_C3X   ),
-  A6_CLASS_INSN( "ldii",          0x08800000, OP_C3X   ),
-  { "ldp",    0x50700000, 0xffff0000, "#"   , OP_C3X   },  /* Z_CLASS - synonym for ldiu #,dp */
-  B_CLASS_INSN(  "ldm",           0x09000000, OP_C3X   ),
-  { "ldpe",   0x76800000, 0xffe00000, "Q,Z" , OP_C4X   },  /* Z_CLASS */
-  { "ldpk",   0x1F700000, 0xffff0000, "#"   , OP_C4X   },  /* Z_CLASS */
-  A_CLASS_INSN(  "lh0",           0xba000000, OP_C4X   ),
-  A_CLASS_INSN(  "lh1",           0xba800000, OP_C4X   ),
-  AU_CLASS_INSN( "lhu0",          0xbb000000, OP_C4X   ),
-  AU_CLASS_INSN( "lhu1",          0xbb800000, OP_C4X   ),
-  { "lopower", 0x10800001,0xffffffff, ""    , OP_LPWR  },  /* Z_CLASS */
-  A_CLASS_INSN(  "lsh",           0x09800000, OP_C3X   ),
-  T_CLASS_INSN(  "lsh",           0x04000000, OP_C3X   ),
-  Q_CLASS_INSN(  "lsh",   "sti",  0xdc000000, OP_C3X   ),
-  A_CLASS_INSN(  "lwl0",          0xb4000000, OP_C4X   ),
-  A_CLASS_INSN(  "lwl1",          0xb4800000, OP_C4X   ),
-  A_CLASS_INSN(  "lwl2",          0xb5000000, OP_C4X   ),
-  A_CLASS_INSN(  "lwl3",          0xb5800000, OP_C4X   ),
-  A_CLASS_INSN(  "lwr0",          0xb6000000, OP_C4X   ),
-  A_CLASS_INSN(  "lwr1",          0xb6800000, OP_C4X   ),
-  A_CLASS_INSN(  "lwr2",          0xb7000000, OP_C4X   ),
-  A_CLASS_INSN(  "lwr3",          0xb7800000, OP_C4X   ),
-  { "maxspeed",0x10800000,0xffffffff, ""    , OP_LPWR  },  /* Z_CLASS */
-  A_CLASS_INSN(  "mb0",           0xb8000000, OP_C4X   ),
-  A_CLASS_INSN(  "mb1",           0xb8800000, OP_C4X   ),
-  A_CLASS_INSN(  "mb2",           0xb9000000, OP_C4X   ),
-  A_CLASS_INSN(  "mb3",           0xb9800000, OP_C4X   ),
-  A_CLASS_INSN(  "mh0",           0xbc000000, OP_C4X   ),
-  A_CLASS_INSN(  "mh1",           0xbc800000, OP_C4X   ),
-  A_CLASS_INSN(  "mh2",           0xbd000000, OP_C4X   ),
-  A_CLASS_INSN(  "mh3",           0xbd800000, OP_C4X   ),
-  B_CLASS_INSN(  "mpyf",          0x0a000000, OP_C3X   ),
-  SC_CLASS_INSN( "mpyf",          0x04800000, OP_C3X   ),
-  M_CLASS_INSN(  "mpyf",  "addf", 0x80000000, OP_C3X   ),
-  QC_CLASS_INSN( "mpyf",  "stf",  0xde000000, OP_C3X   ),
-  M_CLASS_INSN(  "mpyf",  "subf", 0x84000000, OP_C3X   ),
-  A_CLASS_INSN(  "mpyi",          0x0a800000, OP_C3X   ),
-  TC_CLASS_INSN( "mpyi",          0x05000000, OP_C3X   ),
-  M_CLASS_INSN(  "mpyi",  "addi", 0x88000000, OP_C3X   ),
-  QC_CLASS_INSN( "mpyi",  "sti",  0xe0000000, OP_C3X   ),
-  M_CLASS_INSN(  "mpyi",  "subi", 0x8c000000, OP_C3X   ),
-  A_CLASS_INSN(  "mpyshi",        0x1d800000, OP_C4X   ),
-  TC_CLASS_INSN( "mpyshi",        0x28800000, OP_C4X   ),
-  A_CLASS_INSN(  "mpyuhi",        0x1e000000, OP_C4X   ),
-  TC_CLASS_INSN( "mpyuhi",        0x29000000, OP_C4X   ),
-  A_CLASS_INSN(  "negb",          0x0b000000, OP_C3X   ),
-  B_CLASS_INSN(  "negf",          0x0b800000, OP_C3X   ),
-  P_CLASS_INSN(  "negf",  "stf",  0xe2000000, OP_C3X   ),
-  A_CLASS_INSN(  "negi",          0x0c000000, OP_C3X   ),
-  P_CLASS_INSN(  "negi",  "sti",  0xe4000000, OP_C3X   ),
-  A2_CLASS_INSN( "nop",           0x0c800000, OP_C3X   ),
-  B_CLASS_INSN(  "norm",          0x0d000000, OP_C3X   ),
-  AU_CLASS_INSN( "not",           0x0d800000, OP_C3X   ),
-  P_CLASS_INSN(  "not",   "sti",  0xe6000000, OP_C3X   ),
-  AU_CLASS_INSN( "or",            0x10000000, OP_C3X   ),
-  TC_CLASS_INSN( "or",            0x05800000, OP_C3X   ),
-  QC_CLASS_INSN( "or",    "sti",  0xe8000000, OP_C3X   ),
-  R_CLASS_INSN(  "pop",           0x0e200000, OP_C3X   ),
-  RF_CLASS_INSN( "popf",          0x0ea00000, OP_C3X   ),
-  R_CLASS_INSN(  "push",          0x0f200000, OP_C3X   ),
-  RF_CLASS_INSN( "pushf",         0x0fa00000, OP_C3X   ),
-  BA_CLASS_INSN( "rcpf",          0x1d000000, OP_C4X   ),
-  { "retiB",  0x78000000, 0xffe00000, ""    , OP_C3X   },  /* Z_CLASS */
-  { "reti",   0x78000000, 0xffe00000, ""    , OP_C3X   },  /* Z_CLASS  - Alias for retiu */
-  { "retiBd", 0x78200000, 0xffe00000, ""    , OP_C4X   },  /* Z_CLASS */
-  { "retid",  0x78200000, 0xffe00000, ""    , OP_C4X   },  /* Z_CLASS - Alias for retiud */
-  { "retsB",  0x78800000, 0xffe00000, ""    , OP_C3X   },  /* Z_CLASS */
-  { "rets",   0x78800000, 0xffe00000, ""    , OP_C3X   },  /* Z_CLASS  - Alias for retsu */
-  B_CLASS_INSN(  "rnd",           0x11000000, OP_C3X   ),
-  R_CLASS_INSN(  "rol",           0x11e00001, OP_C3X   ),
-  R_CLASS_INSN(  "rolc",          0x12600001, OP_C3X   ),
-  R_CLASS_INSN(  "ror",           0x12e0ffff, OP_C3X   ),
-  R_CLASS_INSN(  "rorc",          0x1360ffff, OP_C3X   ),
-  { "rptb",   0x64000000, 0xff000000, "B"   , OP_C3X   },  /* I2_CLASS */
-  { "rptb",   0x79000000, 0xff000000, "Q"   , OP_C4X   },  /* I2_CLASS */
-  { "rptbd",  0x65000000, 0xff000000, "B"   , OP_C4X   },  /* I2_CLASS */ 
-  { "rptbd",  0x79800000, 0xff000000, "Q"   , OP_C4X   },  /* I2_CLASS */
-  A3_CLASS_INSN( "rpts",          0x139b0000, OP_C3X   ),
-  B_CLASS_INSN(  "rsqrf",         0x1c800000, OP_C4X   ),
-  { "sigi",   0x16000000, 0xffe00000, ""    , OP_C3X   },  /* Z_CLASS */
-  A6_CLASS_INSN( "sigi",          0x16000000, OP_C4X   ),
-  B7_CLASS_INSN( "stf",           0x14000000, OP_C3X   ),
-  LS_CLASS_INSN( "stf",           0xc0000000, OP_C3X   ),
-  B7_CLASS_INSN( "stfi",          0x14800000, OP_C3X   ),
-  A7_CLASS_INSN( "sti",           0x15000000, OP_C3X   ),
-  { "sti",    0x15000000, 0xffe00000, "T,@" , OP_C4X   },  /* Class A7 - Alias for stik */
-  { "sti",    0x15600000, 0xffe00000, "T,*" , OP_C4X   },  /* Class A7 */
-  LS_CLASS_INSN( "sti",           0xc2000000, OP_C3X   ),
-  A7_CLASS_INSN( "stii",          0x15800000, OP_C3X   ),
-  { "stik",   0x15000000, 0xffe00000, "T,@" , OP_C4X   },  /* Z_CLASS */
-  { "stik",   0x15600000, 0xffe00000, "T,*" , OP_C4X   },  /* Z_CLASS */
-  A_CLASS_INSN(  "subb",          0x16800000, OP_C3X   ),
-  T_CLASS_INSN(  "subb",          0x06000000, OP_C3X   ),
-  A_CLASS_INSN(  "subc",          0x17000000, OP_C3X   ),
-  B_CLASS_INSN(  "subf",          0x17800000, OP_C3X   ),
-  S_CLASS_INSN(  "subf",          0x06800000, OP_C3X   ),
-  Q_CLASS_INSN(  "subf",  "stf",  0xea000000, OP_C3X   ),
-  A_CLASS_INSN(  "subi",          0x18000000, OP_C3X   ),
-  T_CLASS_INSN(  "subi",          0x07000000, OP_C3X   ),
-  Q_CLASS_INSN(  "subi",  "sti",  0xec000000, OP_C3X   ),
-  A_CLASS_INSN(  "subrb",         0x18800000, OP_C3X   ),
-  B_CLASS_INSN(  "subrf",         0x19000000, OP_C3X   ),
-  A_CLASS_INSN(  "subri",         0x19800000, OP_C3X   ),
-  { "swi",    0x66000000, 0xffffffff, ""    , OP_C3X   },  /* Z_CLASS */
-  B_CLASS_INSN(  "toieee",        0x1b800000, OP_C4X   ),
-  P_CLASS_INSN(  "toieee","stf",  0xf0000000, OP_C4X   ),
-  { "trapB",  0x74000000, 0xffe00000, "V"   , OP_C3X   },  /* Z_CLASS */
-  { "trap",   0x74000000, 0xffe00000, "V"   , OP_C3X   },  /* Z_CLASS - Alias for trapu */
-  AU_CLASS_INSN( "tstb",          0x1a000000, OP_C3X   ),
-  T2C_CLASS_INSN("tstb",          0x07800000, OP_C3X   ),
-  AU_CLASS_INSN( "xor",           0x1a800000, OP_C3X   ),
-  TC_CLASS_INSN( "xor",           0x08000000, OP_C3X   ),
-  QC_CLASS_INSN( "xor",   "sti",  0xee000000, OP_C3X   ),
-
-  /* Dummy entry, not included in tic4x_num_insts.  This
-     lets code examine entry i + 1 without checking
-     if we've run off the end of the table.  */
-  { "",      0x0, 0x00, "", 0 }
-};
-
-const unsigned int tic4x_num_insts = (((sizeof tic4x_insts) / (sizeof tic4x_insts[0])) - 1);
diff --git a/include/opcode/tic54x.h b/include/opcode/tic54x.h
deleted file mode 100644
index a37ae33..0000000
--- a/include/opcode/tic54x.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/* tic54x.h -- Header file for TI TMS320C54X opcode table
-   Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
-   Written by Timothy Wall (twall@cygnus.com)
-
-This file is part of GDB, GAS, and the GNU binutils.
-
-GDB, GAS, and the GNU binutils are free software; you can redistribute
-them and/or modify them 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.
-
-GDB, GAS, and the GNU binutils are distributed in the hope that they
-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 file; see the file COPYING.  If not, write to the Free
-Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
-02110-1301, USA.  */
-
-#ifndef _opcode_tic54x_h_
-#define _opcode_tic54x_h_
-
-typedef struct _symbol
-{
-  const char *name;
-  unsigned short value;
-} symbol;
-
-enum optype {
-  OPT = 0x8000,
-  OP_None = 0x0,
-
-  OP_Xmem, /* AR3 or AR4, indirect */
-  OP_Ymem, /* AR3 or AR4, indirect */
-  OP_pmad, /* PROG mem, direct */
-  OP_dmad, /* DATA mem, direct */
-  OP_Smem,
-  OP_Lmem, /* 32-bit single-addressed (direct/indirect) */
-  OP_MMR,
-  OP_PA,
-  OP_Sind,
-  OP_xpmad,
-  OP_xpmad_ms7,
-  OP_MMRX,
-  OP_MMRY,
-
-  OP_SRC1, /* src accumulator in bit 8 */
-  OP_SRC, /* src accumulator in bit 9 */
-  OP_RND, /* rounded result dst accumulator, opposite of bit 8 */
-  OP_DST, /* dst accumulator in bit 8 */
-  OP_ARX, /* arX in bits 0-3 */
-  OP_SHIFT, /* -16 to 15 (SHIFT), bits 0-4 */
-  OP_SHFT, /*   0 to 15 (SHIFT1 in summary), bits 0-3 */
-  OP_B, /* ACC B only */
-  OP_A, /* ACC A only */
-
-  OP_lk, /* 16-bit immediate, '#' optional */
-  OP_TS,
-  OP_k8, /* -128 <= k <= 128 */
-  OP_16, /* literal "16" */
-  OP_BITC, /* 0 to 16 */
-  OP_CC, /* condition code */
-  OP_CC2, /* 4-bit condition code */
-  OP_CC3, /* 2-bit condition code */
-  OP_123, /* 1, 2, or 3 */
-  OP_031, /* 0-31, numeric */
-  OP_k5, /* 0 to 31 */
-  OP_k8u, /* 0 to 255 */
-  OP_ASM, /* "ASM" */
-  OP_T, /* "T" */
-  OP_DP, /* "DP" */
-  OP_ARP, /* "ARP" */
-  OP_k3, /* 0-7 */
-  OP_lku, /* 0 to 65535 */
-  OP_N, /* 0/1 or ST0/ST1 */
-  OP_SBIT, /* status bit or 0-15 */
-  OP_12, /* one or two */
-  OP_k9, /* 9 bits of data page (DP) address */
-  OP_TRN, /* "TRN" */
-
-};
-
-typedef struct _template
-{
-  /* The opcode mnemonic */
-  const char *name;
-  unsigned int words; /* insn size in words */
-  int minops, maxops; /* min/max operand count */
-  /* The significant bits in the opcode.  Other bits are zero. 
-     Instructions with more than 16 bits of opcode store the rest in the upper
-     16 bits.
-   */
-  unsigned short opcode;
-#define INDIRECT(OP)    ((OP)&0x80)
-#define MOD(OP)         (((OP)>>3)&0xF)
-#define ARF(OP)         ((OP)&0x7)
-#define IS_LKADDR(OP)   (INDIRECT(OP) && MOD(OP)>=12)
-#define SRC(OP)         ((OP)&0x200)
-#define DST(OP)         ((OP)&0x100)
-#define SRC1(OP)        ((OP)&0x100)
-#define SHIFT(OP)       (((OP)&0x10)?(((OP)&0x1F)-32):((OP)&0x1F))
-#define SHFT(OP)        ((OP)&0xF)
-#define ARX(OP)         ((OP)&0x7)
-#define XMEM(OP)        (((OP)&0x00F0)>>4)
-#define YMEM(OP)        ((OP)&0x000F)
-#define XMOD(C)        (((C)&0xC)>>2)
-#define XARX(C)        (((C)&0x3)+2)
-#define CC3(OP)         (((OP)>>8)&0x3)
-#define SBIT(OP)        ((OP)&0xF)
-#define MMR(OP)         ((OP)&0x7F)
-#define MMRX(OP)        ((((OP)>>4)&0xF)+16)
-#define MMRY(OP)        (((OP)&0xF)+16)
-
-#define OPTYPE(X)       ((X)&~OPT)
-
-  /* Ones in this mask indicate which bits must match the opcode field.
-     Zeroes indicate don't care bits (operands and/or opcode options) */
-  unsigned short mask;
-
-  /* An array of operand codes (at most 4 operands) */
-#define MAX_OPERANDS 4
-  enum optype operand_types[MAX_OPERANDS];
-
-  /* Special purpose flags (e.g. branch type, parallel, delay, etc) 
-   */
-  unsigned short flags;
-#define B_NEXT      0 /* normal execution, next insn is next address */
-#define B_BRANCH    1 /* next insn is in opcode */
-#define B_RET       2 /* next insn is on stack */
-#define B_BACC      3 /* next insn is in acc */
-#define B_REPEAT    4 /* next insn repeats */
-#define FL_BMASK    0x07
-
-#define FL_DELAY    0x10 /* instruction uses delay slots */
-#define FL_EXT      0x20 /* instruction takes two words */   
-#define FL_FAR      0x40 /* far mode addressing */
-#define FL_LP       0x80 /* LP-only instruction */
-#define FL_NR       0x100 /* no repeat allowed */
-#define FL_SMR      0x200 /* Smem read (for flagging write-only *+ARx */
-
-#define FL_PAR      0x400 /* Parallel instruction. */
-
-  unsigned short opcode2, mask2;   /* some insns have an extended opcode */
-
-  const char* parname;
-  enum optype paroperand_types[MAX_OPERANDS];
-
-} template;
-
-extern const template tic54x_unknown_opcode;
-extern const template tic54x_optab[];
-extern const template tic54x_paroptab[];
-extern const symbol mmregs[], regs[];
-extern const symbol condition_codes[], cc2_codes[], status_bits[];
-extern const symbol cc3_codes[];
-extern const char *misc_symbols[];
-struct disassemble_info;
-extern const template* tic54x_get_insn (struct disassemble_info *, 
-                                        bfd_vma, unsigned short, int *);
-
-#endif /* _opcode_tic54x_h_ */
diff --git a/include/opcode/tic80.h b/include/opcode/tic80.h
deleted file mode 100644
index c89b81c..0000000
--- a/include/opcode/tic80.h
+++ /dev/null
@@ -1,282 +0,0 @@
-/* tic80.h -- Header file for TI TMS320C80 (MV) opcode table
-   Copyright 1996, 1997, 2003 Free Software Foundation, Inc.
-   Written by Fred Fish (fnf@cygnus.com), Cygnus Support
-
-This file is part of GDB, GAS, and the GNU binutils.
-
-GDB, GAS, and the GNU binutils are free software; you can redistribute
-them and/or modify them 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.
-
-GDB, GAS, and the GNU binutils are distributed in the hope that they
-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 file; see the file COPYING.  If not, write to the Free
-Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef TIC80_H
-#define TIC80_H
-
-/* The opcode table is an array of struct tic80_opcode.  */
-
-struct tic80_opcode
-{
-  /* The opcode name.  */
-
-  const char *name;
-
-  /* The opcode itself.  Those bits which will be filled in with operands
-     are zeroes.  */
-
-  unsigned long opcode;
-
-  /* The opcode mask.  This is used by the disassembler.  This is a mask
-     containing ones indicating those bits which must match the opcode
-     field, and zeroes indicating those bits which need not match (and are
-     presumably filled in by operands).  */
-
-  unsigned long mask;
-
-  /* Special purpose flags for this opcode. */
-
-  unsigned char flags;
-
-  /* An array of operand codes.  Each code is an index into the operand
-     table.  They appear in the order which the operands must appear in
-     assembly code, and are terminated by a zero.  FIXME: Adjust size to
-     match actual requirements when TIc80 support is complete */
-
-  unsigned char operands[8];
-};
-
-/* The table itself is sorted by major opcode number, and is otherwise in
-   the order in which the disassembler should consider instructions.
-   FIXME: This isn't currently true. */
-
-extern const struct tic80_opcode tic80_opcodes[];
-extern const int tic80_num_opcodes;
-
-
-/* The operands table is an array of struct tic80_operand.  */
-
-struct tic80_operand
-{
-  /* The number of bits in the operand.  */
-
-  int bits;
-
-  /* How far the operand is left shifted in the instruction.  */
-
-  int shift;
-
-  /* Insertion function.  This is used by the assembler.  To insert an
-     operand value into an instruction, check this field.
-
-     If it is NULL, execute
-         i |= (op & ((1 << o->bits) - 1)) << o->shift;
-     (i is the instruction which we are filling in, o is a pointer to
-     this structure, and op is the opcode value; this assumes twos
-     complement arithmetic).
-
-     If this field is not NULL, then simply call it with the
-     instruction and the operand value.  It will return the new value
-     of the instruction.  If the ERRMSG argument is not NULL, then if
-     the operand value is illegal, *ERRMSG will be set to a warning
-     string (the operand will be inserted in any case).  If the
-     operand value is legal, *ERRMSG will be unchanged (most operands
-     can accept any value).  */
-
-  unsigned long (*insert)
-    (unsigned long instruction, long op, const char **errmsg);
-
-  /* Extraction function.  This is used by the disassembler.  To
-     extract this operand type from an instruction, check this field.
-
-     If it is NULL, compute
-         op = ((i) >> o->shift) & ((1 << o->bits) - 1);
-	 if ((o->flags & TIC80_OPERAND_SIGNED) != 0
-	     && (op & (1 << (o->bits - 1))) != 0)
-	   op -= 1 << o->bits;
-     (i is the instruction, o is a pointer to this structure, and op
-     is the result; this assumes twos complement arithmetic).
-
-     If this field is not NULL, then simply call it with the
-     instruction value.  It will return the value of the operand.  If
-     the INVALID argument is not NULL, *INVALID will be set to
-     non-zero if this operand type can not actually be extracted from
-     this operand (i.e., the instruction does not match).  If the
-     operand is valid, *INVALID will not be changed.  */
-
-  long (*extract) (unsigned long instruction, int *invalid);
-
-  /* One bit syntax flags.  */
-
-  unsigned long flags;
-};
-
-/* Elements in the table are retrieved by indexing with values from
-   the operands field of the tic80_opcodes table.  */
-
-extern const struct tic80_operand tic80_operands[];
-
-
-/* Values defined for the flags field of a struct tic80_operand.
-
-   Note that flags for all predefined symbols, such as the general purpose
-   registers (ex: r10), control registers (ex: FPST), condition codes (ex:
-   eq0.b), bit numbers (ex: gt.b), etc are large enough that they can be
-   or'd into an int where the lower bits contain the actual numeric value
-   that correponds to this predefined symbol.  This way a single int can
-   contain both the value of the symbol and it's type.
- */
-
-/* This operand must be an even register number.  Floating point numbers
-   for example are stored in even/odd register pairs. */
-
-#define TIC80_OPERAND_EVEN	(1 << 0)
-
-/* This operand must be an odd register number and must be one greater than
-   the register number of the previous operand.  I.E. the second register in
-   an even/odd register pair. */
-
-#define TIC80_OPERAND_ODD	(1 << 1)
-
-/* This operand takes signed values.  */
-
-#define TIC80_OPERAND_SIGNED	(1 << 2)
-
-/* This operand may be either a predefined constant name or a numeric value.
-   An example would be a condition code like "eq0.b" which has the numeric
-   value 0x2. */
-
-#define TIC80_OPERAND_NUM	(1 << 3)
-
-/* This operand should be wrapped in parentheses rather than separated
-   from the previous one by a comma.  This is used for various
-   instructions, like the load and store instructions, which want
-   their operands to look like "displacement(reg)" */
-
-#define TIC80_OPERAND_PARENS	(1 << 4)
-
-/* This operand is a PC relative branch offset.  The disassembler prints
-   these symbolically if possible.  Note that the offsets are taken as word
-   offsets. */
-
-#define TIC80_OPERAND_PCREL	(1 << 5)
-
-/* This flag is a hint to the disassembler for using hex as the prefered
-   printing format, even for small positive or negative immediate values.
-   Normally values in the range -999 to 999 are printed as signed decimal
-   values and other values are printed in hex. */
-
-#define TIC80_OPERAND_BITFIELD	(1 << 6)
-
-/* This operand may have a ":m" modifier specified by bit 17 in a short
-   immediate form instruction. */
-
-#define TIC80_OPERAND_M_SI	(1 << 7)
-
-/* This operand may have a ":m" modifier specified by bit 15 in a long
-   immediate or register form instruction. */
-
-#define TIC80_OPERAND_M_LI	(1 << 8)
-
-/* This operand may have a ":s" modifier specified in bit 11 in a long
-   immediate or register form instruction. */
-
-#define TIC80_OPERAND_SCALED	(1 << 9)
-
-/* This operand is a floating point value */
-
-#define TIC80_OPERAND_FLOAT	(1 << 10)
-
-/* This operand is an byte offset from a base relocation. The lower
- two bits of the final relocated address are ignored when the value is
- written to the program counter. */
-
-#define TIC80_OPERAND_BASEREL	(1 << 11)
-
-/* This operand is an "endmask" field for a shift instruction.
-   It is treated special in that it can have values of 0-32,
-   where 0 and 32 result in the same instruction.  The assembler
-   must be able to accept both endmask values.  This disassembler
-   has no way of knowing from the instruction which value was 
-   given at assembly time, so it just uses '0'. */
-
-#define TIC80_OPERAND_ENDMASK	(1 << 12)
-
-/* This operand is one of the 32 general purpose registers.
-   The disassembler prints these with a leading 'r'. */
-
-#define TIC80_OPERAND_GPR	(1 << 27)
-
-/* This operand is a floating point accumulator register.
-   The disassembler prints these with a leading 'a'. */
-
-#define TIC80_OPERAND_FPA	( 1 << 28)
-
-/* This operand is a control register number, either numeric or
-   symbolic (like "EIF", "EPC", etc).
-   The disassembler prints these symbolically. */
-
-#define TIC80_OPERAND_CR	(1 << 29)
-
-/* This operand is a condition code, either numeric or
-   symbolic (like "eq0.b", "ne0.w", etc).
-   The disassembler prints these symbolically. */
-
-#define TIC80_OPERAND_CC	(1 << 30)
-
-/* This operand is a bit number, either numeric or
-   symbolic (like "eq.b", "or.f", etc).
-   The disassembler prints these symbolically.
-   Note that they appear in the instruction in 1's complement relative
-   to the values given in the manual. */
-
-#define TIC80_OPERAND_BITNUM	(1 << 31)
-
-/* This mask is used to strip operand bits from an int that contains
-   both operand bits and a numeric value in the lsbs. */
-
-#define TIC80_OPERAND_MASK	(TIC80_OPERAND_GPR | TIC80_OPERAND_FPA | TIC80_OPERAND_CR | TIC80_OPERAND_CC | TIC80_OPERAND_BITNUM)
-
-
-/* Flag bits for the struct tic80_opcode flags field. */
-
-#define TIC80_VECTOR		01	/* Is a vector instruction */
-#define TIC80_NO_R0_DEST	02	/* Register r0 cannot be a destination register */
-
-
-/* The opcodes library contains a table that allows translation from predefined
-   symbol names to numeric values, and vice versa. */
-
-/* Structure to hold information about predefined symbols.  */
-
-struct predefined_symbol
-{
-  char *name;		/* name to recognize */
-  int value;
-};
-
-#define PDS_NAME(pdsp) ((pdsp) -> name)
-#define PDS_VALUE(pdsp) ((pdsp) -> value)
-
-/* Translation array.  */
-extern const struct predefined_symbol tic80_predefined_symbols[];
-/* How many members in the array.  */
-extern const int tic80_num_predefined_symbols;
-
-/* Translate value to symbolic name.  */
-const char *tic80_value_to_symbol (int val, int class);
-
-/* Translate symbolic name to value.  */
-int tic80_symbol_to_value (char *name, int class);
-
-const struct predefined_symbol *tic80_next_predefined_symbol
-  (const struct predefined_symbol *);
-
-#endif /* TIC80_H */
diff --git a/include/opcode/v850.h b/include/opcode/v850.h
deleted file mode 100644
index 436ff39..0000000
--- a/include/opcode/v850.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/* v850.h -- Header file for NEC V850 opcode table
-   Copyright 1996, 1997, 2001, 2003 Free Software Foundation, Inc.
-   Written by J.T. Conklin, Cygnus Support
-
-This file is part of GDB, GAS, and the GNU binutils.
-
-GDB, GAS, and the GNU binutils are free software; you can redistribute
-them and/or modify them 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.
-
-GDB, GAS, and the GNU binutils are distributed in the hope that they
-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 file; see the file COPYING.  If not, write to the Free
-Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef V850_H
-#define V850_H
-
-/* The opcode table is an array of struct v850_opcode.  */
-
-struct v850_opcode
-{
-  /* The opcode name.  */
-  const char *name;
-
-  /* The opcode itself.  Those bits which will be filled in with
-     operands are zeroes.  */
-  unsigned long opcode;
-
-  /* The opcode mask.  This is used by the disassembler.  This is a
-     mask containing ones indicating those bits which must match the
-     opcode field, and zeroes indicating those bits which need not
-     match (and are presumably filled in by operands).  */
-  unsigned long mask;
-
-  /* An array of operand codes.  Each code is an index into the
-     operand table.  They appear in the order which the operands must
-     appear in assembly code, and are terminated by a zero.  */
-  unsigned char operands[8];
-
-  /* Which (if any) operand is a memory operand.  */
-  unsigned int memop;
-
-  /* Target processor(s).  A bit field of processors which support
-     this instruction.  Note a bit field is used as some instructions
-     are available on multiple, different processor types, whereas
-     other instructions are only available on one specific type.  */
-  unsigned int processors;
-};
-
-/* Values for the processors field in the v850_opcode structure.  */
-#define PROCESSOR_V850		(1 << 0)		/* Just the V850.  */
-#define PROCESSOR_ALL		-1			/* Any processor.  */
-#define PROCESSOR_V850E		(1 << 1)		/* Just the V850E. */
-#define PROCESSOR_NOT_V850	(~ PROCESSOR_V850)	/* Any processor except the V850.  */
-#define PROCESSOR_V850EA	(1 << 2)		/* Just the V850EA. */
-#define PROCESSOR_V850E1	(1 << 3)		/* Just the V850E1. */
-
-/* The table itself is sorted by major opcode number, and is otherwise
-   in the order in which the disassembler should consider
-   instructions.  */
-extern const struct v850_opcode v850_opcodes[];
-extern const int v850_num_opcodes;
-
-
-/* The operands table is an array of struct v850_operand.  */
-
-struct v850_operand
-{
-  /* The number of bits in the operand.  */
-  /* If this value is -1 then the operand's bits are in a discontinous distribution in the instruction. */
-  int bits;
-
-  /* (bits >= 0):  How far the operand is left shifted in the instruction.  */
-  /* (bits == -1): Bit mask of the bits in the operand.  */
-  int shift;
-
-  /* Insertion function.  This is used by the assembler.  To insert an
-     operand value into an instruction, check this field.
-
-     If it is NULL, execute
-         i |= (op & ((1 << o->bits) - 1)) << o->shift;
-     (i is the instruction which we are filling in, o is a pointer to
-     this structure, and op is the opcode value; this assumes twos
-     complement arithmetic).
-
-     If this field is not NULL, then simply call it with the
-     instruction and the operand value.  It will return the new value
-     of the instruction.  If the ERRMSG argument is not NULL, then if
-     the operand value is illegal, *ERRMSG will be set to a warning
-     string (the operand will be inserted in any case).  If the
-     operand value is legal, *ERRMSG will be unchanged (most operands
-     can accept any value).  */
-  unsigned long (* insert)
-    (unsigned long instruction, long op, const char ** errmsg);
-
-  /* Extraction function.  This is used by the disassembler.  To
-     extract this operand type from an instruction, check this field.
-
-     If it is NULL, compute
-         op = o->bits == -1 ? ((i) & o->shift) : ((i) >> o->shift) & ((1 << o->bits) - 1);
-	 if (o->flags & V850_OPERAND_SIGNED)
-	     op = (op << (32 - o->bits)) >> (32 - o->bits);
-     (i is the instruction, o is a pointer to this structure, and op
-     is the result; this assumes twos complement arithmetic).
-
-     If this field is not NULL, then simply call it with the
-     instruction value.  It will return the value of the operand.  If
-     the INVALID argument is not NULL, *INVALID will be set to
-     non-zero if this operand type can not actually be extracted from
-     this operand (i.e., the instruction does not match).  If the
-     operand is valid, *INVALID will not be changed.  */
-  unsigned long (* extract) (unsigned long instruction, int * invalid);
-
-  /* One bit syntax flags.  */
-  int flags;
-};
-
-/* Elements in the table are retrieved by indexing with values from
-   the operands field of the v850_opcodes table.  */
-
-extern const struct v850_operand v850_operands[];
-
-/* Values defined for the flags field of a struct v850_operand.  */
-
-/* This operand names a general purpose register */
-#define V850_OPERAND_REG	0x01
-
-/* This operand names a system register */
-#define V850_OPERAND_SRG	0x02
-
-/* This operand names a condition code used in the setf instruction */
-#define V850_OPERAND_CC		0x04
-
-/* This operand takes signed values */
-#define V850_OPERAND_SIGNED	0x08
-
-/* This operand is the ep register.  */
-#define V850_OPERAND_EP		0x10
-
-/* This operand is a PC displacement */
-#define V850_OPERAND_DISP	0x20
-
-/* This is a relaxable operand.   Only used for D9->D22 branch relaxing
-   right now.  We may need others in the future (or maybe handle them like
-   promoted operands on the mn10300?)  */
-#define V850_OPERAND_RELAX	0x40
-
-/* The register specified must not be r0 */
-#define V850_NOT_R0	        0x80
-
-/* push/pop type instruction, V850E specific.  */
-#define V850E_PUSH_POP		0x100
-
-/* 16 bit immediate follows instruction, V850E specific.  */
-#define V850E_IMMEDIATE16	0x200
-
-/* 32 bit immediate follows instruction, V850E specific.  */
-#define V850E_IMMEDIATE32	0x400
-
-#endif /* V850_H */
diff --git a/include/opcode/vax.h b/include/opcode/vax.h
deleted file mode 100644
index a521303..0000000
--- a/include/opcode/vax.h
+++ /dev/null
@@ -1,382 +0,0 @@
-/* Vax opcde list.
-   Copyright 1989, 1991, 1992, 1995 Free Software Foundation, Inc.
-
-This file is part of GDB and GAS.
-
-GDB and GAS are 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.
-
-GDB and GAS are 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 GDB or GAS; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef vax_opcodeT
-#define vax_opcodeT int
-#endif /* no vax_opcodeT */
-
-struct vot_wot			/* vax opcode table: wot to do with this */
-				/* particular opcode */
-{
-  const char       *args;	/* how to compile said opcode */
-  vax_opcodeT       code;	/* op-code (may be > 8 bits!) */
-};
-
-struct vot			/* vax opcode text */
-{
-  const char       *name;	/* opcode name: lowercase string  [key]  */
-  struct vot_wot    detail;	/* rest of opcode table          [datum] */
-};
-
-#define vot_how args
-#define vot_code code
-#define vot_detail detail
-#define vot_name name
-
-static const struct vot
-votstrs[] =
-{
-{    "halt",	{"",			0x00	} },
-{    "nop",	{"",			0x01	} },
-{    "rei",	{"",			0x02	} },
-{    "bpt",	{"",			0x03	} },
-{    "ret",	{"",			0x04	} },
-{    "rsb",	{"",			0x05	} },
-{    "ldpctx",	{"",			0x06	} },
-{    "svpctx",	{"",			0x07	} },
-{    "cvtps",	{"rwabrwab",		0x08	} },
-{    "cvtsp",	{"rwabrwab",		0x09	} },
-{    "index",	{"rlrlrlrlrlwl",	0x0a	} },
-{    "crc",	{"abrlrwab",		0x0b	} },
-{    "prober",	{"rbrwab",		0x0c	} },
-{    "probew",	{"rbrwab",	        0x0d	} },
-{    "insque",	{"abab",		0x0e	} },
-{    "remque",	{"abwl",		0x0f	} },
-{    "bsbb",	{"bb",			0x10	} },
-{    "brb",	{"bb",			0x11	} },
-{    "bneq",	{"bb",			0x12	} },
-{    "bnequ",	{"bb",			0x12	} },
-{    "beql",	{"bb",			0x13	} },
-{    "beqlu",	{"bb",			0x13	} },
-{    "bgtr",	{"bb",			0x14	} },
-{    "bleq",	{"bb",			0x15	} },
-{    "jsb",	{"ab",			0x16	} },
-{    "jmp",	{"ab",			0x17	} },
-{    "bgeq",	{"bb",			0x18	} },
-{    "blss",	{"bb",			0x19	} },
-{    "bgtru",	{"bb",			0x1a	} },
-{    "blequ",	{"bb",			0x1b	} },
-{    "bvc",	{"bb",			0x1c	} },
-{    "bvs",	{"bb",			0x1d	} },
-{    "bcc",	{"bb",			0x1e	} },
-{    "bgequ",	{"bb",			0x1e	} },
-{    "blssu",	{"bb",			0x1f	} },
-{    "bcs",	{"bb",			0x1f	} },
-{    "addp4",	{"rwabrwab",		0x20	} },
-{    "addp6",	{"rwabrwabrwab",	0x21	} },
-{    "subp4",	{"rwabrwab",		0x22	} },
-{    "subp6",	{"rwabrwabrwab",	0x23	} },
-{    "cvtpt",	{"rwababrwab",		0x24	} },
-{    "mulp",	{"rwabrwabrwab",	0x25	} },
-{    "cvttp",	{"rwababrwab",		0x26	} },
-{    "divp",	{"rwabrwabrwab",	0x27	} },
-{    "movc3",	{"rwabab",		0x28	} },
-{    "cmpc3",	{"rwabab",		0x29	} },
-{    "scanc",	{"rwababrb",		0x2a	} },
-{    "spanc",	{"rwababrb",		0x2b	} },
-{    "movc5",	{"rwabrbrwab",		0x2c	} },
-{    "cmpc5",	{"rwabrbrwab",		0x2d	} },
-{    "movtc",	{"rwabrbabrwab",	0x2e	} },
-{    "movtuc",	{"rwabrbabrwab",	0x2f	} },
-{    "bsbw",	{"bw",			0x30	} },
-{    "brw",	{"bw",			0x31	} },
-{    "cvtwl",	{"rwwl",		0x32	} },
-{    "cvtwb",	{"rwwb",		0x33	} },
-{    "movp",	{"rwabab",		0x34	} },
-{    "cmpp3",	{"rwabab",		0x35	} },
-{    "cvtpl",	{"rwabwl",		0x36	} },
-{    "cmpp4",	{"rwabrwab",		0x37	} },
-{    "editpc",	{"rwababab",		0x38	} },
-{    "matchc",	{"rwabrwab",		0x39	} },
-{    "locc",	{"rbrwab",		0x3a	} },
-{    "skpc",	{"rbrwab",		0x3b	} },
-{    "movzwl",	{"rwwl",		0x3c	} },
-{    "acbw",	{"rwrwmwbw",		0x3d	} },
-{    "movaw",	{"awwl",		0x3e	} },
-{    "pushaw",	{"aw",			0x3f	} },
-{    "addf2",	{"rfmf",		0x40	} },
-{    "addf3",	{"rfrfwf",		0x41	} },
-{    "subf2",	{"rfmf",		0x42	} },
-{    "subf3",	{"rfrfwf",		0x43	} },
-{    "mulf2",	{"rfmf",		0x44	} },
-{    "mulf3",	{"rfrfwf",		0x45	} },
-{    "divf2",	{"rfmf",		0x46	} },
-{    "divf3",	{"rfrfwf",		0x47	} },
-{    "cvtfb",	{"rfwb",		0x48	} },
-{    "cvtfw",	{"rfww",		0x49	} },
-{    "cvtfl",	{"rfwl",		0x4a	} },
-{    "cvtrfl",	{"rfwl",		0x4b	} },
-{    "cvtbf",	{"rbwf",		0x4c	} },
-{    "cvtwf",	{"rwwf",		0x4d	} },
-{    "cvtlf",	{"rlwf",		0x4e	} },
-{    "acbf",	{"rfrfmfbw",		0x4f	} },
-{    "movf",	{"rfwf",		0x50	} },
-{    "cmpf",	{"rfrf",		0x51	} },
-{    "mnegf",	{"rfwf",		0x52	} },
-{    "tstf",	{"rf",			0x53	} },
-{    "emodf",	{"rfrbrfwlwf",		0x54	} },
-{    "polyf",	{"rfrwab",		0x55	} },
-{    "cvtfd",	{"rfwd",		0x56	} },
-                                        /* opcode 57 is not defined yet */
-{    "adawi",	{"rwmw",		0x58	} },
-                                        /* opcode 59 is not defined yet */
-                                        /* opcode 5a is not defined yet */
-                                        /* opcode 5b is not defined yet */
-{    "insqhi",	{"abaq",		0x5c	} },
-{    "insqti",	{"abaq",		0x5d	} },
-{    "remqhi",	{"aqwl",		0x5e	} },
-{    "remqti",	{"aqwl",		0x5f	} },
-{    "addd2",	{"rdmd",		0x60	} },
-{    "addd3",	{"rdrdwd",		0x61	} },
-{    "subd2",	{"rdmd",		0x62	} },
-{    "subd3",	{"rdrdwd",		0x63	} },
-{    "muld2",	{"rdmd",		0x64	} },
-{    "muld3",	{"rdrdwd",		0x65	} },
-{    "divd2",	{"rdmd",		0x66	} },
-{    "divd3",	{"rdrdwd",		0x67	} },
-{    "cvtdb",	{"rdwb",		0x68	} },
-{    "cvtdw",	{"rdww",		0x69	} },
-{    "cvtdl",	{"rdwl",		0x6a	} },
-{    "cvtrdl",	{"rdwl",		0x6b	} },
-{    "cvtbd",	{"rbwd",		0x6c	} },
-{    "cvtwd",	{"rwwd",		0x6d	} },
-{    "cvtld",	{"rlwd",		0x6e	} },
-{    "acbd",	{"rdrdmdbw",		0x6f	} },
-{    "movd",	{"rdwd",		0x70	} },
-{    "cmpd",	{"rdrd",		0x71	} },
-{    "mnegd",	{"rdwd",		0x72	} },
-{    "tstd",	{"rd",			0x73	} },
-{    "emodd",	{"rdrbrdwlwd",		0x74	} },
-{    "polyd",	{"rdrwab",		0x75	} },
-{    "cvtdf",	{"rdwf",		0x76	} },
-                                        /* opcode 77 is not defined yet */
-{    "ashl",	{"rbrlwl",		0x78	} },
-{    "ashq",	{"rbrqwq",		0x79	} },
-{    "emul",	{"rlrlrlwq",		0x7a	} },
-{    "ediv",	{"rlrqwlwl",		0x7b	} },
-{    "clrd",	{"wd",			0x7c	} },
-{    "clrg",	{"wg",			0x7c	} },
-{    "clrq",	{"wd",			0x7c	} },
-{    "movq",	{"rqwq",		0x7d	} },
-{    "movaq",	{"aqwl",		0x7e	} },
-{    "movad",	{"adwl",		0x7e	} },
-{    "pushaq",	{"aq",			0x7f	} },
-{    "pushad",	{"ad",			0x7f	} },
-{    "addb2",	{"rbmb",		0x80	} },
-{    "addb3",	{"rbrbwb",		0x81	} },
-{    "subb2",	{"rbmb",		0x82	} },
-{    "subb3",	{"rbrbwb",		0x83	} },
-{    "mulb2",	{"rbmb",		0x84	} },
-{    "mulb3",	{"rbrbwb",		0x85	} },
-{    "divb2",	{"rbmb",		0x86	} },
-{    "divb3",	{"rbrbwb",		0x87	} },
-{    "bisb2",	{"rbmb",		0x88	} },
-{    "bisb3",	{"rbrbwb",		0x89	} },
-{    "bicb2",	{"rbmb",		0x8a	} },
-{    "bicb3",	{"rbrbwb",		0x8b	} },
-{    "xorb2",	{"rbmb",		0x8c	} },
-{    "xorb3",	{"rbrbwb",		0x8d	} },
-{    "mnegb",	{"rbwb",		0x8e	} },
-{    "caseb",	{"rbrbrb",		0x8f	} },
-{    "movb",	{"rbwb",		0x90	} },
-{    "cmpb",	{"rbrb",		0x91	} },
-{    "mcomb",	{"rbwb",		0x92	} },
-{    "bitb",	{"rbrb",		0x93	} },
-{    "clrb",	{"wb",			0x94	} },
-{    "tstb",	{"rb",			0x95	} },
-{    "incb",	{"mb",			0x96	} },
-{    "decb",	{"mb",			0x97	} },
-{    "cvtbl",	{"rbwl",		0x98	} },
-{    "cvtbw",	{"rbww",		0x99	} },
-{    "movzbl",	{"rbwl",		0x9a	} },
-{    "movzbw",	{"rbww",		0x9b	} },
-{    "rotl",	{"rbrlwl",		0x9c	} },
-{    "acbb",	{"rbrbmbbw",		0x9d	} },
-{    "movab",	{"abwl",		0x9e	} },
-{    "pushab",	{"ab",			0x9f	} },
-{    "addw2",	{"rwmw",		0xa0	} },
-{    "addw3",	{"rwrwww",		0xa1	} },
-{    "subw2",	{"rwmw",		0xa2	} },
-{    "subw3",	{"rwrwww",		0xa3	} },
-{    "mulw2",	{"rwmw",		0xa4	} },
-{    "mulw3",	{"rwrwww",		0xa5	} },
-{    "divw2",	{"rwmw",		0xa6	} },
-{    "divw3",	{"rwrwww",		0xa7	} },
-{    "bisw2",	{"rwmw",		0xa8	} },
-{    "bisw3",	{"rwrwww",		0xa9	} },
-{    "bicw2",	{"rwmw",		0xaa	} },
-{    "bicw3",	{"rwrwww",		0xab	} },
-{    "xorw2",	{"rwmw",		0xac	} },
-{    "xorw3",	{"rwrwww",		0xad	} },
-{    "mnegw",	{"rwww",		0xae	} },
-{    "casew",	{"rwrwrw",		0xaf	} },
-{    "movw",	{"rwww",		0xb0	} },
-{    "cmpw",	{"rwrw",		0xb1	} },
-{    "mcomw",	{"rwww",		0xb2	} },
-{    "bitw",	{"rwrw",		0xb3	} },
-{    "clrw",	{"ww",			0xb4	} },
-{    "tstw",	{"rw",			0xb5	} },
-{    "incw",	{"mw",			0xb6	} },
-{    "decw",	{"mw",			0xb7	} },
-{    "bispsw",	{"rw",			0xb8	} },
-{    "bicpsw",	{"rw",			0xb9	} },
-{    "popr",	{"rw",			0xba	} },
-{    "pushr",	{"rw",			0xbb	} },
-{    "chmk",	{"rw",			0xbc	} },
-{    "chme",	{"rw",			0xbd	} },
-{    "chms",	{"rw",			0xbe	} },
-{    "chmu",	{"rw",			0xbf	} },
-{    "addl2",	{"rlml",		0xc0	} },
-{    "addl3",	{"rlrlwl",		0xc1	} },
-{    "subl2",	{"rlml",		0xc2	} },
-{    "subl3",	{"rlrlwl",		0xc3	} },
-{    "mull2",	{"rlml",		0xc4	} },
-{    "mull3",	{"rlrlwl",		0xc5	} },
-{    "divl2",	{"rlml",		0xc6	} },
-{    "divl3",	{"rlrlwl",		0xc7	} },
-{    "bisl2",	{"rlml",		0xc8	} },
-{    "bisl3",	{"rlrlwl",		0xc9	} },
-{    "bicl2",	{"rlml",		0xca	} },
-{    "bicl3",	{"rlrlwl",		0xcb	} },
-{    "xorl2",	{"rlml",		0xcc	} },
-{    "xorl3",	{"rlrlwl",		0xcd	} },
-{    "mnegl",	{"rlwl",		0xce	} },
-{    "casel",	{"rlrlrl",		0xcf	} },
-{    "movl",	{"rlwl",		0xd0	} },
-{    "cmpl",	{"rlrl",		0xd1	} },
-{    "mcoml",	{"rlwl",		0xd2	} },
-{    "bitl",	{"rlrl",		0xd3	} },
-{    "clrf",	{"wf",			0xd4	} },
-{    "clrl",	{"wl",			0xd4	} },
-{    "tstl",	{"rl",			0xd5	} },
-{    "incl",	{"ml",			0xd6	} },
-{    "decl",	{"ml",			0xd7	} },
-{    "adwc",	{"rlml",		0xd8	} },
-{    "sbwc",	{"rlml",		0xd9	} },
-{    "mtpr",	{"rlrl",		0xda	} },
-{    "mfpr",	{"rlwl",		0xdb	} },
-{    "movpsl",	{"wl",			0xdc	} },
-{    "pushl",	{"rl",			0xdd	} },
-{    "moval",	{"alwl",		0xde	} },
-{    "movaf",	{"afwl",		0xde	} },
-{    "pushal",	{"al",			0xdf	} },
-{    "pushaf",	{"af",			0xdf	} },
-{    "bbs",	{"rlvbbb",		0xe0	} },
-{    "bbc",	{"rlvbbb",		0xe1	} },
-{    "bbss",	{"rlvbbb",		0xe2	} },
-{    "bbcs",	{"rlvbbb",		0xe3	} },
-{    "bbsc",	{"rlvbbb",		0xe4	} },
-{    "bbcc",	{"rlvbbb",		0xe5	} },
-{    "bbssi",	{"rlvbbb",		0xe6	} },
-{    "bbcci",	{"rlvbbb",		0xe7	} },
-{    "blbs",	{"rlbb",		0xe8	} },
-{    "blbc",	{"rlbb",		0xe9	} },
-{    "ffs",	{"rlrbvbwl",		0xea	} },
-{    "ffc",	{"rlrbvbwl",		0xeb	} },
-{    "cmpv",	{"rlrbvbrl",		0xec	} },
-{    "cmpzv",	{"rlrbvbrl",		0xed	} },
-{    "extv",	{"rlrbvbwl",		0xee	} },
-{    "extzv",	{"rlrbvbwl",		0xef	} },
-{    "insv",	{"rlrlrbvb",		0xf0	} },
-{    "acbl",	{"rlrlmlbw",		0xf1	} },
-{    "aoblss",	{"rlmlbb",		0xf2	} },
-{    "aobleq",	{"rlmlbb",		0xf3	} },
-{    "sobgeq",	{"mlbb",		0xf4	} },
-{    "sobgtr",	{"mlbb",		0xf5	} },
-{    "cvtlb",	{"rlwb",		0xf6	} },
-{    "cvtlw",	{"rlww",		0xf7	} },
-{    "ashp",	{"rbrwabrbrwab",	0xf8	} },
-{    "cvtlp",	{"rlrwab",		0xf9	} },
-{    "callg",	{"abab",		0xfa	} },
-{    "calls",	{"rlab",		0xfb	} },
-{    "xfc",	{"",			0xfc	} },
-                                        /* undefined opcodes here */
-{    "cvtdh",	{"rdwh",		0x32fd	} },
-{    "cvtgf",	{"rgwh",		0x33fd	} },
-{    "addg2",	{"rgmg",		0x40fd	} },
-{    "addg3",	{"rgrgwg",		0x41fd	} },
-{    "subg2",	{"rgmg",		0x42fd	} },
-{    "subg3",	{"rgrgwg",		0x43fd	} },
-{    "mulg2",	{"rgmg",		0x44fd	} },
-{    "mulg3",	{"rgrgwg",		0x45fd	} },
-{    "divg2",	{"rgmg",		0x46fd	} },
-{    "divg3",	{"rgrgwg",		0x47fd	} },
-{    "cvtgb",	{"rgwb",		0x48fd	} },
-{    "cvtgw",	{"rgww",		0x49fd	} },
-{    "cvtgl",	{"rgwl",		0x4afd	} },
-{    "cvtrgl",	{"rgwl",		0x4bfd	} },
-{    "cvtbg",	{"rbwg",		0x4cfd	} },
-{    "cvtwg",	{"rwwg",		0x4dfd	} },
-{    "cvtlg",	{"rlwg",		0x4efd	} },
-{    "acbg",	{"rgrgmgbw",		0x4ffd	} },
-{    "movg",	{"rgwg",		0x50fd	} },
-{    "cmpg",	{"rgrg",		0x51fd	} },
-{    "mnegg",	{"rgwg",		0x52fd	} },
-{    "tstg",	{"rg",			0x53fd	} },
-{    "emodg",	{"rgrwrgwlwg",		0x54fd	} },
-{    "polyg",	{"rgrwab",		0x55fd	} },
-{    "cvtgh",	{"rgwh",		0x56fd	} },
-                                        /* undefined opcodes here */
-{    "addh2",	{"rhmh",		0x60fd	} },
-{    "addh3",	{"rhrhwh",		0x61fd	} },
-{    "subh2",	{"rhmh",		0x62fd	} },
-{    "subh3",	{"rhrhwh",		0x63fd	} },
-{    "mulh2",	{"rhmh",		0x64fd	} },
-{    "mulh3",	{"rhrhwh",		0x65fd	} },
-{    "divh2",	{"rhmh",		0x66fd	} },
-{    "divh3",	{"rhrhwh",		0x67fd	} },
-{    "cvthb",	{"rhwb",		0x68fd	} },
-{    "cvthw",	{"rhww",		0x69fd	} },
-{    "cvthl",	{"rhwl",		0x6afd	} },
-{    "cvtrhl",	{"rhwl",		0x6bfd	} },
-{    "cvtbh",	{"rbwh",		0x6cfd	} },
-{    "cvtwh",	{"rwwh",		0x6dfd	} },
-{    "cvtlh",	{"rlwh",		0x6efd	} },
-{    "acbh",	{"rhrhmhbw",		0x6ffd	} },
-{    "movh",	{"rhwh",		0x70fd	} },
-{    "cmph",	{"rhrh",		0x71fd	} },
-{    "mnegh",	{"rhwh",		0x72fd	} },
-{    "tsth",	{"rh",			0x73fd	} },
-{    "emodh",	{"rhrwrhwlwh",		0x74fd	} },
-{    "polyh",	{"rhrwab",		0x75fd	} },
-{    "cvthg",	{"rhwg",		0x76fd	} },
-                                        /* undefined opcodes here */
-{    "clrh",	{"wh",			0x7cfd	} },
-{    "clro",	{"wo",			0x7cfd	} },
-{    "movo",	{"rowo",		0x7dfd	} },
-{    "movah",	{"ahwl",		0x7efd	} },
-{    "movao",	{"aowl",		0x7efd	} },
-{    "pushah",	{"ah",			0x7ffd	} },
-{    "pushao",	{"ao",			0x7ffd	} },
-                                        /* undefined opcodes here */
-{    "cvtfh",	{"rfwh",		0x98fd	} },
-{    "cvtfg",	{"rfwg",		0x99fd	} },
-                                        /* undefined opcodes here */
-{    "cvthf",	{"rhwf",		0xf6fd	} },
-{    "cvthd",	{"rhwd",		0xf7fd	} },
-                                        /* undefined opcodes here */
-{    "bugl",	{"rl",			0xfdff	} },
-{    "bugw",	{"rw",			0xfeff	} },
-                                        /* undefined opcodes here */
-
-{      "",	{"", 0} }		/* empty is end sentinel */
-
-};				/* votstrs */
-
-/* end: vax.opcode.h */
diff --git a/include/os9k.h b/include/os9k.h
deleted file mode 100644
index e8baee1..0000000
--- a/include/os9k.h
+++ /dev/null
@@ -1,181 +0,0 @@
-/* os9k.h  -  OS-9000 i386 module header definitions
-   Copyright 2000 Free Software Foundation, Inc.
-
-This file is part of GNU CC.
-   
-GNU CC 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.
-
-GNU CC 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 GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#if !defined(_MODULE_H)
-#define _MODULE_H
-
-#define _MPF386
-
-/* Size of common header less parity field.  */
-#define N_M_PARITY  (sizeof(mh_com)-sizeof(unisgned short))
-#define OLD_M_PARITY 46
-#define M_PARITY N_M_PARITY
-
-#ifdef _MPF68K
-#define MODSYNC 0x4afc		/* Module header sync code for 680x0 processors.  */
-#endif
-
-#ifdef _MPF386
-#define MODSYNC 0x4afc		/* Module header sync code for 80386 processors.  */
-#endif
-
-#define MODREV	1		/* Module format revision 1.  */
-#define CRCCON	0x800063	/* CRC polynomial constant.  */
-
-/* Module access permission values.  */
-#define MP_OWNER_READ	0x0001
-#define MP_OWNER_WRITE	0x0002
-#define MP_OWNER_EXEC	0x0004
-#define MP_GROUP_READ	0x0010
-#define MP_GROUP_WRITE	0x0020
-#define MP_GROUP_EXEC	0x0040
-#define MP_WORLD_READ	0x0100
-#define MP_WORLD_WRITE	0x0200
-#define MP_WORLD_EXEC	0x0400
-#define MP_WORLD_ACCESS	0x0777
-#define MP_OWNER_MASK	0x000f
-#define MP_GROUP_MASK	0x00f0
-#define MP_WORLD_MASK	0x0f00
-#define MP_SYSTM_MASK	0xf000
-
-/* Module Type/Language values.  */
-#define MT_ANY		0
-#define MT_PROGRAM	0x0001
-#define MT_SUBROUT	0x0002
-#define MT_MULTI	0x0003
-#define MT_DATA		0x0004
-#define MT_TRAPLIB	0x000b
-#define MT_SYSTEM	0x000c
-#define MT_FILEMAN	0x000d
-#define MT_DEVDRVR	0x000e 
-#define MT_DEVDESC	0x000f
-#define MT_MASK		0xff00
-
-#define ML_ANY		0
-#define ML_OBJECT	1
-#define ML_ICODE	2
-#define ML_PCODE	3
-#define ML_CCODE	4
-#define ML_CBLCODE	5
-#define ML_FRTNCODE	6
-#define ML_MASK		0x00ff
-
-#define mktypelang(type, lang)	(((type) << 8) | (lang))
-
-/* Module Attribute values.  */
-#define MA_REENT	0x80
-#define MA_GHOST	0x40
-#define MA_SUPER	0x20
-#define MA_MASK		0xff00
-#define MR_MASK		0x00ff
-
-#define mkattrevs(attr, revs)	(((attr) << 8) | (revs))
-
-#define m_user 		m_owner.grp_usr.usr
-#define m_group 	m_owner.grp_usr.grp
-#define m_group_user	m_owner.group_user
-
-/* Macro definitions for accessing module header fields.  */
-#define MODNAME(mod) ((u_char*)((u_char*)mod + ((Mh_com)mod)->m_name))
-#if 0
-/* Appears not to be used, and the u_int32 typedef is gone (because it
-   conflicted with a Mach header.  */
-#define MODSIZE(mod) ((u_int32)((Mh_com)mod)->m_size)
-#endif /* 0 */
-#define MHCOM_BYTES_SIZE 80
-#define N_BADMAG(a) (((a).a_info) != MODSYNC)
-
-typedef struct mh_com
-{
-  /* Sync bytes ($4afc).  */
-  unsigned char m_sync[2];
-  unsigned char m_sysrev[2];	/* System revision check value.  */
-  unsigned char m_size[4];	/* Module size.  */
-  unsigned char m_owner[4];	/* Group/user id.  */
-  unsigned char m_name[4];	/* Offset to module name.  */
-  unsigned char m_access[2];	/* Access permissions.  */
-  unsigned char m_tylan[2];	/* Type/lang.  */
-  unsigned char m_attrev[2];	/* Rev/attr.  */
-  unsigned char m_edit[2];	/* Edition.  */
-  unsigned char m_needs[4];	/* Module hardware requirements flags. (reserved).  */
-  unsigned char m_usage[4];	/* Comment string offset.  */
-  unsigned char m_symbol[4];	/* Symbol table offset.  */
-  unsigned char m_exec[4];	/* Offset to execution entry point.  */
-  unsigned char m_excpt[4];	/* Offset to exception entry point.  */
-  unsigned char m_data[4];	/* Data storage requirement.  */
-  unsigned char m_stack[4];	/* Stack size.  */
-  unsigned char m_idata[4];	/* Offset to initialized data.  */
-  unsigned char m_idref[4];	/* Offset to data reference lists.  */
-  unsigned char m_init[4];	/* Initialization routine offset.  */
-  unsigned char m_term[4];	/* Termination routine offset.  */
-  unsigned char m_ident[2];	/* Ident code for ident program.  */
-  char          m_spare[8];	/* Reserved bytes.  */
-  unsigned char m_parity[2]; 	/* Header parity.  */
-} mh_com,*Mh_com;
-
-/* Executable memory module.  */
-typedef mh_com *Mh_exec,mh_exec;
-
-/* Data memory module.  */
-typedef mh_com *Mh_data,mh_data;
-
-/* File manager memory module.  */
-typedef mh_com *Mh_fman,mh_fman;
-
-/* Device driver module.  */
-typedef mh_com *Mh_drvr,mh_drvr;
-
-/* Trap handler module.  */
-typedef	mh_com mh_trap, *Mh_trap;
-
-/* Device descriptor module.  */
-typedef	mh_com *Mh_dev,mh_dev;
-
-/* Configuration module.  */
-typedef mh_com *Mh_config, mh_config;
-
-#if 0 
-
-#if !defined(_MODDIR_H)
-/* Go get _os_fmod (and others).  */
-#include <moddir.h>
-#endif
-
-error_code _os_crc (void *, u_int32, int *);
-error_code _os_datmod (char *, u_int32, u_int16 *, u_int16 *, u_int32, void **, mh_data **);
-error_code _os_get_moddir (void *, u_int32 *);
-error_code _os_initdata (mh_com *, void *);
-error_code _os_link (char **, mh_com **, void **, u_int16 *, u_int16 *);
-error_code _os_linkm (mh_com *, void **, u_int16 *, u_int16 *);
-error_code _os_load (char *, mh_com **, void **, u_int32, u_int16 *, u_int16 *, u_int32);
-error_code _os_mkmodule (char *, u_int32, u_int16 *, u_int16 *, u_int32, void **, mh_com **, u_int32);
-error_code _os_modaddr (void *, mh_com **);
-error_code _os_setcrc (mh_com *);
-error_code _os_slink (u_int32, char *, void **, void **, mh_com **);
-error_code _os_slinkm (u_int32, mh_com *, void **, void **);
-error_code _os_unlink (mh_com *);
-error_code _os_unload (char *, u_int32);
-error_code _os_tlink (u_int32, char *, void **, mh_trap **, void *, u_int32);
-error_code _os_tlinkm (u_int32, mh_com *, void **, void *, u_int32);
-error_code _os_iodel (mh_com *);
-error_code _os_vmodul (mh_com *, mh_com *, u_int32);
-#endif /* 0 */
-
-#endif
diff --git a/include/partition.h b/include/partition.h
deleted file mode 100644
index d8b554f..0000000
--- a/include/partition.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* List implementation of a partition of consecutive integers.
-   Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
-   Contributed by CodeSourcery, LLC.
-
-   This file is part of GCC.
-
-   GCC 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.
-
-   GCC 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 GCC; see the file COPYING.  If not, write to
-   the Free Software Foundation, 51 Franklin Street - Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
-
-/* This package implements a partition of consecutive integers.  The
-   elements are partitioned into classes.  Each class is represented
-   by one of its elements, the canonical element, which is chosen
-   arbitrarily from elements in the class.  The principal operations
-   on a partition are FIND, which takes an element, determines its
-   class, and returns the canonical element for that class, and UNION,
-   which unites the two classes that contain two given elements into a
-   single class.
-
-   The list implementation used here provides constant-time finds.  By
-   storing the size of each class with the class's canonical element,
-   it is able to perform unions over all the classes in the partition
-   in O (N log N) time.  */
-
-#ifndef _PARTITION_H
-#define _PARTITION_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#include "ansidecl.h"
-#include <stdio.h>
-
-struct partition_elem
-{
-  /* The canonical element that represents the class containing this
-     element.  */
-  int class_element;
-  /* The next element in this class.  Elements in each class form a
-     circular list.  */
-  struct partition_elem* next;
-  /* The number of elements in this class.  Valid only if this is the
-     canonical element for its class.  */
-  unsigned class_count;
-};
-
-typedef struct partition_def 
-{
-  /* The number of elements in this partition.  */
-  int num_elements;
-  /* The elements in the partition.  */
-  struct partition_elem elements[1];
-} *partition;
-
-extern partition partition_new (int);
-extern void partition_delete (partition);
-extern int partition_union (partition, int, int);
-extern void partition_print (partition,	FILE*);
-
-/* Returns the canonical element corresponding to the class containing
-   ELEMENT__ in PARTITION__.  */
-
-#define partition_find(partition__, element__) \
-    ((partition__)->elements[(element__)].class_element)
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _PARTITION_H */
diff --git a/include/progress.h b/include/progress.h
deleted file mode 100644
index 53e0199..0000000
--- a/include/progress.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Default definitions for progress macros.
-   Copyright 1994 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* The default definitions below are intended to be replaced by real
-   definitions, if building the tools for an interactive programming
-   environment.  */
-
-#ifndef _PROGRESS_H
-#define _PROGRESS_H
-
-#ifndef START_PROGRESS
-#define START_PROGRESS(STR,N)
-#endif
-
-#ifndef PROGRESS
-#define PROGRESS(X)
-#endif
-
-#ifndef END_PROGRESS
-#define END_PROGRESS(STR)
-#endif
-
-#endif /* _PROGRESS_H */
diff --git a/include/safe-ctype.h b/include/safe-ctype.h
deleted file mode 100644
index e59b357..0000000
--- a/include/safe-ctype.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/* <ctype.h> replacement macros.
-
-   Copyright (C) 2000, 2001 Free Software Foundation, Inc.
-   Contributed by Zack Weinberg <zackw@stanford.edu>.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-/* This is a compatible replacement of the standard C library's <ctype.h>
-   with the following properties:
-
-   - Implements all isxxx() macros required by C99.
-   - Also implements some character classes useful when
-     parsing C-like languages.
-   - Does not change behavior depending on the current locale.
-   - Behaves properly for all values in the range of a signed or
-     unsigned char.
-
-   To avoid conflicts, this header defines the isxxx functions in upper
-   case, e.g. ISALPHA not isalpha.  */
-
-#ifndef SAFE_CTYPE_H
-#define SAFE_CTYPE_H
-
-#ifdef isalpha
- #error "safe-ctype.h and ctype.h may not be used simultaneously"
-#endif
-
-/* Determine host character set.  */
-#define HOST_CHARSET_UNKNOWN 0
-#define HOST_CHARSET_ASCII   1
-#define HOST_CHARSET_EBCDIC  2
-
-#if  '\n' == 0x0A && ' ' == 0x20 && '0' == 0x30 \
-   && 'A' == 0x41 && 'a' == 0x61 && '!' == 0x21
-#  define HOST_CHARSET HOST_CHARSET_ASCII
-#else
-# if '\n' == 0x15 && ' ' == 0x40 && '0' == 0xF0 \
-   && 'A' == 0xC1 && 'a' == 0x81 && '!' == 0x5A
-#  define HOST_CHARSET HOST_CHARSET_EBCDIC
-# else
-#  define HOST_CHARSET HOST_CHARSET_UNKNOWN
-# endif
-#endif
-
-/* Categories.  */
-
-enum {
-  /* In C99 */
-  _sch_isblank  = 0x0001,	/* space \t */
-  _sch_iscntrl  = 0x0002,	/* nonprinting characters */
-  _sch_isdigit  = 0x0004,	/* 0-9 */
-  _sch_islower  = 0x0008,	/* a-z */
-  _sch_isprint  = 0x0010,	/* any printing character including ' ' */
-  _sch_ispunct  = 0x0020,	/* all punctuation */
-  _sch_isspace  = 0x0040,	/* space \t \n \r \f \v */
-  _sch_isupper  = 0x0080,	/* A-Z */
-  _sch_isxdigit = 0x0100,	/* 0-9A-Fa-f */
-
-  /* Extra categories useful to cpplib.  */
-  _sch_isidst	= 0x0200,	/* A-Za-z_ */
-  _sch_isvsp    = 0x0400,	/* \n \r */
-  _sch_isnvsp   = 0x0800,	/* space \t \f \v \0 */
-
-  /* Combinations of the above.  */
-  _sch_isalpha  = _sch_isupper|_sch_islower,	/* A-Za-z */
-  _sch_isalnum  = _sch_isalpha|_sch_isdigit,	/* A-Za-z0-9 */
-  _sch_isidnum  = _sch_isidst|_sch_isdigit,	/* A-Za-z0-9_ */
-  _sch_isgraph  = _sch_isalnum|_sch_ispunct,	/* isprint and not space */
-  _sch_iscppsp  = _sch_isvsp|_sch_isnvsp,	/* isspace + \0 */
-  _sch_isbasic  = _sch_isprint|_sch_iscppsp     /* basic charset of ISO C
-						   (plus ` and @)  */
-};
-
-/* Character classification.  */
-extern const unsigned short _sch_istable[256];
-
-#define _sch_test(c, bit) (_sch_istable[(c) & 0xff] & (unsigned short)(bit))
-
-#define ISALPHA(c)  _sch_test(c, _sch_isalpha)
-#define ISALNUM(c)  _sch_test(c, _sch_isalnum)
-#define ISBLANK(c)  _sch_test(c, _sch_isblank)
-#define ISCNTRL(c)  _sch_test(c, _sch_iscntrl)
-#define ISDIGIT(c)  _sch_test(c, _sch_isdigit)
-#define ISGRAPH(c)  _sch_test(c, _sch_isgraph)
-#define ISLOWER(c)  _sch_test(c, _sch_islower)
-#define ISPRINT(c)  _sch_test(c, _sch_isprint)
-#define ISPUNCT(c)  _sch_test(c, _sch_ispunct)
-#define ISSPACE(c)  _sch_test(c, _sch_isspace)
-#define ISUPPER(c)  _sch_test(c, _sch_isupper)
-#define ISXDIGIT(c) _sch_test(c, _sch_isxdigit)
-
-#define ISIDNUM(c)	_sch_test(c, _sch_isidnum)
-#define ISIDST(c)	_sch_test(c, _sch_isidst)
-#define IS_ISOBASIC(c)	_sch_test(c, _sch_isbasic)
-#define IS_VSPACE(c)	_sch_test(c, _sch_isvsp)
-#define IS_NVSPACE(c)	_sch_test(c, _sch_isnvsp)
-#define IS_SPACE_OR_NUL(c)	_sch_test(c, _sch_iscppsp)
-
-/* Character transformation.  */
-extern const unsigned char  _sch_toupper[256];
-extern const unsigned char  _sch_tolower[256];
-#define TOUPPER(c) _sch_toupper[(c) & 0xff]
-#define TOLOWER(c) _sch_tolower[(c) & 0xff]
-
-#endif /* SAFE_CTYPE_H */
diff --git a/include/sort.h b/include/sort.h
deleted file mode 100644
index 582af81..0000000
--- a/include/sort.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Sorting algorithms.
-   Copyright (C) 2000, 2002 Free Software Foundation, Inc.
-   Contributed by Mark Mitchell <mark@codesourcery.com>.
-
-This file is part of GCC.
-   
-GCC 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.
-
-GCC 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 GCC; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#ifndef SORT_H
-#define SORT_H
-
-#include <sys/types.h> /* For size_t */
-#ifdef __STDC__
-#include <stddef.h>
-#endif	/* __STDC__ */
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#include "ansidecl.h"
-
-/* Sort an array of pointers.  */
-
-extern void sort_pointers (size_t, void **, void **);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* SORT_H */
-
-
-   
-   
diff --git a/include/splay-tree.h b/include/splay-tree.h
deleted file mode 100644
index 78d8f71..0000000
--- a/include/splay-tree.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/* A splay-tree datatype.  
-   Copyright 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
-   Contributed by Mark Mitchell (mark@markmitchell.com).
-
-This file is part of GCC.
-   
-GCC 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.
-
-GCC 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 GCC; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-/* For an easily readable description of splay-trees, see:
-
-     Lewis, Harry R. and Denenberg, Larry.  Data Structures and Their
-     Algorithms.  Harper-Collins, Inc.  1991.  
-
-   The major feature of splay trees is that all basic tree operations
-   are amortized O(log n) time for a tree with n nodes.  */
-
-#ifndef _SPLAY_TREE_H
-#define _SPLAY_TREE_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#include "ansidecl.h"
-
-#ifndef GTY
-#define GTY(X)
-#endif
-
-/* Use typedefs for the key and data types to facilitate changing
-   these types, if necessary.  These types should be sufficiently wide
-   that any pointer or scalar can be cast to these types, and then
-   cast back, without loss of precision.  */
-typedef unsigned long int splay_tree_key;
-typedef unsigned long int splay_tree_value;
-
-/* Forward declaration for a node in the tree.  */
-typedef struct splay_tree_node_s *splay_tree_node;
-
-/* The type of a function which compares two splay-tree keys.  The
-   function should return values as for qsort.  */
-typedef int (*splay_tree_compare_fn) (splay_tree_key, splay_tree_key);
-
-/* The type of a function used to deallocate any resources associated
-   with the key.  */
-typedef void (*splay_tree_delete_key_fn) (splay_tree_key);
-
-/* The type of a function used to deallocate any resources associated
-   with the value.  */
-typedef void (*splay_tree_delete_value_fn) (splay_tree_value);
-
-/* The type of a function used to iterate over the tree.  */
-typedef int (*splay_tree_foreach_fn) (splay_tree_node, void*);
-
-/* The type of a function used to allocate memory for tree root and
-   node structures.  The first argument is the number of bytes needed;
-   the second is a data pointer the splay tree functions pass through
-   to the allocator.  This function must never return zero.  */
-typedef void *(*splay_tree_allocate_fn) (int, void *);
-
-/* The type of a function used to free memory allocated using the
-   corresponding splay_tree_allocate_fn.  The first argument is the
-   memory to be freed; the latter is a data pointer the splay tree
-   functions pass through to the freer.  */
-typedef void (*splay_tree_deallocate_fn) (void *, void *);
-
-/* The nodes in the splay tree.  */
-struct splay_tree_node_s GTY(())
-{
-  /* The key.  */
-  splay_tree_key GTY ((use_param1)) key;
-
-  /* The value.  */
-  splay_tree_value GTY ((use_param2)) value;
-
-  /* The left and right children, respectively.  */
-  splay_tree_node GTY ((use_params)) left;
-  splay_tree_node GTY ((use_params)) right;
-};
-
-/* The splay tree itself.  */
-struct splay_tree_s GTY(())
-{
-  /* The root of the tree.  */
-  splay_tree_node GTY ((use_params)) root;
-
-  /* The comparision function.  */
-  splay_tree_compare_fn comp;
-
-  /* The deallocate-key function.  NULL if no cleanup is necessary.  */
-  splay_tree_delete_key_fn delete_key;
-
-  /* The deallocate-value function.  NULL if no cleanup is necessary.  */
-  splay_tree_delete_value_fn delete_value;
-
-  /* Allocate/free functions, and a data pointer to pass to them.  */
-  splay_tree_allocate_fn allocate;
-  splay_tree_deallocate_fn deallocate;
-  void * GTY((skip)) allocate_data;
-
-};
-typedef struct splay_tree_s *splay_tree;
-
-extern splay_tree splay_tree_new        (splay_tree_compare_fn,
-                                         splay_tree_delete_key_fn,
-                                         splay_tree_delete_value_fn);
-extern splay_tree splay_tree_new_with_allocator (splay_tree_compare_fn,
-                                                 splay_tree_delete_key_fn,
-					        splay_tree_delete_value_fn,
-                                                 splay_tree_allocate_fn,
-                                                 splay_tree_deallocate_fn,
-                                                 void *);
-extern void splay_tree_delete           (splay_tree);
-extern splay_tree_node splay_tree_insert (splay_tree,
-                                          splay_tree_key,
-                                          splay_tree_value);
-extern void splay_tree_remove	(splay_tree, splay_tree_key);
-extern splay_tree_node splay_tree_lookup (splay_tree, splay_tree_key);
-extern splay_tree_node splay_tree_predecessor (splay_tree, splay_tree_key);
-extern splay_tree_node splay_tree_successor (splay_tree, splay_tree_key);
-extern splay_tree_node splay_tree_max (splay_tree);
-extern splay_tree_node splay_tree_min (splay_tree);
-extern int splay_tree_foreach (splay_tree, splay_tree_foreach_fn, void*);
-extern int splay_tree_compare_ints (splay_tree_key, splay_tree_key);
-extern int splay_tree_compare_pointers (splay_tree_key,	splay_tree_key);
-					       
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _SPLAY_TREE_H */
diff --git a/include/symcat.h b/include/symcat.h
deleted file mode 100644
index 03a1292..0000000
--- a/include/symcat.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Symbol concatenation utilities.
-
-   Copyright (C) 1998, 2000 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 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.,
-   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef SYM_CAT_H
-#define SYM_CAT_H
-
-#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
-#define CONCAT2(a,b)	 a##b
-#define CONCAT3(a,b,c)	 a##b##c
-#define CONCAT4(a,b,c,d) a##b##c##d
-#define STRINGX(s) #s
-#else
-/* Note one should never pass extra whitespace to the CONCATn macros,
-   e.g. CONCAT2(foo, bar) because traditonal C will keep the space between
-   the two labels instead of concatenating them.  Instead, make sure to
-   write CONCAT2(foo,bar).  */
-#define CONCAT2(a,b)	 a/**/b
-#define CONCAT3(a,b,c)	 a/**/b/**/c
-#define CONCAT4(a,b,c,d) a/**/b/**/c/**/d
-#define STRINGX(s) "s"
-#endif
-
-#define XCONCAT2(a,b)     CONCAT2(a,b)
-#define XCONCAT3(a,b,c)   CONCAT3(a,b,c)
-#define XCONCAT4(a,b,c,d) CONCAT4(a,b,c,d)
-
-/* Note the layer of indirection here is typically used to allow
-   stringification of the expansion of macros.  I.e. "#define foo
-   bar", "XSTRING(foo)", to yield "bar".  Be aware that this only
-   works for __STDC__, not for traditional C which will still resolve
-   to "foo".  */
-#define XSTRING(s) STRINGX(s) 
-
-#endif /* SYM_CAT_H */
diff --git a/include/ternary.h b/include/ternary.h
deleted file mode 100644
index 31c1fce..0000000
--- a/include/ternary.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* ternary.h - Ternary Search Trees
-   Copyright 2001 Free Software Foundation, Inc.
-
-   Contributed by Daniel Berlin (dan@cgsoftware.com)
-
-
-   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, 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301,
-   USA.  */
-#ifndef TERNARY_H_
-#define TERNARY_H_
-/* Ternary search trees */
-
-typedef struct ternary_node_def *ternary_tree;
-
-typedef struct ternary_node_def
-{
-  char splitchar;
-  ternary_tree lokid;
-  ternary_tree eqkid;
-  ternary_tree hikid;
-}
-ternary_node;
-
-/* Insert string S into tree P, associating it with DATA. 
-   Return the data in the tree associated with the string if it's
-   already there, and replace is 0.
-   Otherwise, replaces if it it exists, inserts if it doesn't, and
-   returns the data you passed in. */
-void *ternary_insert (ternary_tree *p, const char *s,
-		      void *data, int replace);
-
-/* Delete the ternary search tree rooted at P. 
-   Does NOT delete the data you associated with the strings. */
-void ternary_cleanup (ternary_tree p);
-
-/* Search the ternary tree for string S, returning the data associated
-   with it if found. */
-void *ternary_search (const ternary_node *p, const char *s);
-#endif
diff --git a/include/xregex.h b/include/xregex.h
deleted file mode 100644
index 645195b..0000000
--- a/include/xregex.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* This file redefines all regex external names before including
-   a renamed copy of glibc's regex.h.  */
-
-#ifndef _XREGEX_H
-#define _XREGEX_H 1
-
-#  define regfree xregfree 
-#  define regexec xregexec
-#  define regcomp xregcomp
-#  define regerror xregerror
-#  define re_set_registers xre_set_registers
-#  define re_match_2 xre_match_2
-#  define re_match xre_match
-#  define re_search xre_search
-#  define re_compile_pattern xre_compile_pattern
-#  define re_set_syntax xre_set_syntax
-#  define re_search_2 xre_search_2
-#  define re_compile_fastmap xre_compile_fastmap
-#  define re_syntax_options xre_syntax_options
-#  define re_max_failures xre_max_failures
-
-#  define _REGEX_RE_COMP
-#  define re_comp xre_comp
-#  define re_exec xre_exec
-
-#include "xregex2.h"
-
-#endif /* xregex.h */
diff --git a/include/xregex2.h b/include/xregex2.h
deleted file mode 100644
index d3d0da1..0000000
--- a/include/xregex2.h
+++ /dev/null
@@ -1,565 +0,0 @@
-/* Definitions for data structures and routines for the regular
-   expression library, version 0.12.
-
-   Copyright (C) 1985, 1989, 1990, 1991, 1992, 1993, 1995, 1996, 1997,
-   1998, 2000, 2005 Free Software Foundation, Inc.
-
-   This file is part of the GNU C Library.  Its master source is NOT part of
-   the C library, however.  The master source lives in /gd/gnu/lib.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library 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
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-   02110-1301 USA.  */
-
-#ifndef _REGEX_H
-#define _REGEX_H 1
-
-/* Allow the use in C++ code.  */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* POSIX says that <sys/types.h> must be included (by the caller) before
-   <regex.h>.  */
-
-#if !defined _POSIX_C_SOURCE && !defined _POSIX_SOURCE && defined VMS
-/* VMS doesn't have `size_t' in <sys/types.h>, even though POSIX says it
-   should be there.  */
-# include <stddef.h>
-#endif
-
-/* The following two types have to be signed and unsigned integer type
-   wide enough to hold a value of a pointer.  For most ANSI compilers
-   ptrdiff_t and size_t should be likely OK.  Still size of these two
-   types is 2 for Microsoft C.  Ugh... */
-typedef long int s_reg_t;
-typedef unsigned long int active_reg_t;
-
-/* The following bits are used to determine the regexp syntax we
-   recognize.  The set/not-set meanings are chosen so that Emacs syntax
-   remains the value 0.  The bits are given in alphabetical order, and
-   the definitions shifted by one from the previous bit; thus, when we
-   add or remove a bit, only one other definition need change.  */
-typedef unsigned long int reg_syntax_t;
-
-/* If this bit is not set, then \ inside a bracket expression is literal.
-   If set, then such a \ quotes the following character.  */
-#define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1)
-
-/* If this bit is not set, then + and ? are operators, and \+ and \? are
-     literals.
-   If set, then \+ and \? are operators and + and ? are literals.  */
-#define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1)
-
-/* If this bit is set, then character classes are supported.  They are:
-     [:alpha:], [:upper:], [:lower:],  [:digit:], [:alnum:], [:xdigit:],
-     [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:].
-   If not set, then character classes are not supported.  */
-#define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1)
-
-/* If this bit is set, then ^ and $ are always anchors (outside bracket
-     expressions, of course).
-   If this bit is not set, then it depends:
-        ^  is an anchor if it is at the beginning of a regular
-           expression or after an open-group or an alternation operator;
-        $  is an anchor if it is at the end of a regular expression, or
-           before a close-group or an alternation operator.
-
-   This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because
-   POSIX draft 11.2 says that * etc. in leading positions is undefined.
-   We already implemented a previous draft which made those constructs
-   invalid, though, so we haven't changed the code back.  */
-#define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1)
-
-/* If this bit is set, then special characters are always special
-     regardless of where they are in the pattern.
-   If this bit is not set, then special characters are special only in
-     some contexts; otherwise they are ordinary.  Specifically,
-     * + ? and intervals are only special when not after the beginning,
-     open-group, or alternation operator.  */
-#define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1)
-
-/* If this bit is set, then *, +, ?, and { cannot be first in an re or
-     immediately after an alternation or begin-group operator.  */
-#define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1)
-
-/* If this bit is set, then . matches newline.
-   If not set, then it doesn't.  */
-#define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1)
-
-/* If this bit is set, then . doesn't match NUL.
-   If not set, then it does.  */
-#define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1)
-
-/* If this bit is set, nonmatching lists [^...] do not match newline.
-   If not set, they do.  */
-#define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1)
-
-/* If this bit is set, either \{...\} or {...} defines an
-     interval, depending on RE_NO_BK_BRACES.
-   If not set, \{, \}, {, and } are literals.  */
-#define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
-
-/* If this bit is set, +, ? and | aren't recognized as operators.
-   If not set, they are.  */
-#define RE_LIMITED_OPS (RE_INTERVALS << 1)
-
-/* If this bit is set, newline is an alternation operator.
-   If not set, newline is literal.  */
-#define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1)
-
-/* If this bit is set, then `{...}' defines an interval, and \{ and \}
-     are literals.
-  If not set, then `\{...\}' defines an interval.  */
-#define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1)
-
-/* If this bit is set, (...) defines a group, and \( and \) are literals.
-   If not set, \(...\) defines a group, and ( and ) are literals.  */
-#define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1)
-
-/* If this bit is set, then \<digit> matches <digit>.
-   If not set, then \<digit> is a back-reference.  */
-#define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1)
-
-/* If this bit is set, then | is an alternation operator, and \| is literal.
-   If not set, then \| is an alternation operator, and | is literal.  */
-#define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1)
-
-/* If this bit is set, then an ending range point collating higher
-     than the starting range point, as in [z-a], is invalid.
-   If not set, then when ending range point collates higher than the
-     starting range point, the range is ignored.  */
-#define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1)
-
-/* If this bit is set, then an unmatched ) is ordinary.
-   If not set, then an unmatched ) is invalid.  */
-#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1)
-
-/* If this bit is set, succeed as soon as we match the whole pattern,
-   without further backtracking.  */
-#define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1)
-
-/* If this bit is set, do not process the GNU regex operators.
-   If not set, then the GNU regex operators are recognized. */
-#define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1)
-
-/* If this bit is set, turn on internal regex debugging.
-   If not set, and debugging was on, turn it off.
-   This only works if regex.c is compiled -DDEBUG.
-   We define this bit always, so that all that's needed to turn on
-   debugging is to recompile regex.c; the calling code can always have
-   this bit set, and it won't affect anything in the normal case. */
-#define RE_DEBUG (RE_NO_GNU_OPS << 1)
-
-/* If this bit is set, a syntactically invalid interval is treated as
-   a string of ordinary characters.  For example, the ERE 'a{1' is
-   treated as 'a\{1'.  */
-#define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1)
-
-/* This global variable defines the particular regexp syntax to use (for
-   some interfaces).  When a regexp is compiled, the syntax used is
-   stored in the pattern buffer, so changing this does not affect
-   already-compiled regexps.  */
-extern reg_syntax_t re_syntax_options;
-
-/* Define combinations of the above bits for the standard possibilities.
-   (The [[[ comments delimit what gets put into the Texinfo file, so
-   don't delete them!)  */
-/* [[[begin syntaxes]]] */
-#define RE_SYNTAX_EMACS 0
-
-#define RE_SYNTAX_AWK							\
-  (RE_BACKSLASH_ESCAPE_IN_LISTS   | RE_DOT_NOT_NULL			\
-   | RE_NO_BK_PARENS              | RE_NO_BK_REFS			\
-   | RE_NO_BK_VBAR                | RE_NO_EMPTY_RANGES			\
-   | RE_DOT_NEWLINE		  | RE_CONTEXT_INDEP_ANCHORS		\
-   | RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS)
-
-#define RE_SYNTAX_GNU_AWK						\
-  ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DEBUG)	\
-   & ~(RE_DOT_NOT_NULL | RE_INTERVALS | RE_CONTEXT_INDEP_OPS))
-
-#define RE_SYNTAX_POSIX_AWK 						\
-  (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS		\
-   | RE_INTERVALS	    | RE_NO_GNU_OPS)
-
-#define RE_SYNTAX_GREP							\
-  (RE_BK_PLUS_QM              | RE_CHAR_CLASSES				\
-   | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS				\
-   | RE_NEWLINE_ALT)
-
-#define RE_SYNTAX_EGREP							\
-  (RE_CHAR_CLASSES        | RE_CONTEXT_INDEP_ANCHORS			\
-   | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE			\
-   | RE_NEWLINE_ALT       | RE_NO_BK_PARENS				\
-   | RE_NO_BK_VBAR)
-
-#define RE_SYNTAX_POSIX_EGREP						\
-  (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES			\
-   | RE_INVALID_INTERVAL_ORD)
-
-/* P1003.2/D11.2, section 4.20.7.1, lines 5078ff.  */
-#define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC
-
-#define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC
-
-/* Syntax bits common to both basic and extended POSIX regex syntax.  */
-#define _RE_SYNTAX_POSIX_COMMON						\
-  (RE_CHAR_CLASSES | RE_DOT_NEWLINE      | RE_DOT_NOT_NULL		\
-   | RE_INTERVALS  | RE_NO_EMPTY_RANGES)
-
-#define RE_SYNTAX_POSIX_BASIC						\
-  (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM)
-
-/* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes
-   RE_LIMITED_OPS, i.e., \? \+ \| are not recognized.  Actually, this
-   isn't minimal, since other operators, such as \`, aren't disabled.  */
-#define RE_SYNTAX_POSIX_MINIMAL_BASIC					\
-  (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS)
-
-#define RE_SYNTAX_POSIX_EXTENDED					\
-  (_RE_SYNTAX_POSIX_COMMON  | RE_CONTEXT_INDEP_ANCHORS			\
-   | RE_CONTEXT_INDEP_OPS   | RE_NO_BK_BRACES				\
-   | RE_NO_BK_PARENS        | RE_NO_BK_VBAR				\
-   | RE_CONTEXT_INVALID_OPS | RE_UNMATCHED_RIGHT_PAREN_ORD)
-
-/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INDEP_OPS is
-   removed and RE_NO_BK_REFS is added.  */
-#define RE_SYNTAX_POSIX_MINIMAL_EXTENDED				\
-  (_RE_SYNTAX_POSIX_COMMON  | RE_CONTEXT_INDEP_ANCHORS			\
-   | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES				\
-   | RE_NO_BK_PARENS        | RE_NO_BK_REFS				\
-   | RE_NO_BK_VBAR	    | RE_UNMATCHED_RIGHT_PAREN_ORD)
-/* [[[end syntaxes]]] */
-
-/* Maximum number of duplicates an interval can allow.  Some systems
-   (erroneously) define this in other header files, but we want our
-   value, so remove any previous define.  */
-#ifdef RE_DUP_MAX
-# undef RE_DUP_MAX
-#endif
-/* If sizeof(int) == 2, then ((1 << 15) - 1) overflows.  */
-#define RE_DUP_MAX (0x7fff)
-
-
-/* POSIX `cflags' bits (i.e., information for `regcomp').  */
-
-/* If this bit is set, then use extended regular expression syntax.
-   If not set, then use basic regular expression syntax.  */
-#define REG_EXTENDED 1
-
-/* If this bit is set, then ignore case when matching.
-   If not set, then case is significant.  */
-#define REG_ICASE (REG_EXTENDED << 1)
-
-/* If this bit is set, then anchors do not match at newline
-     characters in the string.
-   If not set, then anchors do match at newlines.  */
-#define REG_NEWLINE (REG_ICASE << 1)
-
-/* If this bit is set, then report only success or fail in regexec.
-   If not set, then returns differ between not matching and errors.  */
-#define REG_NOSUB (REG_NEWLINE << 1)
-
-
-/* POSIX `eflags' bits (i.e., information for regexec).  */
-
-/* If this bit is set, then the beginning-of-line operator doesn't match
-     the beginning of the string (presumably because it's not the
-     beginning of a line).
-   If not set, then the beginning-of-line operator does match the
-     beginning of the string.  */
-#define REG_NOTBOL 1
-
-/* Like REG_NOTBOL, except for the end-of-line.  */
-#define REG_NOTEOL (1 << 1)
-
-
-/* If any error codes are removed, changed, or added, update the
-   `re_error_msg' table in regex.c.  */
-typedef enum
-{
-#ifdef _XOPEN_SOURCE
-  REG_ENOSYS = -1,	/* This will never happen for this implementation.  */
-#endif
-
-  REG_NOERROR = 0,	/* Success.  */
-  REG_NOMATCH,		/* Didn't find a match (for regexec).  */
-
-  /* POSIX regcomp return error codes.  (In the order listed in the
-     standard.)  */
-  REG_BADPAT,		/* Invalid pattern.  */
-  REG_ECOLLATE,		/* Not implemented.  */
-  REG_ECTYPE,		/* Invalid character class name.  */
-  REG_EESCAPE,		/* Trailing backslash.  */
-  REG_ESUBREG,		/* Invalid back reference.  */
-  REG_EBRACK,		/* Unmatched left bracket.  */
-  REG_EPAREN,		/* Parenthesis imbalance.  */
-  REG_EBRACE,		/* Unmatched \{.  */
-  REG_BADBR,		/* Invalid contents of \{\}.  */
-  REG_ERANGE,		/* Invalid range end.  */
-  REG_ESPACE,		/* Ran out of memory.  */
-  REG_BADRPT,		/* No preceding re for repetition op.  */
-
-  /* Error codes we've added.  */
-  REG_EEND,		/* Premature end.  */
-  REG_ESIZE,		/* Compiled pattern bigger than 2^16 bytes.  */
-  REG_ERPAREN		/* Unmatched ) or \); not returned from regcomp.  */
-} reg_errcode_t;
-
-/* This data structure represents a compiled pattern.  Before calling
-   the pattern compiler, the fields `buffer', `allocated', `fastmap',
-   `translate', and `no_sub' can be set.  After the pattern has been
-   compiled, the `re_nsub' field is available.  All other fields are
-   private to the regex routines.  */
-
-#ifndef RE_TRANSLATE_TYPE
-# define RE_TRANSLATE_TYPE char *
-#endif
-
-struct re_pattern_buffer
-{
-/* [[[begin pattern_buffer]]] */
-	/* Space that holds the compiled pattern.  It is declared as
-          `unsigned char *' because its elements are
-           sometimes used as array indexes.  */
-  unsigned char *buffer;
-
-	/* Number of bytes to which `buffer' points.  */
-  unsigned long int allocated;
-
-	/* Number of bytes actually used in `buffer'.  */
-  unsigned long int used;
-
-        /* Syntax setting with which the pattern was compiled.  */
-  reg_syntax_t syntax;
-
-        /* Pointer to a fastmap, if any, otherwise zero.  re_search uses
-           the fastmap, if there is one, to skip over impossible
-           starting points for matches.  */
-  char *fastmap;
-
-        /* Either a translate table to apply to all characters before
-           comparing them, or zero for no translation.  The translation
-           is applied to a pattern when it is compiled and to a string
-           when it is matched.  */
-  RE_TRANSLATE_TYPE translate;
-
-	/* Number of subexpressions found by the compiler.  */
-  size_t re_nsub;
-
-        /* Zero if this pattern cannot match the empty string, one else.
-           Well, in truth it's used only in `re_search_2', to see
-           whether or not we should use the fastmap, so we don't set
-           this absolutely perfectly; see `re_compile_fastmap' (the
-           `duplicate' case).  */
-  unsigned can_be_null : 1;
-
-        /* If REGS_UNALLOCATED, allocate space in the `regs' structure
-             for `max (RE_NREGS, re_nsub + 1)' groups.
-           If REGS_REALLOCATE, reallocate space if necessary.
-           If REGS_FIXED, use what's there.  */
-#define REGS_UNALLOCATED 0
-#define REGS_REALLOCATE 1
-#define REGS_FIXED 2
-  unsigned regs_allocated : 2;
-
-        /* Set to zero when `regex_compile' compiles a pattern; set to one
-           by `re_compile_fastmap' if it updates the fastmap.  */
-  unsigned fastmap_accurate : 1;
-
-        /* If set, `re_match_2' does not return information about
-           subexpressions.  */
-  unsigned no_sub : 1;
-
-        /* If set, a beginning-of-line anchor doesn't match at the
-           beginning of the string.  */
-  unsigned not_bol : 1;
-
-        /* Similarly for an end-of-line anchor.  */
-  unsigned not_eol : 1;
-
-        /* If true, an anchor at a newline matches.  */
-  unsigned newline_anchor : 1;
-
-/* [[[end pattern_buffer]]] */
-};
-
-typedef struct re_pattern_buffer regex_t;
-
-/* Type for byte offsets within the string.  POSIX mandates this.  */
-typedef int regoff_t;
-
-
-/* This is the structure we store register match data in.  See
-   regex.texinfo for a full description of what registers match.  */
-struct re_registers
-{
-  unsigned num_regs;
-  regoff_t *start;
-  regoff_t *end;
-};
-
-
-/* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer,
-   `re_match_2' returns information about at least this many registers
-   the first time a `regs' structure is passed.  */
-#ifndef RE_NREGS
-# define RE_NREGS 30
-#endif
-
-
-/* POSIX specification for registers.  Aside from the different names than
-   `re_registers', POSIX uses an array of structures, instead of a
-   structure of arrays.  */
-typedef struct
-{
-  regoff_t rm_so;  /* Byte offset from string's start to substring's start.  */
-  regoff_t rm_eo;  /* Byte offset from string's start to substring's end.  */
-} regmatch_t;
-
-/* Declarations for routines.  */
-
-/* To avoid duplicating every routine declaration -- once with a
-   prototype (if we are ANSI), and once without (if we aren't) -- we
-   use the following macro to declare argument types.  This
-   unfortunately clutters up the declarations a bit, but I think it's
-   worth it.  */
-
-/* Sets the current default syntax to SYNTAX, and return the old syntax.
-   You can also simply assign to the `re_syntax_options' variable.  */
-extern reg_syntax_t re_set_syntax (reg_syntax_t syntax);
-
-/* Compile the regular expression PATTERN, with length LENGTH
-   and syntax given by the global `re_syntax_options', into the buffer
-   BUFFER.  Return NULL if successful, and an error string if not.  */
-extern const char *re_compile_pattern (const char *pattern, size_t length,
-                                       struct re_pattern_buffer *buffer);
-
-
-/* Compile a fastmap for the compiled pattern in BUFFER; used to
-   accelerate searches.  Return 0 if successful and -2 if was an
-   internal error.  */
-extern int re_compile_fastmap (struct re_pattern_buffer *buffer);
-
-
-/* Search in the string STRING (with length LENGTH) for the pattern
-   compiled into BUFFER.  Start searching at position START, for RANGE
-   characters.  Return the starting position of the match, -1 for no
-   match, or -2 for an internal error.  Also return register
-   information in REGS (if REGS and BUFFER->no_sub are nonzero).  */
-extern int re_search (struct re_pattern_buffer *buffer, const char *string,
-                      int length, int start, int range,
-                      struct re_registers *regs);
-
-
-/* Like `re_search', but search in the concatenation of STRING1 and
-   STRING2.  Also, stop searching at index START + STOP.  */
-extern int re_search_2 (struct re_pattern_buffer *buffer, const char *string1,
-                        int length1, const char *string2, int length2,
-                        int start, int range, struct re_registers *regs,
-                        int stop);
-
-
-/* Like `re_search', but return how many characters in STRING the regexp
-   in BUFFER matched, starting at position START.  */
-extern int re_match (struct re_pattern_buffer *buffer, const char *string,
-                     int length, int start, struct re_registers *regs);
-
-
-/* Relates to `re_match' as `re_search_2' relates to `re_search'.  */
-extern int re_match_2 (struct re_pattern_buffer *buffer, const char *string1,
-                       int length1, const char *string2, int length2,
-                       int start, struct re_registers *regs, int stop);
-
-
-/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
-   ENDS.  Subsequent matches using BUFFER and REGS will use this memory
-   for recording register information.  STARTS and ENDS must be
-   allocated with malloc, and must each be at least `NUM_REGS * sizeof
-   (regoff_t)' bytes long.
-
-   If NUM_REGS == 0, then subsequent matches should allocate their own
-   register data.
-
-   Unless this function is called, the first search or match using
-   PATTERN_BUFFER will allocate its own register data, without
-   freeing the old data.  */
-extern void re_set_registers (struct re_pattern_buffer *buffer,
-                              struct re_registers *regs,
-                              unsigned num_regs, regoff_t *starts,
-                              regoff_t *ends);
-
-#if defined _REGEX_RE_COMP || defined _LIBC
-# ifndef _CRAY
-/* 4.2 bsd compatibility.  */
-extern char *re_comp (const char *);
-extern int re_exec (const char *);
-# endif
-#endif
-
-/* GCC 2.95 and later have "__restrict"; C99 compilers have
-   "restrict", and "configure" may have defined "restrict".  */
-#ifndef __restrict
-# if ! (2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__))
-#  if defined restrict || 199901L <= __STDC_VERSION__
-#   define __restrict restrict
-#  else
-#   define __restrict
-#  endif
-# endif
-#endif
-
-/* GCC 3.1 and later support declaring arrays as non-overlapping
-   using the syntax array_name[restrict]  */
-#ifndef __restrict_arr
-# if ! (3 < __GNUC__ || (3 == __GNUC__ && 1 <= __GNUC_MINOR__)) || defined (__GNUG__)
-#  define __restrict_arr
-# else
-#  define __restrict_arr __restrict
-# endif
-#endif
-
-/* POSIX compatibility.  */
-extern int regcomp (regex_t *__restrict __preg,
-                    const char *__restrict __pattern,
-                    int __cflags);
-
-#if (__GNUC__)
-__extension__
-#endif
-extern int regexec (const regex_t *__restrict __preg,
-                    const char *__restrict __string, size_t __nmatch,
-                    regmatch_t __pmatch[__restrict_arr],
-                    int __eflags);
-
-extern size_t regerror (int __errcode, const regex_t *__preg,
-                        char *__errbuf, size_t __errbuf_size);
-
-extern void regfree (regex_t *__preg);
-
-
-#ifdef __cplusplus
-}
-#endif	/* C++ */
-
-#endif /* regex.h */
-
-/*
-Local variables:
-make-backup-files: t
-version-control: t
-trim-versions-without-asking: nil
-End:
-*/
diff --git a/include/xtensa-config.h b/include/xtensa-config.h
deleted file mode 100644
index 5c0315d..0000000
--- a/include/xtensa-config.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/* Xtensa configuration settings.
-   Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-   Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica.
-
-   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, 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, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef XTENSA_CONFIG_H
-#define XTENSA_CONFIG_H
-
-/* The macros defined here match those with the same names in the Xtensa
-   compile-time HAL (Hardware Abstraction Layer).  Please refer to the
-   Xtensa System Software Reference Manual for documentation of these
-   macros.  */
-
-#undef XCHAL_HAVE_BE
-#define XCHAL_HAVE_BE			1
-
-#undef XCHAL_HAVE_DENSITY
-#define XCHAL_HAVE_DENSITY		1
-
-#undef XCHAL_HAVE_CONST16
-#define XCHAL_HAVE_CONST16		0
-
-#undef XCHAL_HAVE_ABS
-#define XCHAL_HAVE_ABS			1
-
-#undef XCHAL_HAVE_ADDX
-#define XCHAL_HAVE_ADDX			1
-
-#undef XCHAL_HAVE_L32R
-#define XCHAL_HAVE_L32R			1
-
-#undef XSHAL_USE_ABSOLUTE_LITERALS
-#define XSHAL_USE_ABSOLUTE_LITERALS	0
-
-#undef XCHAL_HAVE_MAC16
-#define XCHAL_HAVE_MAC16		0
-
-#undef XCHAL_HAVE_MUL16
-#define XCHAL_HAVE_MUL16		0
-
-#undef XCHAL_HAVE_MUL32
-#define XCHAL_HAVE_MUL32		0
-
-#undef XCHAL_HAVE_MUL32_HIGH
-#define XCHAL_HAVE_MUL32_HIGH		0
-
-#undef XCHAL_HAVE_DIV32
-#define XCHAL_HAVE_DIV32		0
-
-#undef XCHAL_HAVE_NSA
-#define XCHAL_HAVE_NSA			1
-
-#undef XCHAL_HAVE_MINMAX
-#define XCHAL_HAVE_MINMAX		0
-
-#undef XCHAL_HAVE_SEXT
-#define XCHAL_HAVE_SEXT			0
-
-#undef XCHAL_HAVE_LOOPS
-#define XCHAL_HAVE_LOOPS		1
-
-#undef XCHAL_HAVE_BOOLEANS
-#define XCHAL_HAVE_BOOLEANS		0
-
-#undef XCHAL_HAVE_FP
-#define XCHAL_HAVE_FP			0
-
-#undef XCHAL_HAVE_FP_DIV
-#define XCHAL_HAVE_FP_DIV		0
-
-#undef XCHAL_HAVE_FP_RECIP
-#define XCHAL_HAVE_FP_RECIP		0
-
-#undef XCHAL_HAVE_FP_SQRT
-#define XCHAL_HAVE_FP_SQRT		0
-
-#undef XCHAL_HAVE_FP_RSQRT
-#define XCHAL_HAVE_FP_RSQRT		0
-
-#undef XCHAL_HAVE_WINDOWED
-#define XCHAL_HAVE_WINDOWED		1
-
-#undef XCHAL_HAVE_WIDE_BRANCHES
-#define XCHAL_HAVE_WIDE_BRANCHES	0
-
-#undef XCHAL_HAVE_PREDICTED_BRANCHES
-#define XCHAL_HAVE_PREDICTED_BRANCHES	0
-
-
-#undef XCHAL_ICACHE_SIZE
-#define XCHAL_ICACHE_SIZE		8192
-
-#undef XCHAL_DCACHE_SIZE
-#define XCHAL_DCACHE_SIZE		8192
-
-#undef XCHAL_ICACHE_LINESIZE
-#define XCHAL_ICACHE_LINESIZE		16
-
-#undef XCHAL_DCACHE_LINESIZE
-#define XCHAL_DCACHE_LINESIZE		16
-
-#undef XCHAL_ICACHE_LINEWIDTH
-#define XCHAL_ICACHE_LINEWIDTH		4
-
-#undef XCHAL_DCACHE_LINEWIDTH
-#define XCHAL_DCACHE_LINEWIDTH		4
-
-#undef XCHAL_DCACHE_IS_WRITEBACK
-#define XCHAL_DCACHE_IS_WRITEBACK	0
-
-
-#undef XCHAL_HAVE_MMU
-#define XCHAL_HAVE_MMU			1
-
-#undef XCHAL_MMU_MIN_PTE_PAGE_SIZE
-#define XCHAL_MMU_MIN_PTE_PAGE_SIZE	12
-
-
-#undef XCHAL_HAVE_DEBUG
-#define XCHAL_HAVE_DEBUG		1
-
-#undef XCHAL_NUM_IBREAK
-#define XCHAL_NUM_IBREAK		2
-
-#undef XCHAL_NUM_DBREAK
-#define XCHAL_NUM_DBREAK		2
-
-#undef XCHAL_DEBUGLEVEL
-#define XCHAL_DEBUGLEVEL		4
-
-
-#undef XCHAL_INST_FETCH_WIDTH
-#define XCHAL_INST_FETCH_WIDTH		4
-
-#endif /* !XTENSA_CONFIG_H */
diff --git a/include/xtensa-isa-internal.h b/include/xtensa-isa-internal.h
deleted file mode 100644
index 9ea23e4..0000000
--- a/include/xtensa-isa-internal.h
+++ /dev/null
@@ -1,232 +0,0 @@
-/* Internal definitions for configurable Xtensa ISA support.
-   Copyright 2003, 2004, 2005 Free Software Foundation, Inc.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef XTENSA_ISA_INTERNAL_H
-#define XTENSA_ISA_INTERNAL_H
-
-/* Flags.  */
-
-#define XTENSA_OPERAND_IS_REGISTER	0x00000001
-#define XTENSA_OPERAND_IS_PCRELATIVE	0x00000002
-#define XTENSA_OPERAND_IS_INVISIBLE	0x00000004
-#define XTENSA_OPERAND_IS_UNKNOWN	0x00000008
-
-#define XTENSA_OPCODE_IS_BRANCH		0x00000001
-#define XTENSA_OPCODE_IS_JUMP		0x00000002
-#define XTENSA_OPCODE_IS_LOOP		0x00000004
-#define XTENSA_OPCODE_IS_CALL		0x00000008
-
-#define XTENSA_STATE_IS_EXPORTED	0x00000001
-
-#define XTENSA_INTERFACE_HAS_SIDE_EFFECT 0x00000001
-
-/* Function pointer typedefs */
-typedef void (*xtensa_format_encode_fn) (xtensa_insnbuf);
-typedef void (*xtensa_get_slot_fn) (const xtensa_insnbuf, xtensa_insnbuf);
-typedef void (*xtensa_set_slot_fn) (xtensa_insnbuf, const xtensa_insnbuf);
-typedef int (*xtensa_opcode_decode_fn) (const xtensa_insnbuf);
-typedef uint32 (*xtensa_get_field_fn) (const xtensa_insnbuf);
-typedef void (*xtensa_set_field_fn) (xtensa_insnbuf, uint32);
-typedef int (*xtensa_immed_decode_fn) (uint32 *);
-typedef int (*xtensa_immed_encode_fn) (uint32 *);
-typedef int (*xtensa_do_reloc_fn) (uint32 *, uint32);
-typedef int (*xtensa_undo_reloc_fn) (uint32 *, uint32);
-typedef void (*xtensa_opcode_encode_fn) (xtensa_insnbuf);
-typedef int (*xtensa_format_decode_fn) (const xtensa_insnbuf);
-typedef int (*xtensa_length_decode_fn) (const unsigned char *);
-
-typedef struct xtensa_format_internal_struct
-{
-  const char *name;			/* Instruction format name.  */
-  int length;				/* Instruction length in bytes.  */
-  xtensa_format_encode_fn encode_fn;
-  int num_slots;
-  int *slot_id;				/* Array[num_slots] of slot IDs.  */
-} xtensa_format_internal;
-
-typedef struct xtensa_slot_internal_struct
-{
-  const char *name;			/* Not necessarily unique.  */
-  const char *format;
-  int position;
-  xtensa_get_slot_fn get_fn;
-  xtensa_set_slot_fn set_fn;
-  xtensa_get_field_fn *get_field_fns;	/* Array[field_id].  */
-  xtensa_set_field_fn *set_field_fns;	/* Array[field_id].  */
-  xtensa_opcode_decode_fn opcode_decode_fn;
-  const char *nop_name;
-} xtensa_slot_internal;
-
-typedef struct xtensa_operand_internal_struct
-{
-  const char *name;
-  int field_id;
-  xtensa_regfile regfile;		/* Register file.  */
-  int num_regs;				/* Usually 1; 2 for reg pairs, etc.  */
-  uint32 flags;				/* See XTENSA_OPERAND_* flags.  */
-  xtensa_immed_encode_fn encode;	/* Encode the operand value.  */
-  xtensa_immed_decode_fn decode;	/* Decode the value from the field.  */
-  xtensa_do_reloc_fn do_reloc;		/* Perform a PC-relative reloc.  */
-  xtensa_undo_reloc_fn undo_reloc;	/* Undo a PC-relative relocation.  */
-} xtensa_operand_internal;
-
-typedef struct xtensa_arg_internal_struct
-{
-  union {
-    int operand_id;			/* For normal operands.  */
-    xtensa_state state;			/* For stateOperands.  */
-  } u;
-  char inout;				/* Direction: 'i', 'o', or 'm'.  */
-} xtensa_arg_internal;
-
-typedef struct xtensa_iclass_internal_struct
-{
-  int num_operands;			/* Size of "operands" array.  */
-  xtensa_arg_internal *operands;	/* Array[num_operands].  */
-
-  int num_stateOperands;		/* Size of "stateOperands" array.  */
-  xtensa_arg_internal *stateOperands;	/* Array[num_stateOperands].  */
-
-  int num_interfaceOperands;		/* Size of "interfaceOperands".  */
-  xtensa_interface *interfaceOperands;	/* Array[num_interfaceOperands].  */
-} xtensa_iclass_internal;
-
-typedef struct xtensa_opcode_internal_struct
-{
-  const char *name;			/* Opcode mnemonic.  */
-  int iclass_id;			/* Iclass for this opcode.  */
-  uint32 flags;				/* See XTENSA_OPCODE_* flags.  */
-  xtensa_opcode_encode_fn *encode_fns;	/* Array[slot_id].  */
-  int num_funcUnit_uses;		/* Number of funcUnit_use entries.  */
-  xtensa_funcUnit_use *funcUnit_uses;	/* Array[num_funcUnit_uses].  */
-} xtensa_opcode_internal;
-
-typedef struct xtensa_regfile_internal_struct
-{
-  const char *name;			/* Full name of the regfile.  */
-  const char *shortname;		/* Abbreviated name.  */
-  xtensa_regfile parent;		/* View parent (or identity).  */
-  int num_bits;				/* Width of the registers.  */
-  int num_entries;			/* Number of registers.  */
-} xtensa_regfile_internal;
-
-typedef struct xtensa_interface_internal_struct
-{
-  const char *name;			/* Interface name.  */
-  int num_bits;				/* Width of the interface.  */
-  uint32 flags;				/* See XTENSA_INTERFACE_* flags.  */
-  int class_id;				/* Class of related interfaces.  */
-  char inout;				/* "i" or "o".  */
-} xtensa_interface_internal;
-
-typedef struct xtensa_funcUnit_internal_struct
-{
-  const char *name;			/* Functional unit name.  */
-  int num_copies;			/* Number of instances.  */
-} xtensa_funcUnit_internal;
-
-typedef struct xtensa_state_internal_struct
-{
-  const char *name;			/* State name.  */
-  int num_bits;				/* Number of state bits.  */
-  uint32 flags;				/* See XTENSA_STATE_* flags.  */
-} xtensa_state_internal;
-
-typedef struct xtensa_sysreg_internal_struct
-{
-  const char *name;			/* Register name.  */
-  int number;				/* Register number.  */
-  int is_user;				/* Non-zero if a "user register".  */
-} xtensa_sysreg_internal;
-
-typedef struct xtensa_lookup_entry_struct
-{
-  const char *key;
-  union
-  {
-    xtensa_opcode opcode;		/* Internal opcode number.  */
-    xtensa_sysreg sysreg;		/* Internal sysreg number.  */
-    xtensa_state state;			/* Internal state number.  */
-    xtensa_interface intf;		/* Internal interface number.  */
-    xtensa_funcUnit fun;		/* Internal funcUnit number.  */
-  } u;
-} xtensa_lookup_entry;
-
-typedef struct xtensa_isa_internal_struct
-{
-  int is_big_endian;			/* Endianness.  */
-  int insn_size;			/* Maximum length in bytes.  */
-  int insnbuf_size;			/* Number of insnbuf_words.  */
-
-  int num_formats;
-  xtensa_format_internal *formats;
-  xtensa_format_decode_fn format_decode_fn;
-  xtensa_length_decode_fn length_decode_fn;
-
-  int num_slots;
-  xtensa_slot_internal *slots;
-
-  int num_fields;
-
-  int num_operands;
-  xtensa_operand_internal *operands;
-
-  int num_iclasses;
-  xtensa_iclass_internal *iclasses;
-
-  int num_opcodes;
-  xtensa_opcode_internal *opcodes;
-  xtensa_lookup_entry *opname_lookup_table;
-
-  int num_regfiles;
-  xtensa_regfile_internal *regfiles;
-
-  int num_states;
-  xtensa_state_internal *states;
-  xtensa_lookup_entry *state_lookup_table;
-
-  int num_sysregs;
-  xtensa_sysreg_internal *sysregs;
-  xtensa_lookup_entry *sysreg_lookup_table;
-
-  /* The current Xtensa ISA only supports 256 of each kind of sysreg so
-     we can get away with implementing lookups with tables indexed by
-     the register numbers.  If we ever allow larger sysreg numbers, this
-     may have to be reimplemented.  The first entry in the following
-     arrays corresponds to "special" registers and the second to "user"
-     registers.  */
-  int max_sysreg_num[2];
-  xtensa_sysreg *sysreg_table[2];
-
-  int num_interfaces;
-  xtensa_interface_internal *interfaces;
-  xtensa_lookup_entry *interface_lookup_table;
-
-  int num_funcUnits;
-  xtensa_funcUnit_internal *funcUnits;
-  xtensa_lookup_entry *funcUnit_lookup_table;
-
-} xtensa_isa_internal;
-
-extern int xtensa_isa_name_compare (const void *, const void *);
-
-extern xtensa_isa_status xtisa_errno;
-extern char xtisa_error_msg[];
-
-#endif /* !XTENSA_ISA_INTERNAL_H */
diff --git a/include/xtensa-isa.h b/include/xtensa-isa.h
deleted file mode 100644
index 6abf205..0000000
--- a/include/xtensa-isa.h
+++ /dev/null
@@ -1,808 +0,0 @@
-/* Interface definition for configurable Xtensa ISA support.
-   Copyright 2003, 2004, 2005 Free Software Foundation, Inc.
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef XTENSA_LIBISA_H
-#define XTENSA_LIBISA_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Use the statically-linked version for the GNU tools.  */
-#define STATIC_LIBISA 1
-
-/* Version number: This is intended to help support code that works with
-   versions of this library from multiple Xtensa releases.  */
-
-#define XTENSA_ISA_VERSION 7000
-
-#ifndef uint32
-#define uint32 unsigned int
-#endif
-
-/* This file defines the interface to the Xtensa ISA library.  This
-   library contains most of the ISA-specific information for a
-   particular Xtensa processor.  For example, the set of valid
-   instructions, their opcode encodings and operand fields are all
-   included here.
-
-   This interface basically defines a number of abstract data types.
-
-   . an instruction buffer - for holding the raw instruction bits
-   . ISA info - information about the ISA as a whole
-   . instruction formats - instruction size and slot structure
-   . opcodes - information about individual instructions
-   . operands - information about register and immediate instruction operands
-   . stateOperands - information about processor state instruction operands
-   . interfaceOperands - information about interface instruction operands
-   . register files - register file information
-   . processor states - internal processor state information
-   . system registers - "special registers" and "user registers"
-   . interfaces - TIE interfaces that are external to the processor
-   . functional units - TIE shared functions
-
-   The interface defines a set of functions to access each data type.
-   With the exception of the instruction buffer, the internal
-   representations of the data structures are hidden.  All accesses must
-   be made through the functions defined here.  */
-
-typedef struct xtensa_isa_opaque { int unused; } *xtensa_isa;
-
-
-/* Most of the Xtensa ISA entities (e.g., opcodes, regfiles, etc.) are
-   represented here using sequential integers beginning with 0.  The
-   specific values are only fixed for a particular instantiation of an
-   xtensa_isa structure, so these values should only be used
-   internally.  */
-
-typedef int xtensa_opcode;
-typedef int xtensa_format;
-typedef int xtensa_regfile;
-typedef int xtensa_state;
-typedef int xtensa_sysreg;
-typedef int xtensa_interface;
-typedef int xtensa_funcUnit;
-
-
-/* Define a unique value for undefined items.  */
-
-#define XTENSA_UNDEFINED -1
-
-
-/* Overview of using this interface to decode/encode instructions:
-
-   Each Xtensa instruction is associated with a particular instruction
-   format, where the format defines a fixed number of slots for
-   operations.  The formats for the core Xtensa ISA have only one slot,
-   but FLIX instructions may have multiple slots.  Within each slot,
-   there is a single opcode and some number of associated operands.
-
-   The encoding and decoding functions operate on instruction buffers,
-   not on the raw bytes of the instructions.  The same instruction
-   buffer data structure is used for both entire instructions and
-   individual slots in those instructions -- the contents of a slot need
-   to be extracted from or inserted into the buffer for the instruction
-   as a whole.
-
-   Decoding an instruction involves first finding the format, which
-   identifies the number of slots, and then decoding each slot
-   separately.  A slot is decoded by finding the opcode and then using
-   the opcode to determine how many operands there are.  For example:
-
-   xtensa_insnbuf_from_chars
-   xtensa_format_decode
-   for each slot {
-     xtensa_format_get_slot
-     xtensa_opcode_decode
-     for each operand {
-       xtensa_operand_get_field
-       xtensa_operand_decode
-     }
-   }
-
-   Encoding an instruction is roughly the same procedure in reverse:
-
-   xtensa_format_encode
-   for each slot {
-     xtensa_opcode_encode
-     for each operand {
-       xtensa_operand_encode
-       xtensa_operand_set_field
-     }
-     xtensa_format_set_slot
-   }
-   xtensa_insnbuf_to_chars
-*/
-
-
-/* Error handling.  */
-
-/* Error codes.  The code for the most recent error condition can be
-   retrieved with the "errno" function.  For any result other than
-   xtensa_isa_ok, an error message containing additional information
-   about the problem can be retrieved using the "error_msg" function.
-   The error messages are stored in an internal buffer, which should not
-   should be freed and may be overwritten by subsequent operations.  */
-
-typedef enum xtensa_isa_status_enum
-{
-  xtensa_isa_ok = 0,
-  xtensa_isa_bad_format,
-  xtensa_isa_bad_slot,
-  xtensa_isa_bad_opcode,
-  xtensa_isa_bad_operand,
-  xtensa_isa_bad_field,
-  xtensa_isa_bad_iclass,
-  xtensa_isa_bad_regfile,
-  xtensa_isa_bad_sysreg,
-  xtensa_isa_bad_state,
-  xtensa_isa_bad_interface,
-  xtensa_isa_bad_funcUnit,
-  xtensa_isa_wrong_slot,
-  xtensa_isa_no_field,
-  xtensa_isa_out_of_memory,
-  xtensa_isa_buffer_overflow,
-  xtensa_isa_internal_error,
-  xtensa_isa_bad_value
-} xtensa_isa_status;
-
-extern xtensa_isa_status
-xtensa_isa_errno (xtensa_isa isa);
-
-extern char *
-xtensa_isa_error_msg (xtensa_isa isa);
-
-
-
-/* Instruction buffers.  */
-
-typedef uint32 xtensa_insnbuf_word;
-typedef xtensa_insnbuf_word *xtensa_insnbuf;
-
-
-/* Get the size in "insnbuf_words" of the xtensa_insnbuf array.  */
-
-extern int
-xtensa_insnbuf_size (xtensa_isa isa); 
-
-
-/* Allocate an xtensa_insnbuf of the right size.  */
-
-extern xtensa_insnbuf
-xtensa_insnbuf_alloc (xtensa_isa isa);
-
-
-/* Release an xtensa_insnbuf.  */
-
-extern void
-xtensa_insnbuf_free (xtensa_isa isa, xtensa_insnbuf buf);
-
-
-/* Conversion between raw memory (char arrays) and our internal
-   instruction representation.  This is complicated by the Xtensa ISA's
-   variable instruction lengths.  When converting to chars, the buffer
-   must contain a valid instruction so we know how many bytes to copy;
-   thus, the "to_chars" function returns the number of bytes copied or
-   XTENSA_UNDEFINED on error.  The "from_chars" function first reads the
-   minimal number of bytes required to decode the instruction length and
-   then proceeds to copy the entire instruction into the buffer; if the
-   memory does not contain a valid instruction, it copies the maximum
-   number of bytes required for the longest Xtensa instruction.  The
-   "num_chars" argument may be used to limit the number of bytes that
-   can be read or written.  Otherwise, if "num_chars" is zero, the
-   functions may read or write past the end of the code.  */
-
-extern int
-xtensa_insnbuf_to_chars (xtensa_isa isa, const xtensa_insnbuf insn,
-			 unsigned char *cp, int num_chars);
-
-extern void
-xtensa_insnbuf_from_chars (xtensa_isa isa, xtensa_insnbuf insn,
-			   const unsigned char *cp, int num_chars);
-
-
-
-/* ISA information.  */
-
-/* Initialize the ISA information.  */
-
-extern xtensa_isa
-xtensa_isa_init (xtensa_isa_status *errno_p, char **error_msg_p);
-
-
-/* Deallocate an xtensa_isa structure.  */
-
-extern void
-xtensa_isa_free (xtensa_isa isa);
-
-
-/* Get the maximum instruction size in bytes.  */
-
-extern int
-xtensa_isa_maxlength (xtensa_isa isa); 
-
-
-/* Decode the length in bytes of an instruction in raw memory (not an
-   insnbuf).  This function reads only the minimal number of bytes
-   required to decode the instruction length.  Returns
-   XTENSA_UNDEFINED on error.  */
-
-extern int
-xtensa_isa_length_from_chars (xtensa_isa isa, const unsigned char *cp);
-
-
-/* Get the number of stages in the processor's pipeline.  The pipeline
-   stage values returned by other functions in this library will range
-   from 0 to N-1, where N is the value returned by this function.
-   Note that the stage numbers used here may not correspond to the
-   actual processor hardware, e.g., the hardware may have additional
-   stages before stage 0.  Returns XTENSA_UNDEFINED on error.  */
-
-extern int
-xtensa_isa_num_pipe_stages (xtensa_isa isa); 
-
-
-/* Get the number of various entities that are defined for this processor.  */
-
-extern int
-xtensa_isa_num_formats (xtensa_isa isa);
-
-extern int
-xtensa_isa_num_opcodes (xtensa_isa isa);
-
-extern int
-xtensa_isa_num_regfiles (xtensa_isa isa);
-
-extern int
-xtensa_isa_num_states (xtensa_isa isa);
-
-extern int
-xtensa_isa_num_sysregs (xtensa_isa isa);
-
-extern int
-xtensa_isa_num_interfaces (xtensa_isa isa);
-
-extern int
-xtensa_isa_num_funcUnits (xtensa_isa isa);
-
-
-
-/* Instruction formats.  */
-
-/* Get the name of a format.  Returns null on error.  */
-
-extern const char *
-xtensa_format_name (xtensa_isa isa, xtensa_format fmt);
-
-
-/* Given a format name, return the format number.  Returns
-   XTENSA_UNDEFINED if the name is not a valid format.  */
-
-extern xtensa_format
-xtensa_format_lookup (xtensa_isa isa, const char *fmtname);
-
-
-/* Decode the instruction format from a binary instruction buffer.
-   Returns XTENSA_UNDEFINED if the format is not recognized.  */
-
-extern xtensa_format
-xtensa_format_decode (xtensa_isa isa, const xtensa_insnbuf insn);
-
-
-/* Set the instruction format field(s) in a binary instruction buffer.
-   All the other fields are set to zero.  Returns non-zero on error.  */
-
-extern int
-xtensa_format_encode (xtensa_isa isa, xtensa_format fmt, xtensa_insnbuf insn);
-
-
-/* Find the length (in bytes) of an instruction.  Returns
-   XTENSA_UNDEFINED on error.  */
-
-extern int
-xtensa_format_length (xtensa_isa isa, xtensa_format fmt);
-
-
-/* Get the number of slots in an instruction.  Returns XTENSA_UNDEFINED
-   on error.  */
-
-extern int
-xtensa_format_num_slots (xtensa_isa isa, xtensa_format fmt);
-
-
-/* Get the opcode for a no-op in a particular slot.
-   Returns XTENSA_UNDEFINED on error.  */
-
-extern xtensa_opcode
-xtensa_format_slot_nop_opcode (xtensa_isa isa, xtensa_format fmt, int slot);
-
-
-/* Get the bits for a specified slot out of an insnbuf for the
-   instruction as a whole and put them into an insnbuf for that one
-   slot, and do the opposite to set a slot.  Return non-zero on error.  */
-
-extern int
-xtensa_format_get_slot (xtensa_isa isa, xtensa_format fmt, int slot,
-			const xtensa_insnbuf insn, xtensa_insnbuf slotbuf);
-
-extern int
-xtensa_format_set_slot (xtensa_isa isa, xtensa_format fmt, int slot,
-			xtensa_insnbuf insn, const xtensa_insnbuf slotbuf);
-
-
-
-/* Opcode information.  */
-
-/* Translate a mnemonic name to an opcode.  Returns XTENSA_UNDEFINED if
-   the name is not a valid opcode mnemonic.  */
-
-extern xtensa_opcode
-xtensa_opcode_lookup (xtensa_isa isa, const char *opname);
-
-
-/* Decode the opcode for one instruction slot from a binary instruction
-   buffer.  Returns the opcode or XTENSA_UNDEFINED if the opcode is
-   illegal.  */
-
-extern xtensa_opcode
-xtensa_opcode_decode (xtensa_isa isa, xtensa_format fmt, int slot,
-		      const xtensa_insnbuf slotbuf);
-
-
-/* Set the opcode field(s) for an instruction slot.  All other fields
-   in the slot are set to zero.  Returns non-zero if the opcode cannot
-   be encoded.  */
-
-extern int
-xtensa_opcode_encode (xtensa_isa isa, xtensa_format fmt, int slot,
-		      xtensa_insnbuf slotbuf, xtensa_opcode opc);
-
-
-/* Get the mnemonic name for an opcode.  Returns null on error.  */
-
-extern const char *
-xtensa_opcode_name (xtensa_isa isa, xtensa_opcode opc);
-
-
-/* Check various properties of opcodes.  These functions return 0 if
-   the condition is false, 1 if the condition is true, and
-   XTENSA_UNDEFINED on error.  The instructions are classified as
-   follows:
-
-   branch: conditional branch; may fall through to next instruction (B*)
-   jump: unconditional branch (J, JX, RET*, RF*)
-   loop: zero-overhead loop (LOOP*)
-   call: unconditional call; control returns to next instruction (CALL*)
-
-   For the opcodes that affect control flow in some way, the branch
-   target may be specified by an immediate operand or it may be an
-   address stored in a register.  You can distinguish these by
-   checking if the instruction has a PC-relative immediate
-   operand.  */
-
-extern int
-xtensa_opcode_is_branch (xtensa_isa isa, xtensa_opcode opc);
-
-extern int
-xtensa_opcode_is_jump (xtensa_isa isa, xtensa_opcode opc);
-
-extern int
-xtensa_opcode_is_loop (xtensa_isa isa, xtensa_opcode opc);
-
-extern int
-xtensa_opcode_is_call (xtensa_isa isa, xtensa_opcode opc);
-
-
-/* Find the number of ordinary operands, state operands, and interface
-   operands for an instruction.  These return XTENSA_UNDEFINED on
-   error.  */
-
-extern int
-xtensa_opcode_num_operands (xtensa_isa isa, xtensa_opcode opc);
-
-extern int
-xtensa_opcode_num_stateOperands (xtensa_isa isa, xtensa_opcode opc);
-
-extern int
-xtensa_opcode_num_interfaceOperands (xtensa_isa isa, xtensa_opcode opc);
-
-
-/* Get functional unit usage requirements for an opcode.  Each "use"
-   is identified by a <functional unit, pipeline stage> pair.  The
-   "num_funcUnit_uses" function returns the number of these "uses" or
-   XTENSA_UNDEFINED on error.  The "funcUnit_use" function returns
-   a pointer to a "use" pair or null on error.  */
-
-typedef struct xtensa_funcUnit_use_struct
-{
-  xtensa_funcUnit unit;
-  int stage;
-} xtensa_funcUnit_use;
-
-extern int
-xtensa_opcode_num_funcUnit_uses (xtensa_isa isa, xtensa_opcode opc);
-
-extern xtensa_funcUnit_use *
-xtensa_opcode_funcUnit_use (xtensa_isa isa, xtensa_opcode opc, int u);
-
-
-
-/* Operand information.  */
-
-/* Get the name of an operand.  Returns null on error.  */
-
-extern const char *
-xtensa_operand_name (xtensa_isa isa, xtensa_opcode opc, int opnd);
-
-
-/* Some operands are "invisible", i.e., not explicitly specified in
-   assembly language.  When assembling an instruction, you need not set
-   the values of invisible operands, since they are either hardwired or
-   derived from other field values.  The values of invisible operands
-   can be examined in the same way as other operands, but remember that
-   an invisible operand may get its value from another visible one, so
-   the entire instruction must be available before examining the
-   invisible operand values.  This function returns 1 if an operand is
-   visible, 0 if it is invisible, or XTENSA_UNDEFINED on error.  Note
-   that whether an operand is visible is orthogonal to whether it is
-   "implicit", i.e., whether it is encoded in a field in the
-   instruction.  */
-
-extern int
-xtensa_operand_is_visible (xtensa_isa isa, xtensa_opcode opc, int opnd);
-
-
-/* Check if an operand is an input ('i'), output ('o'), or inout ('m')
-   operand.  Note: The output operand of a conditional assignment
-   (e.g., movnez) appears here as an inout ('m') even if it is declared
-   in the TIE code as an output ('o'); this allows the compiler to
-   properly handle register allocation for conditional assignments.
-   Returns 0 on error.  */
-
-extern char
-xtensa_operand_inout (xtensa_isa isa, xtensa_opcode opc, int opnd);
-
-
-/* Get and set the raw (encoded) value of the field for the specified
-   operand.  The "set" function does not check if the value fits in the
-   field; that is done by the "encode" function below.  Both of these
-   functions return non-zero on error, e.g., if the field is not defined
-   for the specified slot.  */
-
-extern int
-xtensa_operand_get_field (xtensa_isa isa, xtensa_opcode opc, int opnd,
-			  xtensa_format fmt, int slot,
-			  const xtensa_insnbuf slotbuf, uint32 *valp);
-
-extern int 
-xtensa_operand_set_field (xtensa_isa isa, xtensa_opcode opc, int opnd,
-			  xtensa_format fmt, int slot,
-			  xtensa_insnbuf slotbuf, uint32 val);
-
-
-/* Encode and decode operands.  The raw bits in the operand field may
-   be encoded in a variety of different ways.  These functions hide
-   the details of that encoding.  The result values are returned through
-   the argument pointer.  The return value is non-zero on error.  */
-
-extern int
-xtensa_operand_encode (xtensa_isa isa, xtensa_opcode opc, int opnd,
-		       uint32 *valp);
-
-extern int
-xtensa_operand_decode (xtensa_isa isa, xtensa_opcode opc, int opnd,
-		       uint32 *valp);
-
-
-/* An operand may be either a register operand or an immediate of some
-   sort (e.g., PC-relative or not).  The "is_register" function returns
-   0 if the operand is an immediate, 1 if it is a register, and
-   XTENSA_UNDEFINED on error.  The "regfile" function returns the
-   regfile for a register operand, or XTENSA_UNDEFINED on error.  */
-
-extern int
-xtensa_operand_is_register (xtensa_isa isa, xtensa_opcode opc, int opnd);
-
-extern xtensa_regfile
-xtensa_operand_regfile (xtensa_isa isa, xtensa_opcode opc, int opnd);
-
-
-/* Register operands may span multiple consecutive registers, e.g., a
-   64-bit data type may occupy two 32-bit registers.  Only the first
-   register is encoded in the operand field.  This function specifies
-   the number of consecutive registers occupied by this operand.  For
-   non-register operands, the return value is undefined.  Returns
-   XTENSA_UNDEFINED on error.  */
-
-extern int
-xtensa_operand_num_regs (xtensa_isa isa, xtensa_opcode opc, int opnd);
-				 
-
-/* Some register operands do not completely identify the register being
-   accessed.  For example, the operand value may be added to an internal
-   state value.  By definition, this implies that the corresponding
-   regfile is not allocatable.  Unknown registers should generally be
-   treated with worst-case assumptions.  The function returns 0 if the
-   register value is unknown, 1 if known, and XTENSA_UNDEFINED on
-   error.  */
-
-extern int
-xtensa_operand_is_known_reg (xtensa_isa isa, xtensa_opcode opc, int opnd);
-
-
-/* Check if an immediate operand is PC-relative.  Returns 0 for register
-   operands and non-PC-relative immediates, 1 for PC-relative
-   immediates, and XTENSA_UNDEFINED on error.  */
- 
-extern int
-xtensa_operand_is_PCrelative (xtensa_isa isa, xtensa_opcode opc, int opnd);
-
-
-/* For PC-relative offset operands, the interpretation of the offset may
-   vary between opcodes, e.g., is it relative to the current PC or that
-   of the next instruction?  The following functions are defined to
-   perform PC-relative relocations and to undo them (as in the
-   disassembler).  The "do_reloc" function takes the desired address
-   value and the PC of the current instruction and sets the value to the
-   corresponding PC-relative offset (which can then be encoded and
-   stored into the operand field).  The "undo_reloc" function takes the
-   unencoded offset value and the current PC and sets the value to the
-   appropriate address.  The return values are non-zero on error.  Note
-   that these functions do not replace the encode/decode functions; the
-   operands must be encoded/decoded separately and the encode functions
-   are responsible for detecting invalid operand values.  */
-
-extern int
-xtensa_operand_do_reloc (xtensa_isa isa, xtensa_opcode opc, int opnd,
-			 uint32 *valp, uint32 pc);
-
-extern int
-xtensa_operand_undo_reloc (xtensa_isa isa, xtensa_opcode opc, int opnd,
-			   uint32 *valp, uint32 pc);
-
-
-
-/* State Operands.  */
-
-/* Get the state accessed by a state operand.  Returns XTENSA_UNDEFINED
-   on error.  */
-
-extern xtensa_state
-xtensa_stateOperand_state (xtensa_isa isa, xtensa_opcode opc, int stOp);
-
-
-/* Check if a state operand is an input ('i'), output ('o'), or inout
-   ('m') operand.  Returns 0 on error.  */
-
-extern char
-xtensa_stateOperand_inout (xtensa_isa isa, xtensa_opcode opc, int stOp);
-
-
-
-/* Interface Operands.  */
-
-/* Get the external interface accessed by an interface operand.
-   Returns XTENSA_UNDEFINED on error.  */
-
-extern xtensa_interface
-xtensa_interfaceOperand_interface (xtensa_isa isa, xtensa_opcode opc,
-				   int ifOp);
-
-
-
-/* Register Files.  */
-
-/* Regfiles include both "real" regfiles and "views", where a view
-   allows a group of adjacent registers in a real "parent" regfile to be
-   viewed as a single register.  A regfile view has all the same
-   properties as its parent except for its (long) name, bit width, number
-   of entries, and default ctype.  You can use the parent function to
-   distinguish these two classes.  */
-
-/* Look up a regfile by either its name or its abbreviated "short name".
-   Returns XTENSA_UNDEFINED on error.  The "lookup_shortname" function
-   ignores "view" regfiles since they always have the same shortname as
-   their parents.  */
-
-extern xtensa_regfile
-xtensa_regfile_lookup (xtensa_isa isa, const char *name);
-
-extern xtensa_regfile
-xtensa_regfile_lookup_shortname (xtensa_isa isa, const char *shortname);
-
-
-/* Get the name or abbreviated "short name" of a regfile.
-   Returns null on error.  */
-
-extern const char *
-xtensa_regfile_name (xtensa_isa isa, xtensa_regfile rf);
-
-extern const char *
-xtensa_regfile_shortname (xtensa_isa isa, xtensa_regfile rf);
-
-
-/* Get the parent regfile of a "view" regfile.  If the regfile is not a
-   view, the result is the same as the input parameter.  Returns
-   XTENSA_UNDEFINED on error.  */
-
-extern xtensa_regfile
-xtensa_regfile_view_parent (xtensa_isa isa, xtensa_regfile rf);
-
-
-/* Get the bit width of a regfile or regfile view.
-   Returns XTENSA_UNDEFINED on error.  */
-
-extern int
-xtensa_regfile_num_bits (xtensa_isa isa, xtensa_regfile rf);
-
-
-/* Get the number of regfile entries.  Returns XTENSA_UNDEFINED on
-   error.  */
-
-extern int
-xtensa_regfile_num_entries (xtensa_isa isa, xtensa_regfile rf);
-
-
-
-/* Processor States.  */
-
-/* Look up a state by name.  Returns XTENSA_UNDEFINED on error.  */
-
-extern xtensa_state
-xtensa_state_lookup (xtensa_isa isa, const char *name);
-
-
-/* Get the name for a processor state.  Returns null on error.  */
-
-extern const char *
-xtensa_state_name (xtensa_isa isa, xtensa_state st);
-
-
-/* Get the bit width for a processor state.
-   Returns XTENSA_UNDEFINED on error.  */
-
-extern int
-xtensa_state_num_bits (xtensa_isa isa, xtensa_state st);
-
-
-/* Check if a state is exported from the processor core.  Returns 0 if
-   the condition is false, 1 if the condition is true, and
-   XTENSA_UNDEFINED on error.  */
-
-extern int
-xtensa_state_is_exported (xtensa_isa isa, xtensa_state st);
-
-
-
-/* Sysregs ("special registers" and "user registers").  */
-
-/* Look up a register by its number and whether it is a "user register"
-   or a "special register".  Returns XTENSA_UNDEFINED if the sysreg does
-   not exist.  */
-
-extern xtensa_sysreg
-xtensa_sysreg_lookup (xtensa_isa isa, int num, int is_user);
-
-
-/* Check if there exists a sysreg with a given name.
-   If not, this function returns XTENSA_UNDEFINED.  */
-
-extern xtensa_sysreg
-xtensa_sysreg_lookup_name (xtensa_isa isa, const char *name);
-
-
-/* Get the name of a sysreg.  Returns null on error.  */
-
-extern const char *
-xtensa_sysreg_name (xtensa_isa isa, xtensa_sysreg sysreg);
-
-
-/* Get the register number.  Returns XTENSA_UNDEFINED on error.  */
-
-extern int
-xtensa_sysreg_number (xtensa_isa isa, xtensa_sysreg sysreg);
-
-
-/* Check if a sysreg is a "special register" or a "user register".
-   Returns 0 for special registers, 1 for user registers and
-   XTENSA_UNDEFINED on error.  */
-
-extern int
-xtensa_sysreg_is_user (xtensa_isa isa, xtensa_sysreg sysreg);
-
-
-
-/* Interfaces.  */
-
-/* Find an interface by name.  The return value is XTENSA_UNDEFINED if
-   the specified interface is not found.  */
-
-extern xtensa_interface
-xtensa_interface_lookup (xtensa_isa isa, const char *ifname);
-
-
-/* Get the name of an interface.  Returns null on error.  */
-
-extern const char *
-xtensa_interface_name (xtensa_isa isa, xtensa_interface intf);
-
-
-/* Get the bit width for an interface.
-   Returns XTENSA_UNDEFINED on error.  */
-
-extern int
-xtensa_interface_num_bits (xtensa_isa isa, xtensa_interface intf);
-
-
-/* Check if an interface is an input ('i') or output ('o') with respect
-   to the Xtensa processor core.  Returns 0 on error.  */
-
-extern char
-xtensa_interface_inout (xtensa_isa isa, xtensa_interface intf);
-
-
-/* Check if accessing an interface has potential side effects.
-   Currently "data" interfaces have side effects and "control"
-   interfaces do not.  Returns 1 if there are side effects, 0 if not,
-   and XTENSA_UNDEFINED on error.  */
-
-extern int
-xtensa_interface_has_side_effect (xtensa_isa isa, xtensa_interface intf);
-
-
-/* Some interfaces may be related such that accessing one interface
-   has side effects on a set of related interfaces.  The interfaces
-   are partitioned into equivalence classes of related interfaces, and
-   each class is assigned a unique identifier number.  This function
-   returns the class identifier for an interface, or XTENSA_UNDEFINED
-   on error.  These identifiers can be compared to determine if two
-   interfaces are related; the specific values of the identifiers have
-   no particular meaning otherwise.  */
-
-extern int
-xtensa_interface_class_id (xtensa_isa isa, xtensa_interface intf);
-
-
-
-/* Functional Units.  */
-
-/* Find a functional unit by name.  The return value is XTENSA_UNDEFINED if
-   the specified unit is not found.  */
-
-extern xtensa_funcUnit
-xtensa_funcUnit_lookup (xtensa_isa isa, const char *fname);
-
-
-/* Get the name of a functional unit.  Returns null on error.  */
-
-extern const char *
-xtensa_funcUnit_name (xtensa_isa isa, xtensa_funcUnit fun);
-
-
-/* Functional units may be replicated.  See how many instances of a
-   particular function unit exist.  Returns XTENSA_UNDEFINED on error.  */
-
-extern int
-xtensa_funcUnit_num_copies (xtensa_isa isa, xtensa_funcUnit fun);
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* XTENSA_LIBISA_H */
diff --git a/libiberty/COPYING.LIB b/libiberty/COPYING.LIB
deleted file mode 100644
index ae23fcf..0000000
--- a/libiberty/COPYING.LIB
+++ /dev/null
@@ -1,504 +0,0 @@
-		  GNU LESSER GENERAL PUBLIC LICENSE
-		       Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
-		  GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-			    NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library 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
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
deleted file mode 100644
index 00c3089..0000000
--- a/libiberty/ChangeLog
+++ /dev/null
@@ -1,7232 +0,0 @@
-2006-07-04  Peter O'Gorman  <peter@pogma.com>
-
-	* Makefile.in: chmod 644 before ranlib during install.
-
-2006-06-02  Mark Shinwell  <shinwell@codesourcery.com>
-
-	* pex-unix.c (pex_unix_exec_child): Insert cast when assigning
-	to environ.
-
-2006-06-01  Mark Shinwell  <shinwell@codesourcery.com>
-
-	* pex-common.c: New function pex_run_in_environment.
-	* pex-common.h: Add environment parameter to exec_child.
-	* pex-msdos.c: Add environment parameter to pex_msdos_exec_child.
-	* pex-djgpp.c: Add environment parameter to pex_djgpp_exec_child.
-	(pex_djgpp_exec_child): Pass environment to child process.
-	* pex-unix.c: Add environment parameter to pex_unix_exec_child.
-	(pex_unix_exec_child): Pass environment to child process.
-	* pex-win32.c: Add environment parameter to pex_win32_exec_child.
-	New function env_compare for comparing VAR=VALUE pairs.
-	(win32_spawn): Assemble environment block and pass to CreateProcess.
-	(spawn_script): Pass environment through to win32_spawn.
-	(pex_win32_exec_child): Pass environment through to spawn_script and
-	win32_spawn.
-	* functions.texi: Regenerate.
-	* pexecute.txh: Document pex_run_in_environment.
-
-2006-05-28  Mark Shinwell  <shinwell@codesourcery.com>
-
-	* mkstemps.c: Open temporary files in binary mode.
-
-2006-05-12  Anton Blanchard  <anton@samba.org>
-
-	* cplus-dem.c (demangle_fund_type): Ensure buf is large enough to
-	hold "int%u_t".
-
-2006-04-24  Julian Brown  <julian@codesourcery.com>
-
-	* floatformat.c (floatformat_to_double): Fix (biased) exponent=0 case.
-
-2006-03-29  Jim Blandy  <jimb@codesourcery.com>
-
- 	* pex-common.c (pex_input_file, pex_input_pipe): New functions.
-	(pex_init_common): Initialize obj->input_file.
-	(pex_run): Close any file opened by pex_input_file.
- 	* pexecute.txh (pex_input_file, pex_input_pipe): New docs.
- 	* pex-common.h (struct pex_obj): New field input_file.
-	(struct pex_funcs): New function ptr fdopenw.
- 	* pex-unix.c (pex_unix_fdopenw): New function.
- 	(funcs): List it as our fdopenw function.
- 	* pex-win32.c (pex_win32_fdopenw): New function.
- 	(funcs): List it as our fdopenw function.
- 	* pex-djgpp.c (funcs): Leave fdopenw null.
- 	* pex-msdos (funcs): Same.
- 	* functions.texi: Regenerated.
-
-2006-04-10  Jim Blandy  <jimb@codesourcery.com>
-
-	* pex-common.c (temp_file): New function, containing guts of
-	pex-style temporary file name generation.
-	(pex_run): Use it.
-
-2006-04-06  Carlos O'Donell  <carlos@codesourcery.com>
-
-	* Makefile.in: Add install-html, install-html-am, and
-	install-html-recursive targets. Define mkdir_p and 
-	NORMAL_INSTALL. 
-	* configure.ac: AC_SUBST datarootdir, docdir, htmldir.
-	* configure: Regenerate.
-	* testsuite/Makefile.in: Add install-html and html targets.
-
-2006-03-31  Mark Mitchell  <mark@codesourcery.com>
-
-	* pex-win32.c (<errno.h>): Include.
-	(fix_argv): Remove.
-	(argv_to_cmdline): New function.
-	(std_suffixes): New variable.
-	(no_suffixes): Likewise.
-	(find_executable): New function.
-	(win32_spawn): Likewise.
-	(spawn_script): Use win32_spawn instead of _spawnv[p].
-	(pex_win32_exec_child): Replace MSVCRT calls with Win32 API calls.
-	(pex_win32_wait): Likewise.
-
-2006-03-24  Jim Blandy  <jimb@codesourcery.com>
-
-	* pex-common.c (pex_run): Simplify output name handling.
-
-2006-03-12  Jim Blandy  <jimb@red-bean.com>
-
-	* pex-common.h (struct pex_obj): Doc fixes.
-
-2006-03-11  Jim Blandy  <jimb@red-bean.com>
-
-	* functions.texi: Regenerate.
-
-2006-02-21  Ben Elliston  <bje@au.ibm.com>
-
-	* pexecute.c (pwait): Syntax fix for previous change.
-
-2006-02-17  Uttam Pawar  <uttamp@us.ibm.com>
-
-	* pexecute.c (pwait): Free vector pointer.
-	* partition.c (partition_print): Free class_elements pointer.
-
-2006-02-11  Roger Sayle  <roger@eyesopen.com>
-	    R. Scott Bailey  <scott.bailey@eds.com>
-	    Bill Northcott  <w.northcott@unsw.edu.au>
-
-	PR bootstrap/16787
-	* floatformat.c: Include <float.h> where available.
-	(NAN): Use value of DBL_QNAN if defined, and NAN isn't.
-
-2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
-
-	* configure.ac: Add -Wc++-compat to ac_libibety_warn_cflags where
-	supported. 
-	* configure: Regenerated.
-
-2006-01-20  Carlos O'Donell  <carlos@codesourcery.com>
-
-	* testsuite/Makefile.in: Add test-expandargv test.
-	* testsuite/test-expandargv.c: New test.
-	* argv.c (expandargv): Check for errors with ferror,
-	rather than just by looking at return value from fread.
-
-2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
-
-	* floatformat.c (floatformat_i387_ext_is_valid): Use explicit cast
-	to convert from "from".
-	(floatformat_to_double): Likewise.
-	(floatformat_from_double): Use explicit cast to convert from "to".
-
-2005-12-10  Terry Laurenzo  <tlaurenzo@gmail.com>
-
-	PR java/9861
-	* cp-demangle.c (d_bare_function_type): Recognize new 'J' qualifer
-	and include return type when found.
-	(d_print_comp)[DEMANGLE_COMPONENT_FUNCTION_TYPE]: Add
-	conditional logic to change printing order of return type.when
-	the DMGL_RET_POSTFIX option is present.
-	(java_demangle_v3): Add DMGL_RET_POSTFIX option to d_demangle
-	call.
-	* testsuite/test-demangle.c (main): Recognize option --ret-postfix
-	* testsuite/demangle-expected: Test cases to verify extended encoding.
-	Updated comment to document --ret-postfix option.
-	
-2005-11-06  Richard Guenther  <rguenther@suse.de>
-
-	* splay-tree.c (rotate_left): New function.
-	(rotate_right): Likewise.
-	(splay_tree_splay_helper): Remove.
-	(splay_tree_splay): Re-implement.
-
-2005-10-31  Mark Kettenis  <kettenis@gnu.org>
-
-	* floatformat.c (floatformat_vax_aingle, floatformat_vax_double):
-	New variables.
-
-2005-10-07  Mark Mitchell  <mark@codesourcery.com>
-
-	* at-file.texi: Fix typo.
-
-2005-10-03  Mark Mitchell  <mark@codesourcery.com>
-
-	* at-file.texi: New file.
-
-2005-09-27  Mark Mitchell  <mark@codesourcery.com>
-
-	* argv.c (expandargv): Do not use xmalloc_failed.
-
-2005-09-26  Mark Mitchell  <mark@codesourcery.com>
-
-	* argv.c (safe-ctype.h): Include it.
-	(ISBLANK): Remove.
-	(stdio.h): Include.
-	(buildargv): Use ISSPACE instead of ISBLANK.
-	(expandargv): New function.
-	* Makefile.in: Regenerated.
-
-2005-09-14  Christopher Faylor  <cgf@timesys.com>
-
-	* pex-win32.c: Include "windows.h".
-	(backslashify): New function.
-	(fix_argv): Use backslashify to convert path to windows format.
-	Allocate one more place in new argv for potential executable from '#!'
-	parsing.
-	(tack_on_executable): New function.  Conditional on USE_MINGW_MSYS
-	(openkey): Ditto.
-	(mingw_rootify): Ditto.
-	(msys_rootify): Ditto.
-	(spawn_script): New function.
-	(pex_win32_exec_child): Save translated argv in newargv.  Pass to
-	spawn_script if spawnv* fails.
-	(main): New function.  Conditional on MAIN.  Useful for testing.
-
-2005-08-17  Mark Kettenis  <kettenis@gnu.org>
-
-	* floatformat.c (floatformat_always_valid): Change type of last
-	argument to `void *'.
-	(floatformat_i387_ext_is_valid): Likewise.
-	(floatformat_to_double): Change type of second argument to `const
-	void *'.
-	(floatformat_from_double): Change type of last argument to `void
-	*'.
-	(floatformat_is_valid): Change type of last argument to `const
-	void *'.
-	(ieee_test): Remove redundant casts.
-
-2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>
-
-	* strverscmp.c: Update FSF address.
-	* testsuite/Makefile.in: Likewise.
-	* testsuite/test-demangle.c: Likewise.
-	* testsuite/test-pexecute.c: Likewise.
-
-2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* getopt.c: Include ansidecl.h before system headers.
-
-2005-07-22  Ben Elliston  <bje@gnu.org>
-
-	* getopt.c: Include "ansidecl.h".
-	(_getopt_initialize): Mark argc and argv parameters as unused.
-
-2005-07-22  Ben Elliston  <bje@gnu.org>
-
-	* regex.c (regcomp): Change type of `i' from unsigned to int.
-
-2005-07-22  Ben Elliston  <bje@gnu.org>
-
-	Recover patch lost in the sourceware repository:
-	2005-07-09  Ben Elliston  <bje@au.ibm.com>
-	* memcpy.c: Remove ANSI_PROTOTYPES conditional code.
-	* memmove.c: Likewise.
-	* objalloc.c: Likewise.
-
-2005-07-22  Ben Elliston  <bje@gnu.org>
-
-	* configure.ac: Check for a getopt(3) declaration.
-	* configure, config.in: Regenerate.
-
-2005-07-15  Ben Elliston  <bje@au.ibm.com>
-
-	* regex.c (TRANSLATE): Cast rhs of ternary expression to char.
-
-2005-07-12  Ben Elliston  <bje@au.ibm.com>
-
-	* floatformat.c (floatformat_to_double): Add a comment about a
-	potential source of warnings when compiling this file.
-
-2005-07-12  Ben Elliston  <bje@au.ibm.com>
-
-	* pexecute.c (pexecute): Cast string litrals to char *.
-	* regex.c (re_comp): Cast a call to gettext() to char *.
-
-2005-07-07  Kelley Cook  <kcook@gcc.gnu.org>
-
-	* config.table: Delete file.  Move former contents into ...
-	* configure.ac: ... here and escape any brackets for m4.
-	* Makefile.in (config.status): Remove dependency on config.table.
-	* configure: Regenerate.
-
-2005-07-07  Kelley Cook  <kcook@gcc.gnu.org>
-
-	* config.in: Regenerate for 6/20 change.
-
-2005-07-03  Steve Ellcey  <sje@cup.hp.com>
-
-	PR other/13906
-	* md5.c (md5_process_bytes): Check alignment.
-
-2005-07-01  Ian Lance Taylor  <ian@airs.com>
-
-	PR other/22268
-	* cp-demangle.c (d_expr_primary): Don't run off the end of the
-	string while looking for the end of a literal value.
-	* testsuite/demangle-expected: Add test case.
-
-2005-06-30  Daniel Berlin  <dberlin@dberlin.org>
-
-	* hashtab.c (EMPTY_ENTRY): Moved and renamed.
-	(DELETED_ENTRY): Ditto.	
-
-2005-06-20  Geoffrey Keating  <geoffk@apple.com>
-
-	* strverscmp.c: New.
-	* Makefile.in (CFILES): Add strverscmp.c.
-	(CONFIGURED_OFILES): Add strverscmp.o.
-	(strverscmp.o): New rule.
-	(stamp-functions): Add $(srcdir) to files in source directory.
-	* configure.ac (funcs): Add strverscmp.
-	(AC_CHECK_FUNCS): Add strverscmp.
-	* configure: Regenerate.
-	* functions.texi: Regenerate.
-
-2005-05-28  Eli Zaretskii  <eliz@gnu.org>
-
-	* configure.ac: Add snprintf and vsnprintf to AC_CHEK_DECLS.
-	* config.in, configure: Regenerate.
-
-2005-05-25  Richard Henderson  <rth@redhat.com>
-
-	* cp-demangle.c (d_dump): Handle DEMANGLE_COMPONENT_HIDDEN_ALIAS.
-	(d_make_comp, d_print_comp): Likewise.
-	(d_special_name): Generate one.
-	* testsuite/demangle-expected: Add a hidden alias test.
-
-2005-05-24  Gabriel Dos Reis  <gdr@integrable-solutions.net>
-
-	* configure.ac: Check declarations for calloc(), getenv(),
-	malloc(), realloc() and sbrk().
-	* config.in: Regenerate.
-	* configure: Likewise.
-
-	* alloca.c (C_alloca): Change "new" to "new_storage".  Use XNEWVEC
-	instead of xmalloc.
-	* choose-temp.c (choose_temp_base): Use XNEWVEC instea od xmalloc.
-	* concat.c (liiberty_concat_ptr): Surround definition with an
-	extern "C" block, if __cplusplus.
-	(concat): Use XNEWVEC instead of xmalloc.
-	(reconcat): Likewise.
-	* cp-demangle.c (struct d_print_template): Rename member
-	"template" to "template_decl".  Adjust use throughout the file.
-	(d_print_resize): Properly cast return value of realloc().
-	(cplus_demangle_print): Same for malloc().
-	(d_demangle): Likewise.
-	* cp-demint.c (cplus_demangle_fill_builtin_type): Rename parameter
-	"typename" to "type_name".
-	* cplus-dem.c (grow_vect): Use XRESIZEVEC instead of xrealloc().
-	(work_stuff_copy_to_from): Use XNEWVEC insteand of xmalloc().
-	(demangle_template_value_parm): Likewise.
-	(demangle_template): Likewise.
-	(recursively_demangle): Likewise.
-	(do_hpacc_template_literal): Likewise.
-	(do_arg): Likewise.
-	(remember_type): Likewise.
-	(remember_Ktype): Likewise.
-	(register_Btype): Likewise.
-	(string_need): Use XRESIZEVEC instead of xrealloc().
-	* dyn-string.c (dyn_string_init): Use XNEWVEC.
-	(dyn_string_new): Use XNEW.
-	(dyn_string_resize): Use XRESIZEVEC.
-	* fnmatch.c (fnmatch): Rename local variable "not" to "negate".
-	* getopt.c (getenv): Declare only if !__cplusplus and !getenv.
-	Otherwise include <stdlib.h>.
-	(exchange): Cast return value of malloc().
-	* hashtab.c (htab_size): Define as both macro and non-inline
-	function.
-	(htab_elements): Likewise.
-	* getpwd.c (getpwd): Use XNEWVEC.
-	(htab_create_alloc_ex): Use C90 prototype-style.
-	* lrealpath.c (lrealpath): Appropriately cast return value of
-	malloc().
-	* make-relative-prefix.c (save_string): Likewise.
-	* make-temp-file.c (try_dir): Rename from "try".  Adjust use in
-	the file.
-	(choose_tmpdir): Use XNEWVEC.
-	* mkstemps.c (mkstemps): Rename parameter "template" to "pattern".
-	* pex-common.c (pex_init_common): Use XNEW.
-	(pex_add_remove): Use XRESIZEVEC.
-	(pex_run): Likewise.
-	(pex_get_status_and_time): Likewise.
-	* pex-djgpp.c (pex_djgpp_exec_child): Likewise.
-	* pex-msdos.c (pex_init): Use XNEW.
-	(pex_msdos_exec_child): Likewise.
-	(pex_msdos_exec_child): Use XRESIZEVEC.
-	* pex-unix.c (pex_wait): Use XNEW.
-	* pex-win32.c (fix_argv): Use XNEWVEC.
-	* pexecute.c (pwait): Likewise.
-	* setenv.c (setenv): Properly cast return value of malloc().
-	* sigsetmask.c (sigsetmask): Rename local variables "old" and
-	"new" to "old_sig" and "new_sig".
-	* sort.c (main): Use XNEWVEC.
-	* spaces.c (spaces): Cast return value of malloc().
-	* strndup.c (strndup): Likewise.
-	* ternary.c (ternary_insert): Use XNEW.
-	* xmalloc.c (malloc, realloc, calloc, sbrk): Surround declaration
-	with an extern "C" block if __cplusplus.
-	* xstrdup.c (xstrdup): Cast return value of memcpy().
-	* xstrerror.c (strerror): Enclose declaration in an extern "C"
-	block if __cplusplus.
-	* xstrndup.c (xstrndup): Use XNEW. Cast return value of memcpy().
-
-2005-05-16  Andreas Jaeger  <aj@suse.de>
-
-	* getpwd.c: Remove unneeded prototype getcwd and move getwd so
-	that it's only declared if needed.
-
-	* getopt1.c: Change order of includes so that __GNU_LIBRARY__ is
-	defined.
-
-2005-05-15  Andreas Jaeger  <aj@suse.de>
-
-	* functions.texi: Regenerated.
-
-2005-05-15  Eli Zaretskii  <eliz@gnu.org>
-
-	* pexecute.txh: Enclose multi-word data types in @deftypefn in
-	braces.  Minor wording fixes.  Use --- for em-dash.  Use
-	@enumerate in enumerated lists.
-
-	* fopen_unlocked.c: Enclose multi-word data types in @deftypefn in
-	braces.
-
-2005-05-11  Eli Zaretskii  <eliz@gnu.org>
-
-	* pex-djgpp.c: Include string.h, fcntl.h, unistd.h, and
-	sys/stat.h.
-	(pex_init): Fix last argument to pex_init_common.
-	(pex_djgpp_exec_child): Remove leading underscore from _open,
-	_dup, _dup2, _close, and _spawnv/_spawnvp.  Replace `program',
-	which is undeclared, with `executable', which was unused.  Remove
-	unused variable `e'.  Fix casting of last arg to spawnv/spawnvp.
-	(pex_djgpp_wait): Declare arguments with ATTRIBUTE_UNUSED.
-
-2005-05-11  Paul Brook  <paul@codesourcery.com>
-
-	* Makefile.in: Regenerate dependencies.
-
-2005-05-10  Nick Clifton  <nickc@redhat.com>
-
-	* Update the address and phone number of the FSF organization in
-	the GPL notices in the following files:
-	COPYING.LIB, Makefile.in, _doprnt.c, argv.c, asprintf.c,
-	choose-temp.c, clock.c, concat.c, copying-lib.texi, cp-demangle.c,
-	cp-demangle.h, cp-demint.c, cplus-dem.c, dyn-string.c, fdmatch.c,
-	fibheap.c, floatformat.c, fnmatch.c, fopen_unlocked.c,
-	gather-docs, getopt.c, getopt1.c, getruntime.c, hashtab.c, hex.c,
-	lbasename.c, lrealpath.c, maint-tool, make-relative-prefix.c,
-	make-temp-file.c, md5.c, mempcpy.c, mkstemps.c, objalloc.c,
-	obstack.c, partition.c, pex-common.c, pex-common.h, pex-djgpp.c,
-	pex-msdos.c, pex-one.c, pex-unix.c, pex-win32.c, pexecute.c,
-	physmem.c, putenv.c, regex.c, safe-ctype.c, setenv.c, snprintf.c,
-	sort.c, spaces.c, splay-tree.c, stpcpy.c, stpncpy.c, strndup.c,
-	strtod.c, ternary.c, unlink-if-ordinary.c, vasprintf.c,
-	vsnprintf.c, vsprintf.c, xexit.c, xmalloc.c, xstrndup.c
-
-2005-05-06  Kelley Cook  <kcook@gcc.gnu.org>
-
-	* aclocal.m4 (AC_DEFINE_NOAUTOHEADER): Remove.
-	* configure.ac: Replace any AC_DEFINE_NOAUTOHEADER with AC_DEFINE.
-	* configure: Regenerate.
-
-2005-05-06  Kelley Cook  <kcook@gcc.gnu.org>
-
-	* configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
-	Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
-	* aclocal.m4: Don't include accross.m4.
-	* configure, config.in: Regenerate.
-
-2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* fopen_unlocked.c (unlock_std_streams): New.
-
-	* functions.texi: Regenerate.
-
-2005-04-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* fopen_unlocked.c (unlock_stream): New.
-	Consolidate unlocking code into a helper function.
-
-	* functions.texi: Regenerate.
-
-2005-04-13  Gabriel Dos Reis  <gdr@integrable-solutions.net>
-
-	* asprintf.c: Include config.h.
-	* basename.c: Likewise.
-	* fdmatch.c: Likewise.
-	* hex.c: Likewise.
-	* lbasename.c: Likewise.
-	* spaces.c: Likewise.
-	* xatexit.c:Likewise.
-	* configure.ac:  Do check declarations for basename, ffs, asprintf
-	and vasprintf for real.
-	* configure: Regenerate.
-
-2005-04-13  Gabriel Dos Reis  <gdr@integrable-solutions.net>
-
-	* argv.c (dupargv): Allocate space of argv[argc], not
-	sizeof(char *) of that amount.  Cast result to char *.
-
-2005-04-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
-
-	* regex.c (wcs_re_match_2_internal, byte_re_match_2_internal):
-	Replace not with negate.
-
-2005-04-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
-
-	* configure.ac: Check declarations for basename, ffs, asprintf,
-	vasprintf.
-	* configure: Regenerate.
-	* config.in: Likewise.
-
-2005-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* Makefile.in (CFILES): Add fopen_unlocked.c.
-	(REQUIRED_OFILES): Add ./fopen_unlocked.o.
-	Regenerate dependencies.
-
-	* configure.ac: Check for stdio_ext.h and __fsetlocking.
-
-	* fopen_unlocked.c: New file.
-
-	* functions.texi, configure, config.in: Regenerate.
-
-2005-04-04  Ian Lance Taylor  <ian@airs.com>
-
-	* testsuite/test-pexecute.c (TEST_PEX_RUN): Move variable
-	declaration before statement.
-
-2005-04-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* bcmp.c: Fix warnings and implement using memcmp.
-	* bcopy.c: Fix warnings.
-	* bzero.c: Fix warnings and implement using memset.
-
-	* configure.ac (ac_libiberty_warn_cflags): Add -Wwrite-strings
-	-Wstrict-prototypes.
-	* configure, config.in: Regenerate.
-
-	* bsearch.c, index.c, rindex.c, strstr.c, strtol.c, waitpid.c: Fix
-	warnings and reconcile interfaces with relevant standards.
-
-2005-04-02  Ian Lance Taylor  <ian@airs.com>
-
-	* cp-demangle.c: Update copyright.
-
-2005-03-31  Joseph S. Myers  <joseph@codesourcery.com>
-
-	* gettimeofday.c: Add "Supplemental" to @deftypefn.
-	* functions.texi: Regenerate.
-
-2005-03-28  Ian Lance Taylor  <ian@airs.com>
-
-	* pex-common.c: New file.
-	* pex-one.c: New file.
-	* pexecute.c: New file.
-	* pex-common.h: Include <stdio.h>.
-	(struct pex_obj): Define.
-	(struct pex_funcs): Define.
-	(pex_init_common): Declare.
-	* pex-unix.c: Rewrite.
-	* pex-win32.c: Rewrite.
-	* pex-djgpp.c: Rewrite.
-	* pex-msdos.c: Rewrite.
-	* testsuite/text-pexecute.c: New file.
-	* pexecute.txh: Rewrite.
-	* configure.ac: Check for wait3 and wait4.  Set CHECK to
-	really-check rather than check-cplus-dem.
-	* functions.texi: Rebuild.
-	* Makefile.in: Rebuild dependencies.
-	(CFILES): Add pexecute.c, pex-common.c, pex-one.c.
-	(REQUIRED_OFILES): Add pexecute.o, pex-common.o, pex-one.o.
-	* testsuite/Makefile.in (really-check): New target.
-	(check-pexecute, test-pexecute): New targets.
-	* configure: Rebuild.
-
-2005-03-28  Mark Kettenis  <kettenis@gnu.org>
-
-	* unlink-if-ordinary.c: Include <sys/types.h>.
-
-2005-03-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
-
-	Convert libiberty to use ISO C prototype style 7/n.
-	* regex.c (PARAMS): Remove definition.
-	(PREFIX): Unconditionaly define using ISO C ## operator.
-	(init_syntax_once, extract_number, extract_number_and_incr,
-	print_fastmap, print_partial_compiled_pattern,
-	print_compiled_pattern, print_double_string, printchar,
-	convert_mbs_to_wcs, re_set_syntax, regex_grow_registers,
-	regex_compile, store_op1, store_op2, insert_op1, insert_op2,
-	at_begline_loc_p, at_endline_p, group_in_compile_stack,
-	insert_space, wcs_compile_range, byte_compile_range,
-	truncate_wchar, re_compile_fastmap, re_compile_fastmap,
-	re_set_registers, re_search, re_search_2, re_search_3, re_match,
-	re_match_2, count_mbs_length, wcs_re_match_2_internal,
-	byte_re_match_2_internal, group_match_null_string_p,
-	alt_match_null_string_p, common_op_match_null_string_p,
-	bcmp_translate, re_compile_pattern, re_comp, re_exec, regcomp,
-	regexec, regerror, regfree): Use ISO C prototype style.
-	* partition.c: (elem_compare): Likewise.
-	* cp-demangle.c (print_usage): Likewise.
-
-2005-03-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
-
-	Convert libiberty to use ISO C prototype style 5/n.
-	* random.c (srandom, initstate, setstate, random): Use ISO C
-	prototypes.
-	* putenv.c (putenv): Likewise.
-	* physmem.c (physmem_available, physmem_total, main): Likewise.
-	* pex-win32.c (fix_argv, pexecute, pwait): Likewise.
-	* pex-unix.c (pexecute, pwait): Likewise.
-	* pex-msdos.c (pexecute, pwait): Likewise.
-	* pex-djgpp.c (pexecute, pwait): Likewise.
-	* partition.c (partition_new, partition_delete, partition_union)
-	(elem_compare, partition_print): Likewise.
-	* obstack.c (_obstack_begin, _obstack_begin_1, _obstack_newchunk,
-	_obstack_allocated_p, _obstack_free, obstack_free,
-	_obstack_memory_used, print_and_abort, obstack_next_free,
-	obstack_object_size, obstack_base): Likewise.  Remove codes
-	predicated on !defined(__STDC__).
-	* objalloc.c (objalloc_create, _objalloc_alloc, objalloc_free,
-	objalloc_free_block): Use ISO C prototypes.
-	* mkstemps.c (mkstemps): Likewise.
-	* memset.c (memset): Likewise.
-	* mempcpy.c (mempcpy): Likewise.
-	* rename.c (rename): Likewise.
-	* rindex.c (rindex): Likewise.
-	* setenv.c (setenv, unsetenv): Likewise.
-	* sigsetmask.c (sigsetmask): Likewise.
-	* snprintf.c (snprintf): Likewise.
-	* sort.c (sort_pointers, xmalloc): Likewise.
-	* spaces.c (spaces): Likewise.
-	* splay-tree.c (splay_tree_delete_helper,
-	splay_tree_splay_helper, splay_tree_splay,
-	splay_tree_foreach_helper, splay_tree_xmalloc_allocate,
-	splay_tree_new, splay_tree_xmalloc_allocate,
-	splay_tree_new_with_allocator, splay_tree_delete,
-	splay_tree_insert, splay_tree_remove, splay_tree_lookup,
-	splay_tree_max, splay_tree_min, splay_tree_predecessor,
-	splay_tree_successor, splay_tree_foreach,
-	splay_tree_compare_ints, splay_tree_compare_pointers): Likewise.
-	* stpcpy.c (stpcpy): Likewise.
-	* stpncpy.c (stpncpy): Likewise.
-	* strcasecmp.c (strcasecmp): Likewise.
-	* strchr.c (strchr): Likewise.
-	* strdup.c (strdup): Likewise.
-
-2005-03-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
-
-	Convert libiberty to use ISO C prototype style 6/n.
-	* strerror.c (init_error_tables, errno_max, strerror, strerrno,
-	strtoerrno, main): Use ISO C prototype style.
-	* strncasecmp.c (strncasecmp): Likewise.
-	* strncmp.c (strncmp): Likewise.
-	* strndup.c (strndup): Likewise.
-	* strrchr.c (strrchr): Likewise.
-	* strsignal.c (init_signal_tables, signo_max, strsignal,
-	strsigno, strtosigno, psignal, main): Likewise.
-	* strstr.c (strstr): Likewise.
-	* strtod.c (strtod, atof): Likewise.
-	* strtol.c (strtol): Likewise.
-	* strtoul.c (strtoul): Likewise.
-	* ternary.c (ternary_insert, ternary_cleanup, ternary_search,
-	ternary_recursivesearch): Likewise.
-	* tmpnam.c (tmpnam): Likewise.
-	* unlink-if-ordinary.c (unlink_if_ordinary): Likewise.
-	* vasprintf.c (int_vasprintf, vasprintf, checkit, main): Likewise.
-	* vfork.c (vfork): Likewise.
-	* vfprintf.c (vfprintf): Likewise.
-	* vprintf.c (vprintf): Likewise.
-	* vsnprintf.c (vsnprintf, checkit, main): Likewise.
-	* vsprintf.c (vsprintf): Likewise.
-	* waitpid.c (waitpid): Likewise.
-	* xatexit.c (xatexit, xatexit_cleanup): Likewise.
-	* xexit.c (xexit): Likewise.
-	* xmalloc.c (xmalloc_set_program_name, xmalloc_failed, xmalloc,
-	xcalloc, xrealloc): Likewise.
-	* xmemdup.c (xmemdup): Likewise.
-	* xstrdup.c (xstrdup): Likewise.
-	* xstrerror.c (xstrerror): Likewise.
-	* xstrndup.c (xstrndup): Likewise.
-
-2005-03-27  Andreas Jaeger  <aj@suse.de>
-
-	* configure.ac (ac_c_preproc_warn_flag): Remove -Wtraditional
-	flags.
-	* configure: Regenerated.
-
-2005-03-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
-
-	* getopt1.c (getopt_long_only): Fix thinko.
-
-2005-03-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
-
-	Convert libiberty to use ISO C prototype style 4/n.
-	* hashtab.c (higher_prime_index, hash_pointer, eq_pointer,
-	htab_size, htab_elements, htab_mod_1, htab_mod, htab_mod_m2,
-	htab_create_alloc, htab_set_functions_ex, htab_create,
-	htab_try_create, htab_delete, htab_empty,
-	find_empty_slot_for_expand, htab_expand, htab_find_with_hash,
-	htab_find, htab_find_slot_with_hash, htab_find_slot,
-	htab_remove_elt, htab_remove_elt_with_hash, htab_clear_slot,
-	htab_traverse_noresize, htab_traverse, htab_collisions,
-	htab_hash_string, iterative_hash): Use ISO C prototype.
-	* hex.c (hex_init): Likewise.
-	* index.c (index): Likewise.
-	* insque.c (insque, remque): Likewise.
-	* lbasename.c (lbasename): Likewise.
-	* lrealpath.c (lrealpath): Likewise.
-	* make-relative-prefix.c (save_string, split_directories,
-	free_split_directories, make_relative_prefix): Likewise.
-	* make-temp-file.c (try, choose_tmpdir, make_temp_file): Likewise.
-	* md5.c (md5_init_ctx, md5_read_ctx, md5_finish_ctx, md5_stream,
-	md5_buffer, md5_process_bytes, md5_process_block): Likewise.
-	* memchr.c (memchr): Likewise.
-	* memcpy.c (memcpy): Likewise.
-	* memmove.c (memmove): Likewise.
-	* gettimeofday.c (gettimeofday): Likewise.
-	* getruntime.c (get_run_time): Likewise.
-	* getpwd.c (getpwd, getpwd): Likewise.
-	* getpagesize.c (getpagesize): Likewise.
-	* getopt1.c (getopt_long, getopt_long_only, main): Likewise.
-	* getopt.c (my_index, exchange, _getopt_initialize,
-	_getopt_internal, getopt, main): Likewise.
-	* getcwd.c (getcwd): Likewise.
-	* fnmatch.c (fnmatch): Likewise.
-	* floatformat.c (floatformat_always_valid,
-	floatformat_i387_ext_is_valid, get_field, floatformat_to_double,
-	put_field, floatformat_from_double, floatformat_is_valid,
-	ieee_test, main): Likewise.
-	* fibheap.c (fibheap_new, fibnode_new, fibheap_compare,
-	fibheap_comp_data, fibheap_insert, fibheap_min, fibheap_min_key,
-	fibheap_union, fibheap_extract_min, fibheap_replace_key_data,
-	fibheap_replace_key, fibheap_replace_data, fibheap_delete_node,
-	fibheap_delete, fibheap_empty, fibheap_extr_min_node,
-	fibheap_ins_root, fibheap_rem_root, fibheap_consolidate,
-	fibheap_link, fibheap_cut, fibheap_cascading_cut,
-	fibnode_insert_after, fibnode_remove): Likewise.
-	* ffs.c (ffs): Likewise.
-	* fdmatch.c (fdmatch): Likewise.
-	* dyn-string.c (dyn_string_init, dyn_string_new,
-	dyn_string_delete, dyn_string_release, dyn_string_resize,
-	dyn_string_clear, dyn_string_copy, dyn_string_copy_cstr,
-	dyn_string_prepend, dyn_string_prepend_cstr, dyn_string_insert,
-	dyn_string_insert_cstr, dyn_string_insert_char,
-	dyn_string_append, dyn_string_append_cstr,
-	dyn_string_append_char, dyn_string_substring, dyn_string_eq):
-	Likewise.
-
-2005-03-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
-
-	Convert libiberty to use ISO C prototype style 3/n.
-	* cplus-dem.c (set_cplus_marker_for_demangling, consume_count,
-	consume_count_with_underscores, code_for_qualifier,
-	qualifier_string, demangle_qualifier, cplus_demangle_opname,
-	cplus_mangle_opname, cplus_demangle_set_style,
-	cplus_demangle_name_to_style, cplus_demangle, grow_vect,
-	ada_demangle, internal_cplus_demangle, squangle_mop_up,
-	work_stuff_copy_to_from, delete_non_B_K_work_stuff,
-	delete_work_stuff, mop_up, demangle_signature,
-	demangle_method_args, demangle_template_template_parm,
-	demangle_expression, demangle_integral_value,
-	demangle_real_value, demangle_template_value_parm,
-	demangle_template, arm_pt, demangle_arm_hp_template,
-	demangle_class_name, demangle_class, iterate_demangle_function,
-	demangle_prefix, gnu_special, recursively_demangle, arm_special,
-	demangle_qualified, get_count, do_type, demangle_fund_type,
-	do_hpacc_template_const_value, do_hpacc_template_literal,
-	snarf_numeric_literal, do_arg, remember_type, remember_Ktype,
-	register_Btype, remember_Btype, forget_B_and_K_types,
-	forget_types, demangle_args, demangle_nested_args,
-	demangle_function_name, string_need, string_delete, string_init,
-	string_clear, string_empty, string_append, string_appends,
-	string_appendn, string_prepend, string_prepends, string_prependn,
-	string_append_template_idx): Use ISO C prootype style.
-	* cp-demint.c (cplus_demangle_fill_component,
-	cplus_demangle_fill_builtin_type, cplus_demangle_fill_operator,
-	cplus_demangle_v3_components): Likewise.
-
-2005-03-26  Gabriel Dos Reis  <gdr@integrable-solutions.net>
-
-	Convert libiberty to use ISO C prototype style 2/n.
-	* cp-demangle.h: Remove uses of PARAMS.
-	* cp-demangle.c: Likewise.
-	(d_dump, cplus_demangle_fill_name,
-	cplus_demangle_fill_extended_operator, cplus_demangle_fill_ctor,
-	cplus_demangle_fill_dtor, d_make_empty, d_make_comp, d_make_name,
-	d_make_builtin_type, d_make_operator, d_make_extended_operator,
-	d_make_ctor, d_make_dtor, d_make_template_param, d_make_sub,
-	cplus_demangle_mangled_name, has_return_type,
-	is_ctor_dtor_or_conversion, d_encoding, d_name, d_nested_name,
-	d_prefix, d_unqualified_name, d_source_name, d_number,
-	d_identifier, d_operator_name, d_special_name, d_call_offset,
-	d_ctor_dtor_name, cplus_demangle_type, d_cv_qualifiers,
-	d_function_type, d_bare_function_type, d_class_enum_type,
-	d_array_type, d_pointer_to_member_type, d_template_param,
-	d_template_args, d_template_arg, d_expression, d_expr_primary,
-	d_local_name, d_discriminator, d_add_substitution,
-	d_substitution, d_print_resize, d_print_append_char,
-	d_print_append_buffer, d_print_error, cplus_demangle_print,
-	d_print_comp, d_print_java_identifier, d_print_mod_list,
-	d_print_mod, d_print_function_type, d_print_array_type,
-	d_print_expr_op, d_print_cast, cplus_demangle_init_info,
-	d_demangle, __cxa_demangle, cplus_demangle_v3, java_demangle_v3,
-	is_ctor_or_dtor, is_gnu_v3_mangled_ctor, is_gnu_v3_mangled_dtor,
-	print_usage, main):
-
-2005-03-26  Gabriel Dos Reis  <gdr@integrable-solutions.net>
-
-	Convert libiberty to ISO C prototype style 1/n.
-	* _doprnt.c: Remove conditional #include <varargs.h> on
-	ANSI_PROTOTYPES as the latter is always assumed.
-	(_doprnt, checkit, main): Use ISO C prototype.
-	* alloca.c (find_stack_direction, C_alloca): Use ISO C prototype.
-	* argv.c: Remove conditional #includes on ANSI_PROTOTYPES.
-	(dupargv, freeargv, buildargv, main): Use ISO C prototype.
-	* atexit.c (atexit): Likewise
-	* asprintf.c: Remove conditional include on ANSI_PROTOTYPES.
-	(asprintf): Use ISO C prototype.
-	* basename.c (basename): Likewise
-	* bcmp.c (bcmp): Likewise.
-	* bcopy.c (bcopy): Likewise.
-	* bzero.c (bzero): Likewise.
-	* bsearch.c (bsearch): Likewise.  Improve const-correctness.
-	* choose-temp.c (choose_temp_base): Likewise.
-	* calloc.c: Remove conditional #include on ANSI_PROTOTYPES.
-	(calloc): Use ISO C prototype.
-	* clock.c (clock): Likewise.
-	* concat.c: Remove conditional #include on ANSI_PROTOTYPES.
-	(vconcat_length, vconcat_copy, concat_length, concat_copy,
-	concat_copy2, concat, reconcat, main): Use ISO C prototype.
-	* copysign.c (copysign): Likewise.
-
-2005-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* Makefile.in (CFILES): Add strndup.c and xstrndup.c.
-	(REQUIRED_OFILES): Add xstrndup.o.
-	(CONFIGURED_OFILES): Add strndup.o.
-	Regenerate dependencies.
-
-	* configure.ac (funcs, AC_CHECK_FUNCS): Add strndup.
-
-	* strndup.c, xstrndup.c: New.
-
-	* config.in, configure, functions.texi: Regenerate.
-
-2005-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* xmemdup.c, xstrdup.c: Expose the tail call.
-
-2005-03-09  Mark Mitchell  <mark@codesourcery.com>
-
-	* configure.ac (funcs): Add gettimeofday.
-	* configure: Regenerated.
-	* gettimeofday.c: New file.
-	* Makefile.in (CFILES): Add gettimeofday.
-	(CONFIGURED_OFILES): Add gettimeofday.o.
-	(./gettimeofday.o): New rule.
-
-2005-03-09  Ian Lance Taylor  <ian@airs.com>
-
-	* pex-os2.c: Remove.
-	* configure.ac: Remove *-*-os2-emx* case when setting pexecute.
-	* Makefile.in (CFILES): Remove pex-os2.c.
-	(CONFIGURED_OFILES): Remove pex-os2.o.
-	(pex-os2.o): Remove target.
-	* configure: Rebuild.
-
-2005-03-07  Ian Lance Taylor  <ian@airs.com>
-
-	* mpw-config.in: Remove.
-	* mpw-make.sed: Remove.
-	* mpw.c: Remove.
-	* Makefile.in (CFILES): Remove pex-mpw.c.
-	(CONFIGURED_OFILES): Remove pex-mpw.o.
-	(mpw.o, pex-mpw.o): Remove targets.
-	* maint-tool (undoc): Remove reference to mpw.c.
-
-2005-03-06  DJ Delorie  <dj@redhat.com>
-
-	* configure.ac (target_header_dir): vfork is a stub under djgpp.
-	* configure: Regenerated.
-
-2005-03-01  Jan Beulich  <jbeulich@novell.com>
-
-	* Makefile.in (CFILES): Add unlink-if-ordinary.c
-	(REQUIRED_OFILES): Add unlink-if-ordinary.o.
-	Add dependencies and rule for unlink-if-ordinary.o.
-	* unlink-if-ordinary.c: New.
-
-2005-03-01  Ben Elliston  <bje@au.ibm.com>
-
-	* hashtab.c (htab_find_slot_with_hash): Make function
-	documentation clearer.
-
-2005-02-13  Jason Merrill  <jason@redhat.com>
-
-	* cp-demangle.c (__cxa_demangle): Change resolution of ambiguous
-	arguments.
-
-2005-01-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
-
-	* hex.c (hex_value): Group 'unsigned int' together to get correct
-	markup.
-	* functions.texi: Regenerated.
-
-2004-12-27  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* Makefile.in: Undo to 2004-12-17.
-	* aclocal.m4: Likewise.
-	* config.table: Likewise.
-	* configure.ac: Likewise.
-	* maint-tool: Likewise.
-	* configure: Likewise.
-
-2004-12-19  H.J. Lu  <hongjiu.lu@intel.com>
-
-	PR bootstrap/19072
-	* Makefile.in (enable_shared): New substitute.
-	(LTTARGETLIB): New.
-	(PREFIXTARGETLIB): New.
-	(LTTESTLIB): New.
-	(PREFIXTESTLIB): New.
-	(CCLD): New.
-	(LINK): New.
-	($(TARGETLIB)): Use $(LINK) to create libraries and create
-	targets by hand.
-	($(TESTLIB)): Likewise.
-	(mostlyclean): Don't remove .libs. Remove the libtool object
-	directory.
-
-	* config.table (enable_shared): Removed.
-
-	* configure.ac (enable_static): Set to yes.
-	(AC_PROG_LIBTOOL): Removed.
-	(AM_DISABLE_SHARED): Uncommented.
-	(AM_PROG_LIBTOOL): Likewise.
-	(LIBOBJS): Add `./' to avoid VPATH.
-	(LTLIBOBJS): Likewise.
-	(enable_shared): Substitute.
-	* configure: Regenerated.
-
-2004-12-18  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* Makefile.in (top_builddir): Set to `.'.
-	(OUTPUT_OPTION): Removed.
-	(LIBTOOL): New.
-	(LTLIBOBJS): New.
-	(EXTRA_LTOFILES): New.
-	(FLAGS_TO_PASS): Add EXTRA_LTOFILES.
-	(all): Remove stamp-picdir.
-	(LTCOMPILE): New.
-	(.c.lo): New rule.
-	(REQUIRED_LTOFILES): New.
-	(CONFIGURED_LTOFILES): New.
-	($(TARGETLIB)): Check .libs for PIC object files. Depend on
-	$(REQUIRED_LTOFILES) $(EXTRA_LTOFILES) $(LTLIBOBJS).
-	(stamp-picdir): Completely removed.
-	(maint-missing): Pass $(REQUIRED_LTOFILES)
-	$(CONFIGURED_LTOFILES) instead of (REQUIRED_OFILES)
-	$(CONFIGURED_OFILES)
-	(maint-buildall): Depend on $(REQUIRED_LTOFILES)
-	$(CONFIGURED_LTOFILES).
-	(mostlyclean): Also remove *.lo .libs.
-	Run "make maint-deps".
-
-	* aclocal.m4: Include ../libtool.m4.
-
-	* config.table: Don't check --enable-shared.
-
-	* configure.ac (AC_PROG_LIBTOOL): Add.
-	(AC_PROG_CC_C_O): Removed.
-	(OUTPUT_OPTION): Removed.
-	(NO_MINUS_C_MINUS_O): Removed.
-	(ltpexecute): New substitute.
-	(LIBOBJS): Cleanup.
-	* configure: Regenerated.
-
-	* maint-tool: Updated for .lo/libtool.
-
-2004-12-11  Ben Elliston  <bje@au.ibm.com>
-
-	* configure.ac: Invoke AC_CHECK_SIZEOF for sizeof (int).
-	* configure: Regenerate.
-	* config.in: Likewise.
-
-2004-12-07  DJ Delorie  <dj@redhat.com>
-
-	* splay-tree.c (splay_tree_delete_helper): Redesign the logic so
-	that recursion (and thus large stack space) is not needed.
-
-2004-11-29  Matt Kraai  <kraai@alumni.cmu.edu>
-
-	* pex-unix.c: Fix the spelling of longjmp.
-
-2004-11-23  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	PR other/18623
-	* cp-demangle.c (d_call_offset): Remove useless local variables
-	offset and virtual_offset.
-	* cplus-dem.c (ada_demangle): Remove useless local variable
-	at_start_name.
-	(demangle_template): Remove useless local variable start.
-
-2004-11-19  Roger Sayle  <roger@eyesopen.com>
-
-	* objalloc.c, strsignal.c, xstrerror.c: Include "config.h" before
-	"ansidecl.h" to avoid redeclaration errors with native compilers.
-	* regex.c: Protect config.h from multiple inclusion.
-
-2004-11-12  Mike Stump  <mrs@apple.com>
-
-	* Makefile.in (libiberty.html): Fix html generation.
-
-2004-09-08  Adam Nemet  <anemet@lnxw.com>
-
-	* vasprintf.c: Accept __va_copy in addition to va_copy.
-
-2004-09-03  Paolo Bonzini  <bonzini@gnu.org>
-
-	* configure: Regenerate.
-
-2004-09-02  Paolo Bonzini  <bonzini@gnu.org>
-
-	* configure.ac: Do not enable multilibs for build-side libiberty.
-
-2004-06-29  Danny Smith  <dannysmith@users.sourceforge.net>
-
-	* lrealpath.c (lrealpath): Add _WIN32 support.
-
-2004-06-28  Zack Weinberg  <zack@codesourcery.com>
-
-	* cp-demangle.h: Declare cplus_demangle_operators,
-	cplus_demangle_builtin_types, cplus_demangle_mangled_name, and
-	cplus_demangle_type as static if IN_GLIBCPP_V3.
-
-2004-06-28  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	PR other/16240
-	* cp-demangle.c (d_expr_primary): Check for a failure return from
-	cplus_demangle_type.
-	* testsuite/demangle-expected: Add test case.
-
-2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
-
-	* pex-win32.c (fix_argv): Expand comment.
-
-2004-05-25  Daniel Jacobowitz  <drow@false.org>
-
-	* Makefile.in: Add .NOEXPORT.
-
-2004-04-29  Douglas B Rupp  <rupp@gnat.com>
-
-	* mkstemps.c (mkstemps) [VMS]: Remove special open option. Update
-	copyright.
-
-2004-04-26  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
-
-	* configure.ac (UNSIGNED_64BIT_TYPE): Unquote the definition.
-	* configure: Regenerate.
-
-2004-04-22  Richard Henderson  <rth@redhat.com>
-
-	* hashtab.c: Include limits.h, stdint.h, ansidecl.h.
-	(CHAR_BIT): Provide default.
-	(struct prime_ent, prime_tab): New.
-	(higher_prime_index): Rename from higher_prime_number, return index.
-	(htab_mod_1): New.
-	(htab_mod, htab_mod_m2): Use it.
-	(htab_create_alloc, htab_create_alloc_ex): Store prime index.
-	(htab_expand): Likewise.
-	* configure.ac: Check for stdint.h.
-	(UNSIGNED_64BIT_TYPE): New define and checks to fill it in.
-	* config.in, configure: Rebuild.
-
-2004-04-13  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* strerror.c: Include config.h, and redefine sys_nerr and
-	sys_errlist, before including ansidecl.h and libiberty.h.
-
-2004-04-13  Jeff Law  <law@redhat.com>
-
-	* hashtab.c (htab_remove_elt_with_hash): New function.
-	(htab_remove_elt): Implement in terms of htab_remove_elt_with_hash.
-
-2004-03-31  Richard Henderson  <rth@redhat.com>
-
-	* hashtab.c (htab_size): Move to top of file; mark inline.
-	(htab_elements): Likewise.
-	(htab_mod, htab_mod_m2): New.
-	(htab_delete): Refactor htab->size and htab->entries.
-	(htab_empty): Likewise.
-	(find_empty_slot_for_expand): Use htab_size, htab_mod, htab_mod_m2.
-	(htab_find_with_hash, htab_find_slot_with_hash): Likewise.
-	(htab_clear_slot): Use htab_size, htab_elements.
-	(htab_traverse_noresize, htab_traverse): Likewise.
-
-2004-03-17  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* pex-unix.c (pexecute): Use vfork instead of fork, with
-	appropriate changes to make this safe.
-	* pex-common.h (STDERR_FILE_NO): Define.
-
-	* Makefile.in: Clean up REQUIRED_OFILES and CONFIGURED_OFILES for
-	an 80 column screen.  Run maint-deps.
-
-2004-03-09  Kelley Cook  <kcook@gcc.gnu.org>
-
-	* configure.ac: Bump version to 2.59.  Apply suggested autoupdates.
-	* acconfig.h: Delete redundant file.
-	* config.in: Regenerate.
-	* configure: Regenerate.
-
-2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
-
-	* configure: Regenerate for config/accross.m4 correction.
-
-2004-03-07  Andreas Jaeger  <aj@suse.de>
-
-	* testsuite/test-demangle.c: Include <string.h> and <stdlib.h> for
-	prototypes.
-	(main): Initialize style.
-
-2004-02-24  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* cp-demangle.h (enum d_builtin_type_print): Add D_PRINT_UNSIGNED,
-	D_PRINT_UNSIGNED_LONG, D_PRINT_LONG_LONG,
-	D_PRINT_UNSIGNED_LONG_LONG, D_PRINT_FLOAT.
-	* cp-demangle.c (cplus_demangle_builtin_types): Change char and
-	short types to D_PRINT_DEFAULT.  Change other integer types to use
-	new D_PRINT_* values where appropriate.  Change float types to
-	D_PRINT_FLOAT.
-	(d_print_comp) [LITERAL, LITERAL_NEG]: Handle new D_PRINT_*
-	values.
-	* testsuite/demangle-expected: Adjust two test cases.
-
-	* cp-demangle.c (d_print_function_type): Print a space before the
-	parenthesis around the function type in more cases.
-	* testsuite/demangle-expected: Adjust one test case.
-
-	* cp-demangle.c (d_print_comp) [UNARY]: Don't emit extra
-	parentheses around a cast.
-	* testsuite/demangle-expected: Adjust two test cases to match new
-	output.
-
-	* cp-demangle.c (__cxa_demangle): Pass DMGL_PARAMS to d_demangle.
-
-	* cp-demangle.c (d_print_comp) [RESTRICT, VOLATILE, CONST]: Don't
-	push more than one of the same CV-qualifier on the top of the
-	stack.
-	(d_print_comp) [ARRAY_TYPE]: If the array itself is CV-qualified,
-	move the CV-qualifiers to apply to the element type instead.
-	(d_print_array_type): When checking the modifiers, keep looking
-	past ones which have been printed already.
-	* testsuite/demangle-expected: Add three test cases.
-
-2004-02-23  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* cp-demangle.c (__cxa_demangle): Adjust last patch to handle
-	empty string correctly.
-
-	* cp-demangle.c (__cxa_demangle): It is not an error if status is
-	not NULL.  It is an error if the mangled name is the same as a
-	built-in type name.
-	(main): If IN_GLIBCPP_V3 is defined, test __cxa_demangle rather
-	than cplus_demangle_v3.
-
-	* dyn-string.c: Remove test of IN_LIBGCC2 and IN_GLIBCPP_V3 and
-	the associated #define of RETURN_ON_ALLOCATION_FAILURE.
-
-2004-02-16  Matt Kraai  <kraai@alumni.cmu.edu>
-
-	* regex.c: Include <ansidecl.h>.
-	(regcomp): Cast i to int.
-	(regerror): Add ATTRIBUTE_UNUSED to parameter preg.
-
-2004-01-25  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* configure.ac: Add m4_pattern_allow(LIBOBJS).
-	* configure: Regenerate.
-
-2004-01-22  DJ Delorie  <dj@redhat.com>
-
-	* Makefile.in: Convert to ./ throughout.  Rebuild dependencies
-	with explicit build rules.
-	(VPATH): Remove.
-	(.c.o): Poison.
-	* configure.ac (pexecute, LIBOBJS): Add ./ .
-	* maint-tool: Build dependencies with explicit rules.
-
-2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
-
-	* strdup.c (strdup): Constify the argument.
-
-2004-01-14  Loren J. Rittle  <ljrittle@acm.org>
-
-	* Makefile.in (distclean): Remove config.cache.
-
-2004-01-13  Daniel Jacobowitz  <drow@mvista.com>
-
-	* cp-demangle.c (d_make_comp): DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE
-	takes two parameters.
-	* cp-demint.c (cplus_demangle_fill_component): Likewise.
-
-2004-01-12  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* cp-demangle.c: Include "cp-demangle.h".  If IN_GLIBCPP_V3 is
-	defined, rename some functions which are to become static via
-	#define.
-	(CP_STATIC_IF_GLIBCPP_V3): Define.
-	(struct d_operator_info): Move definition to cp-demangle.h, and
-	rename to demangle_operator_info.  Change all uses.
-	(enum d_builtin_type_print): Move definition to cp-demangle.h.
-	(struct d_builtin_type_info): Move definition to cp-demangle.h,
-	and rename to demangle_builtin_type_info.  Change all uses.
-	(enum d_comp_type): Move definition to include/demangle.h, and
-	rename to demangle_component_type, and change all enums to start
-	with DEMANGLE_COMPONENT_ instead of D_.  Change all uses.
-	(struct d_comp): Move definition to include/demangle.h, and rename
-	to demangle_component.  Change all uses.
-	(struct d_info): Move definition to cp-demangle.h.
-	(cplus_demangle_fill_name): New function.
-	(cplus_demangle_fill_extended_operator): New function.
-	(cplus_demangle_fill_ctor): New function.
-	(cplus_demangle_fill_dtor): New function.
-	(d_make_empty): Remove type parameter.  Change all callers.
-	(d_make_name): Use cplus_demangle_fill_name.
-	(d_make_extended_operator): Use
-	cplus_demangle_fill_extended_operator.
-	(d_make_ctor): Use cplus_demangle_fill_ctor.
-	(d_make_dtor): Use cplus_demangle_fill_dtor.
-	(cplus_demangle_mangled_name): Rename from d_mangled_name.  Make
-	non-static by default.  Change all callers.
-	(cplus_demangle_operators): Rename from d_operators.  Change all
-	uses.  Make non-static by default.  Add sentinel at end of array.
-	(d_operator_name): Adjust initialization of high for new sentinel
-	in cplus_demangle_operators.
-	(cplus_demangle_builtin_types): Rename from d_builtin_types.
-	Change all uses.  Make non-static by default.  Change initializer
-	to use D_BUILTIN_TYPE_COUNT instead of magic number 26.
-	(cplus_demangle_type): Rename from d_type.  Make non-static by
-	default.  Change all callers.
-	(cplus_demangle_init_info): Rename from d_init_info.  Make
-	non-static by default.  Change all callers.
-	* cp-demangle.h: New file.
-	* cp-demint.c: New file.
-	* Makefile.in: Rebuild dependencies.
-	(CFILES): Add cp-demint.c.
-	(REQUIRED_OFILES): Add cp-demint.o.
-
-2004-01-09  Kelley Cook  <kcook@gcc.gnu.org>
-
-	* configure.in:  Rename file to ...
-	* configure.ac:  ... this.
-	* Makefile.in: Update a comment for above change.
-	* README: Likewise.
-	* config.in: Regenerate.
-
-2004-01-02  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* cp-demangle.c (d_encoding): When DMGL_PARAMS is not set, strip
-	CV-qualifiers from D_COMP_LOCAL_NAME right subtree.
-	* cplus-dem.c (demangle_arm_hp_template): Set DMGL_PARAMS when
-	demangling template parameters.
-	* testsuite/test-demangle.c (fail): New static function.
-	(main): Support new options in input file: --no-params,
-	--is-v3-ctor, and --is-v3-dtor.
-	* testsuite/demangle-expected: Add --no-params to most tests, and
-	add the correct result when parameters are not demangled.  Add
-	some simple tests for V3 constructor/destructor recognition.
-
-2003-12-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* cp-demangle.c (is_ctor_or_dtor): Fix error in last change.
-
-2003-12-22  Daniel Jacobowitz  <drow@mvista.com>
-
-	PR debug/13272
-	* Makefile.in (lbasename.o): Depend on filenames.h.
-	* lbasename.c: Include "filenames.h" instead of defining
-	its macros locally.
-
-2003-12-22  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* cp-demangle.c (CP_DYNAMIC_ARRAYS): Define if compiler supports
-	dynamic arrays.
-	(struct d_operator_info): Add len field.
-	(struct d_builtin_type_info): Add len and java_len fields.
-	(struct d_standard_sub_info): Add simple_len, full_len, and
-	set_last_name_len fields.
-	(struct d_comp): Add len field to s_string.
-	(struct d_info): Add send, did_subs, and expansion fields.
-	(d_append_string_constant): Define.
-	(d_append_string): Remove.  Change all users to use
-	d_append_string_constant or d_append_buffer instead.
-	(d_make_sub): Add len parameter.  Change all callers.
-	(d_name): Increase expansion when substituting std::.
-	(d_unqualified_name): Increase expansion for an operator.
-	(d_number): Don't use multiplication for negative numbers.
-	(d_identifier): Make sure there are enough characters in the
-	string for the specified length.  Adjust expansion for an
-	anonymous namespace.
-	(d_operators): Initialize len field.
-	(d_special_name, d_ctor_dtor_name): Increase expansion.
-	(d_builtin_types): Initialize len and java_len fields.
-	(d_type): Increase expansion for a builtin type.
-	(d_cv_qualifiers): Increase expansion for each qualifier.
-	(d_bare_function_type): Decrease expansion when removing single
-	void parameter.
-	(d_template_param): Increment did_subs.
-	(d_expression): Increase expansion for an operator.
-	(d_expr_primary): Decrease expansion for a type we will print
-	specially.
-	(standard_subs): Initialize new fields.
-	(d_substitution): Increment did_subs when doing a normal
-	substitution.  Increase expansion for a special substitution.
-	(d_print): Add estimate parameter.  Change all callers.
-	(d_print_comp) [D_COMP_NAME]: Handle C++ case inline.
-	(d_print_comp) [D_COMP_BINARY]: Use length to avoid strcmp call.
-	(d_print_java_identifier): Rename from d_print_identifier.  Handle
-	only Java case.  Change caller.
-	(d_init_info): Change return type to void.  Change all callers.
-	Initialize send, did_subs, and expansion fields.  Do not
-	initialize comps and subs fields.
-	(d_demangle): Ifdef CP_DYNAMIC_ARRAYS, allocate comps and subs
-	arrays on stack.  Make an estimate of the length of the demangled
-	name.  Ifdef CP_DEMANGLE_DEBUG, print estimation failures.
-	(is_ctor_or_dtor): Ifdef CP_DYNAMIC_ARRAYS, allocate comps and
-	subs arrays on stack.
-
-2003-12-20  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* cp-demangle.c (d_identifier): In Java mode, skip an optional '$'
-	after the identifier.
-	* testsuite/demangle-expected: Add test case.
-
-2003-12-19  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	Fix for PR c++/13447:
-	* cp-demangle.c (enum d_comp_type): Add D_COMP_LOCAL_NAME.
-	(d_dump, d_make_comp): Handle D_COMP_LOCAL_NAME.
-	(is_ctor_dtor_or_conversion): Handle D_COMP_LOCAL_NAME like
-	D_COMP_QUAL_NAME.
-	(is_ctor_or_dtor): Likewise.
-	(d_local_name): Use D_COMP_LOCAL_NAME rather than
-	D_COMP_QUAL_NAME.
-	(d_print_comp) [D_COMP_LOCAL_NAME]: New.
-	(d_prinT_comp) [D_COMP_TYPED_NAME]: If the left tree is
-	D_COMP_LOCAL_NAME, pull any qualifiers off its right subtree.
-	(d_print_mod_list): Handle D_COMP_LOCAL_NAME.
-	* testsuite/demangle-expected: Add two test cases.
-
-	* cp-demangle.c (d_print_function_type): Clear the global modifier
-	list when printing the modifiers, not just when printing the
-	function parameters.
-	* testsuite/demangle-expected: Add two test cases.
-
-2003-12-15  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* cp-demangle.c (d_print_function_type): Print the function
-	parameters with no modifiers.
-	* testsuite/demangle-expected: Add test case.
-
-	* cp-demangle.c (d_demangle): If DMGL_PARAMS is not set, don't
-	expect that we've read the entire string.
-	(is_ctor_or_dtor): Don't expect that we've read the entire
-	string--reverse patch of 2003-11-29.
-
-2003-12-15  Brendan Kehoe  <brendan@zen.org>
-
-	* libiberty/Makefile.in (floatformat.o): Add dependency on
-	config.h to accompany change of 2003-12-03.
-
-2003-12-15  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	Fix handling of constructor/destructor of standard substitution:
-	* cp-demangle.c (struct d_standard_sub_info): Define.
-	(d_substitution): Add prefix argument.  Change all callers.
-	Rework handling of standard substitutions to print full name when
-	qualifying a constructor/destructor, or when DMGL_VERBOSE is set.
-	* testsuite/demangle-expected: Add test case.
-
-	Fix handling of negative literal constants:
-	* cp-demangle.c (enum d_comp_type): Add D_COMP_LITERAL_NEG.
-	(d_dump, d_make_comp): Handle D_COMP_LITERAL_NEG.
-	(d_expr_primary): Use D_COMP_LITERAL_NEG for a negative number.
-	(d_print_comp): Handle D_COMP_LITERAL_NEG.
-	* testsuite/demangle-expected: Add test case.
-
-2003-12-04  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* cp-demangle.c (IS_UPPER, IS_LOWER): Define.
-	(d_last_char): Define new macro.
-	(d_make_name): Reject an empty name.
-	(d_prefix, d_unqualified_name, d_type): Use new IS_* macros.
-	(d_substitution, d_print_identifier): Likewise.
-	(d_print_comp) [D_COMP_OPERATOR]: Likewise.
-	(d_print_comp) [D_COMP_TEMPLATE]: Use new d_last_char macro.
-	(d_print_mod) Use new d_last_char macro.
-	(d_print_cast): Use new d_last_char macro.
-	(is_ctor_or_dtor): Don't leak memory.
-
-	Fix handling of member function modifiers:
-	* cp-demangle.c (enum d_comp_type): Add D_COMP_RESTRICT_THIS,
-	D_COMP_VOLATILE_THIS, and D_COMP_CONST_THIS.
-	(d_dump): Dump new d_comp_type values.
-	(d_make_comp): Accept new d_comp_type values.
-	(has_return_type): Only accept _THIS variants of qualifiers.
-	(d_encoding): Without DMGL_PARAMS, only remove _THIS variants of
-	qualifiers.
-	(d_cv_qualifiers): Add member_fn parameter.  Change all callers.
-	(d_print_comp) [D_COMP_TYPED_NAME]: Rather than removing
-	qualifiers and printing them at the end, add _THIS qualifiers to
-	the modifier list.
-	(d_print_comp) [D_COMP_*_THIS]: New cases.
-	(d_print_comp) [D_COMP_PTRMEM_TYPE]: Remove special handling of
-	qualifiers.
-	(d_print_mod_list): Add suffix parameter.  Change all callers.
-	Keep walking the list even if the current modifier has been
-	printed.
-	(d_print_mod): Handle new _THIS qualifiers.
-	(d_print_function_type): Handle new _THIS qualifiers when deciding
-	whether to print a parenthesis.  Put a space before the
-	parenthesis in some cases.  Call d_print_mod_list again at the
-	end, passing suffix as 1.
-	(is_ctor_or_dtor): Look for new _THIS qualifiers.
-	* testsuite/demangle-expected: Add test case.
-
-	Fix for PR gcc/13304:
-	* cp-demangle.c (d_print_comp) [D_COMP_TEMPLATE]: If the character
-	before the '<' is itself a '<', insert a space.
-	(d_print_cast): Likewise.
-	* testsuite/demangle-expected: Add test case.
-
-	Fix for PR gcc/13244:
-	* cp-demangle.c (d_print_comp) [D_COMP_BINARY]: Wrap an expression
-	which uses the '>' operator in an extra layer of parens.
-	* testsuite/demangle-expected: Add test case.
-
-2003-12-03  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* floatformat.c: Include "config.h" and <string.h> if available.
-	(INFINITY, NAN): Define if not defined by <math.h>.
-	(floatformat_to_double): Handle NaN, infinity, and denormalized
-	numbers.
-	(floatformat_from_double): Likewise.
-	(ieee_test): In debugging code, use little endian rather than big
-	endian.  Correct tests to handle NaN and to check correct sign of
-	zero.  Omit m68k extended test.
-	(main): Add more debugging cases.
-
-2003-11-29  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* cp-demangle.c (d_demangle): Only return success if we consumed
-	the entire demangled string.
-	(is_ctor_or_dtor): Likewise.
-
-	* testsuite/demangle-expected: Revert one part of 2003-06-26 patch
-	to restore expected result of EDG test case to original expected
-	result.
-
-2003-11-26  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* cp-demangle.c (struct d_print_mod): Add templates field.
-	(d_make_builtin_type): Check for NULL type.
-	(d_make_extended_operator): Check for NULL name.
-	(d_make_ctor, d_make_dtor): Likewise.
-	(d_mangled_name): Add top_level parameter.  Change all callers.
-	(d_encoding): If DMGL_PARAMS is not set, strip off initial
-	CV-qualifiers.
-	(d_type): Check some return values we rely on.
-	(d_bare_function_type, d_array_type): Likewise.
-	(d_pointer_to_member_type, d_template_args): Likewise.
-	(d_add_substitution): Fail if argument is NULL.
-	(d_print_resize): Check whether buf is NULL.
-	(d_print_comp): Save current templates list with each modifier.
-	Don't pass the modifier list down when printing a template.
-	(d_print_cast): Don't pass the modifier list down when printing a
-	template.
-	(d_print_mod_list): Temporarily set templates list while printing
-	a modifier.
-	(d_print_mod): Check that buf is not NULL before using it.
-	(d_print_function_type): Print parens if there is no modifier.
-	(d_init_info): Permit as many substitutions as there are
-	characters in the mangled name.
-	* testsuite/demangle-expected: Add two new test cases.
-
-2003-11-25  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* cp-demangle.c (java_demangle_v3): Pass DMGL_PARAMS to
-	d_demangle.
-
-2003-11-22  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* cp-demangle.c (d_encoding): Add top_level parameter.  Change all
-	callers.
-	(print_usage): Display new -p option.
-	(long_options): Add --no-params.
-	(main): Accept and handle -p.
-
-2003-11-21  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* cp-demangle.c (has_return_type): Skip qualifiers when checking
-	whether we have a template.
-	* testsuite/demangle-expected: Add four new tests.
-
-2003-11-20  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* testsuite/demangle-expected: Minor changes to match output of
-	new demangler: adjust whitespace in four tests, and change order
-	of qualifiers in one test.
-
-	* cp-demangle.c: Complete rewrite.
-
-2003-11-19  Mark Mitchell  <mark@codesourcery.com>
-
-	* cp-demangle.c (demangle_type): Correct thinko in substitution
-	processing.
-
-2003-11-18  Ian Lance Taylor  <ian@wasabisystems.com>
-
-	* cp-demangle.c (demangle_operator_name): Remove space before
-	"sizeof".
-	(demangle_type_ptr): Put qualifiers in the right place.  Handle
-	qualifiers in pointer to member specially.
-	(demangle_type): Handle qualifiers for pointer or reference
-	specially.  Handle function type.
-	(demangle_local_name): Save and restore caret around demangling of
-	initial encoding.
-
-	* testsuite/test-demangle.c (main): Don't pass DMGL_VERBOSE to
-	cplus_demangle.
-
-	* testsuite/Makefile.in (test-demangle): Depend upon libiberty.a.
-
-2003-10-31  Andreas Jaeger  <aj@suse.de>
-
-	* floatformat.c (floatformat_always_valid): Add unused attribute.
-
-2003-10-30  Josef Zlomek  <zlomekj@suse.cz>
-
-	Jan Hubicka <jh@suse.cz>
-	* vasprintf.c (int_vasprintf): Pass va_list by value.
-	Use va_copy for copying va_list.
-	(vasprintf): Pass va_list by value.
-
-2003-10-30  Josef Zlomek  <zlomekj@suse.cz>
-
-	* hashtab.c (htab_find_slot_with_hash): Decrease n_deleted
-	instead of increasing n_elements when inserting to deleted slot.
-
-2003-10-20  J. Brobecker  <brobecker@gnat.com>
-
-	* cplus-dem.c (demangle_template): Register a new Btype only
-	when needed.
-	* testsuite/demangle-expected: Add a new test.
-
-2003-10-16  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* testsuite/demangle-expected: Update the expected output of
-	_GLOBAL__I__Z2fnv.
-
-2003-10-02  Daniel Jacobowitz  <drow@mvista.com>
-
-	* strerror.c: Revert last change.  Declare static sys_nerr
-	and sys_errlist using different names.
-
-2003-10-01  Daniel Jacobowitz  <drow@mvista.com>
-
-	* strerror.c: Don't provide or reference sys_errlist if
-	strerror is available.
-
-2003-10-01  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* configure.in: Check if $MAKEINFO is missing.
-	* configure: Regenerated.
-
-2003-09-24  Daniel Jacobowitz  <drow@mvista.com>
-
-	* configure.in: Use AC_PROG_CPP_WERROR.
-	* configure: Regenerated.
-
-2003-09-22  Andrew Cagney  <cagney@redhat.com>
-
-	* floatformat.c (floatformat_i387_ext_is_valid): New function.
-	(floatformat_always_valid): New function.
-	(floatformat_i387_ext): Initialize new "is_valid" field to
-	"floatformat_i387_ext_is_valid".
-	(floatformat_ieee_single_little): Initialize "is_valid" field to
-	floatformat_always_valid.
-	(floatformat_ieee_double_big): Ditto.
-	(floatformat_ieee_double_little): Ditto.
-	(floatformat_ieee_double_little): Ditto.
-	(floatformat_ieee_double_littlebyte_bigword): Ditto.
-	(floatformat_i960_ext): Ditto.
-	(floatformat_m88110_ext): Ditto.
-	(floatformat_m88110_harris_ext): Ditto.
-	(floatformat_arm_ext_big): Ditto.
-	(floatformat_arm_ext_littlebyte_bigword): Ditto.
-	(floatformat_ia64_spill_big): Ditto.
-	(floatformat_ia64_spill_little): Ditto.
-	(floatformat_ia64_quad_big): Ditto.
-	(floatformat_ia64_quad_little): Ditto.
-	(floatformat_ia64_quad_little): Ditto.
-	(floatformat_is_valid): Call "is_valid".
-
-2003-09-15  Andrew Cagney  <cagney@redhat.com>
-
-	* floatformat.c (get_field): Make "data" constant.
-	(floatformat_is_valid, floatformat_to_double): Make "from"
-	constant, fix casts.
-	(floatformat_from_double): Make "from" constant.
-
-2003-09-15  Daniel Jacobowitz  <drow@mvista.com>
-
-	* floatformat.c (floatformat_is_valid): New function.
-	(get_field, put_field): Correct comments.
-
-2003-09-06  Josef Zlomek  <zlomekj@suse.cz>
-
-	* fibheap.c (fibheap_replace_key_data): Change type of OKEY to
-	FIBHEAPKEY_T.
-
-2003-09-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-
-	PR bootstrap/12100
-	* aclocal.m4 (AC_LANG_FUNC_LINK_TRY): Define.
-	* configure: Rebuilt.
-
-2003-08-27  Daniel Jacobowitz  <drow@mvista.com>
-
-	* aclocal.m4: Include acx.m4 and no-executables.m4.
-	(libiberty_AC_FUNC_STRNCMP): Use AC_LIBOBJ.
-	(LIB_AC_PROG_CC): Remove.
-	* configure.in: Update AC_PREREQ to 2.57.  Use GCC_NO_EXECUTABLES.
-	Use AC_PROG_CC and set ac_libiberty_warn_cflags instead of using
-	LIB_AC_PROG_CC.  Use AC_LIBOBJ.  Call AC_ISC_POSIX later, only if
-	performing link tests.
-	* configure: Regenerated.
-
-2003-08-12  Nathanael Nerode  <neroden@gcc.gnu.org>
-
-	* cp-demangle.c: Clarify what package(s) this is part of.
-
-2003-07-05  Danny Smith  <dannysmith@users.sourceforge.net>
-
-	* pex-win32.c (pexecute): Mark parameters this_pname and
-	temp_base as unused. Remove unused variables retries,
-	sleep_interval. Initialize org_stdin, org_stdout.
-	(pwait): Mark parameter flags as unused.
-
-2003-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
-
-	* pex-win32.c (fix_argv): Ensure that the executable pathname
-	uses Win32 backslashes.
-	(pexecute): Cast away constness when assigning *errmsg_arg.
-
-2003-06-26  H.J. Lu <hongjiu.lu@intel.com>
-
-	* testsuite/demangle-expected: Add more GNU V3 testcases.
-
-2003-06-22  Zack Weinberg  <zack@codesourcery.com>
-
-	* safe-ctype.c: Use HOST_CHARSET_ASCII and HOST_CHARSET_EBCDIC,
-	not HC_ASCII and HC_EBCDIC.
-	Add documentation in form expected by gather-docs.
-	* hex.c: Use HOST_CHARSET, not hand-coded check of character set.
-	* Makefile.in, functions.texi: Regenerate.
-
-2003-06-21  Zack Weinberg  <zack@codesourcery.com>
-
-	* safe-ctype.c: Separate out EOF==-1 check.  Use HOST_CHARSET
-	for charset determination.
-
-2003-06-19  Dara Hazeghi  <dhazeghi@yahoo.com>
-
-	* configure.in: Add check for malloc.h needed by
-	m68k for function free().
-	* configure: Regenerated.
-	* config.in: Add HAVE_MALLOC_H.
-	* hashtab.c: include malloc.h were available for
-	free().
-
-2003-06-09  Albert Chin-A-Young  <china@thewrittenword.com>
-
-	PR bootstrap/10974
-	* physmem.c: Update comment.
-	* configure.in: Modify test for _system_configuration for older
-	AIX systems.
-
-	* config.in, configure: Regenerated.
-
-2003-06-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-
-	PR other/10810
-	* test-demangle.c (getline): Fix fence-post error.
-
-2003-06-03  Nick Clifton  <nickc@redhat.com>
-
-	* asprintf.c: Change comment to note that -1 is returned upon
-	error.
-	* vasprintf.c: Likewise.
-	(vasprintf): Return -1 upon error.
-	* functions.texi: Document changes to asprintf and vasprintf.
-
-2003-05-19  Kelley Cook  <kelleycook@wideopenwest.com>
-
-	* config.table: Accept i[345867]86 variant.
-
-2003-05-15  Jim Blandy  <jimb@redhat.com>
-
-	* hex.c (_hex_value): Make this unsigned.
-	(hex_value): Update documentation for new return type.  hex_value
-	now expands to an unsigned int expression, to avoid unexpected
-	sign extension when we store it in a bfd_vma, which is larger than
-	int on some platforms.
-	* functions.texi: Regenerated.
-
-2003-05-07  Josef Zlomek  <zlomekj@suse.cz>
-
-	* splay-tree.c (splay_tree_predecessor): Fix comment.
-	(splay_tree_successor): Fix comment.
-
-2003-05-07  Jason Merrill  <jason@redhat.com>
-
-	* hashtab.c (iterative_hash): New fn.
-	* configure.in: Add AC_C_BIGENDIAN_CROSS.
-	* aclocal.m4: Include accross.m4.
-	* configure, config.in: Regenerate.
-
-2003-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* configure.in (AC_CHECK_FUNCS): Don't make multiple calls.
-	* configure: Regenerate.
-
-2003-05-03  Carlo Wood  <carlo@alinoe.com>
-
-	* cp-demangle.c: Fix typo in "char_traints" string-literal.
-
-2003-04-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* vsnprintf.c (vsnprintf): Don't pad string with extra nulls.
-	(main): Test that we don't write too much data.
-
-2003-04-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* configure.in (funcs, AC_CHECK_FUNCS): Add snprintf and
-	vsnprintf.
-	* snprintf.c, vsnprintf.c: New files.
-	* Makefile.in (CFILES): Add snprintf.c and vsnprintf.c.
-	(CONFIGURED_OFILES): Add snprintf.o and vsnprintf.o.
-	Regenerate dependencies.
-
-	* functions.texi, configure, config.in: Regenerated.
-
-2003-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* mempcpy.c, stpcpy.c, stpncpy.c: New files.
-	* configure.in (funcs, AC_CHECK_FUNCS): Add mempcpy, stpcpy
-	and stpncpy.
-	* Makefile.in (CFILES): Add mempcpy.c, stpcpy.c and stpncpy.c.
-	(CONFIGURED_OFILES): Add mempcpy.o, stpcpy.o and stpncpy.o.
-	Regenerate dependencies.
-
-	* functions.texi, configure, config.in: Regenerated.
-
-2003-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* argv.c: Fix comments.
-	* calloc.c: Don't unnecessarily include "libiberty.h".
-	(bzero): Add prototype.
-	* floatformat.c: Include "ansidecl.h", rely on ANSI_PROTOTYPES.
-	* getcwd.c (getcwd): Use standard definition to avoid conflicts
-	with system headers.
-	* hashtab.c (htab_traverse): Delete unused variables.
-	* rename.c: Include "ansidecl.h".
-	(rename): Use standard definition to avoid conflicts with system
-	headers.
-	* strsignal.c: Rely on ANSI_PROTOTYPES.
-	* strstr.c: Check GNUC >= 2, not GNUC == 2.
-	* vfprintf.c: Include "ansidecl.h", rely on ANSI_PROTOTYPES.
-	* vprintf.c: Include "ansidecl.h" earlier, rely on
-	ANSI_PROTOTYPES.
-	* vsprintf.c: Include "ansidecl.h" earlier, rely on
-	ANSI_PROTOTYPES and possibly include <stdarg.h>.
-
-	* Makefile.in: Regenerate dependencies.
-
-2003-04-15  DJ Delorie  <dj@redhat.com>
-
-	* maint-tool (deps): Scan for headers in $srcdir also.
-
-2003-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	PR target/10338
-	PR bootstrap/10198
-	PR bootstrap/10140
-	* getopt.c (exchange, _getopt_initialize): Use mempcpy not
-	__mempcpy.
-	* regex.c (regerror): Likewise.
-
-2003-04-14  Roger Sayle  <roger@eyesopen.com>
-
-	* argv.c: Use ANSI_PROTOTYPES instead of __STDC__.
-	* memchr.c: Likewise.
-	* strcasecmp.c: Likewise.
-	* strncasecmp.c: Likewise.
-	* strncmp.c: Likewise.
-	* xatexit.c: Likewise.
-	* xmalloc.c: Likewise.
-
-	* copysign.c: Use traditional function declaration instead of DEFUN.
-	* sigsetmask.c: Likewise.
-
-	* memcmp.c: Both of the above, ANSI_PROTOTYPES and DEFUN.
-	* memset.c: Likewise.
-
-	* memcpy.c: ANSI_PROTOTYPES, DEFUN and prototype bcopy.
-	* memmove.c: Likewise.
-
-2003-04-14  Roger Sayle  <roger@eyesopen.com>
-
-	* strdup.c (strdup): Tweak implementation to use memcpy.
-
-2003-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* configure.in (HAVE_UINTPTR_T): Always define.
-	* configure: Regenerated.
-
-2003-03-23  Alexandre Oliva  <aoliva@redhat.com>
-
-	* Makefile.in (MULTIOSDIR): New macro.  Use $(CC) $(LIBCFLAGS)
-	instead of $$CC alone.
-	(install_to_tooldir): Use it.
-
-2003-17-03  Jan Hubicka  <jh@suse.cz>
-
-	* hashtab.c (htab_traverse_noresize): Break out from ...
-	* hashtab.c (htab_traverse): ... here.
-
-2003-12-03  Jan Hubicka  <jh@suse.cz>
-
-	* hashtab.c (htab_expand): Fix warning.
-
-	* hashtab.c (htab_expand): Compute the size of hashtable based
-	on the number of elements actually used.
-	(htab_traverse):  Call htab_expand when table is too empty.
-
-2003-03-11  Carlo Wood  <carlo@gnu.org>
-
-	* cplus-dem.c (demangle_integral_value): Correction to reflect
-	patch of 2002-01-10 in order to also make negative multi-digits
-	without leading underscore work.
-
-2003-03-03  Mark Mitchell  <mark@codesourcery.com>
-
-	* cplus-dem.c: Add license exception to copyright notice.
-
-2003-02-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* physmem.c: Formatting changes from upstream.
-
-2003-02-24  Danny Smith  <dannysmith@users.source.forge.net>
-
-	* physmem.c (physmem_total): Add _WIN32 support.
-	(physmem_available): Likewise.
-
-2003-02-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
-
-	* physmem.c (physmem_total) [HAVE_GETSYSINFO]: Test for
-	GSI_PHYSMEM.
-	(physmem_available) [HAVE_TABLE]: Test for TBL_VMSTATS.
-
-2003-02-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* configure.in: Check for sys/systemcfg.h and
-	_system_configuration.
-	* physmem.c: Add support for AIX.  Tweek formatting as per
-	upstream coreutils beta.
-
-2003-02-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-	    Richard Earnshaw  <rearnsha@arm.com>
-	    Geoffrey Keating  <geoffk@apple.com>
-
-	* configure.in: Check for sys/sysctl.h and sysctl.
-	* physmem.c: Add support for *bsd and darwin.
-	* Makefile.in: Generate depedency for physmem.o.
-
-2003-02-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
-
-	* physmem.c (physmem_total) [HAVE_GETSYSINFO]: Use getsysinfo on
-	Tru64 UNIX.
-	(physmem_available) [HAVE_TABLE && HAVE_SYS_TABLE_H]: Use table on
-	Tru64 UNIX.
-
-	* configure.in (AC_CHECK_HEADERS): Check for sys/sysinfo.h,
-	machine/hal_sysinfo.h, sys/table.h.
-	(checkfuncs, AC_CHECKFUNCS): Check for getsysinfo, table.
-	* configure, config.in: Regenerate.
-
-2003-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* configure.in: Check for sys/sysmp.h and sysmp.
-	* physmem.c: Pull upstream copy, add support for irix6.
-
-	* config.in, configure: Regenerated.
-
-2003-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* physmem.c (physmem_total, physmem_available): De-ANSI-fy.
-	* configure.in (AC_CHECK_FUNCS): Add pstat_getstatic and
-	pstat_getdynamic.
-
-2003-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* Makefile.in (CFILES): Add physmem.c.
-	(REQUIRED_OFILES): Add physmem.o.
-	* configure.in: Check for sys/pstat.h.
-	(checkfuncs): Add pstat_getstatic and pstat_getdynamic.
-	* physmem.c: New file, copied from textutils.
-
-	* config.in, configure: Regenerated.
-
-2003-02-20  Daniel Jacobowitz  <drow@mvista.com>
-
-	* Makefile.in (CFILES): Add lrealpath.c.
-	(REQUIRED_OFILES): Add lrealpath.o.
-	(lrealpath.o): Add rule.
-	* aclocal.m4 (libiberty_NEED_DECLARATION): Add.
-	* configure.in: Add realpath and canonicalize_file_name to
-	checkfuncs and AC_CHECK_FUNCS.  Use libiberty_NEED_DECLARATION
-	for canonicalize_file_name.
-	* lrealpath.c: New file.
-	* make-relative-prefix.c: Update documentation.
-	(make_relative_prefix): Simplify.  Use lbasename and lrealpath.
-	* config.in: Regenerated.
-	* configure: Regenerated.
-	* functions.texi: Regenerated.
-
-2003-02-20  jmc  <jmc@prioris.mini.pw.edu.pl>
-
-	* cplus_dem.c: Fix typo: intializes -> initializes.
-
-2003-02-20  Alexandre Oliva  <aoliva@redhat.com>
-
-	* configure.in: Propagate ORIGINAL_LD_FOR_MULTILIBS to
-	config.status.
-	* configure: Rebuilt.
-
-2003-02-13  Daniel Jacobowitz  <drow@mvista.com>
-
-	Fix PR c++/7612.
-	* cplus-dem.c (demangle_signature): Call string_delete.
-	Remove extra string_init.
-	(demangle_arm_hp_template): Call string_delete instead of
-	string_clear.  Add missing string_delete call.
-	(demangle_qualified): Add missing string_delete call.
-	(do_type): Remove unused variable btype.  Add missing string_delete
-	call.  Call string_delete instead of string_clear.
-	(demangle_fund_type): Move variable btype inside of the switch
-	statement.  Add missing string_delete call.
-	(do_arg): Call string_delete instead of string_clear.  Remove extra
-	string_init.
-	(demangle_nested_args): Free work->previous_argument.
-
-2003-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* acconfig.h: New file.  Add uintptr_t.
-	* config.in: Regenerated.
-
-2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
-
-	* libiberty.texi: Update to GFDL 1.2.
-
-2003-01-30  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
-
-	* Makefile.in (libiberty_topdir): New subst.
-	(mkinstalldirs): Redefine in terms of the above.
-	* configure.in: AC_SUBST it.
-	* configure: Regenerate.
-
-2003-01-28  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
-
-	* Makefile.in (all-subdir, check-subdir, installcheck-subdir)
-	(info-subdir, install-info-subdir, clean-info-subdir)
-	(dvi-subdir, install-subdir, etags-subdir, mostlyclean-subdir)
-	(clean-subdir, distclean-subdir, maintainer-clean-subdir):
-	Pass $(FLAGS_TO_PASS).
-
-2003-01-27  Alexandre Oliva  <aoliva@redhat.com>
-
-	* Makefile.in (install_to_tooldir): Instead of $(MULTISUBDIR), use
-	/`$$CC -print-multi-os-directory`.
-
-2003-01-26  Daniel Jacobowitz  <drow@mvista.com>
-
-	* hashtab.c (htab_create_alloc_ex): New function.
-	(hatab_set_functions_ex): New function.
-	(htab_delete, htab_expand): Support alternate allocation functions.
-
-2003-01-24  Christopher Faylor  <cgf@redhat.com>
-
-	* configure.in: Remove special pex-cygwin consideration.
-	* configure: Regenerate.
-	* pex-cygwin.c: Remove.
-	* Makefile.in: Remove pex-cygwin.[co] lines.
-
-2003-01-24  Zack Weinberg  <zack@codesourcery.com>
-
-	* Makefile.in (CFILES): Add pex-*.c.
-	(REQUIRED_OFILES): Change pexecute.o to @pexecute@
-	(CONFIGURED_OFILES): Add pex-*.o.
-	(TEXIFILES): Add pexecute.txh.
-	(pexecute.o): Delete rule.
-	(pex-cygwin.o, pex-djgpp.o, pex-mpw.o, pex-msdos.o, pex-os2.o,
-	pex-unix.o, pex-win32.o): New rules.
-	* configure.in: Change AC_INIT argument to xmalloc.c.
-	Compute appropriate pexecute implementation and substitute it
-	as @pexecute@.
-
-	* pexecute.c: Split up into...
-	* pex-cygwin.c, pex-djgpp.c, pex-mpw.c, pex-msdos.c, pex-os2.c,
-	pex-unix.c, pex-win32.c, pex-common.h, pexecute.txh: ... these
-	new files.
-
-	* functions.texi: Regenerate.
-	* configure: Regenerate.
-
-2003-01-20  Josef Zlomek  <zlomekj@suse.cz>
-
-	* hashtab.c (htab_expand): Fix allocation of new entries.
-
-2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
-
-	* Makefile.in (FLAGS_TO_PASS): Also pass DESTDIR.
-
-	* Makefile.in (install_to_libdir, install_to_tooldir): Add a
-	mkinstalldirs command.
-
-2002-12-04  Danny Smith  <dannysmith@users.sourceforge.net>
-
-	* make-relative-prefix.c (HAVE_HOST_EXECUTABLE_SUFFIX):
-	Define for hosts with HOST_EXECUTABLE_SUFFIX.
-
-2002-11-24  Nick Clifton  <nickc@redhat.com>
-
-	* make-relative-prefix.c (make_relative_prefix): Ensure return
-	string is empty before using strcat to construct it.
-
-2002-11-22  Daniel Jacobowitz  <drow@mvista.com>
-
-	* Makefile.in: Add make-relative-prefix.c.
-	* make-relative-prefix.c: New file.
-	* functions.texi: Rebuilt.
-
-2002-11-16  Jakub Jelinek  <jakub@redhat.com>
-
-	* md5.c (md5_process_block): Avoid `function-like macro "F{G,H,I}" must be
-	used with arguments in traditional C' warnings.
-
-2002-10-16  Jakub Jelinek  <jakub@redhat.com>
-
-	* config.table: Use mh-s390pic for s390x too.
-
-2002-10-06  Andreas Jaeger  <aj@suse.de>
-
-	* libiberty/cplus-dem.c (ada_demangle): Get rid of unneeded
-	variable and of strict-aliasing warning.
-	(grow_vect): Use char as first parameter.
-
-2002-09-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* Makefile.in (all): Fix multilib parallel build.
-
-2002-09-19  John David Anglin  <dave@hiuly1.hia.nrc.ca>
-
-	* cp-demangle.c (demangling_new): Cast 0 to enum.
-	(demangle_char): Cast return of strdup to char *.
-	(is_gnu_v3_mangled_ctor): Cast 0 to enum.
-	(is_gnu_v3_mangled_dtor): Likewise.
-	* cplus-dem.c (grow_vect): Cast return of xrealloc to void *.
-	(work_stuff_copy_to_from): Cast return of xmalloc to char **.
-	* fibheap.c (fibnode_new): Cast return of xcalloc to fibnode_t.
-	* md5.c (md5_process_bytes): Cast results back to const void *.
-	(md5_process_block): Add cast to const md5_uint32 *.
-	* regex.c (re_compile_fastmap): Cast enum to UCHAR_T.
-	* safe-ctype.c (L, XL, U, XU, D, P, _, C, Z, M, V, T, S): Add cast to
-	unsigned short.
-	* splay-tree.c (splay_tree_xmalloc_allocate): Cast return of xmalloc
-	to void *.
-	* vasprintf.c (int_vasprintf): Cast return of malloc to char *.
-
-2002-09-19  Nick Clifton  <nickc@redhat.com>
-
-	* README: Update email addresses for bugs and patches.
-
-2002-09-10  Mike Stump  <mrs@apple.com>
-
-	* splay-tree.c (splay_tree_successor): Fix comments.
-
-2002-09-11  Zack Weinberg  <zack@codesourcery.com>
-
-	* cplus-dem.c: Code under #ifdef MAIN moved to gcc/cp/cxxfilt.c.
-	* testsuite/Makefile.in: Adjust for test-demangle.
-	* testsuite/regress-demangle: Deleted.
-	* testsuite/test-demangle.c: New file.
-	* testsuite/demangle-expected: Change \$ to $ throughout, now that
-	this file is not being read by a shell script.
-
-2002-09-05  Roger Sayle  <roger@eyesopen.com>
-
-	* regex.c: Only use "#pragma alloca" on AIX when not using gcc.
-
-2002-08-07  DJ Delorie  <dj@redhat.com>
-
-	* regex.c (re_error_msgid): Just use a simple array of strings.
-	(re_compile_pattern): Compensate.
-	(re_comp): Likewise.
-	(re_comp): Likewise.
-	(regerror): Likewise.
-
-2002-07-29  Neil Booth  <neil@daikokuya.co.uk>
-
-	* cplus-dem.c (PREPEND_BLANK): Remove.
-
-2002-07-10  Jason Merrill  <jason@redhat.com>
-
-	* cp-demangle.c (demangle_identifier): Support extended Unicode
-	characters.
-
-2002-07-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* cp-demangle.c (demangle_v3_with_details): Wrap in
-	!defined IN_GLIBCPP_V3.
-
-2002-07-01  Mark Mitchell  <mark@codesourcery.com>
-
-	* cp-demangle.c (demangle_operator_name): Add type_arg parameter.
-	Set it for the "st" operator.
-	(demangle_expression): Handle expressions with types as arguments.
-
-2002-06-30  Douglas Rupp  <rupp@gnat.com>
-
-	* configure.in (OUTPUT_OPTION,NO_MINUS_C_MINUS_O): Configure.
-	* Makefile.in (OUTPUT_OPTION): Use.
-
-2002-06-22  Peter Breitenlohner <peb@mppmu.mpg.de>
-
-	* Makefile.in (install_to_libdir): Add $(DESTDIR).
-	(install_to_tooldir): Likewise.
-
-2002-06-17  Douglas Rupp  <rupp@gnat.com>
-
-	* lbasename.c: Add 2002 to copyright.
-	(IS_DIR_SEPARATOR): Remove VMS junk.
-
-2002-06-05  Geoffrey Keating  <geoffk@redhat.com>
-
-	* hashtab.c (htab_create): New stub function for backward
-	compatibility.
-	(htab_try_create): Likewise.
-
-2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
-
-	* hashtab.c (htab_create): Delete.
-	(htab_try_create): Delete.
-	(htab_create_alloc): New.
-	(htab_delete): Support user-specified memory allocation.
-	(htab_expand): Likewise.
-
-2002-05-22  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
-
-	* configure.in: Fix typo in the code checking for sys_errlist.
-	* configure: Regenerated.
-
-2002-05-13  Andreas Schwab  <schwab@suse.de>
-
-	* config.table: Use mh-x86pic also for x86-64.
-
-2002-05-08  Alexandre Oliva  <aoliva@redhat.com>
-
-	* configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
-	script entry, and set LD to it when configuring multilibs.
-	* configure: Rebuilt.
-
-2002-05-07  Mark Mitchell  <mark@codesourcery.com>
-
-	* configure.in (AC_TYPE_PID_T): Use it.
-	* configure: Regenerated.
-	* getruntime.c: Include <sys/types.h>.
-	* waitpid.c: Likewise.  Use pid_t, not int, as the type of "pid".
-
-2002-04-09  Richard Henderson  <rth@redhat.com>
-
-	* hashtab.c (higher_prime_number): Use 7 as minimum.
-	(find_empty_slot_for_expand): Don't compute hash2 unless needed.
-	(htab_find_slot_with_hash): Likewise.
-
-2002-04-01  Phil Edwards  <pme@gcc.gnu.org>
-
-	* cp-demangle.c (__cxa_demangle):  Also protect with IN_GLIBCPP_V3.
-	(is_gnu_v3_mangled_ctor, is_gnu_v3_mangled_ctor):  Conditionally
-	not compile if IN_GLIBCPP_V3 defined.
-	* dyn-string.c:  Also allow IN_GLIBCPP_V3 to change allocation scheme.
-
-2002-03-30  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
-
-	* cp-demangle.c (java_demangle_v3): Don't try to release "demangled"
-	if it is NULL.
-
-2002-03-27  DJ Delorie  <dj@redhat.com>
-
-	* hex.c: Add documentation.
-	(_hex_value): Provide non-ASCII empty table.
-	(hex_init): Initialize the non-ASCII table.
-	* functions.texi: Regenerate.
-
-2002-03-27  Mark Mitchell  <mark@codesourcery.com>
-
-	* dyn-string.c: Add libgcc exception to copyright notice.
-
-2002-03-26  H.J. Lu  (hjl@gnu.org)
-
-	* config.table: Support --with-build-subdir.
-	* configure.in: Likewise.
-	* configure: Rebuild.
-
-2002-03-18  Stuart Griffith  <Stuart_Griffith@credence.com>
-
-	* strtod.c (strtod): Increment 8 chars, not 7, when `infinity'
-	seen.
-
-2002-03-12  Mark Mitchell  <mark@codesourcery.com>
-
-	* cp-demangle.c: Add libgcc exception to cp-demangle.c copyright
-	notice.
-
-2002-03-11  Douglas B Rupp  <rupp@gnat.com>
-
-	* xatexit.c [VMS]: Include stdlib.h and unixlib.h.
-
-2002-03-06  Jim Blandy  <jimb@redhat.com>
-
-	* splay-tree.c (splay_tree_xmalloc_allocate,
-	splay_tree_xmalloc_deallocate): Use K&R-style definitions, not
-	prototyped definitions.  Mark `data' arguments as unused.
-
-2002-03-06  Andrew Cagney  <ac131313@redhat.com>
-
-	* floatformat.c (floatformat_arm_ext_big): Delete definition.
-
-2002-03-04  Phil Edwards  <pme@gcc.gnu.org>
-
-	* configure.in:  Add --enable-install-libiberty option.
-	* Makefile.in (INSTALLED_HEADERS):  New variable.
-	(install_to_libdir):  Possibly also copy headers.
-	* configure:  Regenerated.
-
-2002-03-04  Neil Booth  <neil@daikokuya.demon.co.uk>
-
-	* xmalloc.c (xmalloc_fail): Clarify error message further.
-
-2002-03-03  Neil Booth  <neil@daikokuya.demon.co.uk>
-
-	* xmalloc.c (xmalloc_fail): Clarify error message.
-
-2002-02-22  Jim Blandy  <jimb@redhat.com>
-
-	* splay-tree.c (splay_tree_xmalloc_allocate,
-	splay_tree_xmalloc_deallocate): New functions.
-	(splay_tree_new): Call splay_tree_new_with_allocator, passing the
-	above functions and a dummy data pointer.
-	(splay_tree_new_with_allocator): New function.
-	(splay_tree_delete_helper, splay_tree_delete, splay_tree_insert,
-	splay_tree_remove): Use the splay tree's allocation and
-	deallocation functions.
-
-2002-02-19  Scott Snyder  <snyder@fnal.gov>
-
-	* testsuite/demangle-expected: Add test case for infinite loop in
-	demangler.
-	* cplus-dem.c (demangle_arm_hp_template): Stop trying to demangle
-	if do_type() doesn't make any progress --- prevents an infinite
-	loop.
-
-2002-02-18  Carlo Wood  <carlo@gnu.org>
-
-	PR c++/5390
-	* cplus-dem.c (demangle_integral_value): Accept multi-digit
-	numbers that do not start with an underscore; This is needed
-	for integer template parameters. This doesn't break anything
-	because multi-digit numbers are never followed by a digit.
-	* testsuite/demangle-expected: Corrected all mangled test
-	cases with multi-digit template parameters: g++ 2.95.x does
-	not generate underscores around these parameters.
-
-2002-02-05  Jason Merrill  <jason@redhat.com>
-
-	* cplus-dem.c (flags): Add DMGL_VERBOSE
-	(cplus_demangle_v3_p): Remove.
-	(demangle_it): Add DMGL_TYPES to passed flags.
-	* cp-demangle.c (cplus_demangle_v3_all): Remove.
-	(cplus_demangle_v3_type): Remove.
-	(cplus_demangle_v3): Add options parm.
-
-2002-02-02  H.J. Lu  (hjl@gnu.org)
-
-	* cp-demangle.c (cp_demangle_type): Do not protect with
-	IN_LIBGCC2.
-	(cplus_demangle_v3_all): New.
-	(cplus_demangle_v3): Call cplus_demangle_v3_all.
-	(cplus_demangle_v3_type): Call cplus_demangle_v3_all.
-
-	* cplus-dem.c (cplus_demangle_v3_p): New function pointer.
-	Initialized to cplus_demangle_v3.
-	(cplus_demangle_with_style): Call cplus_demangle_v3_p instead
-	of cplus_demangle_v3.
-	(main): Set cplus_demangle_v3_p to cplus_demangle_v3_type for
-	command line symbol.
-
-	* testsuite/regress-demangle: Pass the mangled name at the
-	command line.
-
-2002-02-01  H.J. Lu  <hjl@gnu.org>
-
-	* cp-demangle.c (cp_demangle_type): Call demangling_new with
-	DMGL_GNU_V3.
-
-2002-01-31  Phil Edwards  <pme@gcc.gnu.org>
-
-	* cp-demangle.c:  Revert yesterday's change.
-
-2002-01-31  Adam Megacz  <adam@xwt.org>
-
-	* gcc/libiberty/configure.in: Treat mingw the same as cywin
-	wrt HAVE_SYS_ERRLIST.
-
-2002-01-30  Phil Edwards  <pme@gcc.gnu.org>
-
-	* cp-demangle.c (cp_demangle_type):  Do not protect with IN_LIBGCC2.
-	(cplus_demangle_v3):  Mimic __cxa_demangle and fall back on
-	cp_demangle_type.
-	* testsuite/demangle-expected:  New gnu-v3 test.
-
-2002-01-22  Momchil Velikov  <velco@fadata.bg>
-
-	* configure.in (variable detection): Use arrays of unspecified
-	size instead of plain integers.
-
-2002-01-18  DJ Delorie  <dj@redhat.com>
-
-	* Makefile.in (TESTLIB): New.  This library is for future
-	testsuites.
-	(CFILES, REQUIRED_OFILES, CONFIGURED_OFILES): Re-alphabetize,
-	break down by letter.
-	(REQUIRED_OFILES): List long-to-compile files first.
-	(maint-deps): New, target for updating dependencies.
-	(dependencies): Update.
-	* maint-tool: Add dependency-generating option.
-	* configure.in: Check for _doprnt even if we're not providing it.
-	* configure: Regenerate.
-
-	* _doprnt.c: Modifications to allow compiling on any platform.
-	* copysign.c: Likewise.
-	* putenv.c: Likewise.
-	* setenv.c: Likewise.
-	* vsprintf.c: Likewise.
-
-2002-01-15  Douglas B Rupp  <rupp@gnat.com>
-
-	* mkstemps.c (mkstemps): On VMS, open temp file with option
-	that causes it to be deleted when closed.
-
-2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* cp-demangle.c (long_options): Const-ify.
-	* cplus-dem.c (long_options): Likewise.
-
-	* cplus-dem.c (mystrstr): Delete.  All callers changed to use
-	strstr instead.
-
-2001-12-31  Ira Ruben	<ira@apple.com>
-
-	* aclocal.m4 (libiberty_AC_FUNC_STRNCMP): Use anon mmap as 2nd try.
-	* configure: Regenerated.
-
-2001-12-24  Douglas B. Rupp  <rupp@gnat.com>
-
-	* configure.in (uintptr_t): Use AC_CHECK_TYPE.
-	* configure: Regenerated.
-
-2001-12-12  Craig Rodrigues  <rodrigc@gcc.gnu.org>
-
-	PR other/2719
-	* cplus-dem.c (consume_count): Treat negative count as an error.
-	* testsuite/demangle-expected: Added testcase.
-
-Tue Dec 11 07:08:57 2001  Douglas B. Rupp  <rupp@gnat.com>
-
-	* configure.in: Hardcode that vfork works on VMS host.
-	* configure: Regenerated.
-
-2001-12-06  Richard Henderson  <rth@redhat.com>
-
-	* cplus-dem.c (libiberty_demanglers): Add no_demangling case.
-	(cplus_demangle): Support no_demangling.
-
-2001-11-27  Zack Weinberg  <zack@codesourcery.com>
-
-	* _doprnt.c: Moved here from gcc/doprint.c.  Adjust to build
-	in libiberty context.  Fix typo in leading comment.
-	* configure.in: Fix various AC_DEFINEs so autoheader works.
-	If any of vprintf, vsprintf, vfprintf is missing from libc,
-	then AC_REPLACE_FUNCS(_doprnt).
-
-2001-11-26  DJ Delorie  <dj@redhat.com>
-	    Daniel Jacobowitz  <drow@mvista.com>
-
-	* Makefile.in (stamp-h): Depend on Makefile for proper
-	serialization.
-	(*-subdir): Depend on config.h for proper serialization.
-
-2001-11-26  DJ Delorie  <dj@redhat.com>
-
-	* configure.in: Check for alloca.h (for regex.c and putenv.c).
-	* configure: Regenerate.
-	* config.h: Add HAVE_ALLOCA_H.
-
-2001-11-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* regex.c: Check defined(__STDC__) || defined(ALMOST_STDC) ||
-	defined(HAVE_STRINGIZE) to determine whether ISO CPP token pasting
-	is available.
-
-Thu Nov 15 11:06:25 2001  Jeffrey A Law  (law@cygnus.com)
-
-	* config.in (HAVE_UINTPTR_T): Provide autoconf stub.
-	* configure.in (HAVE_UINTPTR_T): Test for system defining
-	uintptr_t and define HAVE_UINTPTR_T appropriately.
-	* regex.c (uintptr_t): Do not provide a definition if the
-	system provided one.
-
-	* regex.c (PREFIX): Provide an alternate definition for
-	non-ANSI/ISO compilers.
-	(ARG_PREFIX): Likewise.
-
-2001-11-12  Jim Meyering  <meyering@lucent.com>
-
-	* obstack.c (_): Honor the setting of ENABLE_NLS.  Otherwise,
-	this code would end up calling gettext even in packages built
-	with --disable-nls.
-	* getopt.c (_): Likewise.
-	* regex.c (_): Likewise.
-
-2001-11-03  Alan Modra  <amodra@bigpond.net.au>
-
-	* configure.in: Cope with missing makeinfo.
-	* configure: Regenerate.
-
-2001-10-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* hex.c (hex_init): Provide empty stub.
-
-	* hex.c (hex_init): Delete.
-	(_hex_value): Const-ify and initialize at compile-time.
-
-2001-10-19  H.J. Lu <hjl@gnu.org>
-
-	* Makefile.in ($(TARGETLIB)): Also generate pic/$(TARGETLIB) if
-	necessary.
-
-2001-10-17  DJ Delorie  <dj@redhat.com>
-
-	* argv.c, asprintf.c, choose-temp.c, concat.c, cplus-dem.c,
-	ffs.c, fnmatch.txh, getruntime.c, make-temp-file.c,
-	mkstemps.c, pexecute.c, random.c, strsignal.c, vasprintf.c:
-	Improve manual formatting.
-	* functions.texi: Regenerate.
-
-2001-10-15  DJ Delorie  <dj@redhat.com>
-
-	* Makefile.in (TEXIFILES): Add fnmatch.txh.
-	(maint-undoc): New.
-	maint-tool: Add "undoc" tool.
-	* alloca.c, argv.c, asprintf.c, choose-temp.c, concat.c,
-	fdmatch.c, ffs.c, getruntime.c, insque.c, lbasename.c,
-	make-temp-file.c, mkstemps.c, pexecute.c, random.c, spaces.c,
-	strerror.s, strsignal.c, strtol.c, vasprintf.c: Add or update
-	documentation.
-	* fnmatch.txh: New.
-	* functions.texi: Regenerate.
-
-2001-10-10  Joseph S. Myers  <jsm28@cam.ac.uk>
-
-	* bcmp.c, setenv.c: Use "nonzero" instead of "non-zero".
-	* strtod.c: Use "ISO C" instead of "ANSI C".
-	* functions.texi: Regenerate.
-
-2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
-
-	* alloca.c, clock.c, getcwd.c, getpagesize.c, getpwd.c, index.c,
-	libiberty.texi, memchr.c, putenv.c, rindex.c, strchr.c, strdup.c,
-	strerror.c, strrchr.c, strstr.c, strtod.c, tmpnam.c, vfork.c,
-	xatexit.c, xmalloc.c, xstrerror.c: Improve manual formatting.  Fix
-	spelling.  Give names to function arguments in documentation.  Use
-	(void) prototypes in documentation.
-	* functions.texi: Regenerate.
-
-2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* argv.c (buildargv, tests, main): Const-ify.
-	* cp-demangle.c (operator_code): Likewise.
-	* cplus-dem.c (optable, libiberty_demanglers,
-	cplus_demangle_set_style, cplus_demangle_name_to_style,
-	print_demangler_list): Likewise.
-	* hashtab.c (higher_prime_number): Likewise.
-	* strcasecmp.c (charmap): Likewise.
-	* strerror.c (error_info, strerror, main): Likewise.
-	* strncasecmp.c (charmap): Likewise.
-	* strsignal.c (signal_info): Likewise.
-
-2001-09-29  DJ Delorie  <dj@redhat.com>
-
-	* configure: Regenerate.
-
-2001-09-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* concat.c: Include stdlib.h.
-
-2001-09-27  Eli Zaretskii  <eliz@is.elta.co.il>
-
-	* libiberty.texi: (Top level): Add syncodeindex pg.  Add
-	@dircategory and @direntry directives.  Add @finalout.
-	(many nodes): Lose the next,prev,up pointers on the @nide line.
-	(Using, Supplemental Functions, Replacement Functions): Fix
-	markup.
-	(Functions): Move around, to allow makeinfo to build the manual
-	without next,prev,up pointers in thye node lines.
-	(Licenses): Fix typos.
-
-	* index.c, rindex.c, strchr.c, strerror.c, strrchr.c, strstr.c,
-	strtol.c, xatexit.c, xexit.c, xmalloc.c: Fix spelling and markup.
-	* functions.texi: Regenerate.
-
-	* copying-lib.texi: Lose the next,prev,up pointers on the @node
-	line.
-
-2001-09-27  DJ Delorie  <dj@redhat.com>
-
-	* configure.in: Don't use in-tree texinfo, because libiberty must
-	be built before it.  Check for makeinfo version 4 or higher.
-	* functions.texi: Regenerate.
-
-2001-09-20  DJ Delorie  <dj@redhat.com>
-	    Phil Edwards  <pedwards@disaster.jaj.com>
-
-	* configure.in (MAKEINFO, PERL): Detect these.
-	(--enable-maintainer-mode): Add.
-	* configure: Regenerate.
-	* Makefile.in (MAKEINFO, PERL): Define.
-	(libiberty.info, libiberty.dvi, libiberty.html): New.
-	(CFILES): Add bsearch.c.
-	(CONFIGURED_OFILES): New, list of objects configure might add.
-	(maint-missing, maint-buildall): New, for maintainers only.
-	(clean, mostlyclean): Add info/dvi/html files.
-	* libiberty.texi, copying-lib.texi, obstacks.texi, functions.texi: New.
-	* gather-docs: New, for maintainers.
-	* maint-tool: New, for maintainers.
-	* alloca.c, atexit.c, basename.c, bcmp.c, bcopy.c, bsearch.c,
-	bzero.c, calloc.c, clock.c, configure.in, configure, getcwd.c,
-	getpagesize.c, getpwd.c, index.c, memchr.c, memcmp.c, memcpy.c,
-	memmove.c, memset.c, putenv.c, rename.c, rindex.c, setenv.c,
-	sigsetmask.c, strcasecmp.c, strchr.c, strdup.c, strerror.c,
-	strncasecmp.c, strncmp.c, strrchr.c, strstr.c, strtod.c, strtol.c,
-	tmpnam.c, vfork.c, vprintf.c, waitpid.c, xatexit.c, xexit.c,
-	xmalloc.c, xmemdup.c, xstrdup.c, xstrerror.c: Add or update
-	documentation.
-
-2001-09-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* concat.c (reconcat): Fix for traditional C.
-
-2001-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* concat.c (reconcat): New function.
-
-2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* concat.c (vconcat_length, vconcat_copy, concat_length,
-	concat_copy, concat_copy2): New functions.
-	(concat): Use vconcat_length/vconcat_copy.
-
-	* alloca.c (libiberty_optr, libiberty_nptr, libiberty_len):
-	Define.
-
-2001-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* asprintf.c: Don't define USE_STDARG.  Use VPARAMS, VA_OPEN,
-	VA_FIXEDARG & VA_CLOSE.
-
-	* vasprintf.c: Check HAVE_STRING_H when including string.h.
-	(checkit): Delete redundant prototype.  Add ATTRIBUTE_PRINTF_1.
-	Use VA_OPEN, VA_FIXEDARG & VA_CLOSE.  Free allocated string.
-
-2001-08-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* concat.c (concat): Use VPARAMS, VA_OPEN, VA_FIXEDARG & VA_CLOSE.
-
-2001-08-23  Ulrich Drepper  <drepper@redhat.com>
-
-	* regex.c (truncate_wchar): Use wcrtomb not wctomb.
-
-2001-08-23  Ulrich Drepper  <drepper@redhat.com>
-
-	* posix/regex.c [_LIBC] (convert_mbs_to_wcs): Use __mbrtowc
-	instead of mbrtowc.
-	[_LIBC]: Use __iswctype instead of iswctype, __wcslen instead of
-	wcslen, and __wcscoll instead of wcscoll.
-
-2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
-
-	* fibheap.c (fibheap_init, fibnode_init): Remove.
-	(fibheap_new, fibnode_new): Use xcalloc to allocate and
-	initialize memory.
-	(fibheap_insert): Remove check for node allocation failure.
-
-2001-08-21  Richard Henderson  <rth@redhat.com>
-
-	* Makefile.in (fibheap.o): Depend on config.h.
-	* fibheap.c: Tidy formatting.  Use config.h.` Rearrange some
-	functions for inlining.
-
-Tue Aug 21 12:35:04 2001  Christopher Faylor <cgf@cygnus.com>
-
-	* configure.in: Need to set HAVE_SYS_ERRLIST and HAVE_SYS_NERR whenever
-	hosting on cygwin.
-	* configure: Regenerate.
-
-2001-08-20  Andrew Cagney  <ac131313@redhat.com>
-
-	* floatformat.c (floatformat_m88110_ext): Remove #ifdef
-	HARRIS_FLOAT_FORMAT.
-	(floatformat_ia64_spill_little, floatformat_ia64_quad_little)
-	(floatformat_ia64_spill_big, floatformat_ia64_quad_big)
-	(floatformat_arm_ext_big, floatformat_arm_ext_littlebyte_bigword)
-	(floatformat_m88110_harris_ext): New float formats.
-
-2001-08-20  Daniel Berlin  <dan@cgsoftware.com>
-
-	* fibheap.c: New file. Fibonacci heap.
-
-	* Makefile.in (CFILES): Add fibheap.c.
-	(REQUIRED_OFILES): Add fibheap.o.
-	(fibheap.o): Add dependencies for fibheap.o.
-
-2001-08-17  Christopher Faylor <cgf@cygnus.com>
-
-	* configure.in: Always set HAVE_SYS_ERRLIST when targetting cygwin.
-	* configure: Regenerate.
-
-2001-08-16  Richard Henderson  <rth@redhat.com>
-
-	* hashtab.c (htab_hash_string): New.
-
-2001-08-13  Andrew Cagney  <ac131313@redhat.com>
-
-	* floatformat.c (floatformat_ieee_double_littlebyte_bigword): Fix
-	name.
-
-2001-08-12  Isamu Hasegawa  <isamu@yamato.ibm.com>
-
-	* regex.c (wcs_regex_compile): Use appropriate string
-	to compare with collating element.
-	Fix the padding for the alignment.
-
-2001-08-10  Andrew Cagney  <ac131313@redhat.com>
-
-	* lbasename.c (lbasename): Change function definition to return a
-	const char pointer.
-
-2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
-
-	* cp-demangle.c (demangle_special_name): "GR" -> "reference temporary
-	for".
-
-2001-08-03  Richard Henderson  <rth@redhat.com>
-
-	* Makefile.in (concat.o): Depend on config.h.
-
-2001-07-30  Andreas Jaeger  <aj@suse.de>
-
-	* concat.c: Include "config.h".
-
-2001-07-30  Andreas Jaeger  <aj@suse.de>
-
-	* regex.c: Declare wcs functions only if compiling with
-	MBS_SUPPORT.
-	Don't use #elif for traditional C.
-
-2001-07-23  Ulrich Drepper  <drepper@redhat.com>
-
-	* regex.c: Revamp memory allocation for WCHAR functions to
-	not use too much stack.
-
-2001-07-30  Andreas Jaeger  <aj@suse.de>
-
-	* regex.c: Declare wcs functions only if compiling with
-	MBS_SUPPORT.
-	Don't use #elif for traditional C.
-
-2001-07-25  Daniel Jacobowitz  <drow@mvista.com>
-
-	* Makefile.in (regex.o): Add dependency on config.h.
-
-2001-07-18  Andreas Schwab  <schwab@suse.de>
-
-	* regex.c (WORDCHAR_P) [WCHAR]: Also return true for the
-	underscore character.
-
-2001-07-18  Ulrich Drepper  <drepper@redhat.com>
-
-	* regex.c: Limit string length printed in debug messages to 100
-	chars.
-
-2001-07-18  Andreas Jaeger  <aj@suse.de>
-
-	* regex.c: Place under LGPL version 2.1.
-
-2001-07-10  Jeff Johnston  <jjohnstn@redhat.com>
-
-	* Makefile.in: Add support for regex code.
-	* regex.c: New file.
-
-2001-07-05  Mark Klein  <mklein@dis.com>
-
-	* Makefile.in: Add ffs.c dependency.
-	* configure.in: Add ffs.c.
-	* ffs.c: New file.
-
-2001-06-18  Richard Henderson  <rth@redhat.com>
-
-	* concat.c: Include <sys/types.h>.
-
-2001-06-11  Loren J. Rittle  <ljrittle@acm.org>
-
-	bootstrap/3106
-	* strerror.c (sys_nerr): Hide the OS header version.
-	* strsignal.c (sys_nsig): Likewise.
-
-2001-06-10  Richard Henderson  <rth@redhat.com>
-
-	* concat.c: Include string.h.  Fix int vs size_t usage.
-	Simplify the iteration loops.  Use memcpy.
-
-2001-05-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
-
-	* partition.c: Fix misspelling of `implementation'.
-
-2001-05-09  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
-
-	* md5.c (md5_init_ctx): Declare constants as unsigned.
-	(md5_process_block): Likewise.
-
-2001-05-07  Zack Weinberg  <zackw@stanford.edu>
-
-	* cp-demangle.c (demangle_v3_with_details,
-	is_gnu_v3_mangled_ctor, is_gnu_v3_mangled_dtor): Use K+R style
-	function definition.
-	* ternary.c: Use K+R style function definitions.  Use PTR, not
-	void *.  Make arguments constant where possible.
-
-2001-05-07  Mark Mitchell  <mark@codesourcery.com>
-
-	* splay-tree.h (splay_tree_max): New function.
-	(splay_tree_min): Likewise.
-
-2001-04-15  Daniel Berlin  <dan@cgsoftware.com>
-
-	* ternary.c: New file - Ternary search tree implementation.
-
-	* Makefile.in: Add ternary.o, and ternary.c dependencies.
-
-2001-04-03  Zack Weinberg  <zackw@stanford.edu>
-
-	* make-temp-file.c (try): Inline.
-
-2001-02-28  Richard Henderson  <rth@redhat.com>
-
-	* Makefile.in (make-temp-file.o): Depend on config.h.
-
-2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* memchr.c (memchr): Adjust condition to avoid infinite loop.
-
-2001-03-23  Jakub Jelinek  <jakub@redhat.com>
-
-	* cp-demangle.c (demangle_discriminator): `_0' is discriminator #1,
-	`_' not followed by a digit is invalid.
-
-2001-03-22  Jim Blandy  <jimb@redhat.com>
-
-	* cp-demangle.c (string_list_delete): Use dyn_string_delete
-	instead of free, to free the contents as well as the string
-	structure.
-
-2001-03-21  Zack Weinberg  <zackw@stanford.edu>
-
-	* make-temp-file.c: Always default DIR_SEPARATOR to '/'.
-	Don't default P_tmpdir to anything.  Try /var/tmp before
-	/usr/tmp.
-
-2001-03-20  Zack Weinberg  <zackw@stanford.edu>
-
-	* choose-temp.c: Split off make_temp_file, and the code
-	duplicated between it and choose_temp_base, into...
-	* make-temp-file.c: ... here; new file.
-
-	* Makefile.in (CFILES): Add make-temp-file.c.
-	(REQUIRED_OFILES): Add make-temp-file.o.
-
-2001-03-20  Jim Blandy  <jimb@redhat.com>
-
-	* cp-demangle.c (struct demangling_def): New fields:
-	is_constructor and is_destructor.
-	(demangling_new): Initialize them.
-	(demangle_ctor_dtor_name): Set them, if we detect a constructor
-	or destructor.
-	(demangle_v3_with_details, is_gnu_v3_mangled_ctor,
-	is_gnu_v3_mangled_dtor): New functions.
-
-2001-03-20  Jason Merrill  <jason@redhat.com>
-
-	* cplus-dem.c (main): Skip initial $.
-
-2001-03-15  Michael Meissner  <meissner@redhat.com>
-
-	* hashtab.c (higher_prime_number): Silence warning that 4294967291
-	might be a signed integer under pre-ISO C systems.
-
-2001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
-	    John David Anglin  <dave@hiauly1.hia.nrc.ca>
-
-	* libiberty/lbasename.c: New file.
-	* libiberty/Makefile.in: Update for lbasename.
-
-2001-03-06  Zack Weinberg  <zackw@stanford.edu>
-
-	* aclocal.m4 (libiberty_AC_FUNC_C_ALLOCA): New.
-	* configure.in: Replace all alloca logic with a simple use of
-	the above new macro.
-	* config.table: Kill *-*-beos* entry.
-	* config/mh-beos: Delete.
-	* configure, config.in: Regenerate.
-
-	* Makefile.in (ALLOCA, HFILES): Kill.
-	(REQUIRED_OFILES): Add alloca.o.
-	(alloca.o): Depend on libiberty.h.
-	(argv.o): Don't depend on alloca-conf.h.
-	* alloca-conf.h: Delete.
-	* alloca.c: Include libiberty.h.  Kill all #ifdef emacs
-	blocks.  Provide the C alloca unconditionally.  Use PTR where
-	appropriate.  Make i00afunc static.
-	* argv.c: Don't include alloca-conf.h.
-
-2001-03-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
-
-	* cplus-dem.c (main): Cast enum style to int.
-
-2001-02-16  Loren J. Rittle  <ljrittle@acm.org>
-
-	* cplus-dem.c (main): Initialize style.
-
-2001-02-02  Phil Edwards  <pme@sources.redhat.com>
-
-	* COPYING.LIB:  Update to LGPL 2.1 from the FSF.
-
-2001-01-31  Bryce McKinlay  <bryce@albatross.co.nz>
-
-	Add support for Java demangling under the v3 ABI:
-	* cp-demangle.c (NAMESPACE_SEPARATOR): New define.
-	(struct demangling_def): Add `style' field.
-	(demangling_new): New parameter `style'. Set it in demangling_t.
-	(demangle_prefix): Use NAMESPACE_SEPARATOR.
-	(demangle_type_ptr): Don't emit pointer symbol if doing Java output.
-	(cp_demangle): New parameter `style'. Pass it to demangling_new().
-	(main): Call cp_demangle with extra parameter.
-	(java_demangle_v3): New function.
-	(java_builtin_type_names): New. Table of primitive type names used
-	for Java demangling.
-	(demangle_builtin_type): Look up in java_builtin_type_names if doing
-	Java output.
-	* cplus-dem.c (cplus_demangle): Use java_demangle_v3 to do Java
-	demangling.
-	(long_options): Remove obsolete `java' option.
-	(main): Remove explicit handling of `java' option. Instead, pass style
-	parameter in cplus_demangle flags as gdb does.
-	* testsuite/demangle.expected: Add some Java test cases.
-
-2000-12-29  DJ Delorie  <dj@redhat.com>
-
-	* fnmatch.c: Make the note about the origins of this file more
-	accurate, at least until we can sync with glibc.
-	* getopt.c: Ditto.
-	* getopt1.c: Ditto.
-	* md5.c: Ditto.
-	* obstack.c: Ditto.
-
-2000-12-26  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
-
-	* bsearch.c: New file.
-	* configure.in (funcs): Add bsearch.
-	(AC_CHECK_FUNCS): Likewise.
-	* configure, config.in: Regenerate.
-
-2000-12-13  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
-
-	* safe-ctype.c: #include "ansidecl.h".
-	* strtod.c: Likewise.
-
-2000-12-13  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
-
-	* strtoul.c: Include safe-ctype.h, not ctype.h.
-
-2000-12-07  Zack Weinberg  <zack@wolery.stanford.edu>
-
-	* safe-ctype.c: New file.
-	* Makefile.in (CFILES): Add safe-ctype.c.
-	(REQUIRED_OFILES): Add safe-ctype.o.
-
-	* argv.c: Define ISBLANK and use it, not isspace.
-	* basename.c, cplus-dem.c, fnmatch.c, pexecute.c, strtod.c,
-	strtol.c, strtoul.c: Include safe-ctype.h, not ctype.h.  Use
-	uppercase ctype macros.  Don't test ISUPPER(c)/ISLOWER(c)
-	before calling TOLOWER(c)/TOUPPER(c).
-
-2000-12-07  Mike Stump  <mrs@wrs.com>
-
-	* Makefile.in (distclean): When cleaning, remove testsuite.
-
-2000-12-05  Jason Merrill  <jason@redhat.com>
-
-	* cp-demangle.c (cplus_demangle_v3): Check that it's a v3 mangled
-	name before allocating the dyn_string.
-
-2000-12-04  Jason Merrill  <jason@redhat.com>
-
-	* cp-demangle.c: s/new_abi/v3/.
-	* cplus-dem.c: Likewise.
-	(current_demangling_style): Now auto_demangling.
-	(cplus_demangle): Try v3 demangling if AUTO_DEMANGLING.
-	(main): Use standard symbol chars for auto_demangling.
-
-2000-11-26  Mark Mitchell  <mark@codesourcery.com>
-
-	* hashtab.c (higher_prime_number): Use a table, rather than a
-	seive, to find the next prime.
-
-2000-11-22  H.J. Lu  <hjl@gnu.org>
-
-	* cplus-dem.c (main): Handle gnat_demangling.
-
-2000-11-22  Zack Weinberg  <zack@wolery.stanford.edu>
-
-	* aclocal.m4 (LIB_AC_PROG_CC): Moved here from configure.in.
-	(AC_DEFINE_NOAUTOHEADER): New - work around bug in autoheader.
-	* configure.in: Call AC_C_INLINE and AC_C_CONST.  Use three
-	argument form of AC_DEFINE in dummy definitions block.  Use
-	AC_DEFINE_NOAUTOHEADER for real definitions of things defined
-	in dummy block.  Preload cache variables instead of bypassing
-	tests, where possible.
-	* acconfig.h: Removed.
-
-	* xmalloc.c (xmalloc_failed): New function, does error
-	reporting on failed allocation.
-	(xmalloc, xcalloc, xrealloc): Use it.
-
-2000-11-21  Hans-Peter Nilsson  <hp@bitrange.com>
-
-	* cplus-dem.c (cplus_demangle): Fix formatting.
-	(grow_vect): Ditto.
-	(ada_demangle): Ditto.
-	(internal_cplus_demangle): Ditto.
-	(mop_up): Ditto.
-
-2000-11-21  H.J. Lu  <hjl@gnu.org>
-
-	* cplus-dem.c (main): Handle java_demangling.
-
-2000-11-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* cplus-dem.c (grow_vect): Prototype.
-	(ada_demangle): Cast the arg of ctype macros to unsigned char.
-
-2000-11-15  Hans-Peter Nilsson  <hp@bitrange.com>
-
-	* cplus-dem.c (ada_demangle): Add back ATTRIBUTE_UNUSED for
-	parameter `option'.
-
-2000-11-15  Kenneth Block  <kenneth.block@compaq.com>
-
-	* cplus-dem.c: Eliminate use of DEFUN, it is obsolete and cannot
-	be used in GCC.
-
-2000-11-15  Kenneth Block  <kenneth.block@compaq.com>
-
-	* cplus-dem.c: Add gnat demangler.  Add java to demangle style
-	list.
-
-2000-11-04  Hans-Peter Nilsson  <hp@bitrange.com>
-
-	* hashtab.c (htab_expand): Change to return int.  Use calloc or
-	xcalloc depending on htab->return_allocation_failure.  Return zero
-	if calloc fails.
-	(htab_create): Update comment to cover memory allocation.
-	(htab_try_create): New.
-	(htab_find_slot_with_hash): Return NULL if htab_expand fails.
-	Update comment to cover this.
-
-2000-11-03  Hans-Peter Nilsson  <hp@bitrange.com>
-
-	* hashtab.c: Change void * to PTR where necessary.
-	(htab_create, htab_expand): Correct formatting of comment before
-	function.
-
-2000-10-22  Alex Samuel  <samuel@codesourcery.com>
-
-	* cp-demangle.c (string_list_def): Add caret_position and comments.
-	(result_caret_pos): New macro.
-	(result_append_string): Rename to...
-	(result_add_string): ... this, and insert at caret position.
-	Rename throughout.
-	(result_append): Rename to...
-	(result_add): ... this, and insert at caret position.  Rename
-	throughout.
-	(result_append_char): Rename to...
-	(result_add_char): ... this, and insert at caret position.  Rename
-	throughout.
-	(result_append_space): Remove.
-	(string_list_new): Initialize caret position.
-	(result_add_separated_char): Use caret position.
-	(result_get_caret): New funtion.
-	(result_set_caret): Likewise.
-	(result_shift_caret): Likewise.
-	(result_previous_char_is_space): Likewise.
-	(substitution_start): Use caret position.
-	(substitution_add): Likewise.
-	(demangling_new): Initialize caret position.
-	(demangle_encoding): Use caret position.
-	(demanglin_nested_name): Put CV qualifiers after name.
-	(demangle_type_ptr): Use switch statement.  Handle pointers to
-	arrays.  Don't use result_append_space.  Use caret position.
-	(demangle_type): Emit CV qualifiers after underlying type.  Adjust
-	call to demangle_array_type.
-	(demangle_array_type): Add parameter to handle pointers to arrays.
-
-2000-10-01  Mark Mitchell  <mark@codesourcery.com>
-
-	* splay-tree.c (splay_tree_insert): Fix formatting.
-
-2000-09-16  Mark Mitchell  <mark@codesourcery.com>
-
-	* splay-tree.c (splay_tree_predecessor): Fix typo in comment.
-
-2000-09-14  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
-
-	* splay-tree.c: #include <stdio.h>.
-
-2000-09-14  Hans-Peter Nilsson  <hp@axis.com>
-
-	* testsuite/demangle-expected: Add two tests for anonymous
-	namespaces.
-	* cplus-dem.c (gnu_special): Handle anonymous namespaces.
-
-2000-09-10  Mark Mitchell  <mark@codesourcery.com>
-
-	* splay-tree.c (splay_tree_predecessor): New function.
-	(splay_tree_successor): Likewise.
-
-2000-09-10  Hans-Peter Nilsson  <hp@axis.com>
-
-	* testsuite/demangle-expected: Add four tests for type_info
-	mangling.
-	* cplus-dem.c (gnu_special): Use do_type, not demangle_fund_type,
-	for a non-template non-qualified type_info function or node.
-
-2000-09-08  Alex Samuel  <samuel@codesourcery.com>
-
-	* cp-demangle.c: Fix copyright banner.
-
-2000-09-07  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
-
-	* md5.c: #include "ansidecl.h".
-
-2000-09-06  Alex Samuel  <samuel@codesourcery.com>
-
-	* cp-demangle.c (status_allocation_failed): Rearrange whitespace.
-	(demangle_type): Handle substitution candidates correctly in the
-	face of special substitutions.
-
-2000-09-05  Alex Samuel  <samuel@codesourcery.com>
-
-	* cp-demangle.c (demangle_encoding): Rename variable.
-	(demangle_name): Rename parameter.  Handle return type
-	suppression.
-	(demangle_nested_name): Rename parameter.
-	(demangle_prefix): Likewise.  Change return type suppression.
-	(demangle_unqualified_name): Add parameter.  Flag constructors and
-	conversion operators.
-	(demangle_special_name): Fix comment.
-	(demangle_type): Rename variable.
-	(demangle_bare_function_type): Check for missing return type and
-	parameter.
-	(demangle_class_enum_type): Rename parameter.
-	(demangle_discriminator): Fix misspelling in comment.
-
-2000-08-31  DJ Delorie  <dj@redhat.com>
-
-	* configure.in (Cygwin): special case cygwin only when we're
-	building cygwin, not when we're hosting cygwin.
-
-2000-09-04  Alex Samuel  <samuel@codesourcery.com>
-
-	* cp-demangle.c (demangle_template_arg): Eat an `E' after an
-	<expression>.
-
-2000-09-04  Alex Samuel  <samuel@codesourcery.com>
-
-	* cp-demangle.c (demangle_type_ptr): Increment position past
-	pointer and reference characters.
-
-2000-09-04  Alex Samuel  <samuel@codesourcery.com>
-
-	* cp-demangle.c (demangle_nv_offset): New function.
-	(demangle_v_offset): Likewise.
-	(demangle_call_offset): Likewise.
-	(demangle_special_name): Update thunk demangling to comply with
-	ABI changes.
-
-2000-09-03  Alex Samuel  <samuel@codesourcery.com>
-
-	* cp-demangle.c (ANONYMOUS_NAMESPACE_PREFIX): New macro.
-	(substitution_def): Remove template_parm_number.
-	(NOT_TEMPLATE_PARM): Remove.
-	(result_insert_string): New macro.
-	(result_insert): Likewise.
-	(result_insert_char): Likewise.
-	(substitution_add): Remove last parameter.  Don't store template
-	parm number.
-	(BFT_NO_RETURN_TYPE): Define as NULL.
-	(demangle_encoding): Adjust call to demangle_bare_function_type.
-	(demangle_name): Adjust substitution.  Adjust call to
-	substitution_add.
-	(demangle_prefix): Adjust call to substitution_add.
-	(demangle_identifier): Handle anonymous namespaces.
-	(demangle_operator_name): Change demangling of vendor-extended
-	operator to match ABI changes.
-	(demangle_type_ptr): Change parameters.  Make recursive.  Handle
-	substitutions here.
-	(demangle_type): Adjust calls to demangle_template_param,
-	substitution_add, and demangle_type_ptr.  Fix substitution of
-	templated types.
-	(demangle_function_type): Change parameter to a pointer.
-	(demangle_bare_function_type): Likewise.  Adjust insertion point.
-	(demangle_template_param): Remove last parameter.
-	(demangle_expr_primary): Remove unused variable.  Adjust call to
-	demangle_template_param.
-	(is_mangled_char): Accept `$' and `.'.
-	* cplus-dem.c (gnu_new_abi_symbol_characters): Add '$' and '.'.
-	* dyn-string.c (dyn_string_insert_char): New function.
-
-2000-08-31  Hans-Peter Nilsson  <hp@axis.com>
-
-	* testsuite/demangle-expected: Add nine tests for
-	underscore-after-number followed by five tests for name-signature
-	delimiter.
-
-2000-08-28  Richard Henderson  <rth@cygnus.com>
-
-	* Makefile.in (md5.o): Depend on config.h.
-
-2000-08-28  Jason Merrill  <jason@redhat.com>
-
-	* Makefile.in (REQUIRED_OFILES): Add md5.o.
-	(CFILES): Add md5.c.
-	* md5.c: New file.
-
-2000-08-27  Alex Samuel  <samuel@codesourcery.com>
-
-	* cp-demangle.c (demangle_name): Initialize template_p in local
-	name case.  Don't re-add substitutions as candidates.
-	(demangle_nested_name): Use <unqualified-name>.
-	(demangle_prefix): Likewise.  Don't add template names as
-	substitution candidates twice, or re-add a substitution or the
-	last prefix component.
-	(demangle_local_name): Adjust output format.
-
-2000-08-25  Alex Samuel  <samuel@codesourcery.com>
-
-	* cp-demangle.c (result_add_separated_char): Change parameter to
-	int.
-	(substitution_add): Don't check for duplicates.  Check if
-	previously allocated size is zero.
-	(demangle_name): Remove duplicate check for std substitution.
-	Clear template flag appropriately.
-	(demangle_prefix): Remove argument to demangle_substitution.
-	Don't check that template flag is already set.
-	(demangle_operator_name): Add pt operator.
-	(demangle_type): Don't treat r as built-in type.  Remove argument
-	to demangle_substitution.  Fix substitution candidate mechanics.
-	Handle <template-template-parm>s.  Improve comments.
-	(demangle_template_param): Don't handle template arg lists here.
-	(demangle_substitution): Remove parameter.
-	(print_usage): Remove extra fprintf option.
-
-2000-08-24  Greg McGary  <greg@mcgary.org>
-
-	* libiberty/random.c (end_ptr): Revert previous change.
-
-2000-08-24  Greg McGary  <greg@mcgary.org>
-
-	* libiberty/cplus-dem.c (cplus_demangle_opname, cplus_mangle_opname,
-	demangle_expression, demangle_function_name): Use ARRAY_SIZE.
-	* libiberty/random.c (end_ptr): Likewise.
-
-2000-08-23  Alex Samuel  <samuel@codesourcery.com>
-
-	* cp-demangle.c (result_close_template_list): Remove function.
-	(result_add_separated_char): New function.
-	(result_open_template_list): New macro.
-	(result_close_template_list): Likewise.
-	(demangle_prefix): Don't set template_p if the
-	prefix ends with a ctor name.
-	(demangle_type_ptr): Remove duplicate RETURN_IF_ERROR.
-	(demangle_type): Check for template args after substitution.
-	(demangle_template_args): Use result_open_template_list.
-
-2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
-
-	* pexecute.c:  Don't use vfork.  Initialize 'pid' before retry loop.
-
-2000-07-26  Dave Pitts  <dpitts@cozx.com>
-
-	* config/mh-openedition.h: Added -DLE370 definition.
-
-2000-07-26 Mark Elbrecht <snowball3@bigfoot.com>
-
-	* pexecute.c (pexecute) [__MSDOS__]: Change __GO32__ to
-	__DJGPP__. Use P_WAIT instead of constant in the spawnv* call.
-	Cast program to 'char *' in errmsg_arg assignment.
-	(PWAIT_ERROR): Define.
-	(pwait): Use PWAIT_ERROR.  Adjust DJGPP's status code to conform
-	to DJGPP's WIF* macros.
-
-2000-07-27  RodneyBrown  <RodneyBrown@pmsc.com>
-	    Jeff Law <law@cygnus.com>
-
-	* getcwd.c: Include string.h, stdlib.h for prototypes
-
-	* Makefile.in (rename.o, waitpid.o): Depend on config.h
-	* rename.c: Include config.h, unistd.h
-	* waitpid.c: Include config.h, sys/wait.h
-
-2000-07-24  Hans-Peter Nilsson  <hp@axis.com>
-
-	* cplus-dem.c (work_stuff_copy_to_from): New.
-	(delete_non_B_K_work_stuff): New.
-	(delete_work_stuff): New.
-	(mop_up): Break out work_stuff partly destruction to
-	delete_non_B_K_work_stuff.
-	(iterate_demangle_function): New.
-	(demangle_prefix): Call iterate_demangle_function instead of
-	demangle_function_name.  Leave handling of name-signature
-	__-delimiters to iterate_demangle_function.
-	(demangle_integral_value): Strip an optional
-	following underscore cautiously.  Handle negative numbers.
-
-2000-07-24  Daniel Berlin <dberlin@redhat.com>
-
-	* cplus-dem.c (demangle_signature): Change if (GNU_DEMANGLING) to
-	if (AUTO_DEMANGLING || GNU_DEMANGLING)
-
-2000-07-21  Alex Samuel  <samuel@codesourcery.com>
-
-	* cp-demangle.c (demangle_ctor_dtor_name): Remove not-in-charge
-	allocating ctor mangling.
-	(demangle_array_type): Handle empty and non-constant array length.
-
-2000-07-23  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
-	    Jeff Law <law@cygnus.com>
-
-	* configure.in (AC_CHECK_HEADERS): Add time.h.
-	(AC_HEADER_TIME): Add check.
-	* configure, config.in: Regenerate.
-	* getruntime.c: Portably #include <sys/time.h> and/or <time.h>.
-
-	* configure.in (AC_CHECK_HEADERS): Add limits.h.
-	* configure, config.in: Regenerate.
-	* sort.c: Portably #include <limits.h> and/or <sys/param.h>.
-	* strtol.c, strtoul.c: #include "config.h". Portably #include
-	<limits.h> and/or <sys/param.h>.
-	* Makefile.in (strtol.o, strtoul.o): Update dependencies.
-
-	* aclocal.m4 (libiberty_AC_DECLARE_ERRNO): New macro.
-	* configure.in (libiberty_AC_DECLARE_ERRNO): Add check.
-	* configure, config.in: Regenerate.
-	* pexecute.c, strtol.c, strtoul.c: Declare errno if necessary.
-
-	* cp-demangle.c, mkstemps.c: #include <sys/types.h>.
-
-2000-07-21  Mike Stump  <mrs@wrs.com>
-
-	* Makefile.in (xexit.o): Add dependency for config.h in xexit.c.
-	* (vasprintf.o): Add dependency for config.h in vasprintf.c.
-
-2000-07-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* cp-demangle.c (cp_demangle_type): Wrap in IN_LIBGCC2.
-
-	* setenv.c (setenv): Initialize variable `ep'.
-
-	* sigsetmask.c (abort): Prototype.
-
-	* vasprintf.c: Include config.h.  Check ANSI_PROTOTYPES, not
-	__STDC__ for stdarg.h include.
-	(int_vasprintf): Prototype.
-	(checkit): Prototype.  Use VPARAMS/ANSI_PROTOTYPES/VA_START in
-	definition.  Cast `global_total_width' in comparison.
-	(main): Prototype.  Return a value.
-
-	* vfork.c (fork): Prototype.
-
-	* xexit.c: Include config.h.
-
-2000-07-20  Joseph S. Myers  <jsm28@cam.ac.uk>
-
-	* cplus-dem.c (demangle_fund_type): Make 'dec' an unsigned int,
-	and print it with %u.
-
-2000-07-17  Hans-Peter Nilsson  <hp@axis.com>
-
-	* testsuite/regress-demangle (failed test): Show result and
-	expected output.
-
-2000-07-07  Andrew Haley  <aph@cygnus.com>
-
-	* cplus-dem.c (main): fflush() after emitting last char before
-	waiting for input.
-
-2000-06-28  Alex Samuel  <samuel@codesourcery.com>
-
-	* cp-demangle.c (demangle_encoding): Accept no substitutions.
-	(demangle_name): Handle <substitution> followed by
-	<unqualified-template-name>.
-	(demangle_type): Follow special substitutions with
-	<class-enum-type>
-	(demangle_subtitution): Set template_p for special substitutions.
-	(main): Fix typos.
-
-2000-06-27  Alex Samuel  <samuel@codesourcery.com>
-
-	* cp-demangle.c (demangle_special_name): Swap base and derived
-	class when demangling construction vtables.
-
-2000-06-21  Alex Samuel  <samuel@codesourcery.com>
-
-	* cp-demangle.c: Don't include ctype.h.
-	(IS_DIGIT): New macro.
-	(IS_ALPHA): Likewise.  Use IS_DIGIT and IS_ALPHA throughout
-	instead of isdigit and isalpanum.
-	(demangling_def): Make name and next const pointers.
-	(STATUS_ALLOCATION_FAILED): New status code.
-	(dyn_string_append_space): Handle failure in
-	dyn_string_append_char.
-	(int_to_dyn_string): Likewise.  Change return value to status_t.
-	(string_list_new): Handle failure of dyn_string_init.
-	(result_close_template_list): Change return type to status_t.
-	Handle failure in dyn_string_append.
-	(result_push): Change return value to status_t.  Handle failure in
-	string_list_new.  Handle failure of result_push throughout.
-	(substitution_add): Change return value to status_t.  Handle
-	dyn_string failures.  Handle failure of substitution_add
-	throughout.
-	(template_arg_list_new): Return NULL on allocation failure.
-	(result_append_string): Return STATUS_ALLOCATION_FAILED on error.
-	Handle error result throughout.
-	(result_append): Likewise.
-	(result_append_char): Likewise.
-	(result_append_space): Likewise.
-	(demangling_new): Make argument a const pointer.  Handle
-	allocation failures.
-	(demangle_template_args): Handle failure in template_arg_list_new
-	and result_close_template_list.
-	(demangle_discriminator): Return if int_to_dyn_string fails.
-	(cp_demangle): Likewise.
-	(cp_demangle_type): New function.
-	(cplus_demangle_new_abi): Don't call dyn_string_delete.  Abort on
-	memory allocation failure.
-	(main): Likewise.
-	* dyn-string.c (RETURN_ON_ALLOCATION_FAILURE): Define if
-	IN_LIBGCC2.
-	(dyn_string_init): Change return value to int.  Handle
-	RETURN_ON_ALLOCATION_FAILURE case.
-	(dyn_string_new): Handle RETURN_ON_ALLOCATION_FAILURE case.
-	(dyn_string_release): Delete the dyn_string.
-	(dyn_string_resize): Handle RETURN_ON_ALLOCATION_FAILURE case.
-	(dyn_string_copy): Change return type to int.
-	(dyn_string_copy_cstr): Likewise.
-	(dyn_string_prepend): Likewise.
-	(dyn_string_prepend_cstr): Likewise.
-	(dyn_string_insert): Likewise.
-	(dyn_string_insert_cstr): Likewise.
-	(dyn_string_append): Likewise.
-	(dyn_string_append_cstr): Likewise.
-	(dyn_string_append_char): Likewise.
-	(dyn_string_substring): Likewise.
-
-2000-06-09  Zack Weinberg  <zack@wolery.cumb.org>
-
-	* cp-demangle.c (demangle_operator_name): Add spaces before
-	names beginning with a letter: delete, delete[], new, new[],
-	sizeof.
-	(demangle_special_name): Handle TF <type> and TJ <type>.
-
-Thu Jun  8 18:52:24 2000  Philippe De Muyter  <phdm@macqel.be>
-
-	* cp-demangle.c (template_arg_list_new): Revert previous PARAMS patch.
-
-Thu Jun  8 09:25:54 2000  Philippe De Muyter  <phdm@macqel.be>
-
-	* cp-demangle.c (stdio.h): File included unconditionaly.
-	(template_arg_list_new): Parameter list is PARAMS ((void)), not ().
-	* dyn-string.c (stdio.h): File included.
-	* partition.c (partition_print): No `&' needed to take the address of
-	a function.
-
-2000-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* configure.in (ac_libiberty_warn_cflags): Add -pedantic.
-
-	* choose-temp.c (try, choose_temp_base, make_temp_file): Constify.
-
-	* cp-demangle.c (demangle_char): Change parameter from char to int.
-	(demangle_expression, demangle_expr_primary): Remove extra
-	semi-colon in prototype.
-
-	* dyn-string.c (dyn_string_append_char): Change parameter from
-	char to int.
-
-	* memcmp.c (memcmp): Constify.
-
-	* mkstemps.c (gcc_uint64_t): Mark GNUC `long long' case with
-	__extension__.
-
-	* partition.c (elem_compare): Prototype.  Don't cast away
-	const-ness.
-
-	* setenv.c (setenv): Use braces to avoid ambiguous `else'.
-
-2000-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* Makefile.in (cp-demangle.o): Depend on $(INCDIR)/demangle.h.
-
-	* cp-demangle.c: Include demangle.h.
-	(template_arg_list_new): DeANSIfy.
-	(cp_demangle): Make static and add prototype.
-	(operator_code, operators): Constify.
-	(demangle_operator_name): Likewise for variables `p1', `p2' and `p'.
-
-2000-06-05  Alex Samuel  <samuel@codesourcery.com>
-
-	* cp-demangle.c (demangle_prefix): Cast argument to isdigit to
-	unsigned char.
-	(demangle_unqualified_name): Likewise.
-	(demangle_number_literally): Likewise.
-	(demangle_type): Likewise.
-	(demangle_substitution): Likewise.
-	(is_mangled_char): Likewise, for isalnum.
-
-2000-06-04  Alex Samuel  <samuel@codesourcery.com>
-
-	* Makefile.in (CFILES): Add cp-demangle.c and dyn-string.c.
-	(REQUIRED_OFILES): Add cp-demangle.o and dyn-string.o.
-	(cp-demangle.o): New dependency.
-	(dyn-string.o): Likewise.
-
-	* dyn-string.c: Move here from gcc/dyn-string.c.  Add new functions.
-
-	* cplus-dem.c (libiberty_demanglers): Add initializer for new-ABI
-	demangler.
-	(cplus_demangle): Call cplus_demangle_new_abi if in new-ABI
-	demangling mode.
-	(gnu_new_abi_symbol_characters): New function.
-	(main): Use gnu_new_abi_symbol_characters.  * cp-demangle.c: New
-	file.
-	* cp-demangle.c: New file.
-
-Tue May 30 16:45:25 2000  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* floatformat.c: Add name to each floatformat field.
-
-Tue May 30 15:07:52 2000  Jeffrey A Law  (law@cygnus.com)
-
-	* Makefile.in (objalloc.o): Depend on config.h
-
-2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
-
-	* hashtab.c, partition.c, sort.c, xmemdup.c: Include string.h
-	if HAVE_STRING_H.
-	* pexecute.c, xexit.c: Include stdlib.h if HAVE_STDLIB_H.
-	* objalloc.c: Include config.h.  Include stdlib.h and don't
-	declare malloc or free if HAVE_STDLIB_H.
-	* strerror.c, strsignal.c: Include stdlib.h if HAVE_STDLIB_H,
-	else declare malloc without prototype.  Include string.h if
-	HAVE_STRING_H, else declare memset without prototype.  Don't
-	include stddef.h.
-
-2000-05-23  Mike Stump  <mrs@wrs.com>
-
-	* Makefile.in (xmalloc.o): Add dependency for config.h, fixes make
-	-j3.
-
-2000-05-18  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
-
-	* xmalloc.c: Include config.h for HAVE_SBRK definition.
-
-2000-05-16  Horst von Brand <vonbrand@sleipnir.valparaiso.cl>
-
-	* hashtab.c (hash_pointer): Delete low-order bits which are
-	probably zero, also eliminate a warning on alpha.
-
-2000-05-15  David Edelsohn  <edelsohn@gnu.org>
-
-	* Makefile.in: Change "pic" to depend on $(PICFLAG), not
-	on $(enable_shared).
-
-2000-05-10  Jakub Jelinek  <jakub@redhat.com>
-
-	* config.table: Use mh-sparcpic for sparc*-*-*.
-
-2000-05-08  Nick Clifton  <nickc@cygnus.com>
-
-	* Makefile.in (CFILES): Add strncmp.c.
-	(NEEDED): Add strncmp.
-
-2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* cplus-dem.c (cplus_demangle_opname, demangle_function_name):
-	Cast the arguments to `islower' to `unsigned char'.
-	(print_demangler_list): Prototype.
-
-Thu May  4 17:14:41 2000  Philippe De Muyter  <phdm@macqel.be>
-
-	* sort.c (UCHAR_MAX): Provide fallback definition.
-
-2000-04-29  Alexandre Oliva  <aoliva@cygnus.com>
-
-	* Makefile.in (maintainer-clean-subdir): Fix handling of empty
-	SUBDIRS.
-
-2000-04-28  Kenneth Block  <block@zk3.dec.com>
-	    Jason Merrill  <jason@casey.cygnus.com>
-
-	* cplus-dem.c (libiberty_demanglers): New table for demangle styles.
-	(cplus_demangle_set_style): New function for setting style.
-	(cplus_demangle_name_to_style): New function to translate name.
-
-2000-04-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* aclocal.m4: New file with new test libiberty_AC_FUNC_STRNCMP.
-
-	* configure.in (AC_CHECK_HEADERS): Add sys/mman.h fcntl.h.
-	(libiberty_AC_FUNC_STRNCMP): Invoke.
-
-	* strncmp.c: New file.
-
-Thu Apr 27 16:58:43 MET DST 2000  Jan Hubicka  <jh@suse.cz>
-
-	* hashtab.c (htab_expand): Add prototype.
-	(find_empty_slot_for_expand): Likewise.
-
-2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* hashtab.c (hash_pointer, eq_pointer): Make definition static to
-	match prototype.
-	(htab_expand): Cast the return value of xcalloc.
-
-2000-04-24  Mark Mitchell  <mark@codesourcery.com>
-
-	* hashtab.c (hash_pointer): New function.
-	(eq_pointer): Likewise.
-	(htab_hash_pointer): New variable.
-	(htab_eq_pointer): Likewise.
-
-2000-04-23  Mark Mitchell  <mark@codesourcery.com>
-
-	* sort.c (sort_pointers): Fix endianness bugs.
-
-	* sort.c: New file.
-	* Makefile.in (CFILES): Add sort.c
-	(REQUIRED_OFILES): Add sort.o.
-	(sort.o): New target.
-
-2000-04-21  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
-
-	* Makefile.in (*-subdir): Revamp slightly to avoid losing on
-	4.3BSD systems.
-
-Tue Apr 18 16:23:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* hashtab.c: Various minor cleanups.
-	(htab_find_slot_with_hash): INSERT is now enum insert_option.
-	(htab_find_slot): Likewise.
-
-2000-04-16  Dave Pitts  <dpitts@cozx.com>
-
-	* cplus-dem.c (cplus_demangle_opname): Changed to use islower.
-
-2000-04-05  Richard Henderson  <rth@cygnus.com>
-
-	* splay-tree.c (splay_tree_remove): New.
-
-2000-03-30  Mark Mitchell  <mark@codesourcery.com>
-
-	* hashtab.c (find_empty_slot_for_expand): Use hashval_t for hash
-	codes.
-	(htab_find_with_hash): Likewise.
-	(htab_find_slot_with_hash): Likewise.
-
-2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
-
-	* hashtab.c (htab_find_with_hash): Avoid calculating hash2
-	unless it will be used.  Rearrange loop for better
-	optimization.
-	(higher_prime_number): Add static prototype.
-
-Thu Mar 16 01:33:58 2000  Jeffrey A Law  (law@cygnus.com)
-
-	* Makefile.in (partition.o): Depend on config.h
-
-2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
-
-	* hashtab.c (find_empty_slot_for_expand): New function.
-	(htab_expand): Use it instead of htab_find_slot.
-	(htab_find_with_hash): Renamed from htab_find; now accepts extra
-	argument HASH.
-	(htab_find_slot_with_hash): Likewise for htab_find_slot.
-	(htab_find): New wrapper function.
-	(htab_find_slot): Likewise.
-	(htab_traverse): Pass slot, not entry, to called function.
-
-2000-03-09  Alex Samuel  <samuel@codesourcery.com>
-
-	* Makefile.in (CFILES): Add partition.c.
-	(REQUIRED_OFILES): Add partition.o.
-	(partition.o): New rule.
-	* partition.c: New file.
-
-2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
-
-	* hashtab.c (htab_create): Set del_f.
-	(htab_delete, htab_empty, htab_remove_elt, htab_clear_slot):
-	Use it.
-
-2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
-
-	* hashtab.c: Remove debugging variables (all_searches,
-	all_collisions, all_expansions). Delete
-	all_hash_table_collisions.
-	(create_hash_table, delete_hash_table, empty_hash_table,
-	find_hash_table_entry, remove_element_from_hash_table_entry,
-	clear_hash_table_slot, traverse_hash_table, hash_table_size,
-	hash_table_elements_number, hash_table_collisions): Rename to:
-	htab_create, htab_delete, htab_empty, htab_find_slot,
-	htab_remove_elt, htab_clear_slot, htab_traverse, htab_size,
-	htab_elements, htab_collisions.
-	(htab_find): New function, handles common case where you don't
-	plan to add or delete an entry.
-	(htab_expand): Don't create a whole new table, just a new
-	entry vector.
-	(htab_find_slot): Simplify logic.
-
-1999-08-03  Ian Lance Taylor  <ian@zembu.com>
-
-	* floatformat.c: Add casts to avoid signed/unsigned warnings.
-	* pexecute.c: Add ATTRIBUTE_UNUSED as needed on Unix.
-
-	* Makefile.in (install_to_libdir): Change $(TARGETLIB).n to
-	$(TARGETLIB)n so it works on MSDOS.
-	(install_to_tooldir): Likewise.
-
-1999-07-21  Ian Lance Taylor  <ian@zembu.com>
-
-	From Mark Elbrecht:
-	* makefile.dos: Remove; obsolete.
-	* configure.bat: Remove; obsolete.
-
-1999-07-11  Ian Lance Taylor  <ian@zembu.com>
-
-	* splay-tree.c (splay_tree_insert): Add initialization to avoid
-	warning.
-
-2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
-
-	* pexecute.c: Conditionally include string.h.
-	(fix_argv): Handle embedded whitespace in args for Mingw32.
-
-2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* configure.in (ac_libiberty_warn_cflags): Turn on warnings if
-	we're using gcc.
-
-	* Makefile.in (COMPILE.c): Add @ac_libiberty_warn_cflags@
-
-1999-12-27  Geoff Keating  <geoffk@cygnus.com>
-
-	* vasprintf.c (int_vasprintf): Don't re-read the format character
-	as this mishandles strings like '%%s'.
-
-1999-12-05  Mark Mitchell  <mark@codesourcery.com>
-
-	* splay-tree.c (splay_tree_new): Use struct splay_tree_node_s
-	rather than struct splay_tree_node.
-	(splay_tree_insert): Use struct splay_tree_s rather than struct
-	splay_tree.
-
-Sun Nov 28 00:59:39 1999  Philippe De Muyter  <phdm@macqel.be>
-
-	* hashtab.c (sys/types.h): File included.
-
-1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
-
-	* strtoul.c, strtol.c, random.c: Remove advertising clause from
-	BSD license, pursuant with
-
-	  ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
-
-Wed Nov 10 09:42:39 1999  Jeffrey A Law  (law@cygnus.com)
-
-	* hashtab.c: Include stdio.h.
-
-Mon Nov  8 09:23:41 1999  Jeffrey A Law  (law@cygnus.com)
-
-	* hashtab.c (traverse_hash_table): Protect prototype with PARAMS.
-
-Tue Nov  2 03:23:13 1999  Philippe De Muyter  <phdm@macqel.be>
-
-	* xstrdup (sys/types.h): Include this file.
-
-1999-10-28  Nathan Sidwell  <nathan@acm.org>
-
-	* Makefile.in (SUBDIRS): New macro.
-	(mostlyclean, clean, distclean, maintainer-clean): Adjust to
-	avoid multiple subdirectory cleaning.
-	(*-subdir): Use SUBDIRS.
-
-1999-10-25  Jim Kingdon  <http://developer.redhat.com/>
-
-	* cplus-dem.c: Move declarations of standard_symbol_characters and
-	hp_symbol_characters inside #ifdef MAIN to avoid compiler
-	warnings.
-
-1999-10-23 08:51 -0700  Zack Weinberg  <zack@bitmover.com>
-
-	* hashtab.c (find_hash_table_entry): When returning a
-	DELETED_ENTRY slot, change it to EMPTY_ENTRY first.
-	(clear_hash_table_slot): New function which deletes an entry
-	by its position in the table, not its value.
-	(traverse_hash_table): New function which calls a hook
-	function for every live entry in the table.
-
-1999-10-19  Mark Mitchell  <mark@codesourcery.com>
-
-	* cplus-dem.c (INTBUF_SIZE): New macro.
-	(string_append_template_idx): New function.
-	(demangle_expression): Likewise.
-	(demangle_integral_value): Use it.
-	(demangle_real_value): New function, split out from ...
-	(demangle_template_value_parm): ... here.  Use
-	string_append_template_idx.  Use demangle_real_value.
-	(demangle_template): Use string_append_template_idx.
-	(demangle_qualified): Use consume_count_with_underscores.
-	(get_count): Tweak formatting.
-	(do_type): Use string_append_template_idx.
-
-1999-10-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* calloc.c: Add a public domain notice.
-
-Mon Oct 18 02:30:47 1999  Philippe De Muyter  <phdm@macqel.be>
-
-	* setenv.c (sys/types.h, stdio.h): Include those files unconditionaly.
-
-Fri Oct 15 01:47:51 1999  Vladimir Makarov  <vmakarov@loony.cygnus.com>
-
-	* Makefile.in (CFILES): Add hashtab.c
-	(REQUIRED_OFILES): Add hashtab.o
-	(hashtab.o): Add dependencies.
-	* hashtab.c: New file
-
-Wed Oct 13 01:16:47 1999  Mumit Khan  <khan@xraylith.wisc.edu>
-
-	* basename.c (DIR_SEPARATOR): New macro.
-	(DIR_SEPARATOR_2): Likewise.
-	(HAVE_DOS_BASED_FILESYSTEM): Likewise.
-	(IS_DIR_SEPARATOR): Likewise.
-	(main): Handle MSDOS style pathname.
-
-1999-10-11  Mark Mitchell  <mark@codesourcery.com>
-
-	* cplus-dem.c (do_type): Handle pointer to member types whose
-	enclosing classes have namespace scope.
-
-Sun Oct 10 01:23:50 1999  Marc Espie <espie@cvs.openbsd.org>
-
-	* config.table:  Provide a backup shell for executing move-if-change.
-
-1999-10-02  Mark Mitchell  <mark@codesourcery.com>
-
-	* xmalloc.c (xmalloc): Fix spelling error.
-	(xcalloc, xrealloc): Likewise.
-
-1999-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* cplus-dem.c (fancy_abort, demangle_integral_value,
-	demangle_arm_hp_template, recursively_demangle,
-	standard_symbol_characters, hp_symbol_characters, main): Add prototype.
-	(program_name, program_version, fatal): Constify a char*.
-	(usage, fatal): Mark with ATTRIBUTE_NORETURN.
-	(main): Call return, not exit.
-
-1999-09-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* choose-temp.c: Remove obsolete comment about gcc.
-	(make_temp_file): Constify a char*.
-
-Wed Sep  8 20:03:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* xmemdup.c: Include sys/types.h.
-
-1999-09-07  Jeff Garzik  <jgarzik@pobox.com>
-
-	* xmemdup.c: New xmemdup function.
-	* Makefile.in, makefile.vms, vmsbuild.com:  Use xmemdup.[co].
-
-Tue Sep  7 23:32:18 1999  Linas Vepstas  <linas@linas.org>
-
-	* config.table: Add openedition target.
-	* config/mh-openedition: New file.
-
-Thu Sep  2 01:36:12 1999  Marc Espie <espie@cvs.openbsd.org>
-
-	* pexecute.c (pexecute):  Fill in temp_base when needed.
-
-1999-08-31  Richard Henderson  <rth@cygnus.com>
-
-	* getpwd.c: Check HAVE_GETCWD before defining it away.
-
-1999-08-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* Makefile.in (CFILES): Add calloc.c and getpwd.c.
-	(REQUIRED_OFILES): Add getpwd.o.
-	(getpwd.o): Add target.
-
-	* configure.in (AC_PREREQ): Bump to 2.13.
-	(AC_CHECK_HEADERS): Add check for <sys/stat.h>.
-
-	* getpwd.c: New file, moved here from gcc.
-
-1999-08-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* cplus-dem.c (gnu_special): Cast a `size_t' to `long' when
-	comparing against a signed quantity.
-	(arm_special): Likewise.
-	(demangle_fund_type): Likewise.
-	(do_hpacc_template_const_value): Mark parameter `work' with
-	ATTRIBUTE_UNUSED.
-	(main): Constify variable `valid_symbols'.
-
-Tue Aug 24 02:50:45 1999  Philippe De Muyter  <phdm@macqel.be>
-
-	* strtoul.c (strtoul): Add parentheses around && within ||.
-
-Fri Aug  6 23:32:29 1999  Daniel Jacobowitz <drow@drow.them.org>
-
-	* Makefile.in (FLAGS_TO_PASS): Include prefix, exec_prefix,
-	libdir, libsubdir and tooldir.
-
-1999-08-01  Mark Mitchell  <mark@codesourcery.com>
-
-	* splay-tree.c (splay_tree_insert): Return the new node.
-
-1999-07-14  Richard Henderson  <rth@cygnus.com>
-
-	* argv.c: Include stdlib.h and string.h instead of
-	prototyping directly.
-	* choose-temp.c: Conditionally include string.h.
-
-1999-07-12  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* Makefile.in (NEEDED): Add bcmp, bcopy, bzero.
-
-1999-07-11  Ian Lance Taylor  <ian@zembu.com>
-
-	* splay-tree.c (splay_tree_insert): Add initialization to avoid
-	warning.
-
-1999-07-07  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* Makefile.in (needed-list): Only include stuff we actually need
-	for libstdc++.
-
-1999-06-21  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
-
-	* configure.in (checkfuncs): Add gettimeofday.
-	* config.in, configure: Regenerated.
-
-Mon Jun 21 05:56:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
-
-	* configure.in (*-*-uwin*): UWIN has sys_{errlist,nerr} even if
-	the test fails.
-	* configure: Regenerate.
-
-1999-06-10  Mike Stump  <mrs@wrs.com>
-
-	* Makefile.in (setenv.o): Add config.h dep for setenv.o to fix
-	parallel builds.
-
-1999-05-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* putenv.c: Include ansidecl.h to define `const'.
-	* setenv.c: Likewise.
-
-Wed May 26 03:58:20 1999  "Melissa O'Neill" <oneill@cs.sfu.ca>
-
-	* Makefile.in (CFILES): Add putenv.c and setenv.c.
-	* configure.in (funcs): Add putenv and setenv.
-	(AC_CHECK_FUNCS): Check for putenv and setenv.
-	* configure: Rebuilt.
-	* putenv.c setenv.c: New files.
-
-	* getcwd.c (getcwd): If pathname is NULL, then obtain SIZE
-	bytes of space using malloc.
-
-Mon May 17 01:42:34 1999  Stu Grossman  <grossman@babylon-5.cygnus.com>
-
-	* cplus-dem.c (demangle_fund_type (near 'I' case)): Don't advance
-	the *mangled pointer beyond the end of the string.  Clean up code to
-	match prevailing coding style.
-
-1999-05-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
-
-	* tmpnam.c (L_tmpnam): Fix typo.
-
-Thu May 13 01:14:46 1999 Marc Espie <espie@cvs.openbsd.org>
-
-	* cplus-dem.c (standard_symbol_characters): Renamed from
-	standard_symbol_alphabet.  No longer modify TABLE.
-	(hp_symbol_characters): Renamed from hp_symbol_alphabet.  No longer
-	modify TABLE.
-	(main): Corresponding changes.  Use strchr to determine if a
-	character is valid.
-
-1999-05-11  Jim Blandy  <jimb@zwingli.cygnus.com>
-
-	* cplus-dem.c (main): Use table lookup to distinguish identifier
-	characters from non-identifier characters.
-	(standard_symbol_alphabet, hp_symbol_alphabet): New functions.
-
-Thu May  6 20:34:42 1999  Fred Fish  <fnf@be.com>
-
-	* configure.in (sys/resource.h): Add to AC_CHECK_HEADERS list.
-	* getruntime.c: Only attempt to include sys/resource.h and
-	use getrusage if both HAVE_GETRUSAGE and HAVE_SYS_RESOURCE_H
-	are defined.
-
-Mon Apr 26 01:36:06 1999  Donn Terry (donn@interix.com)
-
-	* configure.in (alloca detection): Handle alloca directly for interix.
-	* configure: Rebuilt.
-
-Sun Apr 25 01:18:21 1999  Mumit Khan  <khan@xraylith.wisc.edu>
-
-	* choose-temp.c (DIR_SEPARATOR): Use '\\' only for native windows32.
-
-1999-04-20  Jim Blandy  <jimb@zwingli.cygnus.com>
-
-	Fix from Dale Hawkins:
-	* cplus-dem.c (mop_up): Set typevec_size to zero, so it'll be
-	reallocated properly if we use it again.
-
-	* cplus-dem.c (demangle_fund_type): Check for buffer overrun.  Be
-	stricter about syntax.  Always null-terminate string.
-
-Thu Apr 15 23:00:55 1999  Mumit Khan  <khan@xraylith.wisc.edu>
-
-	* configure.in (checkfuncs): Check for sbrk.
-	* config.in: Rebuilt.
-	* configure: Likewise.
-	* xmalloc.c: Use HAVE_SBRK instead of the host specific definitions.
-
-1999-04-12  Jim Blandy  <jimb@zwingli.cygnus.com>
-
-	Fix from Marcus Daniels:
-	* cplus-dem.c (demangle_fund_type): Don't run off the end of the
-	identifier looking for another underscore.
-
-Sun Apr 11 23:20:59 1999  Mumit Khan  <khan@xraylith.wisc.edu>
-
-	* pexecute.c: Change all references to __UWIN__ to _UWIN.
-	* xmalloc.c: Likewise.
-	(xcalloc): UWIN has sbrk.
-	(xrealloc): Fix guard macro.
-
-1999-04-11  Richard Henderson  <rth@cygnus.com>
-
-	* alloca-conf.h (alloca) [C_ALLOCA]: Don't use Gcc builtin
-	or <alloca.h>.
-	* clock.c (GNU_HZ): New definition.
-	(clock): Use it.
-	* getruntime.c: Likewise.
-
-	* config.table: Use mh-beos.
-	* config/mh-beos: New file.
-
-1999-04-11  Mark Mitchell  <mark@codesourcery.com>
-
-	* cplus-dem.c (demangle_template_value_parm): Handle
-	pointers-to-members.
-	(do_type): Handle template parameters as qualifiers.
-
-1999-04-01  Jim Blandy  <jimb@zwingli.cygnus.com>
-
-	* cplus-dem.c: Attempt to handle overflows in counts with some
-	semblance of grace.
-	(consume_count): Detect overflows.  Return -1 to indicate errors,
-	instead of zero.
-	(demangle_template_value_parm, demangle_template): Handle change
-	to consume_count's return convention.
-
-1999-04-05  Tom Tromey  <tromey@cygnus.com>
-
-	* testsuite/regress-demangle: New file.
-	* testsuite/demangle-expected: New file.
-
-	* Makefile.in (all, check, installcheck, info, install-info,
-	clean-info, dvi, install, etags, tags, mostlyclean, clean,
-	distclean, maintainer-clean, realclean): Depend on corresponding
-	`-subdir' target.
-	(all-subdir check-subdir installcheck-subdir info-subdir
-	install-info-subdir clean-info-subdir dvi-subdir
-	install-info-subdir etags-subdir mostlyclean-subdir clean-subdir
-	distclean-subdir maintainer-clean-subdir): New target.
-	* testsuite/Makefile.in: New file.
-	* configure: Rebuilt.
-	* configure.in: Create testsuite/Makefile.
-
-1999-04-02  Mark Mitchell  <mark@codesourcery.com>
-
-	* splay-tree.h (splay_tree_compare_pointers): Define.
-
-1999-03-30  Mark Mitchell  <mark@codesourcery.com>
-
-	* splay-tree.c (splay_tree_compare_ints): Define.
-
-1999-03-30  Tom Tromey  <tromey@cygnus.com>
-
-	* cplus-dem.c (consume_count): If `count' wraps, return 0 and
-	don't advance input pointer.
-	(demangle_class_name): If consume_count didn't find a count, do
-	nothing.  Don't bother with `strlen' sanity check; consume_count
-	does it for us.
-
-1999-03-16  Stan Shebs  <shebs@andros.cygnus.com>
-
-	From Art Haas  <ahaas@neosoft.com>:
-	* cplus-dem.c (demangle_prefix): Don't grab all the '__' strings
-	when doing arm or hp style.
-	(demangle_nested_args): Decr forgetting_types field when done.
-
-Thu Mar 11 01:22:58 1999  Mumit Khan  <khan@xraylith.wisc.edu>
-
-	* pexecute.c (__CYGWIN32__): Rename to
-	(__CYGWIN__): this.
-	* xmalloc.c: Likewise.
-
-	Changes to support i386-pc-uwin.
-	* configure.in (*-*-uwin*): Workaround for vfork bug.
-	* configure: Regenerate.
-	* pexecute.c (pexecute): Be like standard Unix.
-	(pwait): Likewise.
-	* xmalloc.c (first_break): Define.
-	(xmalloc_set_program_name): Use.
-	(xmalloc): Use.
-
-Thu Mar 11 01:07:55 1999  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
-
-	* config.table: Cleanup and add mh-*pic handling for alpha, arm, powerpc
-
-Sun Feb 28 22:30:44 1999  Geoffrey Noer  <noer@cygnus.com>
-
-	* config.table: Check cygwin*, not cygwin32*.
-
-Tue Feb  9 16:39:01 1999  Dave Brolley  <brolley@cygnus.com>
-
-	* Makefile.in: Change mkstemp -> mkstemps.
-
-Tue Feb  9 01:12:27 1999  Marc Espie <Marc.Espie@liafa.jussieu.fr>
-
-	* Makefile.in (REQUIRED_OFILES): remove mkstemp.o
-	* configure.in (funcs): Check for and conditionally add mkstemps to
-	the list of functions libiberty will provide.
-	* configure: Rebuilt.
-
-Wed Feb  3 00:01:15 1999  Mumit Khan  <khan@xraylith.wisc.edu>
-
-	* clock.c (HZ): Define in terms of (ISO C) CLOCKS_PER_SEC on
-	platforms that don't have HZ.
-	* getruntime.c (HZ): Likewise.
-
-Sat Jan 30 13:28:04 1999  Richard Henderson  <rth@cygnus.com>
-
-	* Makefile.in (xstrdup.o): Depend on config.h.
-
-Wed Jan 13 07:26:44 1999  H.J. Lu  (hjl@gnu.org)
-
-	* cplus-dem.c (mop_up): Set work->previous_argument to NULL after
-	freeing it.
-
-Wed Jan 13 14:16:36 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* xstrdup.c (xstrdup): Switch from strcpy to memcpy for speed.
-
-Tue Jan  5 15:58:29 1999  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>
-
-	* Makefile.in (CFILES): fix typo, splay-tree.c instead of
-	splay-tree.o.
-
-1999-01-04  Jason Molenda  (jsm@bugshack.cygnus.com)
-
-	* configure.in: Require autoconf 2.12.1 or higher.
-
-1998-12-30  Michael Meissner  <meissner@cygnus.com>
-
-	* random.c (NULL): Don't redefine NULL if it is already defined.
-
-Tue Dec 22 09:43:35 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* argv.c (buildargv): Cast the result of alloca in assignment.
-
-	* choose-temp.c: Include stdlib.h.
-
-	* cplus-dem.c (demangle_arm_pt): Remove unused prototype.
-	(snarf_numeric_literal): Constify first parameter.
-	(code_for_qualifier): Avoid a gcc extension, make the parameter an
-	int, not a char.
-	(demangle_qualifier): Likewise.
-	(demangle_signature): Cast the argument of a ctype function to
-	unsigned char.
-	(arm_pt): Add parens around assignment used as truth value.
-	(demangle_arm_hp_template): Constify variable `args'.
-	(do_hpacc_template_const_value): Cast the argument of a ctype
-	function to unsigned char.
-	(do_hpacc_template_literal): Remove unused variable `i'.
-	(snarf_numeric_literal): Constify parameter `args'.
-	Cast the argument of a ctype function to unsigned char.
-
-	* floatformat.c (floatformat_to_double): Add explicit braces to
-	avoid ambiguous `else'.
-
-	* fnmatch.c (fnmatch): Change type of variables `c', `c1',
-	`cstart' and `cend' to unsigned char.  Cast the argument of macro
-	`FOLD', which uses ctype functions, to unsigned char.
-
-	* objalloc.c (free): Add prototype.
-
-Sun Dec 20 16:03:46 1998  Hans-Peter Nilsson  <hp@axis.se>
-
-	* Makefile.in (CFILES): Fix typo: splay-tree.c, not splay-tree.o
-
-Fri Dec 18 17:50:18 1998  David Taylor  <taylor@texas.cygnus.com>
-
-	* cplus-dem.c (demangle_arm_pt): remove declaration -- function
-	doesn't exist.
-	(do_hpacc_template_literal): remove unused variable `i'.
-
-Fri Dec 18 16:11:43 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
-
-	* cplus-dem.c (demangle_fund_type): Process CV and u codes before
-	bumping the pointer we read from. Also prepend these codes,
-	as we do in other places.
-
-1998-12-18  Nick Clifton  <nickc@cygnus.com>
-
-	* cplus-dem.c (demangle_arm_hp_template): Make variable 'args' be
-	'const char *' in order to match its usage when calling siblings.
-	(snarf_numeric_literal): Make first arg 'const char **' in order
-	to match usage.
-
-Mon Dec 14 09:55:50 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* choose-temp.c: Don't check IN_GCC anymore.
-
-	* floatformat.c (floatformat_from_double): Use `const', not `CONST'.
-	* memchr.c (memchr): Likewise.
-	* memcpy.c (memcpy): Likewise.
-	* memmove.c (memmove): Likewise.
-
-	* mkstemp.c: Don't check IN_GCC anymore.
-	* pexecute.c: Likewise.
-	* splay-tree.c: Likewise.
-
-	* strchr.c (strchr): Use `const', not `CONST'.
-	* strrchr.c (strrchr): Likewise.
-	* strtol.c (strtol): Likewise.
-	* strtoul.c (strtoul): Likewise.
-
-Fri Dec  4 13:51:04 1998  David Taylor   <taylor@texas.cygnus.com>
-			  Elena Zannoni  <ezannoni@cygnus.com>
-			  Stan Shebs     <shebs@cygnus.com>
-			  Edith Epstein  <eepstein@cygnus.com>
-			  Andres MacLeod <amacleod@cygnus.com>
-			  Satish Pai	 <pai@apollo.hp.com>
-
-	* HP aCC demangling support.
-	* cplus-dem.c
-	(main): Remove default to HP style demangling, set to EDG
-	demangling correctly when -edg specified; set the demangling style
-	when user specifies 'edg'. Set strip_underscore to
-	prepends_underscore, if not HPUXHPPA.  Set
-	current_demangling_style to hp_demangling if HPUXHPPA.  Set
-	current demangling style correctly if the switch is hp.  Read
-	label correctly also in the HP style case.
-	(work_stuff): add temp_start field; add field for volatile member
-	function.
-	(arm_pt): handle ARM_DEMANGLING and EDG_DEMANGLING styles; HP
-	style for this case is the same as ARM.
-	(demangle_args): handle EDG_DEMANGLING style; support HP style.
-	(demangle_arm_hp_template): new function. (It was
-	demangle_arm_pt.); check and set value of temp_start field in
-	multiple places. Also, when ceching for end of template args,
-	check to see if at end of static member of template class.
-	(demangle_class): new local variable : save_class_name_end Don't
-	include template args in string defining class.
-	(demangle_class_name): use demangel_arm_hp_template.
-	(demangle_function_name): handle case where demangling style is
-	HP_DEMANGLING and currently point at an 'X' in the mangled name.
-	Handle EDG_DEMANGLING style.  Handle constructor and destructor
-	ops for HP style.
-	(demangle_prefix): handle EDG_DEMANGLING and ARM_DEMANGLING
-	styles.  global destructor and constructor for HP style are same
-	as for ARM style. Same for local variables.
-	(demangle_qualified): handle EDG_DEMANGLING style.
-	(demangle_signature): add case for volatile member function.  For
-	cases '1' - '9' : initialize the temp_start field to -1 and handle
-	the EDG_DEMANGLING style.  for case 'F' : handle EDG_DEMANGLING
-	and AUTO_DEMANGLING styles.  If expecting a function and managed
-	to demangle the funct args, then handle the LUCID_DEMANGLING,
-	ARM_DEMANGLING, and EDG_DEMANGLING styles.  Add case for local
-	class name after "Lnnn_ in HP style case. HP style too needs to
-	forget types.  _nnn is OK for HP style, so don't report failure.
-	(do_hpacc_template_const_value): new function. Handle template's
-	value param for HP/aCC.
-	(do_hpacc_template_literal): new function.  Handle a template's
-	literal parameter for HP aCC.
-	(recursively_demangle): new function
-	(snarf_numeric_literal): new function.
-	(usage): add 'edg' to the list of demangling styles; add hp switch
-	to message.
-
-Sat Nov 28 17:25:22 1998  Christopher Faylor <cgf@cygnus.com>
-
-	* pexecute.c: Remove obsolete ifdefed cygwin code.
-
-Fri Nov 27 13:26:06 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* choose-temp.c: Always include libiberty.h.  Avoid redundancies.
-	* cplus-dem.c: Likewise.  Conform to libiberty.h.
-	* pexecute.c: Likewise.
-	* splay-tree.c: Likewise.
-
-1998-11-25  Mike Stump  <mrs@wrs.com>
-
-	* Makefile.in (splay-tree.o): Add config.h dependency.
-
-Mon Nov 23 16:59:49 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	*  configure.in: Use AC_PREREQ(2.12.1).
-
-1998-11-16  Benjamin Kosnik  <bkoz@haight.constant.com>
-
-	* cplus-dem.c (demangle_fund_type): Add demangling for C9x types.
-
-Thu Nov 19 22:15:50 1998  Jeffrey A Law  (law@cygnus.com)
-
-	* mpw.c (mpw_access): Add missing parens.
-
-Thu Nov 19 12:59:21 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* configure.in: Call AC_HEADER_SYS_WAIT.
-
-	* pexecute.c: Include sys/wait.h when !IN_GCC.
-
-Thu Nov 19 14:38:20 1998  Geoffrey Noer  <noer@cygnus.com>
-
-	* pexecute.c: revert back to checking old Cygwin
-	preprocessor symbol until some time has passed.
-
-Wed Nov 18 08:52:26 1998  Christopher Faylor <cgf@cygnus.com>
-
-	* pexecute.c: Reorganize WIN32 case to accomodate Cygwin
-	since it will now support similar constructs.
-
-Fri Nov 13 19:18:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* configure.in: Check for calloc.
-
-	* calloc.c: New	file.
-
-	* xmalloc.c (xcalloc): New function.
-
-Fri Nov 13 08:51:46 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
-
-	*cplus-dem.c (demangle_prefix): Use the last "__"
-	in the mangled name when looking for the signature. This allows
-	template names to begin with "__".
-
-1998-11-08  Mark Mitchell  <mark@markmitchell.com>
-
-	* cplus-dem.c (type_kind_t): Add tk_reference.
-	(demangle_template_value_parm): Handle it.
-	(do_type): Use it for references, instead of tk_pointer.
-
-	* cplus-dem.c (demangle_template_value_parm): Use cplus_demangle,
-	not internal_cplus_demangle.
-
-Sat Nov  7 16:02:10 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* choose-temp.c: Don't include gansidecl.h.
-	* mkstemp.c: Likewise.
-	* pexecute.c: Likewise.
-
-Mon Nov  2 15:05:33 1998  Geoffrey Noer  <noer@cygnus.com>
-
-	* configure.in: detect cygwin* instead of cygwin32*
-	* configure: regenerate
-
-Mon Nov  2 10:22:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* pexecute.c: Check HAVE_CONFIG_H, not IN_GCC, when determining
-	whether to include config.h.  Possibly include unistd.h in the
-	!IN_GCC case.  Define VFORK_STRING as a printable function call
-	for error messages (either "vfork" or "fork".)  If HAVE_VFORK_H is
-	defined, include vfork.h.  If VMS is defined, define vfork()
-	appropriately.  Remove vfork check on USG, we're using autoconf.
-	(pexecute): Set `errmsg_fmt' to VFORK_STRING instead of checking
-	locally what string to use.
-
-1998-10-26  Mark Mitchell  <mark@markmitchell.com>
-
-	* splay-tree.c: Tweak include directives to make sure declarations of
-	xmalloc and free are available.
-
-1998-10-25  Mark Mitchell  <mark@markmitchell.com>
-
-	* cplus-dem.c (gnu_special): Fix handling of virtual tables in
-	anonymous namespaces.
-
-1998-10-23  Mark Mitchell  <mark@markmitchell.com>
-
-	* cplus-dem.c (work_stuff): Replace const_type and volatile_type
-	with type_quals.
-	(TYPE_UNQUALIFIED): New macro.
-	(TYPE_QUAL_CONST): Likewise.
-	(TYPE_QUAL_VOLATILE): Likewise.
-	(TYPE_QUAL_RESTRICT): Likewise.
-	(code_for_qualifier): New function.
-	(qualifier_string): Likewise.
-	(demangle_qualifier): Likewise.
-	(internal_cplus_demangle): Use them.
-	(demangle_signature): Likewise.
-	(demangle_template_value_parm): Likewise.
-	(do_type): Likewise.
-	(demangle_fund_type)): Likewise.
-
-Thu Oct 22 19:58:43 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* splay-tree.c (splay_tree_foreach_helper): Make definition static
-	to match prototype.
-
-1998-10-21  Mark Mitchell  <mark@markmitchell.com>
-
-	* splay-tree.c: New file.
-	* Makefile.in (CFILES): Add it.
-	(REQUIRED_OFILES): Likewise.
-	(splay-tree.o): Add dependencies.
-
-Tue Oct 20 12:29:02 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
-
-	* cplus-dem.c (demangle_qualified): Fix off-by-one when checking
-	range of 'K' index.
-
-Thu Oct 15 18:51:12 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* choose-temp.c: Prototype mkstemps() when IN_GCC.
-
-	* cplus-dem.c (consume_count): Cast argument of ctype macro to
-	`unsigned char'.
-	(cplus_demangle_opname): Cast the result of `strlen' to (int) when
-	comparing against one.
-	(cplus_mangle_opname): Likewise.
-	(demangle_integral_value): Cast argument of ctype macro to
-	`unsigned char'.
-	(demangle_template_value_parm): Likewise.
-	(demangle_template): Initialize variable `bindex'.  Cast the
-	result of `strlen' to (int) when comparing against one.  Remove
-	unused variable `start_of_value_parm'.
-	(demangle_class_name): Cast the result of `strlen' to (int) when
-	comparing against one.
-	(demangle_prefix): Cast argument of ctype macro to `unsigned char'.
-	(gnu_special): Likewise.  Cast the result of `strlen' to (int)
-	when comparing against one.
-	(demangle_qualified): Cast argument of ctype macro to `unsigned char'.
-	(get_count): Likewise.
-	(do_type): Likewise.  Cast the result of `strlen' to (int) when
-	comparing against one.
-	(demangle_fund_type): Cast argument of ctype macro to `unsigned char'.
-	(demangle_function_name): Cast the result of `strlen' to (int)
-	when comparing against one.
-
-	* mkstemp.c (mkstemps): Cast variable `len' to (int) when
-	comparing against one.
-
-Tue Oct 13 23:51:51 1998  Jeffrey A Law  (law@cygnus.com)
-
-	* mkstemp.c: Check HAVE_SYS_TIME_H before including sys/time.h
-	* configure.in (AC_CHECK_HEADERS): Check for sys/time.h too.
-	* config.in, configure: Rebuilt.
-
-	* getopt.c: Check HAVE_STRINGS_H before including strings.h.
-	* configure.in (AC_CHECK_HEADERS): Check for strings.h too.
-	* config.in, configure: Rebuilt.
-
-Mon Oct 12 19:15:59 1998  Geoffrey Noer  <noer@cygnus.com>
-
-	* configure.in: in comment, call AC_EXEEXT instead of AM_EXEEXT
-
-Sun Oct 11 17:36:06 1998  Michael Tiemann  <tiemann@holodeck.cygnus.com>
-
-	* Makefile.in (cplus-dem.o, obstack.o): Depend upon config.h.
-
-Thu Oct  8 23:42:08 1998  Jeffrey A Law  (law@cygnus.com)
-
-	* Merge egcs & devo libiberty.
-
-1998-09-08  Martin von Löwis  <loewis@informatik.hu-berlin.de>
-
-	* cplus-dem.c (demangle_arm_pt): Demangle anonymous namespaces.
-
-Mon Sep  7 23:29:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* mkstemp.c: Include config.h even when not IN_GCC.  Wrap header
-	inclusions inside HAVE_*_H macros.  Include ansidecl.h when not
-	IN_GCC.
-
-	* vasprintf.c: Include stdarg.h/varargs.h first.
-
-	* vprintf.c: Likewise.
-
-Sat Sep  5 03:24:49 1998  Jeffrey A Law  (law@cygnus.com)
-
-	* pexecute.c: Updates from gcc.  Copy in gcc has been removed.  This
-	is the canonical copy.  Define ISSPACE if !IN_GCC.
-	* alloca.c, vfprintf.c, choose-temp.c, mkstemp.c, getopt.c: Similarly.
-	* getopt1.c, obstack.c: Similarly.
-	* Makefile.in: Build mkstemp.o
-
-Tue Sep  1 23:12:47 1998  Christopher Faylor <cgf@cygnus.com>
-
-	* configure.in: Include asprintf in list of functions known not
-	to be in newlib.
-	* configure: Rebuild.
-
-Wed Aug 19 14:05:01 1998  Mumit Khan  <khan@xraylith.wisc.edu>
-
-	* cplus-dem.c (work_stuff): Add dllimported.
-	(demangled_prefix): Mark symbols imported from PE DLL.
-	(internal_cplus_demangled): Handle.
-
-1998-08-17  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* cplus-dem.c (do_type): Fix simple array handling.  If we fail,
-	stay failed.
-
-Mon Aug 17 10:40:34 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* cplus-dem.c: Include config.h if it exists.  Also, only
-	prototype malloc/realloc if we can't get stdlib.h.
-
-Sat Aug 15 16:15:01 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* configure.in: Switch back to checking --with-target-subdir when
-	deciding whether to check for newlib, undoing part of July 15
-	change.
-	* configure: Rebuild.
-
-Thu Aug 13 16:47:38 1998  Mark Mitchell  <mark@markmitchell.com>
-
-	* cplus-dem.c (type_kind_t): New type.
-	(demangle_template_value_parm): Add type_kind_t parameter.  Rely
-	on this paramter, rather than demangling the type again.
-	(demangle_integral_value): Pass tk_integral.
-	(demangle_template_: Pass the value returned from do_type.
-	(do_type): Return a type_kind_t.  Pass tk_integral to
-	demangle_template_value_parm for array bounds.
-	(demangle_fund_type): Likewise.
-
-	Also incorporate from GCC version:
-
-	Tue Jul 21 13:28:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* cplus-dem.c (do_type): Use demangle_template_value_parm for arrays.
-
-Thu Aug 13 16:47:38 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* cplus-dem.c (demangle_nested_args): Make function definition
-	static to match the prototype.
-
-Tue Jul 28 11:33:09 1998  Mark Mitchell  <mark@markmitchell.com>
-
-	* cplus-dem.c (type_kind_t): New type.
-	(demangle_template_value_parm): Add type_kind_t parameter.  Rely
-	on this paramter, rather than demangling the type again.
-	(demangle_integral_value): Pass tk_integral.
-	(demangle_template_: Pass the value returned from do_type.
-	(do_type): Return a type_kind_t.  Pass tk_integral to
-	demangle_template_value_parm for array bounds.
-	(demangle_fund_type): Likewise.
-
-	Also incorporate from GCC version:
-
-	Tue Jul 21 13:28:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* cplus-dem.c (do_type): Use demangle_template_value_parm for arrays.
-
-Mon Jul 27 12:16:08 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* Makefile.in (ALLOCA): New variable.
-	($(TARGETLIB)): Add $(ALLOCA) to library.
-	(needed-list): Add $(ALLOCA).
-	($(ALLOCA)): Depend upon stamp-picdir.
-
-Sun Jul 19 08:23:17 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* cplus-dem.c (demangle_nested_args): Make function definition
-	static to match the prototype.
-
-Wed Jul 15 00:12:58 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* configure.in: Check --with-cross-host rather than
-	--with-target-subdir when deciding whether build uses a cross
-	compiler, and when deciding where to install the library.
-	* configure: Rebuild.
-
-Sun Jul 12 01:27:05 1998  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* cplus-dem.c (demangle_nested_args): Return a value.
-
-Sat Jul 11 16:19:48 1998  Mark Mitchell  <mark@markmitchell.com>
-
-	* cplus-dem.c (string): Move definition before work_stuff.
-	(work_stuff): Add volatile_type, forgetting_types,
-	previous_argument, and nrepeats fields.
-	(SCOPE_STRING): New macro.
-	(demangle_template): Add `remember' parameter.  Add comment.
-	Register the `B' code type here, if remembering.  Tidy.  Fix crash
-	on NULL tmpl_argvec.  Be consistent with use of tname/trawname.
-	(demangle_nested_args): New function.
-	(internal_cplus_demangle): Handle volatile-qualified member
-	functions.
-	(mop_up): Delete the previous_argument string if present.
-	(demangle_signature): Tidy.  Handle volatile-qualified member
-	functions.  Handle back-references using the `B' code.  Use extra
-	parameter to demangle_template and SCOPE_STRING where appropriate.
-	(demangle_template_value_parm): Fix thinko; 'B' is not an integral
-	code.
-	(demangle_class): Use SCOPE_STRING.
-	(gnu_special): Pass additional argument to demangle_template.
-	Use SCOPE_STRING.
-	(demangle_qualified): Save qualified types for later
-	back-references.  Handle constructors and destructors for template
-	types correctly.
-	(do_type): Tidy.  Use SCOPE_STRING.  Pass extra argument to
-	demangle_template.  Use demangled_nested_args.  Don't remember
-	qualified types here; that's now done in demangle_qualified.
-	Similarly for templates.
-	(do_arg): Improve commment.  Handle 'n' repeat code.
-	(remember_type): Check forgetting_types.
-	(demangle_args): Deal with 'n' repeat codes.  Tidy.
-
-Thu Jul  2 16:26:24 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* config.table: Only use mh-fbsd21 on *-*-freebsd2.2.[012], not on
-	*-*-freebsd2.2.*.  From Dmitrij Tejblum <tejblum@arc.hq.cti.ru>.
-
-Mon Jun 15 16:29:01 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* configure.in (setobjs): Correct quoting error in cygwin32 case.
-	From Chris Faylor <cgf@cygnus.com>.
-
-Mon Jun  1 13:47:55 1998  Jason Molenda  (crash@bugshack.cygnus.com)
-
-	* obstack.c: Update to latest FSF version.
-
-Mon Jun  1 14:17:36 1998  Mike Stump  <mrs@wrs.com>
-
-	* Makefile.in: Add a dependency on stamp-picdir for the
-	objects, so that we can do a parallel build.
-
-Sat May 30 22:17:13 1998  Mumit Khan  <khan@xraylith.wisc.edu>
-
-	* configure.in (checkfuncs): Add missing "'".
-
-Fri May 29 12:40:41 1998  Jason Molenda  (crash@bugshack.cygnus.com)
-
-	* obstack.c (_obstack_memory_used):  Elide this function if we're
-	on a system with GNU libc.
-
-Tue May 26 18:28:43 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* Makefile.in (distclean): Remove config.log.
-
-Tue May 26 15:01:52 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* Makefile.in (distclean): Don't remove alloca-conf.h.
-
-Fri May 22 01:38:07 1998  Hans-Peter Nilsson  <hp@axis.se>
-
-	* cplus-dem.c (MBUF_SIZE): Bumped from 512 to 32767.
-
-1998-05-21  Mark Mitchell  <mmitchell@usa.net>
-
-	* cplus-dem.c (do_type): Handle volatile qualification.
-
-1998-05-21  Manfred Hollstein  <manfred@s-direktnet.de>
-
-	* configure.in: Check for unistd.h as well.
-	* configure: Rebuild.
-	* config.in: Rebuild.
-	* getpagesize.c (GNU_OUR_PAGESIZE): Use sysconf only if _SC_PAGESIZE
-	is defined in unistd.h. Reformat conditional block for easier reading.
-
-	* config.table (shared): Default to no if ${enable_shared}
-	is unset or empty; this logic is used by the toplevel
-	configure scripts, too.
-
-Sat May 16 14:01:26 1998  Jeffrey A Law  (law@cygnus.com)
-
-	* config.table: Add line to set enable_shared in the Makefile
-	as needed.
-
-Wed May 13 14:24:38 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* cplus-dem.c (squangle_mop_up): Change return type to void.
-	(internal_cplus_demangle): Remove unused parameter `options'.
-	All callers changed.
-	(cplus_demangle_opname): Remove function wide variable `int i' and
-	replace with `size_t i' at each location where it is used.
-	(cplus_mangle_opname): change type of `i' from int to size_t.
-
-Wed May 13 13:39:38 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* alloca-conf.h: Include config.h.  Check HAVE_ALLOCA_H rather
-	than sparc or sun.
-	* Makefile.in (argv.o): Depend upon config.h and alloca-conf.h.
-
-Fri May  8 00:23:51 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* configure.in: Set libiberty_topdir correctly when srcdir is
-	"." and with_target_subdir is not set.
-	* configure: Rebuild.
-
-Thu May  7 13:01:44 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* configure.in: Add *-*-mingw32* case.
-	* configure: Rebuild.
-
-Wed May  6 11:33:51 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* config.table: Never use a PIC file for *-*-cygwin32*.
-
-	* Makefile.in (config.status): Depend upon config.table.
-
-	* configure.in: On a cygwin32 host, always compile random, and
-	don't test for sys_siglist, strsignal, or psignal.
-	* configure: Rebuild.
-
-	* clock.c: Check HAVE_SYS_PARAM_H rather than NO_SYS_PARAM_H.
-	* getcwd.c: Likewise.
-	* getpagesize.c: Likewise.
-	* getruntime.c: Likewise.
-
-Tue May  5 18:08:32 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	Use autoconf tests rather than the old dummy.c test:
-	* configure.in: Add AC_ARG_WITH calls for --with-target-subdir and
-	--with-newlib.  Add AC_CONFIG_HEADER.  Use AC_REPLACE_FUNCS for
-	most functions.  Add special cases to handle newlib and VxWorks.
-	Remove target_makefile_frag.  Create stamp-h in AC_OUTPUT if
-	CONFIG_HEADERS is set.  Only call config-ml.in in AC_OUTPUT if
-	CONFIG_FILES is set; set ac_file before calling it.
-	* config.table (arm-*-riscix*, *-*-cygwin32): Remove.
-	(*-*-hpux*, *-*-hiux*, *-*-irix4*, *-*-solaris2*): Remove.
-	(*-*-sysv4*, *-*-go32, *-*-vxworks5*, *-*-vxworks): Remove
-	(i[3456]-*-mingw32*): Remove.
-	* Makefile.in (ERRORS_CC, CONFIG_H, NEEDED_LIST): Remove.
-	(LIBOBJS): New variable.
-	(HOST_OFILES, DO_ALSO, STAGESTUFF): Remove.
-	(all): Depend upon needed-list.  Don't check RULE1.
-	(@target_makefile_frag@): Remove.
-	(COMPILE.c): Include @DEFS@.
-	(HFILES): Add alloca-conf.h.
-	(REQUIRED_OFILES): Remove basename.o.
-	($(TARGETLIB)): New target.
-	(stamp-needed, lneeded-list, needed.awk, stamp-config): Remove.
-	(lconfig.h, needed2.awk, dummy.o, errors): Remove.
-	(needed-list, config.h): Rewrite.
-	(RULE1, $(RULE1), RULE2, $(RULE2)): Remove.
-	(.always.): Remove.
-	(Makefile): Set CONFIG_FILES and CONFIG_HEADERS.
-	(stamp-h): New target.
-	(atexit.o, clock.o, getcwd.o, getpagesize.o): New targets.
-	(basename.o): Don't depend upon config.h.
-	(getruntime.o): Depend upon config.h.
-	* atexit.c: Include config.h.  Check HAVE_ON_EXIT rather than
-	NEED_on_exit.
-	* basename.c: Don't include config.h.  Don't check NEED_basename.
-	* clock.c: Include config.h.
-	* getcwd.c: Likewise.
-	* getpagesize.c: Likewise.
-	* getruntime.c: Likewise.  Fix checks which set HAVE_GETRUSAGE and
-	HAVE_TIMES.
-	* strerror.c: Change uses of NEED_sys_errlist to
-	HAVE_SYS_ERRLIST.  Likewise for NEED_strerror and HAVE_STRERROR.
-	* strsignal.c: Likewise for NEED_sys_siglist and HAVE_SYS_SIGLIST,
-	and for NEED_strsignal and HAVE_STRSIGNAL and for NEED_psignal and
-	HAVE_PSIGNAL.
-	* acconfig.h: New file.
-	* dummy.c: Remove.
-	* functions.def: Remove.
-	* config/mh-cxux7 (HDEFINES): Remove -DHAVE_SYSCONF.
-	* config/mh-windows (HDEFINES): Remove.
-	* config/mh-cygwin32: Remove.
-	* config/mh-go32: Remove.
-	* config/mh-irix4: Remove.
-	* config/mh-riscix: Remove.
-	* config/mh-sysv4: Remove.
-	* config/mt-mingw32: Remove.
-	* config/mt-vxworks5: Remove.
-	* config.in: New file, generated using autoheader.
-	* configure: Rebuild.
-
-Mon May  4 13:00:28 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* configure.in: Rewrite to use autoconf.
-	* configure: Generate using autoconf.
-	* config/mh-a68bsd: Remove.
-	* config/mh-apollo68: Remove.
-	* config/mh-hpbsd: Remove.
-	* config/mh-ncr3000: Remove.
-	* config/mh-sysv: Remove.
-	* config/mh-aix (RANLIB, INSTALL): Don't define.
-	* config/mh-cxux7 (RANLIB, INSTALL): Don't define.
-	* config/mh-irix4 (CC, RANLIB, INSTALL): Don't define.
-	* config/mh-sysv4 (RANLIB, INSTALL): Don't define.
-	* config.table: Change config_shell to CONFIG_SHELL, and use
-	libiberty_topdir to find move-if-change.
-	(m68k-apollo-bsd*, m68k-apollo-sysv*): Remove.
-	(i[3456]86-ncr-sysv4*, *-*-dgux*, hppa*-hp-bsd*): Remove.
-	(*-*-irix*, *-*-m88kbcs*, *-*-sysv*): Remove.
-	* Makefile.in (srcdir): Set to @srcdir@.
-	(VPATH): Likewise.
-	(prefix, exec_prefix, bindir, libdir): Set to autoconf variables.
-	(SHELL, INSTALL, INSTALL_PROGRAM, INSTALL_DATA): Likewise.
-	(CC, CFLAGS, RANLIB)): Likewise.
-	(datadir, man*dir, infodir, includedir, MAKEINFO): Remove.
-	(target_makefile_frag, host_makefile_frag): Add substitutions.
-	(INSTALL_DEST): Set to @INSTALL_DEST@.
-	(Makefile): Depend upon config.status.  Don't depend upon
-	$(host_makefile_frag) or $(target_makefile_frag).
-	(config.status): New target.
-
-Sun May  3 17:58:49 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* config/mt-sunos4: Remove.  Should be handled by --with-headers
-	and --with-libraries options at top level.
-	* config.table: Never use mt-sunos4.
-
-	* alloca-conf.h: New file, combining alloca-norm.h and
-	alloca-botch.h.
-	* alloca-norm.h: Remove.
-	* alloca-botch.h: Remove.
-	* configure.in: Set shell variables files and links to empty.
-	* config.table: Don't set shell variable files.
-	* configure.bat: Don't create alloca-conf.h.
-	* makefile.vms: Likewise.
-	* mpw-config.in: Likewise.
-	* vmsbuild.com: Likewise.
-
-Fri May  1 11:41:42 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* Makefile.in ($(HOST_OFILES) $(REQUIRED_OFILES)): Remove old
-	target depending upon config.h.
-	(alloca.o): Add target depending upon config.h
-	(basename.o, choose-temp.o, fnmatch.o): Likewise.
-	(getopt.o, getopt1.o, pexecute.o, strerror.o): Likewise.
-	(strsignal.o, xstrerror.o): Likewise.
-
-Fri May  1 04:26:25 1998  Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
-
-	* cplus-dem.c (cplus_demangle_opname):  Initialize work.
-
-Mon Apr 27 15:53:30 EDT 1998 Andrew MacLeod <amacleod@cygnus.com>
-
-	* cplus-dem.c (demangle_qualified): Replace missing else.
-
-Sun Apr 26 15:38:50 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* cplus-dem.c (gnu_special): Fix off-by-one bug when checking the
-	length in the name of a virtual table.
-
-Wed Apr 22 10:53:49 EDT 1998 Andrew MacLeod  <amacleod@cygnus.com>
-
-	* cplus-dem.c (struct work stuff): Add field for B and K mangle codes.
-	(cplus_demangle_opname): Call mop_up_squangle.
-	(cplus_demangle): Initialize squangle info, then call
-	internal_cplus_demangle. (Most code moved there as well)
-	(internal_cplus_demangle): New function, performs most of what use
-	to be done in cplus_demangle, but is only called with this file.
-	(squangle_mop_up): New function to clean up B and K code data.
-	(mop_up): set pointers to NULL after freeing.
-	(demangle_signature, demangle_template, demangle_class): Add
-	switch elements to handle K and B codes.
-	(demangle_prefix, gnu_special, demangle_qualified): Add
-	code to handle K and B codes.
-	(do_type, demangle_fund_type): Handle B and K codes.
-	(remember_Ktype): New function to store K info.
-	(register_Btype, remember_Btype): New functions for B codes.
-	(forget_B_and_K_types): New function to destroy B and K info.
-
-Fri Apr 10 01:49:10 1998  Jeffrey A Law  (law@cygnus.com)
-
-	* COPYING.LIB, choose-temp.c, cplus-dem.c: Sync with egcs & gcc.
-
-Thu Mar  5 09:23:28 1998  Manfred Hollstein  <manfred@s-direktnet.de>
-
-	* config.table: Make locating frag files failsafe even for the
-	special case if configuring and building in srcdir.
-
-Mon Feb 23 14:33:15 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* choose-temp.c: Fix handling of sys/file.h to work in libiberty.
-
-Sun Feb 22 18:03:23 1998  Jeffrey A Law  (law@cygnus.com)
-
-	* choose-temp.c: Sync with copy in gcc.
-
-Thu Feb 12 16:29:49 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* getopt.c: Update to latest FSF version.
-	* getopt1.c: Likewise.
-
-Tue Feb 10 16:58:33 1998  Stan Shebs  <shebs@andros.cygnus.com>
-
-	* cplus-dem.c (gnu_special): Don't get confused by .<digits>
-	strings that are not actually lengths.
-
-Fri Feb  6 01:35:17 1998  Manfred Hollstein  <manfred@s-direktnet.de>
-
-	* Makefile.in (FLAGS_TO_PASS): Don't pass PICFLAG.
-	(.c.o): Check value of enable_shared, not PICFLAG.
-	(stamp-picdir): Dito.
-
-Thu Feb  5 18:48:56 1998  Geoffrey Noer  <noer@cygnus.com>
-
-	* config/mh-cygwin32: remove vasprintf.o from EXTRA_OFILES
-	since it gets built automatically
-
-Sun Feb  1 02:52:32 1998  Mike Stump  <mrs@wrs.com>
-
-	* config.table (vxworks configs): Default to VxWorks 5.x, as that is
-	the currently shipping OS.
-
-Tue Jan 27 16:08:20 1998  Pat Rankin  <rankin@eql.caltech.edu>
-
-	* vmsbuild.com [REQUIRE_OFILES]: Synchronized with Makefile.in:
-	Add fnmatch.o and objalloc.o; remove vasprintf.o.
-	[config.h]: Define NEED_strsignal.
-
-Mon Jan 19 12:20:01 1998  Ian Lance Taylor  <ian@cygnus.com>
-
-	* functions.def: Correct argument types for strerror and
-	strsignal.  Reported by Alex Gutman <agutman@emc.com>.
-
-Sun Jan 18 15:57:28 1998  Michael Snyder  <msnyder@cleaver.cygnus.com>
-
-	* vasprintf.c (int_vasprintf): Increase buffer size for float/double
-	values.
-
-Sat Jan 17 22:28:38 1998  Mumit Khan  <khan@xraylith.wisc.edu>
-			  J.J. VanderHeijden <J.J.vanderHeijden@student.utwente.nl>
-
-	Add mingw32 support.
-	* pexecute.c (pexecute): New function for mingw32. Supports pipes.
-	(pwait): New function for mingw32.
-
-	* config.table (i[3456]86-*-mingw32*): Support for i386-mingw32.
-	* config/mt-mingw32: New file.
-	* xmalloc.c (first_break): Not used for mingw32.
-	(xmalloc_set_program_name): Don't use sbrk on mingw32.
-	(xmalloc): Likewise.
-	(xrealloc): Likewise.
-
-Sat Jan 17 22:28:05 1998  Jeffrey A Law  (law@cygnus.com)
-
-	* choose-temp.c: Sync with gcc version.
-
-Tue Jan 13 18:34:39 1998  Jim Wilson  <wilson@cygnus.com>
-
-	* Makefile.in (install_to_libdir, install_to_tooldir): Add MULTISUBDIR
-	to all filenames in libdir and tooldir.
-	(distclean): Do MULTICLEAN before deleting Makefile.
-	(stamp-needed, stamp-config): Add MULTISRCTOP to
-	pathname for move-if-change.
-
-Thu Dec  4 17:25:19 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* strsignal.c (sys_nsig): Try NSIG and _NSIG.
-
-Wed Nov 19 13:37:06 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* alloca-norm.h (alloca, GCC case): Don't redefine alloca if it
-	was already defined previously.
-
-Mon Nov 10 12:48:03 1997  Philippe De Muyter  <phdm@macqel.be>
-
-	* Makefile.in (INSTALL): Use ../install-sh, not install.
-
-Tue Oct 28 23:41:15 1997  Judy Goldberg  <jodyg@idt.net>
-
-	* Makefile.in (CFILES): Add pexecute.c.
-
-Wed Oct 15 19:13:48 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* asprintf.c: Consistently use either stdarg or varargs.
-
-Tue Oct 14 12:01:00 1997  Mark Mitchell  <mmitchell@usa.net>
-
-	* cplus-dem.c (demangle_signature): Don't look for return types on
-	constructors.  Handle member template constructors.
-
-Fri Oct  3 17:53:30 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* README: Fix configuration instructions.
-
-Mon Sep 29 12:28:41 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* pexecute.c: Update to current version from /gd/gnu/lib:
-
-	Mon Sep 29 12:27:59 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* pexecute.c: Use spawn if __CYGWIN32__.
-
-	1997-08-08  Paul Eggert  <eggert@twinsun.com>
-
-	* pexecute.c: Include "config.h" first, as per autoconf manual.
-
-	Fri Jun 27 15:20:29 1997  Scott Christley <scottc@net-community.com>
-
-	* pexecute.c (fix_argv): New function.
-	(pexecute): Win32 but not Cygwin32 needs its arguments fixed.
-	Add underscore to cwait function call.
-
-Sun Sep 28 12:00:52 1997  Mark Mitchell  <mmitchell@usa.net>
-
-	* cplus-dem.c (demangle_template): Add new parameter.  Handle new
-	template-function mangling.
-	(consume_count_with_underscores): New function.
-	(demangle_signature): Handle new name-mangling scheme.
-
-Wed Sep 24 00:31:59 1997  Felix Lee  <flee@yin.cygnus.com>
-
-	* asprintf.c: stdarg.h when ALMOST_STDC
-	* config/mh-windows (EXTRA_OFILES): add asprintf.o and
-	strncasecmp.o.
-
-Thu Aug 28 14:27:15 1997  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* vasprintf.c (vasprintf): Allow for _BSD_VA_LIST_.
-
-	* config.table: Add case for FreeBSD 2.1 and 2.2, needs mh-fbsd21.
-
-	* config/mh-fbsd21 (EXTRA_OFILES): Force vasprintf.o
-
-Wed Sep 10 12:43:10 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* cplus-dem.c (demangle_fund_type): Change "complex" to "__complex".
-
-Fri Sep  5 16:34:42 1997  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* asprintf.c (asprintf): New file.
-	* Makefile.in (CFILES): Add asprintf.c
-	* functions.def: Ditto.
-
-Thu Aug 28 18:53:34 1997  Andrew Cagney  <cagney@b1.cygnus.com>
-
-	* argv.c (dupargv): New function, duplicate an argument vector.
-
-Tue Aug 19 20:28:45 1997  Geoffrey Noer  <noer@cygnus.com>
-
-	* config/mh-cygwin32: also build random.o
-
-Tue Aug 19 17:10:56 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* cplus-dem.c: Add 'extern' to prepends_underscore.
-
-Wed Jul 30 11:42:19 1997  Per Bothner  <bothner@cygnus.com>
-
-	* cplus-dem.c: Various changes to produce Java output when passed
-	DMGL_JAVA.  Thus "::" becomes "." and "JArray<Foo>" becomes "Foo[]".
-	(main): Support --java and -j flags to set DMGL_JAVA.
-
-Tue Jul 22 19:05:23 1997  Robert Hoehne <robert.hoehne@Mathematik.TU-Chemnitz.DE>
-
-	* config/mh-go32 (CC, AR, RANLIB): Don't define.
-
-Tue Jul 22 17:49:54 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* Makefile.in (REQUIRED_OFILES): Add pexecute.o.
-	(pexecute.o): New target.
-
-	* Makefile.in (stamp-needed): New target, replacing needed-list.
-	(needed-list): Just depend upon stamp-needed.
-	(stamp-config): New target, replacing config.h.
-	(config.h): Just depend upon stamp-config.
-	(mostlyclean): Remove stamp-*.
-
-Thu Jun 12 11:00:18 1997  Angela Marie Thomas (angela@cygnus.com)
-
-	* Makefile.in (FLAGS_TO_PASS): pass INSTALL, INSTALL_PROGRAM and
-	INSTALL_DATA for multilibbed installs
-
-Tue Jun  3 13:21:05 1997  Doug Evans  <dje@canuck.cygnus.com>
-
-	Tue Dec 10 09:44:57 1996  Paul Eggert  <eggert@twinsun.com>
-
-	* choose-temp.c (choose_temp_base): Don't dump core if TMPDIR is empty.
-
-	* choose-temp.c (try): Insist that temp dir be searchable.
-
-	Wed Oct 23 17:36:39 1996  Doug Rupp  (rupp@gnat.com)
-
-	* choose-temp.c (choose_temp_base): On VMS, use proper syntax
-	for current directory.
-
-	Sat Feb 15 19:03:48 1997  Geoffrey Noer  (noer@cygnus.com)
-
-	* pexecute.c: Remove special cases for cygwin32.
-	(pwait): Remove local definition of `pid'.
-
-	Tue Nov 12 18:26:15 1996  Doug Rupp  (rupp@gnat.com)
-
-	* pexecute.c (vfork): Supply new definition for VMS.
-	(pwait): Use waitpid instead of wait for VMS.
-
-Tue May 20 14:02:20 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
-
-	* cplus-dem.c (do_type): Handle `J'.
-	(demangle_fund_type): Print "complex" for it.
-
-Wed Apr 30 12:15:45 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* configure.in: Don't turn on multilib here.
-
-Mon Apr 28 19:04:31 1997  Michael Snyder  <msnyder@cleaver.cygnus.com>
-
-	* obstack.c: move _obstack_memory_used outside of ifdef.  Cannot be
-	elided; needed by gdb and not present in libc.
-
-Thu Apr 24 19:33:47 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* Makefile.in (clean): Remove tmpmulti.out.
-
-Tue Apr 22 10:25:15 1997  Fred Fish  <fnf@cygnus.com>
-
-	* floatformat.c (floatformat_ieee_double_littlebyte_bigword):
-	Add new floatformat, mainly for ARM doubles.
-
-Mon Apr 14 12:11:16 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* config.table: Use ${config_shell} with ${moveifchange}.  From
-	Thomas Graichen <graichen@rzpd.de>.
-
-Fri Apr  4 03:09:24 1997  Ulrich Drepper  <drepper@cygnus.com>
-
-	* configure.in: Enable multilibing by default.
-	Update multilib template to read config-ml.in.
-
-Tue Apr  1 16:26:39 1997  Klaus Kaempf  <kkaempf@progis.de>
-
-	* makefile.vms: Add objalloc.
-
-Mon Mar 31 23:57:51 1997  H.J. Lu  <hjl@gnu.ai.mit.edu>
-
-	* cplus-dem.c (demangle_it): Add prototype declaration.
-	(usage, fatal): Likewise.
-
-	* xexit.c (_xexit_cleanup): Add prototype.
-
-	* strerror.c (init_error_tables): Declare.
-
-Fri Mar 28 11:43:20 1997  H.J. Lu  <hjl@lucon.org>
-
-	* functions.def: Add DEF of vasprintf, and DEFFUNC of strsignal.
-	* strsignal.c: Only define strsignal if NEED_strsignal.
-	* Makefile.in (REQUIRED_OFILES): Remove vasprintf.o.
-	* configure.in: Add NEED_strsignal to xconfig.h.  Add vasprintf.o
-	to xneeded-list.
-	* config/mh-cygwin32 (HDEFINES): Add -DNEED_strsignal.
-	(EXTRA_OFILES): Define to vasprintf.o.
-	* config/mh-windows (HDEFINES): Add -DNEED_strsignal.
-	(EXTRA_OFILES): Add vasprintf.o.
-	* config/mt-vxworks5 (vxconfig.h): Define NEED_strsignal.
-	(vxneeded-list): Add vasprintf.o.
-
-Thu Mar 20 17:02:09 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* objalloc.c: Include <stdio.h>.
-
-Mon Mar 17 19:23:11 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* objalloc.c: New file.
-	* Makefile.in (CFILES): Add objalloc.c
-	(REQUIRED_OFILES): Add objalloc.o.
-	(objalloc.o): New target.
-
-Sat Mar 15 18:49:41 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* obstack.c: Update to current FSF version.
-
-Fri Mar 14 14:18:47 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* cplus-dem.c: Add prototypes for all static functions.
-	(mystrstr): Make static.  Make arguments and result const.
-	(cplus_match): Remove; not used.
-
-Tue Mar 11 14:20:31 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
-
-	* cplus-dem.c (gnu_special): Call demangled_fund_type for other
-	__t* symbols.
-
-Tue Mar 11 15:41:21 1997  H.J. Lu  <hjl@lucon.org>
-
-	* spaces.c: Declare malloc and free properly.
-	* strsignal.c (init_signal_tables): Add prototype.
-	* xatexit.c (_xexit_cleanup): Add parameter declarations.
-
-Wed Feb 19 15:43:24 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
-
-	* Makefile.in (lneeded-list): If alloca.o is needed, xexit.o is
-	also required because of xmalloc.o.
-
-Fri Feb 14 13:43:38 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* strsignal.c: Unconditionally redefine sys_siglist around the
-	inclusion of the system header files.
-
-Thu Feb 13 22:01:04 1997  Klaus Kaempf  <kkaempf@progis.de>
-
-	* makefile.vms: Remove 8 bit characters.  Update to latest
-	gcc release.
-
-Tue Feb  4 11:52:19 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* strsignal.c: Use NEED_sys_siglist instead of
-	LOSING_SYS_SIGLIST.
-	* config.table: Don't use mh-lynxos.
-	* config/mh-lynxos: Remove.
-
-Thu Jan 16 14:51:03 1997  Bob Manson  <manson@charmed.cygnus.com>
-
-	* cplus-dem.c: Fix indenting; make identical to the copy
-	in GCC.
-	(do_type, case 'M'): Check for a template as well as a class.
-
-Thu Dec 19 13:51:33 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
-
-	* config/mt-vxworks5 (vxneeded-list): Remove sigsetmask.o, since
-	vxworks 5.[0-3] all have sigsetmask in them; the one provided by
-	libiberty is incorrect, as well.
-
-Mon Dec  2 15:03:42 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* alloca.c (alloca): When compiled with an ANSI/ISO compiler,
-	alloca takes a size_t argument, not just unsigned.
-
-Mon Nov 18 15:42:08 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* cplus-dem.c: Note that this file also lives in GCC.
-
-Mon Nov 18 15:19:00 1996  Dawn Perchik  <dawn@critters.cygnus.com>
-
-	* alloca.c: Remove include of libiberty.h for hpux.
-	* argv.c:  Replace defs from libiberty.h.
-	* spaces.c: Put back externs from removed from libiberty.h.
-	* vasprintf.c: Remove include of libiberty.h for hpux.
-
-Mon Nov 18 14:08:00 1996  Dawn Perchik  <dawn@critters.cygnus.com>
-
-	* cplus-dem.c: Checking in again; last checkin filed due to sticky tag.
-
-Wed Nov 13 08:22:00 1996  Dawn Perchik  <dawn@critters.cygnus.com>
-
-	* cplus-dem.c: Revert last two commits due to conflicts with
-	hpux system headers.
-
-Wed Nov 13 08:22:00 1996  Dawn Perchik  <dawn@critters.cygnus.com>
-
-	* alloca.c, argv.c, spaces.c, strcasecmp.c, vasprintf.c, vprintf.c:
-	Revert last commit due to conflicts with hpux system headers.
-
-Wed Nov 13 10:36:50 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* cplus-dem.c (x{m,re}alloc): Make declarations compatibile with
-	libiberty.h when compiled with a standard compiler.
-
-Tue Nov 12 16:31:00 1996  Dawn Perchik  <dawn@critters.cygnus.com>
-
-	* alloca.c: Include libiberty.h for definition of xmalloc.
-	Don't redefine NULL.
-	* argv.c: Move prototypes to libiberty.h.
-	* cplus-dem.c: Include libiberty.h for definition of xmalloc.
-	Don't redefine NULL.
-	Use casts to eliminate compiler warnings.
-	* spaces.c: Remove prototypes for malloc and free which are
-	already in libibrty.h.
-	* strcasecmp.c: Use casts to eliminate compiler warnings.
-	* vasprintf.c: Include libiberty.h for definition of malloc.
-	Don't redefine NULL.
-	* vprintf.c: Include stdarg.h if __STDC__.
-
-Fri Oct 11 15:42:12 1996  Stu Grossman  (grossman@critters.cygnus.com)
-
-	* config/mh-windows:  Add strcasecmp.o to EXTRA_OFILES.
-
-Fri Oct 11 11:16:31 1996  Stan Shebs  <shebs@andros.cygnus.com>
-
-	* mpw.c (mpwify_filename): Rewrite to simplify, and to handle
-	upward components correctly.
-
-Tue Oct  8 08:55:34 1996  Stu Grossman  (grossman@critters.cygnus.com)
-
-	* config.table, config/mh-windows:  Add support for building under
-	MSVC (the Microsoft build environment).
-
-Mon Oct  7 10:50:27 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* fnmatch.c: Undef const if not __STDC__.
-
-Thu Oct  3 13:46:39 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* fnmatch.c: New file.
-	* Makefile.in (CFILES): Add fnmatch.c.
-	(REQUIRED_OFILES): Add fnmatch.o.
-	(fnmatch.o): New target.
-
-Wed Sep 18 14:49:13 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* cplus-dem.c (demangle_template): Fix handling of address args.
-	(gnu_special): Handle type_info stuff.
-
-Fri Sep 13 17:52:55 1996  Stan Shebs  <shebs@andros.cygnus.com>
-
-	* mpw.c (DebugPI): Make settable from the env var DEBUG_PATHNAMES.
-	(mpwify_filename): Handle "::/" case.
-
-Thu Sep 12 13:30:40 1996  Geoffrey Noer  <noer@cygnus.com>
-
-	* config/mh-cygwin32: new file (need -DNEED_basename and
-		-DNEED_sys_siglist for native NT rebuilding)
-	* config.table (*-*-cygwin32): new entry
-	* choose-temp.c: bring in sync with gcc (revert Aug 17 change)
-
-Thu Aug 29 16:48:45 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* config.table (i[345]86-*-*): Recognize i686 for pentium pro.
-
-Tue Aug 27 13:47:58 1996  Stan Shebs  <shebs@andros.cygnus.com>
-
-	* pexecute.c (pexecute) [MPW]: Remove old bogus code that
-	messed with arguments that included a '/', add escape chars
-	to double quotes, remove const decl from arg that Mac
-	compilers don't seem to like.
-
-Sat Aug 17 04:44:27 1996  Geoffrey Noer  <noer@cygnus.com>
-
-	* pexecute.c: Update test for win32 (&& ! cygwin32).
-	* choose-temp.c: fix WIN32 preprocessor defines
-
-Thu Aug 15 12:26:48 1996  Stan Shebs  <shebs@andros.cygnus.com>
-
-	* mpw-make.sed: Add @DASH_C_FLAG@ and @SEGMENT_FLAG({Default})@
-	to editing of default makefile rule.
-
-Sun Aug 11 21:03:27 1996  Stu Grossman  (grossman@critters.cygnus.com)
-
-	* alloca-norm.h:  Include <malloc.h> if _WIN32.
-	* argv.c:  Include non-prototyped decls for malloc and string
-	functions if ! _WIN32 or if __GNUC__.
-
-Thu Aug  8 12:42:40 1996  Klaus Kaempf  <kkaempf@progis.de>
-
-	* config.h-vms: New file.
-	* makefile.vms: Use it.
-
-Wed Aug  7 17:16:12 1996  Stu Grossman  (grossman@critters.cygnus.com)
-
-	* getopt.c (_getopt_internal):  If argc is 0, just return (before
-	we reference *argv and segfault).
-
-Mon Aug  5 01:29:08 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* Makefile.in (distclean): Add multilib.out.
-
-Thu Jul 18 17:40:55 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* alloca-norm.h: Change #ifdef sparc to #if defined (sparc) &&
-	defined (sun).  From Andrew Gierth <ANDREWG@microlise.co.uk>.
-
-Mon Jul  1 13:40:44 1996  Ken Raeburn  <raeburn@cygnus.com>
-
-	Tue May 28 15:29:03 1996  Pat Rankin  <rankin@eql.caltech.edu>
-
-	* vmsbuild.com (REQUIRD_OFILES): Add choose-temp.o and xstrdup.o.
-
-	Thu Jan 25 18:20:04 1996  Pat Rankin  <rankin@eql.caltech.edu>
-
-	* vmsbuild.com: Changes to handle DEFFUNC(on_exit).
-	(do_ofiles): Allow nonexistent source file in pass 3.
-	(chk_deffunc): New routine.
-
-Tue Jun 25 19:24:43 1996  Doug Evans  <dje@canuck.cygnus.com>
-
-	* pexecute.c (PEXECUTE_VERBOSE): Define.
-	(MPW pexecute): Check flags & PEXECUTE_VERBOSE instead of verbose_flag.
-
-Tue Jun 25 23:11:48 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)
-
-	* Makefile.in (docdir): Removed.
-
-Tue Jun 25 23:01:07 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)
-
-	* Makefile.in (oldincludedir): Removed.
-
-Tue Jun 25 22:50:07 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)
-
-	* Makefile.in (datadir): Set to $(prefix)/share.
-
-Thu Jun 20 21:17:52 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* cplus-dem.c (demangle_arm_pt): Reindent.  Avoid endless loop by
-	checking for errors from do_type.
-
-Tue Jun 18 14:36:19 1996  Klaus Kaempf  <kkaempf@progis.de>
-
-	* makefile.vms: New file.
-	* xmalloc.c: If VMS, include <stdlib.h> and <unixlib.h> rather
-	than declaring malloc, realloc, and sbrk.
-
-Mon Jun 10 13:17:17 1996  Doug Evans  <dje@canuck.cygnus.com>
-
-	* pexecute.c: New file.
-
-Wed Jun  5 16:57:45 1996  Richard Henderson  <rth@tamu.edu>
-
-	* xmalloc.c: Declare sbrk.
-
-Sat May  4 05:08:45 1996  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
-
-	* alloca-norm.h:  Add SPARCworks cc compatible __builtin_alloca
-	declaration.
-
-Mon Apr 22 18:41:49 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* xstrerror.c: Include <stdio.h>.
-
-Sun Apr 21 11:55:12 1996  Doug Evans  <dje@canuck.cygnus.com>
-
-	* Makefile.in (CFILES): Add atexit.c.
-
-Sun Apr 21 09:50:09 1996  Stephen L Moshier  (moshier@world.std.com)
-
-	* choose-temp.c: Include sys/types.h before sys/file.h for sco3.2v5.
-
-Wed Apr 17 11:17:55 1996  Doug Evans  <dje@canuck.cygnus.com>
-
-	* choose-temp.c: Don't #include sys/file.h ifdef NO_SYS_FILE_H.
-	#include <stdio.h>
-	* config/mt-vxworks5 (HDEFINES): Define NO_SYS_FILE_H.
-
-Tue Apr 16 11:27:16 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* Makefile.in (lneeded-list): If alloca.o is needed, so is xmalloc.o.
-	Reverts Feb 8, 1995 change.
-
-Mon Apr 15 12:53:26 1996  Doug Evans  <dje@canuck.cygnus.com>
-
-	* choose-temp.c: New file.
-	* Makefile.in (CFILES): Add choose-temp.c.
-	(REQUIRED_OFILES): Add choose-temp.o.
-
-Sat Apr 13 14:19:30 1996  Stu Grossman  (grossman@critters.cygnus.com)
-
-	* floatformat.c (floatformat_to_double):  Don't bias exponent when
-	handling zero's, denorms or NaNs.
-
-Thu Apr 11 13:36:56 1996  Stu Grossman  (grossman@critters.cygnus.com)
-
-	* floatformat.c (floatformat_to_double):  Fix bugs with handling
-	numbers with fractions < 32 bits.
-
-Mon Apr  8 14:48:34 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* config.table: Permit --enable-shared to specify a list of
-	directories.
-
-Tue Mar 19 22:02:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* cplus-dem.c (demangle_template): Fix for non-mangled pointer
-	arguments.
-
-Fri Mar  8 17:24:18 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* configure.in: If srcdir is `.' and with_target_subdir is not
-	`.', then set MULTISRCTOP before calling config-ml.in.
-
-Thu Mar  7 13:37:10 1996  Stan Shebs  <shebs@andros.cygnus.com>
-
-	* mpw.c (mpw_open): Add debugging output option.
-
-Wed Mar  6 17:36:03 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* cplus-dem.c (demangle_template): Fix for address-of-extern arguments.
-
-Tue Feb 27 12:00:50 1996  Raymond Jou  <rjou@mexican.cygnus.com>
-
-	* mpw.c (mpwify_filename): Change 6 to 5 in
-	strncmp (unixname, "/tmp/", 5).
-
-Tue Feb 20 10:55:53 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* cplus-dem.c (demangle_template): Initialize is_bool.  Correctly
-	handle 0 as a pointer value parameter.
-
-Mon Feb  5 16:41:44 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* Makefile.in (all): Depend upon required-list.
-	(required-list): New target.
-	(clean): Remove required-list.
-
-Wed Jan 31 10:19:41 1996  Steve Chamberlain  <sac@slash.cygnus.com>
-
-	* win32.c: Deleted.
-	* config.table (i386-*-win32): Deleted.
-	* config/mh-i386win32: Deleted.
-
-Thu Jan 18 11:34:17 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* cplus-dem.c (cplus_demangle_opname): Change opname parameter to
-	const char *.
-	(cplus_mangle_opname): Change return type and opname parameter to
-	const char *.  Don't cast return value.
-
-Tue Jan 16 12:13:11 1996  Stan Shebs  <shebs@andros.cygnus.com>
-
-	* mpw.c: Include Timer.h, in order to get m68k Microseconds trap
-	definition.
-
-Wed Jan  3 13:15:04 1996  Fred Fish  <fnf@cygnus.com>
-
-	* obstack.c: Update copyright to 1996.
-	(_obstack_memory_used): Define new function.  Called via
-	obstack_memory_used macro.
-
-Thu Dec 28 11:39:40 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* xstrdup.c: New file.
-	* Makefile.in (CFILES): Add xstrdup.c.
-	(REQUIRED_OFILES): Add xstrdup.o.
-	(xstrdup.o): New target.
-
-Mon Dec 11 18:18:52 1995  Mike Stump  <mrs@cygnus.com>
-
-	* atexit.c: New stub to provide atexit on systems that have
-	on_exit, like SunOS 4.1.x systems.
-	* functions.def (on_exit, atexit): Ditto.
-
-Mon Dec 11 15:42:14 1995  Stan Shebs  <shebs@andros.cygnus.com>
-
-	* mpw.c (mpw_abort): Remove decl.
-	(mpw_access): Move debugging printf.
-
-Sat Dec  2 01:25:23 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* config.table: Consistently use ${host} rather than ${xhost} or
-	${target}.
-	* configure.in: Don't bother to set ${xhost} before calling
-	config.table.
-
-Tue Nov 28 14:16:57 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
-
-	* Makefile.in (.c.o): Use test instead of the left bracket, to
-	avoid problems with some versions of make.
-
-Tue Nov 28 11:45:17 1995  Stan Shebs  <shebs@andros.cygnus.com>
-
-	* mpw-make.sed: Fix INCDIR edit to work with Nov 14 change.
-
-Tue Nov 21 11:26:34 1995  Fred Fish  <fnf@rtl.cygnus.com>
-
-	* config/mh-hpux: Remove.  It was only used to define EXTRA_OFILES,
-	which was set to just alloca.o, which is now automatically marked
-	as needed by the autoconfiguration process.
-
-Tue Nov 21 14:15:06 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* config.table: Check ${with_cross_host} rather than comparing
-	${host} and ${target}.
-
-Thu Nov 16 14:34:42 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* configure.in: If with_target_subdir is empty, set xhost to
-	${host} rather than ${target} before calling config.table.
-
-Tue Nov 14 01:38:30 1995  Doug Evans  <dje@canuck.cygnus.com>
-
-	* Makefile.in (MULTITOP): Deleted.
-	(MULTISRCTOP, MULTIBUILDTOP): New.
-	(FLAGS_TO_PASS): Delete INCDIR.
-	(INCDIR): Add $(MULTISRCTOP).
-	(install_to_libdir): Add $(MULTISUBDIR).  Call $(MULTIDO).
-	* configure.in: Delete call to cfg-ml-com.in.  Call config-ml.in
-	instead of cfg-ml-pos.in.
-	(cross-compile check): Change to test for with_target_subdir.
-	(EXTRA_LINKS): Delete.
-
-Sun Nov 12 12:13:04 1995  Stan Shebs  <shebs@andros.cygnus.com>
-
-	* mpw-make.sed: Add getpagesize.c.o to needed-list.
-	* mpw.c [USE_MW_HEADERS]: Conditionalize compiling of
-	functions that are supplied by Metrowerks libraries.
-	(fstat): Clean up descriptor->pointer conversion code.
-	(InstallConsole, etc): Empty definitions, for when linking
-	with SIOUX.
-
-Sun Nov  5 19:25:27 1995  Per Bothner  <bothner@kalessin.cygnus.com>
-
-	* Makefile.in (FLAGS_TO_PASS):  Also pass PICFLAGS.
-	(.c.o):  Stylistic change.
-
-Thu Nov  2 12:06:29 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* strtol.c, strtoul.c: Don't include <stdlib.h>.  From
-	phdm@info.ucl.ac.be (Philippe De Muyter).
-
-Wed Nov  1 11:59:36 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* configure.in: Correct sed call.
-
-Mon Oct 30 13:03:45 1995  Per Bothner  <bothner@kalessin.cygnus.com>
-
-	* configure.in:  Clean up / simplify for native.
-
-	* configure.in:  Merge in stuff from ../xiberty/configure.in.
-	* Makefile.in (CC):  Add definition (so it can be overrridden
-	by ../configure).
-
-Tue Oct 24 17:57:27 1995  Stan Shebs  <shebs@andros.cygnus.com>
-
-	* mpw-make.sed: Leave strerror.c.o in standard list of functions.
-	* mpw.c (R_OK, ENOENT, EACCESS, ENOSYS): Remove.
-	(link): Remove useless definition with error return.
-	(last_microseconds, warn_if_spin_delay, record_for_spin_delay):
-	Use UnsignedWide type for microsecond counts.
-
-Thu Oct 19 10:52:07 1995  Michael Meissner  <meissner@wogglebug.tiac.net>
-
-	* memcmp.c (memcmp): Argument types are const void *, not void
-	*const.
-
-	* strncasecmp.c (strncasecmp): Include ansidecl.h/stdarg.h, not
-	sys/types.h.
-	* strcasecmp.c (strcasecmp): Ditto.
-
-Tue Oct 10 11:03:24 1995  Fred Fish  <fnf@cygnus.com>
-
-	* Makefile.in (BISON):  Remove macro.
-
-Tue Sep 26 15:06:46 1995  Stan Shebs  <shebs@andros.cygnus.com>
-
-	* Makefile.in (HFILES): Add default empty definition.
-	* mpw-config.in (config.h): Only update if changed.
-	* mpw-make.in: Remove.
-	* mpw-make.sed: New file, edits Makefile.in into MPW makefile.
-	* mpw.c: Remove semi-clone of strerror code.
-	(sys_nerr, sys_errlist): Define here.
-	(Microseconds): Only define as A-line trap if m68k Mac.
-
-Wed Sep 20 12:53:32 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* Makefile.in (maintainer-clean): New synonym for distclean.
-
-Mon Aug 28 19:47:52 1995  Per Bothner  <bothner@kalessin.cygnus.com>
-
-	* config.table:  For host, generalize rs6000-ibm-aix*
-	to *-ibm-aix* so we also include powerpc.
-
-Tue Aug 22 03:18:05 1995  Ken Raeburn  <raeburn@kr-laptop.cygnus.com>
-
-	Fri Jun 16 18:35:40 1995  Pat Rankin  (rankin@eql.caltech.edu)
-
-	* xstrerror.c: New file.
-	* Makefile.in, vmsbuild.com: Compile it.
-
-Mon Jul 31 12:16:32 1995  steve chamberlain  <sac@slash.cygnus.com>
-
-	* config.table (i386-*-win32): New.
-
-Fri Jul 21 11:35:52 1995  Doug Evans  <dje@canuck.cygnus.com>
-
-	* Makefile.in (MULTITOP): New variable.
-	(MULTIDIRS, MULTISUBDIR, MULTIDO, MULTICLEAN): Likewise.
-	(all): Add multilib support.
-	(install_to_tooldir, *clean): Likewise.
-
-Mon Jul 10 11:47:27 1995  Ken Raeburn  <raeburn@cygnus.com>
-
-	* makefile.dos (OBJS): Add hex.o.  From DJ Delorie.
-
-Fri Jun 30 17:28:59 1995  Pat Rankin  (rankin@eql.caltech.edu)
-
-	* vmsbuild.com:  create "new-lib.olb", build libiberty under that
-	name, and then make it become "liberty.olb" when done, so that an
-	incomplete build attempt never leaves behind something which looks
-	like a complete library.
-
-Thu Jun 29 00:22:02 1995  Steve Chamberlain  <sac@slash.cygnus.com>
-
-	* config/mh-i386pe: New file for PE hosts.
-	* config.table: Understand PE hosts.
-
-Wed Jun 28 19:13:23 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
-
-	* cplus-dem.c: Update from gcc.
-
-	* argv.c, dummy.c: If __STDC__, #include "alloca-conf.h" after
-	<stddef.h>.
-	* alloca-norm.h: If __STDC__, declare alloca with its parameter.
-
-Thu Jun 22 18:57:47 1995  Stan Shebs  <shebs@andros.cygnus.com>
-
-	* mpw-make.in (ALL_CFLAGS): Define NEED_basename.
-	* mpw.c: Only test DebugPI once whenever printing debug info.
-	(mpwify_filename): If filename is /tmp/foo, change it into :_foo,
-	also fix to not write on input filename buffer.
-	(mpw_access): Use stat() instead of open(), works for directories
-	as well as files.
-
-Mon Jun 19 00:33:22 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
-
-	* Makefile.in: Massage broken shells that require 'else true'.
-
-Sat Jun 17 23:21:58 1995  Fred Fish  <fnf@cygnus.com>
-
-	* alloca-norm.h: Declare alloca as type "PTR" to match functions.def.
-	Declare __builtin_alloca in the sparc case, as argv.c did.
-	* argv.c: Replace inline version of alloca-norm.h at start of file with
-	a #include of alloca-conf.h.  Precede it with an include of ansidecl.h
-	because alloca-norm.h needs to declare alloca as "PTR".
-
-Mon Jun 12 14:24:26 1995  Steve Chamberlain  <sac@slash.cygnus.com>
-
-	* win32.c: New file.
-
-Fri Jun  9 15:16:14 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
-
-	* dummy.c: #include "alloca-conf.h".
-
-Wed Jun  7 11:46:23 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
-
-	* Makefile.in (mostlyclean): Remove stamp-picdir.
-	(clean): Don't.
-
-Mon Jun  5 18:46:06 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
-
-	* config.table (frags): Use toplevel pic frags.
-
-	* Makefile.in (PICFLAG): New macro.
-	(all): Depend on stamp-picdir.
-	(needed-list): Ditto.
-	(.c.o): Also build pic object.
-	(stamp-picdir): New rule.
-	(mostlyclean): Remove pic.
-	(clean): Remove stamp-picdir.
-
-Fri Mar 24 16:55:48 1995  Pat Rankin  (rankin@eql.caltech.edu)
-
-	* vmsbuild.com (config.h): Add `#define NEED_basename'.
-
-Tue May 23 10:12:46 1995  Per Bothner  <bothner@kalessin.cygnus.com>
-
-	* clock.c, getopt.c, strtod.c, vsprintf.c:  Change from using LGPL
-	to libio-style copyright.
-	* getpagesize.c:  Remove FSF copyright.
-
-Sat May 20 12:30:23 1995  Ken Raeburn  <raeburn@kr-laptop.cygnus.com>
-
-	Added improved VMS support from Pat Rankin:
-
-	Fri Mar 17 18:40:36 1995  Pat Rankin  (rankin@eql.caltech.edu)
-
-	* vmsbuild.com:  new file.
-
-	* getpagesize.c (getpagesize):  implement for VMS;
-	* strerror.c (strerror, strerrno, strtoerrno):  add rudimentary
-	support for EVMSERR.
-
-Thu May 18 17:01:42 1995  Ken Raeburn  <raeburn@kr-laptop.cygnus.com>
-
-	Wed May 10 14:28:16 1995 Richard Earnshaw (rearnsha@armltd.co.uk)
-
-	* floatformat.c (floatformat_arm_ext): Define.
-
-Tue May 16 13:30:59 1995  Per Bothner  <bothner@kalessin.cygnus.com>
-
-	* basename.c, bcmp.c, getcwd.c, insque.c, rename.c, sigsetmask.c,
-	strerror.c, strsignal.c:  Remove FSF copyright.
-	* sigsetmask.c: #include <sys/types.h> - seems to be needed by ISC.
-
-Mon May 15 19:53:17 1995  Per Bothner  <bothner@kalessin.cygnus.com>
-
-	* bcopy.c, bzero.c, memcmp.c, memcpy.c, memset.c, strchr.c,
-	strrchr.c, strstr.c, vfork.c:  Remove FSF Copyright, because this
-	might contaminate libstdc++ with the LGPL.  (OK'd by RMS 11 Oct 94.)
-	* strchr.c, strrchr.c:  Add cast to suppress const warning.
-
-Thu May  4 14:36:42 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
-
-	* cplus-dem.c: Use const instead of CONST.  Don't include
-	ansidecl.h directly.
-
-Wed Apr 19 01:30:27 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
-
-	* cplus-dem.c: Don't include libiberty.h.  Do declare xmalloc and
-	xrealloc.
-	(-DMAIN): Don't rely on an externally-defined version number;
-	instead, require the version number to be defined as a
-	preprocessor macro.  Handle the RS/6000 leading dot.  Define
-	xmalloc, xrealloc and fatal.  Don't strip a leading underscore
-	if we couldn't demangle the word.
-
-Tue Apr  4 13:03:51 1995  Stan Shebs  <shebs@andros.cygnus.com>
-
-	(Old mpw.c change descriptions retained for informational value.)
-	* mpw.c (warning_threshold): Default to .4 sec.
-	(overflow_count, current_progress): New globals.
-	(warn_if_spin_delay): Include current progress type,
-	such as program name, in message.
-	(mpw_start_progress): Set current_progress variable from arg.
-	(mpw_end_progress): Report spin delays by power-of-two-size
-	buckets instead of constant-size buckets.
-
-	* mpw.c: Clean up formatting, types, returns, etc.
-	(ENOSYS): Define.
-	(mpw_fread, mpw_fwrite): Define.
-	(sleep): Define correctly.
-
-	* mpw.c: New code to implement cursor spinning support.
-	(umask): New function.
-	(mpw_fopen, mpw_fseek, stat, fstat): Call PROGRESS.
-
-	* mpw.c (mpw_basename, mpw_mixed_basename): New functions, find
-	basenames for MPW and MPW/Unix filenames.
-	(mpw_special_init): New function, calls Macsbug if desired.
-
-	* mpw.c: Add GPL notice.
-	(mpwify_filename): Add more transformations.
-	(mpw_fopen): Call mpwify_filename on file names.
-	(rename): Remove.
-	(chdir, getcwd): Add simple definitions.
-
-	* mpw.c: Random cleanups, remove unused code bits.
-	Added copy of strerror.c for gcc's use.
-	(stat, fstat, _stat): New versions based on Guido van Rossum code.
-
-	* mpw.c (mpw_fseek): Make it work correctly when doing SEEK_CUR.
-
-	* mpw.c (stat): Remove hack definition, get from sys/stat.h.
-	(fork, vfork, etc): Print error messages if called.
-	(getrusage, sbrk, environ, isatty, link, utime, mkdir, rmdir,
-	rename, chown): Define.
-
-	* mpw-config.in: New file, MPW version of configure.in.
-	* mpw-make.in: New file, MPW version of Makefile.in.
-	* mpw.c: New file, MPW compatibility routines.
-
-Fri Mar 24 14:10:30 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* basename.c: Include config.h before checking for NEED_basename.
-
-Thu Mar 23 19:09:54 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
-
-	* functions.def: Add DEFFUNC for basename.
-
-	* basename.c: Only define basename if NEED_basename.
-
-Thu Mar 16 13:36:05 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
-
-	* config.table: Fix --enable-shared logic for native builds.
-
-Mon Mar 13 11:05:11 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
-
-	* cplus-dem.c (demangle_template): Demangle bool literals properly.
-
-Mon Mar  6 23:57:28 1995  Stu Grossman  (grossman@cygnus.com)
-
-	* strtol.c strtoul.c:  Replace these with less buggy versions from
-	NetBSD.  (strtoul in particular couldn't handle base 16.)
-
-Wed Mar  1 15:59:01 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* config/mt-vxworks5 (HDEFINES): Define NO_SYS_PARAM_H.
-
-	* clock.c: If NO_SYS_PARAM_H is defined, don't include
-	<sys/param.h>.
-	* getcwd.c, getpagesize.c, getruntime.c: Likewise.
-
-Fri Feb 17 15:40:55 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* getruntime.c (get_run_time): Don't assume that CLOCKS_PER_SEC is
-	a number; ANSI appears to permit any expression, including a
-	function call.
-
-	* config.table (*-*-vxworks5*): Use mt-vxworks5 when configuring
-	xiberty.
-	* config/mt-vxworks5: New file.
-
-Thu Feb  9 14:19:45 1995  Ian Lance Taylor  <ian@cygnus.com>
-
-	* basename.c (basename): Change argument to be const.
-
-Wed Feb  8 18:06:52 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
-
-	* Makefile.in (lneeded-list): Don't worry about xmalloc.
-
-Sun Jan 15 00:40:36 1995  Jeff Law  (law@snake.cs.utah.edu)
-
-	* Makefile.in (distclean): Delete xhost-mkfrag.
-
-Thu Jan 12 16:54:18 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
-
-	* Makefile.in (lneeded-list): If alloca.o is needed, so is xmalloc.o.
-
-Wed Jan 11 22:39:56 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>
-
-	* hex.c: New file.
-	* Makefile.in (REQUIRED_OFILES, CFILES): List it.
-	(hex.o): Add dependencies.
-
-	* cplus-dem.c (demangle_prefix): For GNU style constructor and
-	destructor names, try demangling the remainder of the string.
-
-Wed Dec 28 00:49:15 1994  Ian Lance Taylor  <ian@tweedledumb.cygnus.com>
-
-	* vasprintf.c (int_vasprintf): New static function.
-	(vasprintf): Use int_vasprintf.  Removes assumption that va_list
-	is assignment compatible.
-
-Sat Nov  5 19:29:12 1994  Jason Merrill  (jason@phydeaux.cygnus.com)
-
-	* Makefile.in (LIBCFLAGS): New variable.
-	(FLAGS_TO_PASS): Pass it.
-	(.c.o): Use it.
-
-Thu Nov  3 19:09:47 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>
-
-	* getopt.c, getopt1.c: Do compile these functions under Linux,
-	since many native versions are based on glibc but are buggy.
-
-Mon Oct 24 15:16:46 1994  Per Bothner  <bothner@kalessin.cygnus.com>
-
-	* vasprintf.c:  Make 'format' arg be const, to avoid a mismatch
-	with prototype in GNU libc.  Support stdarg.h as well as varargs.h.
-
-Tue Oct 11 17:48:27 1994  Jason Merrill  (jason@phydeaux.cygnus.com)
-
-	* Makefile.in (REQUIRED_OFILES): Add vasprintf.o.
-	* functions.def: Remove vasprintf.
-
-Wed Sep 14 17:04:55 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
-
-	* xmalloc.c (first_break): New static variable.
-	(xmalloc_set_program_name): Record sbrk (0) in first_break.
-	(xmalloc): If memory allocation fails, try to report how much
-	memory was allocated by the program up to this point.
-	(xrealloc): Likewise.
-
-Sun Sep 04 17:58:10 1994  Richard Earnshaw (rwe@pegasus.esprit.ec.org)
-
-	* Makefile.in (ERRORS_CC): New variable, defaulted to $(CC).  Use it
-	when linking dummy.
-	* config.table: Add host RISCiX Makefile frag.
-	* config/mh-riscix: New file.
-
-Thu Aug 25 17:29:44 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
-
-	* Makefile.in (FLAGS_TO_PASS): Define.
-	($(RULE1)): Use $(FLAGS_TO_PASS).
-
-Wed Aug 24 17:08:47 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
-
-	* vasprintf.c: Include <string.h>.
-	(vasprintf): Add casts to void for va_arg to avoid gcc warnings.
-	* xatexit.c: Declare malloc.
-
-Fri Aug 19 15:29:12 1994  Kung Hsu  (kung@mexican.cygnus.com)
-
-	* cplus-dem.c (demangle_args): Fix a bug in previous patch (the
-	one below).
-
-Thu Aug 18 14:37:14 1994  Kung Hsu  (kung@mexican.cygnus.com)
-
-	* cplus-dem.c (demangle args): Handle ARM repeat encoding where
-	the type index is greater than 9.
-
-Wed Aug 17 16:13:49 1994  Kung Hsu  (kung@mexican.cygnus.com)
-
-	* cplus-dem.c (demangle_qualified): accept optional '_' between
-	qualified name. This is baecause the template name may end with
-	numeric and can mixed up with the length of next qualified name.
-
-Wed Aug  3 05:52:14 1994  D. V. Henkel-Wallace  (gumby@cygnus.com)
-
-	* config/mt-sunos4: Use our standard location for cross-includes
-	and cross-libs when the target is also a "host" environment (ie no
-	newlib; includes and such don't belong to us).  This is specific
-	to the Cygnus Support environment.
-
-Tue Aug  2 15:25:12 1994  Kung Hsu  (kung@mexican.cygnus.com)
-
-	* cplus-dem.c (demangle_template): demangle as xxx<'Q'> not
-	xxx<ch=81>.
-
-Mon Aug  1 17:02:48 1994  Kung Hsu  (kung@mexican.cygnus.com)
-
-	* cplus-dem.c (main): flush stdout to make pipe work.
-
-Sat Jul 16 12:56:32 1994  Stan Shebs  (shebs@andros.cygnus.com)
-
-	* config.table (*-*-cxux7*):  Recognize.
-	* floatformat.c (floatformat_m88110_ext) [HARRIS_FLOAT_FORMAT]:
-	Harris-specific float format.
-	* config/mh-cxux7: New file.
-
-Wed Jun 29 00:26:17 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
-
-	* cplus-dem.c (demangle_template):  Make sure that the result of
-	consume_count doesn't index beyond the end of the string.
-
-Mon Jun 20 23:54:37 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
-
-	* cplus-dem.c (gnu_special):  Handle vtable mangling of gcc-2.4.5 and
-	earlier. Improve test for new vtable mangling. Change output back
-	to `virtual table'.
-
-Mon Jun 20 11:37:30 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
-
-	* obstack.c: Always compile this code, even if using the GNU
-	library.  Avoids problems with relatively recent binary
-	incompatibility.
-
-Thu Jun 16 17:54:01 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* cplus-dem.c: Include libiberty.h.
-	(xmalloc, xrealloc, free): Don't declare.
-	(strstr): Don't declare parameters.
-	(xmalloc, xrealloc): Don't define.
-	(long_options): Add no-strip-underscores.
-	(main): Call xmalloc_set_program_name.  Pass n in short options to
-	getopt_long.  Handle option 'n' to not strip underscores.
-	(usage): Mention -n and --no-strip-underscores.
-
-Sun Jun 12 01:37:09 1994  Jason Merrill  (jason@deneb.cygnus.com)
-
-	* cplus-dem.c (demangle_template): Separate consecutive >'s with a
-	space.
-	(gnu_special): Demangle template and qualified names in a vtable name.
-
-Fri May 27 12:27:52 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
-
-	From gas-2.3 and binutils-2.4 net releases:
-
-	Wed May 11 22:32:00 1994  DJ Delorie (dj@ctron.com)
-
-	* makefile.dos: [new] Makefile for dos/go32
-	* configure.bat: update for latest files
-	* msdos.c: remove some functions now in libc.a
-
-Fri May 20 18:53:32 1994  Per Bothner  (bothner@kalessin.cygnus.com)
-
-	* cplus-dem.c (gnu_special):  Recognize thunks, as well as
-	the new naming style for vtables (when -fvtable-thunks).
-
-Wed May 18 13:34:06 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* Makefile.in (XTRAFLAGS): Don't define.
-	(.c.o, dummy.o): Don't use XTRAFLAGS.
-	($(RULE1)): Don't pass XTRAFLAGS down in recursive call.
-
-Fri May 13 16:02:12 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* vasprintf.c: New file.
-	* Makefile.in, functions.def: Add it.
-
-Fri May 13 16:20:28 1994  Jason Merrill  (jason@deneb.cygnus.com)
-
-	* cplus-dem.c (demangle_fund_type): Grok bool.
-
-Fri May  6 14:44:21 1994  Steve Chamberlain  (sac@cygnus.com)
-
-	* config.table: Add go32
-	* config/mh-go32: New template.
-
-Fri May  6 11:01:59 1994  D. V. Henkel-Wallace  (gumby@rtl.cygnus.com)
-
-	* config.table, config/mt-sunos4: config for when sun4 is cross target.
-
-Mon Apr 11 00:54:33 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
-
-	* getopt.c [not __GNU_LIBRARY__] [__GCC__] [not __STDC__]:
-	Declare strlen to return int.  Don't include stddef.h.
-
-Fri Apr  1 00:38:17 1994  Jim Wilson  (wilson@mole.gnu.ai.mit.edu)
-
-	* getopt.c: Delete use of IN_GCC to control whether
-	stddef.h or gstddef.h is included.
-
-Thu Apr 14 14:00:56 1994  Kung Hsu  (kung@mexican.cygnus.com)
-
-	* cplus-dem.c (demangle_signature): Fix a bug in template function
-	type numbering.
-
-Wed Apr 13 17:23:03 1994  Kung Hsu  (kung@mexican.cygnus.com)
-
-	* cplus-dem.c (demangle_signature): Fix template function with arm
-	style argument type number, Tn.
-
-Wed Apr 13 17:11:15 1994  Jason Merrill  (jason@deneb.cygnus.com)
-
-	* cplus-dem.c (optable): Add new[] and delete[].
-
-Fri Apr  8 11:21:42 1994  Jim Kingdon  (kingdon@deneb.cygnus.com)
-
-	* argv.c (buildargv): Don't produce empty argument just because
-	there is trailing whitespace.
-
-Wed Apr  6 11:42:14 1994  Kung Hsu  (kung@mexican.cygnus.com)
-
-	* cplus-dem.c (demangle_template): fix 'Q' qualified name bug.
-	Handle 'p' same as 'P'.
-	* cplus-dem.c (do_type): Handle 'p' same as 'P'.
-
-Sat Mar 26 12:00:13 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
-
-	* floatformat.c (get_field, put_field):  Fix off by one error in
-	little endian case.
-
-Thu Mar 24 10:40:19 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* floatformat.c (floatformat_from_double): Pass unsigned char *,
-	not char *, to put_field.
-
-Fri Mar 18 12:34:33 1994  Per Bothner  (bothner@kalessin.cygnus.com)
-
-	* memmove.c:  Re-wrote;  placed in public domain.
-
-Wed Mar 16 10:33:07 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* cplus-dem.c (demangle_prefix): If ARM demangling, don't treat
-	__Q* as a constructor.
-
-Mon Mar 14 12:26:02 1994  Ian Lance Taylor  (ian@cygnus.com)
-
-	* ieee-float.c: Removed; no longer used.
-	* Makefile.in: Changed accordingly.
-
-Mon Mar  7 12:28:17 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* floatformat.c (get_field): Removed unused local variable i.
-	(put_field): Removed unused local variable i.
-
-Sun Feb 27 21:50:11 1994  Jim Kingdon  (kingdon@deneb.cygnus.com)
-
-	* floatformat.c: New file, intended to replace ieee-float.c.
-	* Makefile.in: Change accordingly.
-
-Thu Feb 24 11:51:12 1994  David J. Mackenzie  (djm@rtl.cygnus.com)
-
-	* getopt.c: Remove #ifdef GETOPT_COMPAT and #if 0 code.
-	 (_getopt_initialize): New function, broken out of _getopt_internal.
-	 (_getopt_internal):
-	 If long_only and the ARGV-element has the form "-f", where f is
-	 a valid short option, don't consider it an abbreviated form of
-	 a long option that starts with f.  Otherwise there would be no
-	 way to give the -f short option.
-
-Thu Feb 10 14:44:16 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
-
-	* getopt.c [not __GNU_LIBRARY__] [__GNUC__] [not IN_GCC]:
-	Test just __STDC__, not emacs.
-
-Wed Feb  9 00:14:00 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
-
-	* getopt.c [not __GNU_LIBRARY__] [__GNUC__] [not IN_GCC]
-	[emacs] [not __STDC__]: Don't include stddef.h.  Don't declare strlen.
-
-Fri Dec 24 19:43:00 1993  Noah Friedman  (friedman@nutrimat.gnu.ai.mit.edu)
-
-	* getopt.c (_NO_PROTO): Define before config.h is included.
-
-Mon Sep 20 15:59:03 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
-
-	* getopt.c, getopt1.c [emacs || CONFIG_BROKETS]: Include
-	<config.h> only under these, else "config.h".
-
-Thu Aug 12 18:16:49 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
-
-	* getopt.c, getopt1.c [HAVE_CONFIG_H]: Include
-	<config.h> instead of "config.h".
-
-Sun Feb 20 17:17:01 1994  Ian Lance Taylor  (ian@lisa.cygnus.com)
-
-	* concat.c: Check ANSI_PROTOTYPES rather than __STDC__ to decide
-	whether to use prototypes or not.
-	* strerror.c (const): Never undefine; let ansidecl.h handle it.
-	* strsignal.c (const): Likewise.
-
-Thu Feb 17 13:27:35 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* xatexit.c (_xexit_cleanup): Declare as extern; don't initialize.
-	Merging common and initialized variables need not be supported by
-	ANSI C compilers.
-	(xatexit): Initialize _xexit_cleanup if not already set.
-	* xexit.c: Comment fix.
-
-Wed Feb 16 01:15:36 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* xmalloc.c: Don't declare xexit; it's declared in libiberty.h.
-	(xrealloc): If oldmem is NULL, allocate with malloc, rather than
-	assuming that realloc works correctly.
-
-Tue Feb 15 09:26:16 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
-
-	* concat.c, ieee-float.c:  Replace inclusion of <string.h>
-	with explicit function declarations, as recommended by Ian Taylor.
-
-Sat Feb 12 10:31:11 1994  David J. Mackenzie  (djm@rtl.cygnus.com)
-
-	* xmalloc.c (xmalloc, xrealloc): Use PTR and size_t throughout.
-	(malloc, realloc): Declare.
-
-Thu Feb 10 17:08:19 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* argv.c, basename.c: Include ansidecl.h and libiberty.h.
-	* concat.c, fdmatch.c, getruntime.c, spaces.c: Likewise.
-	* strerror.c, strsignal.c, xatexit.c, xexit.c: Likewise.
-	* xmalloc.c: Likewise.
-	* concat.c: Don't declare xmalloc.  If __STDC__, use <stdarg.h>
-	macros, not <varargs.h> macros.
-	* spaces.c (spaces): Make return type const.  Don't crash if
-	malloc returns NULL.
-	* strerror.c (struct error_info): Make name and msg fields const.
-	(error_names): Make const.
-	(strerrno): Make const.
-	(strtoerrno): Make argument const.
-	* strsignal.c (struct signal_info): Make name and msg fields
-	const.
-	(signal_names, sys_siglist): Make const.
-	(strsignal, strsigno): Make const.
-	(strtosigno): Make argument const.
-	* xatexit.c: Declare parameter types.
-	* xmalloc.c (name): Make const.
-	(xmalloc_set_program_name): Make argument const.
-	* Makefile.in (INCDIR): Define.
-	(.c.o): Use $(INCDIR).
-	(dummy.o): Likewise.
-	(argv.o, basename.o): New targets; depend on libiberty.h.
-	(concat.o, fdmatch.o, getruntime.o, spaces.o): Likewise.
-	(strerror.o, strsignal.o, xatexit.o, xexit.o): Likewise.
-	(xmalloc.o): Likewise.
-	(cplus-dem.o): New target; depend on demangle.h.
-	(getopt.o, getopt1.o): New targets; depend on getopt.h.
-	(ieee-float.o): New target; depend on ieee-float.h.
-	(obstack.o): New target; depend on obstack.h.
-
-Tue Feb  8 05:29:08 1994  David J. Mackenzie  (djm@thepub.cygnus.com)
-
-	Handle obstack_chunk_alloc returning NULL.  This allows
-	obstacks to be used by libraries, without forcing them
-	to call exit or longjmp.
-	* obstack.c (_obstack_begin, _obstack_begin_1, _obstack_newchunk):
-	If CALL_CHUNKFUN returns NULL, set alloc_failed, else clear it.
-	(_obstack_begin, _obstack_begin_1): Return 1 if successful, 0 if not.
-
-Tue Feb  8 00:32:28 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
-
-	* concat.c, ieee-float.c:  Include <string.h>.
-
-Sun Feb  6 21:28:46 1994  David J. Mackenzie  (djm@thepub.cygnus.com)
-
-	* xmalloc.c (xmalloc_set_program_name): New function.
-	(xmalloc, xrealloc): Include the name in the error message, if set.
-
-	* Replace atexit.c with xatexit.c.
-	* Makefile.in (CFILES), functions.def: Change references.
-
-Sat Feb  5 14:02:32 1994  Stan Shebs  (shebs@andros.cygnus.com)
-
-	* getruntime.c (get_run_time): Use getrusage or times if
-	HAVE_GETRUSAGE or HAVE_TIMES are defined.
-
-Fri Feb  4 15:49:38 1994  David J. Mackenzie  (djm@thepub.cygnus.com)
-
-	* atexit.c: New file.
-	* Makefile.in (CFILES), functions.def: Add it.
-	* xexit.c: New file.
-	* Makefile.in (CFILES, REQUIRED_OFILES): Add it.
-	* xmalloc.c (xmalloc, xrealloc): Call xexit instead of exit.
-	Change request for 0 bytes into request for 1 byte.
-
-Wed Feb  2 11:36:49 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* xmalloc.c (xmalloc, xrealloc): Print size using %lu, and cast to
-	unsigned long, to avoid warnings.
-
-Fri Jan 28 17:49:06 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
-
-	* dummy.c: Don't include time.h ever; always define clock_t as
-	"unsigned long".  Until gcc/fixincludes ensures that clock_t
-	exists, __STDC__ isn't a sufficient test.  And if clock() doesn't
-	exist, clock_t probably doesn't either.
-
-Mon Jan 24 11:52:31 1994  Stan Shebs  (shebs@andros.cygnus.com)
-
-	* clock.c, getruntime.c: New files.
-	* Makefile.in: Add to file lists.
-	* functions.def (clock): Add to list.
-	* dummy.c (time.h): Add if __STDC__.
-	(clock_t): #define as "unsigned long" if not __STDC__.
-
-Tue Jan 11 11:27:44 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* strtod.c: Declare atof.  From edler@jan.ultra.nyu.edu (Jan
-	Edler).
-
-Tue Dec 28 14:17:30 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* Makefile.in (errors): Use CFLAGS as well as LDFLAGS when
-	linking.
-
-Fri Dec 17 12:26:07 1993  Kung Hsu  (kung@cirdan.cygnus.com)
-
-	* cplus-dem.c (demangle_arm_pt): New function.  Common code
-	for ARM template demangling.
-	* cplus-dem.c (demangle_class_name): Use demangle_arm_pt.
-	* cplus-dem.c (demangle_prefix): Likewise.
-
-Tue Nov 30 15:47:48 1993  Jason Merrill  (jason@deneb.cygnus.com)
-
-	* cplus-dem.c (cplus_demangle_opname): Add CONST to please gcc.
-
-Sat Nov 27 11:05:50 1993  Fred Fish  (fnf@cygnus.com)
-
-	Merge changes from tom@basil.icce.rug.nl (Tom R.Hageman)
-	* strerror.c, strsignal.c:  As a small space optimization, don't
-	include messages when they aren't actually used.
-
-	Merge changes from takefive.co.at!joe (Josef Leherbauer)
-	* cplus-dem.c (demangle_prefix, demangle_function_name,
-	cplus_demangle_opname):  Fixes for systems where cplus_marker
-	is something other than '$'.
-
-Fri Nov 26 13:51:11 1993  Per Bothner  (bothner@kalessin.cygnus.com)
-
-	* waitpid.c:  Simple-minded approcimation to waitpid
-	using vanilla wait.
-	* functions.def, Makefile.in:  Update accordingly,
-
-Thu Nov 18 18:01:15 1993  Kung Hsu  (kung@cirdan.cygnus.com)
-
-	* cplus-dem.c(demangle_template): fix bug template instantiation
-	with value of user defined type.
-
-Wed Nov 17 18:30:21 1993  Kung Hsu  (kung@cirdan.cygnus.com)
-
-	* cplus-dem.c(cplus_demangle_opname): add the subject new function
-	to support unified search of operator in class.
-
-Wed Nov 10 09:47:22 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	gcc -Wall lint:
-	* strtoul.c (strtoul): use "(digit = *s) != '\0'" not just
-	"digit = *s" as condition in while loop.
-
-Tue Nov  9 15:52:22 1993  Mark Eichin  (eichin@cygnus.com)
-
-	* Makefile.in: pass SHELL to recursive make
-
-Thu Nov  4 12:09:26 1993  Per Bothner  (bothner@kalessin.cygnus.com)
-
-	* vfprintf.c, vprintf.c, vsprintf.c:  Make format arg
-	be (const char*), for ANSI (and gcc w/fixproto) consistency.
-
-Thu Nov  4 08:29:04 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* config.table: Make *-*-hiux* use mh-hpux.
-
-Fri Oct 22 07:53:15 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* config.table: Add * to end of all OS names.
-
-Tue Oct 19 17:12:01 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
-
-	* Makefile.in (lneeded-list): ensure that object file names are
-	  not duplicated, as multiple instances of the same object file in
-	  a library causes problems on some machines
-
-Mon Oct 18 21:59:28 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* strcasecmp.c, strncasecmp.c: Change u_char to unsigned char.
-
-Fri Oct 15 22:17:11 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
-
-	* strncasecmp.c: new file, implements strncasecmp
-	* strcasecmp.c: new file, implement strcasecmp
-
-	* Makefile.in (CFILES): list these two new source files
-
-	* functions.def: add strcasecmp and strncasecmp entries
-
-Fri Oct 15 14:53:05 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* strtoul.c (strtoul), strtol.c (strtol): Handle overflow
-	according to ANSI C.
-
-Thu Oct 14 16:34:19 1993  Kung Hsu  (kung@cirdan.cygnus.com)
-
-	* cplus-dem.c: add support of ARM global constructor/destructor,
-	and 'G' for passing record or union in parameter.
-
-Wed Oct 13 13:36:19 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* Makefile.in: Fix comment to clarify that stuff in REQUIRED_OFILES
-	should not be in functions.def.
-
-Wed Oct 13 13:13:38 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
-
-	* functions.def: Removed xmalloc.  Stuff in REQUIRED_OFILES should
-	not be in functions.def.
-
-Mon Oct  4 18:26:39 1993  Kung Hsu  (kung@cirdan.cygnus.com)
-
-	* cplus-dem.c: change globl constructor/destructor to proper name
-
-Tue Sep 28 18:11:07 1993  Kung Hsu  (kung@cirdan.cygnus.com)
-
-	* cplus-dem.c: fix bug in constructor/destructor
-
-Tue Sep 28 16:20:49 1993  Kung Hsu  (kung@cirdan.cygnus.com)
-
-	* cplus-dem.c: support both old and new _vt$... vtbl mangled names
-
-Fri Sep 24 19:07:16 1993  Jason Merrill  (jason@deneb.cygnus.com)
-
-	* cplus-dem.c: Fix demangle_template prototype
-
-Fri Sep 24 17:32:55 1993  Kung Hsu  (kung@cirdan.cygnus.com)
-
-	* cplus-dem.c: fix template demangling
-	* cplus-dem.c: fix const type demangling
-	* cplus-dem.c: fix constructor/destructor, virtual table,
-	qualifier, global constructor/destructor demangling
-
-Wed Sep  1 23:13:11 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* strsignal.c, strerror.c: Use fully-bracketed initializer to
-	keep gcc -Wall happy.
-
-Fri Aug 27 10:30:09 1993  Jason Merrill  (jason@deneb.cygnus.com)
-
-	* cplus-dem.c (do_type): Add CONSTS to make gcc happy with last
-	patch.
-
-Fri Aug 27 11:24:54 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	Patch from Paul Flinders:
-	* cplus-dem.c (do_type): Deal with arrays.
-
-Tue Aug 24 14:23:50 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* cplus-dem.c (demangle_qualified: Deal with GNU format for more
-	than 9 classes.
-
-Wed Aug 18 19:50:29 1993  Jason Merrill  (jason@deneb.cygnus.com)
-
-	* Makefile.in (dummy.o): Redirect to /dev/null to avoid "variable
-	not initialized" warnings under HP/UX
-
-Sun Aug 15 20:42:40 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* strerror.c: Move include of stdio.h after sys_errlist #define.
-	Also remove NULL definition (stdio.h always defines NULL, so it
-	never did anything but clutter up the code).
-
-Sat Aug 14 14:21:49 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
-
-	* Makefile.in, functions.def: handle xmalloc.c
-
-	* xmalloc.c: provide xmalloc and xrealloc functions
-
-Thu Aug 12 17:38:57 1993  David J. Mackenzie  (djm@thepub.cygnus.com)
-
-	* cplus-dem.c: Fix a comment.
-
-Sat Aug  7 13:56:35 1993  David J. Mackenzie  (djm@thepub.cygnus.com)
-
-	* getopt1.c: Declare const the way getopt.c does.
-
-Fri Aug  6 17:03:13 1993  David J. Mackenzie  (djm@thepub.cygnus.com)
-
-	* obstack.c, alloca.c: Update from FSF.
-	* getopt.c, getopt1.c: Update to current FSF version, which
-	doesn't use alloca.
-
-Tue Jul 27 14:03:57 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
-
-	* Makefile.in (demangle): Add the target with a message saying
-	where demangle went.
-
-Mon Jul 26 15:49:54 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* Makefile.in: Remove obsolete `demangle' target.
-
-Thu Jul 22 08:31:01 1993  Fred Fish  (fnf@deneb.cygnus.com)
-
-	* cplus-dem.c (arm_special):  Apply patch from arg@lucid.com to
-	avoid infinite loop on vtbl symbols with disambiguating "junk"
-	tacked on the end.
-
-Mon Jul 19 14:10:37 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
-
-	* strsignal.c: work around some systems losing definitions of
-	sys_siglist
-
-	* config/mh-lynxos: this system has a losing definition of
-	sys_siglist
-
-	* config.table: use mh-lynxos for *-*-lynxos
-
-Mon Jul 19 17:08:52 1993  Ken Raeburn  (raeburn@rtl.cygnus.com)
-
-	* config.table: Add support for HPPA BSD hosts.
-
-	* config/mh-hpbsd: New file.
-
-Mon Jul 12 18:00:40 1993  K. Richard Pixley  (rich@cygnus.com)
-
-	* Makefile.in (TAGS): make work when srcdir != objdir.
-
-Sun Jun 27 15:35:31 1993  David J. Mackenzie  (djm@thepub.cygnus.com)
-
-	* cplus-dem.c (main): Add long options, including --help and
-	--version.
-	(usage): New function from code in main.
-
-Tue Jun 22 11:37:38 1993  Per Bothner  (bothner@deneb.cygnus.com)
-
-	* config.table:  New shell scipt, sourced by both ./configure,in
-	and ../xiberty/configure.in, to avoid maintainance lossages.
-	* configure.in and ../xiberty/configure.in:  Use config.table.
-
-	* configure.in: Don't use mh-aix for AIX 3.2, only for 3.1.
-	* configure.in: Map *-*-irix* (except irix4) to mh-sysv.
-	* ../xiberty/configure.in:  Update from ./configure.in.
-
-Tue Jun 15 17:05:31 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
-
-	* Makefile.in: remove parentdir support
-
-Wed May 26 12:59:09 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
-
-	* cplus-dem.c (xrealloc):  Match definition with prototype.
-
-Tue May 25 14:27:51 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
-
-	* cplus-dem.c (demangle_prefix):  Demangle cfront
-	local variables as an extension to ARM demangling.
-
-Fri May 21 09:53:57 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-	* ieee-float.c: Don't require pointers to double to be aligned.
-
-Tue May 18 17:12:10 1993  Fred Fish  (fnf@cygnus.com)
-
-	(merge changes from dlong@cse.ucsc.edu)
-	* cplus-dem.c (consume_count):  Simplify.
-	* cplus-dem.c (arm_pt, demangle_class_name):  New functions.
-	* cplus-dem.c (various):  Calls to arm_pt, demangle_class_name.
-
-	* cplus-dem.c (xmalloc, xrealloc, strstr):  Make extern decls into
-	full prototypes.
-	* cplus-dem.c (free):  Add prototype.
-	* cplus-dem.c (optable):  Fully bracketize initializer.
-
-Fri May 14 17:13:05 1993  Per Bothner  (bothner@cygnus.com)
-
-	* cplus-dem.c:  Whether initial underscores are stripped
-	depends on the external variable prepends_underscore
-	(which is generated by the binutils Makefile).
-
-Fri May 14 07:32:20 1993  Ken Raeburn  (raeburn@deneb.cygnus.com)
-
-	* cplus-dem.c (mop_up, arm_special): Remove some unused variables.
-
-Tue May  4 20:31:59 1993  Fred Fish  (fnf@cygnus.com)
-
-	* cplus-dem.c (consume_count):  Return zero if arg does not
-	start with digit, and don't consume any input.
-
-Tue May  4 08:10:28 1993  Jim Kingdon  (kingdon@cygnus.com)
-
-	* Makefile.in (demangle): Use ${srcdir} not $^.
-
-	* strtod.c: New file, needed at least for BSD 4.3.
-
-Sun May  2 11:30:42 1993  Fred Fish  (fnf@cygnus.com)
-
-	* strsignal.c (sys_siglist):  For ANSI compilations, type is
-	"const char *const".  Also remove conditionalization on __STDC__
-	since const is defined away for non-ANSI.
-
-Wed Apr 28 19:29:55 1993  Ken Raeburn  (raeburn@deneb.cygnus.com)
-
-	* configure.in: Recognize *-*-hpux.
-	* config/mh-hpux: New file.
-
-Tue Apr 27 15:22:19 1993  Per Bothner  (bothner@cygnus.com)
-
-	* tmpnam.c:  Added ANSI tmpnam() function.
-	* functions.def, Makefile.in:  Update accordingly.
-
-Tue Apr 27 13:38:38 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
-
-	* cplus-dem.c (demangle_function_name): Get the demangling of
-	stop__1A right.
-
-Fri Apr 16 23:48:24 1993  Jim Kingdon  (kingdon at calvin)
-
-	* cplus-dem.c: Declare strstr return type.
-
-Fri Mar 26 12:01:26 1993  Jim Kingdon  (kingdon@cygnus.com)
-
-	* strsignal.c: Add some AIX signals.
-
-Thu Mar 25 15:17:23 1993  Ian Lance Taylor  (ian@cygnus.com)
-
-	* Makefile.in (MAKEOVERRIDES): Define to be empty.
-
-Wed Mar 24 01:59:25 1993  david d `zoo' zuhn  (zoo at poseidon.cygnus.com)
-
-	* Makefile.in: add installcheck & dvi targets
-
-Thu Mar 18 14:05:44 1993  Per Bothner  (bothner@rtl.cygnus.com)
-
-	* ieee-float.c:  New file, moved from ../gdb (since it is
-	needed by ../opcode/m68k-dis.c).
-
-Tue Mar  2 17:47:31 1993  Fred Fish  (fnf@cygnus.com)
-
-	* cplus-dem.c:  Replace all references to cfront with ARM.
-
-Fri Feb 26 00:17:07 1993  Per Bothner  (bothner@rtl.cygnus.com)
-
-	* cplus-dem.c:  Fix main program (when compiled with -DMAIN)
-	to be more useful as a filter.
-
-Sat Feb 20 21:41:39 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
-
-	* Makefile.in (install_to_libdir, install_to_tooldir): Go into the
-	destination directory before running $(RANLIB), in case that
-	program tries to create a file in the current directory as part of
-	its work.
-
-Thu Feb 18 23:00:19 1993  John Gilmore  (gnu@cygnus.com)
-
-	* strsignal.c (sys_siglist):  Remove yet another *%^&%&$# "const"
-	because BSD 4.4 lacks one.  Isn't this fun?
-
-Thu Feb 18 11:24:25 1993  Fred Fish  (fnf@cygnus.com)
-
-	* cplus-dem.c (demangle_signature):  Set func_done after
-	demangling a template.
-	* cplus-dem.c (demangle_template):  Fix several small bugs
-	in demangling GNU style templates.
-	* cplus-dem.c (demangle_prefix):  Fix for templates in GNU
-	style constructors.
-	* cplus-dem.c (gnu_special):  Fix for templates in GNU style
-	static data members.
-
-Tue Feb 16 17:28:35 1993  Fred Fish  (fnf@cygnus.com)
-
-	* cplus-dem.c (demangle_signature):  Modify to include type
-	modifiers like static and const in remembered types.
-
-Thu Feb 11 22:20:47 1993  Fred Fish  (fnf@cygnus.com)
-
-	* cplus-dem.c (demangled_qualified):  Add new parameter that tells
-	whether to prepend or append the qualifiers.
-	* cplus-dem.c (string_prepends):  Used now, remove #if 0.
-	* cplus-dem.c (demangle_signature):  Call demangle_qualified
-	with prepending.
-	* cplus-dem.c (gnu_special):  Recognize static data members that
-	use qualified names.
-	* cplus-dem.c (demangle_qualified):  Accumulate qualifiers in a
-	temporary buffer and the prepend or append them to the result,
-	as specified by the new "append" flag.
-	* cplus-dem.c (do_type):  Call demangled_qualified with
-	appending.
-
-Mon Dec 28 10:47:19 1992  Ken Raeburn  (raeburn@cygnus.com)
-
-	* strsignal.c (signal_table): Now const.
-	(init_signal_tables): Variable eip now points to const.
-
-	* strerror.c (error_table): Now const.
-	(init_error_tables): Variable eip now points to const.
-
-Tue Dec 15 15:36:50 1992  Per Bothner  (bothner@cygnus.com)
-
-	* memchr.c (memchr):  New (ANSI standard) function.
-	* Makefile.in, functions.def:  Added memchr.
-	* Makefile.in (AR_FLAGS): Use rc instad of non-standard cq.
-
-Wed Dec  2 22:49:10 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
-
-	* getopt.c: remove use of USG around <alloca.h>, which never meant
-	anything anyway
-
-	* config/mh-{aix,apollo68,ncr3000,sysv,sysv4}: removed definitions
-	of USG and USGr4
-
-Thu Nov 19 03:09:33 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
-
-	* cplus-dem.c (demangle_fund_type): Recognize `w', a wide character;
-	it's now a type according to the ANSI X3J16 working paper; output
-	"wchar_t" for it.
-	(demangle_template): Accept `w' as an integral type.
-	(xmalloc, xrealloc): Use `char *', not `PTR'.  Cast calls to their
-	counterparts malloc and realloc to `char *'.
-	(main): Exit with a 0 status.
-	* Makefile.in (demangle): Don't expect the user to define
-	DEMANGLE, instead force to be cplus-dem.c.  Look in $(srcdir)/../include
-	for demangle.h.  Pass it any HDEFINES or XTRAFLAGS.
-
-Wed Nov 18 18:56:20 1992  John Gilmore  (gnu@cygnus.com)
-
-	* Makefile.in (AR_FLAGS):  Avoid verbosity.
-	* config/mh-sysv4:  Remove AR_FLAGS override, use INSTALL=cp,
-	replace USGr4 with HAVE_SYSCONF.
-	* config/mh-solaris:  Remove; mh-sysv4 works now.
-	* getpagesize.c:  Replace USGr4 with HAVE_SYSCONF.
-	* configure.in:  Simplify host matching table, remove separate
-	solaris config file.
-
-Sun Nov 15 09:35:16 1992  Fred Fish  (fnf@cygnus.com)
-
-	* configure.in (i[34]86-*-solaris2*):  Add, use mh-sysv4.
-
-Tue Nov  3 21:27:03 1992  Brendan Kehoe  (brendan@cygnus.com)
-
-	* cplus-dem.c (xmalloc, xrealloc): Add decls.
-	(remember_type): Don't cast xmalloc.
-	(string_need): Likewise; don't cast xrealloc either.
-
-Fri Oct 23 08:52:01 1992  Ian Lance Taylor  (ian@cygnus.com)
-
-	* Makefile.in, functions.defs, rename.c: added simple
-	implementation of rename, since some binutils programs use it.
-
-Thu Oct 15 15:18:22 1992  Per Bothner  (bothner@cygnus.com)
-
-	* strsignal.c:  Add appropriate 'const' to sys_siglist
-	extern declaration (if __STDC__).  (Needed for Linux.)
-	* strsignal.c (strsignal): Add cast to remove const-ness.
-
-Fri Oct  9 03:22:55 1992  John Gilmore  (gnu@cygnus.com)
-
-	* Makefile.in (needed.awk, needed2.awk):  Remove erroneous \'s
-	before "'s, diagnosed by BSD 4.4 awk.
-
-Thu Oct  8 15:25:12 1992  Ian Lance Taylor  (ian@cygnus.com)
-
-	* Makefile.in: create config.h and needed-list through $(CONFIG_H)
-	and $(NEEDED_LIST), to give some hooks for xiberty.
-
-Thu Oct  1 23:31:42 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
-
-	* configure.in: use cpu-vendor-triple instead of nested cases
-
-Wed Sep 30 11:26:59 1992  Per Bothner  (bothner@rtl.cygnus.com)
-
-	* Makefile.in, argv.c, basename.c, bcmp.c, bcopy.c, bzero.c,
-	concat.c, cplus-dem.c, fdmatch.c, getcwd.c, getopt.c, getopt1.c,
-	getpagesize.c, insque.c, memcmp.c, memcpy.c, memmove.c, memset.c,
-	obstack.c, sigsetmask.c, spaces.c, strchr.c, strerror.c,
-	strrchr.c, strsignal.c, strstr.c, vfork.c, vsprintf.c:
-	Convert from using GPL to LGPL.
-
-Sat Sep 26 04:01:30 1992  John Gilmore  (gnu@cygnus.com)
-
-	* Makefile.in (errors):  Leave dummy.o and dummy around so that
-	we can see how the needed list was generated (it's sometimes wrong).
-	(mostlyclean):  Remove them.
-
-Mon Sep 21 14:50:42 1992  Ian Lance Taylor  (ian@cygnus.com)
-
-	* getcwd.c: supply a default if MAXPATHLEN is not defined.
-
-	* config/mh-irix4: set EXTRA_OFILES to alloca.o, from WRS.
-
-Wed Sep  9 12:41:48 1992  Ian Lance Taylor  (ian@cygnus.com)
-
-	* Makefile.in: Use XTRAFLAGS when compiling, so that xiberty works
-	when cross-compiling.
-
-Thu Sep  3 13:29:39 1992  K. Richard Pixley  (rich@sendai.cygnus.com)
-
-	* cplus-dem.c: (demangle_prefix): reduction in strength of strstr
-	  as a time optimization.
-
-	* cplus-dem.c (cplus_demangle): remove strpbrk test.  Appears to
-	  be more expensive than simply demangling.
-
-	* cplus-dem.c (cplus_match): new function.
-
-Tue Sep  1 15:24:04 1992  Per Bothner  (bothner@rtl.cygnus.com)
-
-	* cplus-dem.c:  #include <stdio.h>, to define NULL.
-	Define current_demangling_style.
-
-Sun Aug 30 17:58:19 1992  Per Bothner  (bothner@rtl.cygnus.com)
-
-	* cplus-dem.c:  New file, moved from ../gdb.
-	* cplus-dem.c (set_cplus_marker_for_demangling):  New exported
-	function, to avoid compiling in target-dependency for CPLUS_MARKER.
-	* cplus-dem.c (cplus_demangle):  Allow demangling style option
-	to be passed as a parameter, but using the global variable
-	current_demangling_style as a default.
-	* Makefile.in:  Update for cplus-dem.c
-
-Sat Aug 29 10:44:09 1992  Fred Fish  (fnf@cygnus.com)
-
-	* obstack.c:  Merge in comment changes from FSF version.  Now
-	matches the FSF version exactly.
-
-Fri Aug 28 18:39:08 1992  John Gilmore  (gnu@cygnus.com)
-
-	* obstack.c (CALL_FREEFUN):  Can't use ?: with void values (at
-	least on losing DECstations!); use if-then-else instead.
-
-Wed Aug 19 14:40:34 1992  Ian Lance Taylor  (ian@cygnus.com)
-
-	* Makefile.in: always create installation directories.
-
-Mon Aug 10 17:33:40 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
-
-       * Makefile.in: clean up definition of CFILES, more comments
-
-Sat Aug  8 23:10:59 1992  Fred Fish  (fnf@cygnus.com)
-
-	* getopt.c (my_index):  Make first arg const to match strchr,
-	which it sometimes is remapped to.
-
-Sat Aug  1 13:48:50 1992  Fred Fish  (fnf@cygnus.com)
-
-	* obstack.c (DEFAULT_ALIGNMENT):  Update to match FSF version.
-	* obstack.c (_obstack_begin):  Initialize use_extra_arg.
-	* obstack.c (_obstack_begin_1):  New, from FSF version.
-
-Mon Jul 20 21:07:58 1992  Fred Fish  (fnf@cygnus.com)
-
-	* obstack.c (CALL_CHECKFUN, CALL_FREEFUN):  Use use_extra_arg and
-	extra_arg.
-	* obstack.c (_obstack_begin):  Remove area_id and flags arguments
-	(previously added for mmalloc support, interface has changed).
-	Also convert flags usage to use use_extra_arg and maybe_empty_object.
-
-Fri Jul 10 00:41:53 1992  Fred Fish  (fnf@cygnus.com)
-
-	* argv.c:  Move expandargv inline and eliminate static variables.
-	Rewrite to always allocate in powers of two.  Fix to return an
-	argv with a single null string arg if passed a null string.
-
-Fri Jul  3 20:27:29 1992  Fred Fish  (fnf@cygnus.com)
-
-	* random.c, sigsetmask.c, strerror.c, strsignal.c:  Remove
-	"(void)" casts from function calls where the return value is
-	ignored, in accordance with GNU coding standards.
-
-Mon Jun 29 10:54:19 1992  Fred Fish  (fnf at cygnus.com)
-
-	* bcopy.c, strerror.c, strsignal.c:  Lint.
-
-Thu Jun 25 09:18:41 1992  K. Richard Pixley  (rich@rtl.cygnus.com)
-
-	* getopt.c: merge changes from make.
-
-Thu Jun 25 04:43:22 1992  John Gilmore  (gnu at cygnus.com)
-
-	* alloca.c:  Incorporate fixes from gdb/alloca.c.
-	FIXME:  Eventually move gdb's alloca configuration files here,
-	and remove gdb/alloca.c and its Makefile.in support.
-
-Tue Jun 23 21:56:30 1992  Fred Fish  (fnf@cygnus.com)
-
-	* dummy.c:  Define NOTHING to /*nothing*/, change return type
-	of main to int and return zero.
-	* functions.def:  Supply NOTHING as the fourth arg to macros
-	that don't have an explicit arg, to satisfy picky preprocessors.
-
-Wed Jun 17 18:13:58 1992  Per Bothner  (bothner@rtl.cygnus.com)
-
-	* Makefile.in:  Clean up *clean rules, as per standards.texi.
-
-Tue Jun 16 16:11:59 1992  K. Richard Pixley  (rich@rtl.cygnus.com)
-
-	* getopt.c, getopt1.c: merged largely gratuitous, mostly
-	  whitespace diffs from other prep distributions.
-
-Mon Jun 15 12:25:46 1992  Fred Fish  (fnf@cygnus.com)
-
-	* config/mh-ncr3000 (INSTALL):  Don't use /usr/ucb/install,
-	it is broken on ncr 3000's.
-
-Mon Jun 15 01:03:26 1992  John Gilmore  (gnu at cygnus.com)
-
-	* sigsetmask.c:  Rewrite.  Old one was very confused about its
-	arguments and result.  New one can't do much, but at least knows
-	what it can't do, and it's good enough for GDB's use.
-
-Sun Jun 14 15:17:40 1992  Stu Grossman  (grossman at cygnus.com)
-
-	* functions.def:  Use proper prototype for strtoul.
-
-Fri Jun 12 19:22:40 1992  John Gilmore  (gnu at cygnus.com)
-
-	* Makefile.in:  Add random.c.
-	* config/mh-*:  Use "true" rather than "echo >/dev/null" for ranlib.
-	* configure.in:  update solaris2 config.
-
-Wed Jun 10 16:31:29 1992  Fred Fish  (fnf@cygnus.com)
-
-	* random.c:  Add for random() and srandom().
-	* functions.def:  Add random
-
-Tue Jun  9 17:27:18 1992  Fred Fish  (fnf@cygnus.com)
-
-	* config/{mh-ncr3000, mh-sysv4}:  Add definition for INSTALL
-	using /usr/ucb/install.
-
-Mon Jun  1 13:20:17 1992  Per Bothner  (bothner@rtl.cygnus.com)
-
-	* strerror.c:  Kludge to guard against a conflict with
-	possible declaration of sys_errlist in errno.h.
-
-Sun May 31 15:07:47 1992  Mark Eichin  (eichin at cygnus.com)
-
-	* configure.in, config/mh-solaris: add solaris2 config support.
-
-Fri May 29 17:23:23 1992  Per Bothner  (bothner@rtl.cygnus.com)
-
-	* sigsetmask.c:  #ifdef out sigsetmask if SIG_SETMASK
-	is not defined (should be defined in signal.h, says Posix.).
-
-Mon May 18 17:35:04 1992  K. Richard Pixley  (rich@cygnus.com)
-
-	* getopt.c: merged changes from make-3.62.11.
-
-Fri May  8 14:53:07 1992  K. Richard Pixley  (rich@cygnus.com)
-
-	* getopt.c: merged changes from bison-1.18.
-
-Tue May  5 11:51:40 1992  Per Bothner  (bothner@rtl.cygnus.com)
-
-	* Makefile.in:  Don't have $(EXTRA_OFILES) depend on config.h,
-	since that introduces a circular dependency.
-	($(EXTRA_OFILES) are used to build config.h.)
-
-	* strtoul.c:  Fixes to handle non-decimal bases better.
-
-Wed Apr 22 09:27:51 1992  Fred Fish  (fnf@cygnus.com)
-
-	* config/mh-ncr3000:  Replace MINUS_G with CFLAGS.
-	* Makefile.dos:  Finish MINUS_G eradication.
-	* Makefile.in (CFILES):  Add strsignal.c.
-	* Makefile.in (REQUIRED_OFILES):  Add strerror.o strsignal.o
-	* Makefile.in (needed-list):  Split creation of errors file to
-	separate make target.
-	* Makefile.in (config.h, needed2.awk, errors):  New targets.
-	* Makefile.in (clean):  Split to multiple lines, add needed2.awk
-	and config.h.
-	* dummy.c (DEFFUNC, DEFVAR):  Add defines and undefs.
-	* functions.def (strerror):  Remove from optional list.
-	* functions.def (sys_nerr, sys_errlist, sys_siglist):  DEFVAR's
-	* functions.def (strerror, psignal):  DEFFUNC's
-	* strerror.c:  Rewrite from scratch to use sys_errlist only if
-	available, add errno_max(), add strerrno(), add strtoerrno(),
-	add test driver.
-	* strsignal.c:  New file, signal equivalent to strerror.c.
-	Uses sys_siglist if available, defines signo_max(), strsignal(),
-	strsigno(), strtosigno(), psignal(), and test driver.
-
-Mon Apr 20 20:49:32 1992  K. Richard Pixley  (rich@cygnus.com)
-
-	* Makefile.in: do not print recursion line.
-
-	* Makefile.in: allow CFLAGS to be passed in from command line.
-	  Removed MINUS_G.  Default CFLAGS to -g.
-
-Mon Apr 20 12:57:46 1992  Per Bothner  (bothner@rtl.cygnus.com)
-
-	* config/mh-aix:  New.  EXTRA_OFILES lists copysign.o,
-	so libg++ users don't have to be inconvenienced by a
-	libc.a bug (libc.a needs copysign, but doesn't define it!).
-	* configure.in:  Use config/mh-aix.
-	* strtoul.c:  Handle '-' as required by ANSI.
-	Clean up radix handling.
-	* strstr.c:  Fix buggy algorithm.
-	* Makefile.in:  Change so that ${EXTRA_OFILES} is
-	appended to needed-list (which is used by libg++).
-
-Fri Apr 10 22:51:41 1992  Fred Fish  (fnf@cygnus.com)
-
-	* configure.in:  Recognize new ncr3000 config.
-	* config/mh-ncr3000:  New config file.
-
-Wed Apr  1 23:31:43 1992  John Gilmore  (gnu at cygnus.com)
-
-	* argv.c, dummy.c:  Lint.
-
-Tue Mar 31 18:46:44 1992  Fred Fish  (fnf@cygnus.com)
-
-	* config/mh-sysv4:  New config file.
-	* configure.in (host_makefile_frag):  Set to config/mh-sysv4 for
-	host_os == sysv4.
-	* getpagesize.c:  For SVR4, use sysconf(_SC_PAGESIZE) to get
-	pagesize.
-
-Sun Mar 29 12:26:42 1992  John Gilmore  (gnu at cygnus.com)
-
-	* getopt.c:  Lint.
-
-Fri Mar 27 08:32:55 1992  Fred Fish  (fnf@cygnus.com)
-
-	* functions.def (alloca):  Fix return type and args to avoid
-	type clash with gcc's builtin alloca.
-
-Tue Mar 24 23:33:42 1992  K. Richard Pixley  (rich@cygnus.com)
-
-	* configure.in, config/mh-irix4: irix4 support.
-
-	* Makefile.in, functions.def, alloca.c: added alloca.
-
-Tue Mar 24 17:34:46 1992  Stu Grossman  (grossman at cygnus.com)
-
-	* obstack.c (CALL_FREEFUN):  Make it compile on DECstations.
-
-Thu Mar 19 13:57:42 1992  Fred Fish  (fnf@cygnus.com)
-
-	* argv.c:  Fix various external function definitions to be
-	correct in an ANSI compilation environment.
-
-Sat Mar 14 17:28:17 1992  Fred Fish  (fnf@cygnus.com)
-
-	* obstack.c:  Changes to support calling mmalloc functions,
-	which take an additional argument over malloc functions.
-
-Fri Mar  6 22:01:10 1992  K. Richard Pixley  (rich@cygnus.com)
-
-	* added check target.
-
-Thu Feb 27 22:19:39 1992  Per Bothner  (bothner@cygnus.com)
-
-	* argv.c:  #include alloca-conf.h (needed by AIX).
-
-Wed Feb 26 18:04:40 1992  K. Richard Pixley  (rich@cygnus.com)
-
-	* Makefile.in, configure.in: removed traces of namesubdir,
-	  -subdirs, $(subdir), $(unsubdir), some rcs triggers.  Forced
-	  copyrights to '92, changed some from Cygnus to FSF.
-
-Sat Feb 22 01:09:21 1992  Stu Grossman  (grossman at cygnus.com)
-
-	* argv.c:  Check in Fred's version which fixes problems with
-	alloca().
-
-Fri Feb  7 21:46:08 1992  Stu Grossman  (grossman at cygnus.com)
-
-	* makefile.dos:  Remove NUL to keep patch from failing.
-
-Thu Jan 30 22:48:41 1992  Stu Grossman  (grossman at cygnus.com)
-
-	* getopt.c (_getopt_internal):  Fix usage of enum has_arg.
-
-Mon Jan 20 18:53:23 1992  Stu Grossman  (grossman at cygnus.com)
-
-	* getopt.c, getopt1.c, ../include/getopt.h:  Get latest versions.
-
-Sat Jan 18 16:53:01 1992  Fred Fish  (fnf at cygnus.com)
-
-	* argv.c:  New file to build and destroy standard argument
-	vectors from a command string.
-
-	* Makefile.in:  Add argv.c and argv.o to appropriate macros.
-
-Fri Dec 20 12:12:57 1991  Fred Fish  (fnf at cygnus.com)
-
-	* configure.in:  Change svr4 references to sysv4.
-
-	* rindex.c:  Declare return type of externally used function
-	strrchr().
-
-Thu Dec 19 18:35:03 1991  John Gilmore  (gnu at cygnus.com)
-
-	* Makefile.in:  Remove "***" in normal output, since Make produces
-	this on errors, and it's convenient to search for.
-
-Tue Dec 17 23:21:30 1991  Per Bothner  (bothner at cygnus.com)
-
-	* memcmp.c, memcpy.c, memmove.c, memset.c, strchr.c, strrchr.c:
-	New ANSI functions.  The old non-ANSI functions (such as bcopy)
-	should be avoided.
-	* bcopy.c:  Fix to correctly handle overlapping regions.
-	* index.c, rindex.c:  Re-write in terms of strchr() and strrchr().
-	* functions.def:  Add the new functions.
-	* functions.def:  Add 4th parameter to DEF macro,
-	an ansidecl.h-style prototype.
-	* dummy.c:  Use expanded DEF macro to create a dummy function
-	call, with correct parameter types.  (This avoids some
-	complaints from gcc about predefined builtins.)
-
-	Move the functionality of config/mh-default into Makefile.in.
-	This avoid duplication, and simplifies things slightly.
-	* Makefile.in:  Tweak so we don't need config/mh-default.
-	* README:  Update.
-	* configure.in:  No longer need config/mh-default.
-	* config/mh-default:  Deleted.
-	* config/mh-sysv:  Remove lines copied from old mh-default.
-
-Tue Dec 17 05:46:46 1991  John Gilmore  (gnu at cygnus.com)
-
-	* fdmatch.c (fdmatch):  Don't compare st_rdev, which is for
-	'mknod' device numbers.
-
-Mon Dec 16 12:25:34 1991  Fred Fish  (fnf at cygnus.com)
-
-	* fdmatch.c, Makefile.in:  Add new function that takes two
-	open file descriptors and returns nonzero if they refer to
-	the same file, zero otherwise.  (used in gdb)
-
-Wed Dec 11 17:40:39 1991  Steve Chamberlain  (sac at rtl.cygnus.com)
-	From DJ:
-	* msdos.c: stub functions for dos.
-	* makefile.dos, configdj.bat: new.
-	* getopt.c: Don't include alloca-conf.h in a GO32 world.
-
-
-Tue Dec 10 04:14:49 1991  K. Richard Pixley  (rich at rtl.cygnus.com)
-
-	* Makefile.in: infodir belongs in datadir.
-
-Fri Dec  6 23:26:45 1991  K. Richard Pixley  (rich at rtl.cygnus.com)
-
-	* Makefile.in: remove spaces following hyphens because bsd make
-	  can't cope.  added standards.text support.  install using
-	  INSTALL_DATA.
-
-	* configure.in: remove commontargets as it is no longer a
-	  recognized hook.
-
-Thu Dec  5 22:46:46 1991  K. Richard Pixley  (rich at rtl.cygnus.com)
-
-	* Makefile.in: idestdir and ddestdir go away.  Added copyrights
-	  and shift gpl to v2.  Added ChangeLog if it didn't exist. docdir
-	  and mandir now keyed off datadir by default.
-
-Fri Nov 22 19:15:29 1991  John Gilmore  (gnu at cygnus.com)
-
-	* Makefile.in:  find-needed.awk does not fit in 14 chars.
-
-	* Makefile.in:  Suppress error checking when compiling the test
-	program, because Ultrix make/sh aborts there due to a bug.
-
-Fri Nov 22 12:23:17 1991  Per Bothner  (bothner at cygnus.com)
-
-	* Makefile.in:  Re-did how EXTRA_OFILES is used to be more useful.
-	* README:  Explained how the auto-configuration works,
-	and how to add new files and/or configurations.
-
-Fri Nov 22 09:45:23 1991  John Gilmore  (gnu at cygnus.com)
-
-	* strtoul.c:  Avoid defining ULONG_MAX if already defined;
-	cast a const char * to char * for pedants.
-
-	* getopt.c:  Only define "const" after local include files get to,
-	and only if they haven't defined it.
-
-Thu Nov 21 16:58:53 1991  John Gilmore  (gnu at cygnus.com)
-
-	* getcwd.c (remove getwd.c): GNU code should call getcwd().  We
-	emulate it with getwd() if available.  This avoids callers having
-	to find a MAXPATHLEN or PATH_MAX value from somewhere.
-	* Makefile.in, functions.def:  getwd->getcwd.
-	* configure.in:  Use generic case for every system.
-	* config/mh-{delta88,mach,rs6000,svr4}:  Remove.
-	* config/mh-sysv:  Use default handling, just add -DUSG.
-
-Thu Nov 14 10:58:05 1991  Per Bothner  (bothner at cygnus.com)
-
-	* Makefile.in, config/mh-default: Re-do make magic
-	so that for the default ("automatic") mode we only
-	compile the files we actually need.  Do this using
-	a recursive make:  The top-level generates the list
-	of needed files (loosely, the ones missing in libc),
-	and then passes that list to the recursive make.
-	* config/mh-mach:  Remove obsolete STRERROR-{C,O} macros.
-
-Tue Nov 12 19:10:57 1991  John Gilmore  (gnu at cygnus.com)
-
-	RS/6000 host support (grumble).
-
-	* configure.in:  Build alloca-conf.h file from alloca-norm.h
-	(everything else) or alloca-botch.h (rs/6000).
-	* Makefile.in:  Include . on the include path.
-	* getopt.c:  Use alloca-conf.h.
-	* alloca-norm.h:  How to declare alloca on reasonable machines.
-	* alloca-botch.h: How to declare alloca on braindead machines.
-
-Tue Nov 12 09:21:48 1991  Fred Fish  (fnf at cygnus.com)
-
-	* concat.c :  New file, like concat() in gdb but can take a
-	variable number of arguments rather than fixed at 3 args.  For
-	now, client applications must supply an xmalloc(), which is a
-	front end function to malloc() that deals with out-of-memory
-	conditions.
-
-	* Makefile.in:  Add concat.c and concat.o to appropriate macros.
-
-Sat Nov  9 13:29:59 1991  Fred Fish  (fnf at cygnus.com)
-
-	* config/mh-svr4:  Add sigsetmask to list of required functions.
-
-Sun Nov  3 11:57:56 1991  Per Bothner  (bothner at cygnus.com)
-
-	* vsprintf.c:  New file.
-	* functions.def, Makefile.in:  Add vsprintf.
-
-Sun Oct 27 16:31:22 1991  John Gilmore  (gnu at cygnus.com)
-
-	* configure.in, config/mh-rs6000:  Add rs/6000 host support.
-	* Makefile.in:  Compile with debug info.
-
-Fri Oct 25 17:01:12 1991  Per Bothner  (bothner at cygnus.com)
-
-	* Makefile.in, configure.in, and new files: dummy.c, functions.def,
-	config/mf-default:  Added a default configuration mode,
-	which includes into libiberty.a functions that are "missing" in libc.
-	* strdup.c, vprintf.c, vfprintf.c: New files.
-
-Thu Oct 24 02:29:26 1991  Fred Fish  (fnf at cygnus.com)
-
-	* config/hmake-svr4: New file.
-
-	* config/hmake-sysv: Add HOST_CFILES and HOST_OFILES.
-
-	* basename.c, bcmp.c, bcopy.c, bzero.c, getpagesize.c getwd.c,
-	index.c, insque.c, rindex.c, spaces.c, strstr.c, vfork.c: New
-	files containing either portable C versions or emulations using
-	native library calls.
-
-	* strerror.c:  Add copyright, internal documentation, etc.
-
-	* strtol.c:  Replace hardwired hex constants with some more
-	portable macros.  Remove illegal (according to gcc) cast.
-
-	* strtoul.c: Replace hardwired hex constant with more portable
-	macro.
-
-	* Makefile.in: Move TARGETLIB and CFLAGS where makefile fragments
-	can override them.  Add new source and object file names to CFILES
-	and OFILES respectively.
-
-	* configure.in: Add support for SVR4 makefile fragments.
-
-Tue Oct 22 19:00:23 1991  Steve Chamberlain  (steve at cygnus.com)
-
-	* Makefile.in: Move RANLIB, AR and AR_FLAGS to where they can be
-	over-ridden by config/hmake-*
-	* configure.in: added m88kcvs to sysv list
-
-Fri Oct  4 01:29:08 1991  John Gilmore  (gnu at cygnus.com)
-
-	* Makefile.in:  Most hosts need strerror, but one or two don't,
-	and they override these definitions in the host-dependent makefile
-	fragment.
-	* config/hmake-mach:  The odd man out on strerror -- it's supplied.
-	* strerror.c:  New file.
-
-	* strtol.c, strtoul.c:  Add strtol to libiberty, since Mach lacks
-	it and bfd uses it.
-	* configure.in, Makefile.in, config/hmake-mach:  Only configure
-	strtol & strotoul in on Mach.
-
-Tue Sep  3 06:36:23 1991  John Gilmore  (gnu at cygint.cygnus.com)
-
-	* obstack.c:  Merge with latest FSF version.
-
-
-Local Variables:
-version-control: never
-End:
diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
deleted file mode 100644
index a579d79..0000000
--- a/libiberty/Makefile.in
+++ /dev/null
@@ -1,1173 +0,0 @@
-#
-# Makefile
-#   Copyright (C) 1990, 91-99, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-#   Free Software Foundation
-#
-# This file is part of the libiberty library.
-# Libiberty is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# Libiberty 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
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with libiberty; see the file COPYING.LIB.  If not,
-# write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-# Boston, MA 02110-1301, USA.
-#
-
-# This file was written by K. Richard Pixley <rich@cygnus.com>.
-
-#
-# Makefile for libiberty directory
-#
-
-libiberty_topdir = @libiberty_topdir@
-srcdir = @srcdir@
-
-prefix = @prefix@
-
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-includedir = @includedir@
-target_header_dir = @target_header_dir@
-
-SHELL = @SHELL@
-
-# Multilib support variables.
-MULTISRCTOP =
-MULTIBUILDTOP =
-MULTIDIRS =
-MULTISUBDIR =
-MULTIDO = true
-MULTICLEAN = true
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-mkinstalldirs = $(SHELL) $(libiberty_topdir)/mkinstalldirs
-
-# Some compilers can't handle cc -c blah.c -o foo/blah.o.
-OUTPUT_OPTION = @OUTPUT_OPTION@
-
-AR = @AR@
-AR_FLAGS = rc
-
-CC = @CC@
-CFLAGS = @CFLAGS@
-LIBCFLAGS = $(CFLAGS)
-RANLIB = @RANLIB@
-MAKEINFO = @MAKEINFO@
-PERL = @PERL@
-
-PICFLAG =
-
-MAKEOVERRIDES =
-
-TARGETLIB = ./libiberty.a
-TESTLIB = ./testlib.a
-
-LIBOBJS = @LIBOBJS@
-
-# A configuration can specify extra .o files that should be included,
-# even if they are in libc. (Perhaps the libc version is buggy.)
-EXTRA_OFILES = 
-
-# Flags to pass to a recursive make.
-FLAGS_TO_PASS = \
-	"AR=$(AR)" \
-	"AR_FLAGS=$(AR_FLAGS)" \
-	"CC=$(CC)" \
-	"CFLAGS=$(CFLAGS)" \
-	"DESTDIR=$(DESTDIR)" \
-	"LIBCFLAGS=$(LIBCFLAGS)" \
-	"EXTRA_OFILES=$(EXTRA_OFILES)" \
-	"HDEFINES=$(HDEFINES)" \
-	"INSTALL=$(INSTALL)" \
-	"INSTALL_DATA=$(INSTALL_DATA)" \
-	"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
-	"LDFLAGS=$(LDFLAGS)" \
-	"LOADLIBES=$(LOADLIBES)" \
-	"RANLIB=$(RANLIB)" \
-	"SHELL=$(SHELL)" \
-	"prefix=$(prefix)" \
-	"exec_prefix=$(exec_prefix)" \
-	"libdir=$(libdir)" \
-	"libsubdir=$(libsubdir)" \
-	"tooldir=$(tooldir)"
-
-# Subdirectories to recurse into. We need to override this during cleaning
-SUBDIRS = testsuite
-
-# FIXME: add @BUILD_INFO@ once we're sure it works for everyone.
-all: stamp-picdir $(TARGETLIB) needed-list required-list all-subdir
-	@: $(MAKE) ; exec $(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all
-
-.PHONY: check installcheck
-check: check-subdir
-installcheck: installcheck-subdir
-
-@host_makefile_frag@
-
-INCDIR=$(srcdir)/$(MULTISRCTOP)../include
-
-COMPILE.c = $(CC) -c @DEFS@ $(LIBCFLAGS) -I. -I$(INCDIR) $(HDEFINES) @ac_libiberty_warn_cflags@
-
-# Just to make sure we don't use a built-in rule with VPATH
-.c.o:
-	false
-
-# NOTE: If you add new files to the library, add them to this list
-# (alphabetical), and add them to REQUIRED_OFILES, or
-# CONFIGURED_OFILES and funcs in configure.ac.  Also run "make maint-deps"
-# to build the new rules.
-CFILES = alloca.c argv.c asprintf.c atexit.c				\
-	basename.c bcmp.c bcopy.c bsearch.c bzero.c			\
-	calloc.c choose-temp.c clock.c concat.c cp-demangle.c		\
-	 cp-demint.c cplus-dem.c					\
-	dyn-string.c							\
-	fdmatch.c ffs.c fibheap.c floatformat.c fnmatch.c		\
-	 fopen_unlocked.c						\
-	getcwd.c getopt.c getopt1.c getpagesize.c getpwd.c getruntime.c	\
-         gettimeofday.c                                                 \
-	hashtab.c hex.c							\
-	index.c insque.c						\
-	lbasename.c							\
-	lrealpath.c							\
-	make-relative-prefix.c						\
-	make-temp-file.c md5.c memchr.c memcmp.c memcpy.c memmove.c	\
-	 mempcpy.c memset.c mkstemps.c					\
-	objalloc.c obstack.c						\
-	partition.c pexecute.c						\
-	 pex-common.c pex-djgpp.c pex-msdos.c pex-one.c			\
-	 pex-unix.c pex-win32.c						\
-         physmem.c putenv.c						\
-	random.c regex.c rename.c rindex.c				\
-	safe-ctype.c setenv.c sigsetmask.c snprintf.c sort.c spaces.c	\
-	 splay-tree.c stpcpy.c stpncpy.c strcasecmp.c strchr.c strdup.c	\
-	 strerror.c strncasecmp.c strncmp.c strrchr.c strsignal.c	\
-	 strstr.c strtod.c strtol.c strtoul.c strndup.c	strverscmp.c	\
-	ternary.c tmpnam.c						\
-	unlink-if-ordinary.c						\
-	vasprintf.c vfork.c vfprintf.c vprintf.c vsnprintf.c vsprintf.c	\
-	waitpid.c							\
-	xatexit.c xexit.c xmalloc.c xmemdup.c xstrdup.c xstrerror.c	\
-	 xstrndup.c
-
-# These are always included in the library.  The first four are listed
-# first and by compile time to optimize parallel builds.
-REQUIRED_OFILES = ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o	\
-	./alloca.o ./argv.o						\
-	./choose-temp.o ./concat.o ./cp-demint.o			\
-	./dyn-string.o							\
-	./fdmatch.o ./fibheap.o ./floatformat.o ./fnmatch.o		\
-	 ./fopen_unlocked.o						\
-	./getopt.o ./getopt1.o ./getpwd.o ./getruntime.o		\
-	./hashtab.o ./hex.o						\
-	./lbasename.o ./lrealpath.o					\
-	./make-relative-prefix.o ./make-temp-file.o			\
-	./objalloc.o ./obstack.o					\
-	./partition.o ./pexecute.o ./physmem.o				\
-	./pex-common.o ./pex-one.o @pexecute@				\
-	./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o ./strerror.o	\
-	 ./strsignal.o							\
-	./ternary.o							\
-	./unlink-if-ordinary.o						\
-	./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o	\
-	 ./xstrerror.o ./xstrndup.o
-
-# These are all the objects that configure may add to the library via
-# $funcs or EXTRA_OFILES.  This list exists here only for "make
-# maint-missing" and "make check".
-CONFIGURED_OFILES = ./asprintf.o ./atexit.o				\
-	./basename.o ./bcmp.o ./bcopy.o ./bsearch.o ./bzero.o		\
-	./calloc.o ./clock.o ./copysign.o				\
-	./_doprnt.o							\
-	./ffs.o								\
-	./getcwd.o ./getpagesize.o ./gettimeofday.o			\
-	./index.o ./insque.o						\
-	./memchr.o ./memcmp.o ./memcpy.o ./memmove.o ./mempcpy.o	\
-	 ./memset.o ./mkstemps.o					\
-	./pex-djgpp.o ./pex-msdos.o					\
-	 ./pex-unix.o ./pex-win32.o					\
-	 ./putenv.o							\
-	./random.o ./rename.o ./rindex.o				\
-	./setenv.o ./sigsetmask.o ./snprintf.o ./stpcpy.o ./stpncpy.o	\
-	 ./strcasecmp.o ./strchr.o ./strdup.o ./strncasecmp.o		\
-	 ./strncmp.o ./strndup.o ./strrchr.o ./strstr.o			\
-	 ./strtod.o ./strtol.o ./strtoul.o ./strverscmp.o		\
-	./tmpnam.o							\
-	./vasprintf.o ./vfork.o ./vfprintf.o ./vprintf.o ./vsnprintf.o	\
-	 ./vsprintf.o							\
-	./waitpid.o
-
-# These files are installed if the library has been configured to do so.
-INSTALLED_HEADERS =                                                     \
-	$(INCDIR)/ansidecl.h                                            \
-	$(INCDIR)/demangle.h                                            \
-	$(INCDIR)/dyn-string.h                                          \
-	$(INCDIR)/fibheap.h                                             \
-	$(INCDIR)/floatformat.h                                         \
-	$(INCDIR)/hashtab.h                                             \
-	$(INCDIR)/libiberty.h                                           \
-	$(INCDIR)/objalloc.h                                            \
-	$(INCDIR)/partition.h                                           \
-	$(INCDIR)/safe-ctype.h                                          \
-	$(INCDIR)/sort.h                                                \
-	$(INCDIR)/splay-tree.h                                          \
-	$(INCDIR)/ternary.h
-
-$(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS)
-	-rm -f $(TARGETLIB) pic/$(TARGETLIB)
-	$(AR) $(AR_FLAGS) $(TARGETLIB) \
-	  $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS)
-	$(RANLIB) $(TARGETLIB)
-	if [ x"$(PICFLAG)" != x ]; then \
-	  cd pic; \
-	  $(AR) $(AR_FLAGS) $(TARGETLIB) \
-	    $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \
-	  $(RANLIB) $(TARGETLIB); \
-	  cd ..; \
-	else true; fi
-
-$(TESTLIB): $(REQUIRED_OFILES) $(CONFIGURED_OFILES)
-	-rm -f $(TESTLIB)
-	$(AR) $(AR_FLAGS) $(TESTLIB) \
-	  $(REQUIRED_OFILES) $(CONFIGURED_OFILES)
-	$(RANLIB) $(TESTLIB)
-
-info: libiberty.info info-subdir
-install-info: install-info-subdir
-clean-info: clean-info-subdir
-dvi: libiberty.dvi dvi-subdir
-
-# html, install-html targets
-HTMLS = libiberty.html
-
-html: $(HTMLS)
-
-.PHONY: install-html install-html-am install-html-recursive
-
-NORMAL_INSTALL = :
-mkdir_p = mkdir -p --
- 
-html__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-
-install-html: install-html-recursive  install-html-am
-
-install-html-am: $(HTMLS)
-	@$(NORMAL_INSTALL)
-	test -z "$(htmldir)" || $(mkdir_p) "$(DESTDIR)$(htmldir)"
-	@list='$(HTMLS)'; for p in $$list; do \
-	  if test -f "$$p" || test -d "$$p"; then d=""; else d="$(srcdir)/"; fi; \
-	  f=$(html__strip_dir) \
-	  if test -d "$$d$$p"; then \
-	    echo " $(mkdir_p) '$(DESTDIR)$(htmldir)/$$f'"; \
-	    $(mkdir_p) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
-	    echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
-	    $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \
-	  else \
-	    echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \
-	    $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \
-	  fi; \
-	done
-
-install-html-recursive:
-	@failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    dot_seen=yes; \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done; \
-	if test "$$dot_seen" = "no"; then \
-	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
-	fi; test -z "$$fail"
-
-TEXISRC = \
-	$(srcdir)/libiberty.texi \
-	$(srcdir)/copying-lib.texi \
-	$(srcdir)/obstacks.texi \
-	$(srcdir)/functions.texi
-
-# Additional files that have texi snippets that need to be collected
-# and sorted.  Some are here because the sources are imported from
-# elsewhere.  Others represent headers in ../include.
-TEXIFILES = fnmatch.txh pexecute.txh
-
-libiberty.info : $(srcdir)/libiberty.texi $(TEXISRC)
-	$(MAKEINFO) -I$(srcdir) $(srcdir)/libiberty.texi
-
-libiberty.dvi : $(srcdir)/libiberty.texi $(TEXISRC)
-	texi2dvi $(srcdir)/libiberty.texi
-
-libiberty.html : $(srcdir)/libiberty.texi $(TEXISRC)
-	$(MAKEINFO) --no-split --html -I$(srcdir) -o $@ $<
-
-@MAINT@$(srcdir)/functions.texi : stamp-functions
-@MAINT@	@true
-
-@MAINT@stamp-functions : $(CFILES:%=$(srcdir)/%) $(TEXIFILES:%=$(srcdir)/%) $(srcdir)/gather-docs Makefile
-@MAINT@@HAVE_PERL@	$(PERL) $(srcdir)/gather-docs $(srcdir) $(srcdir)/functions.texi $(CFILES) $(TEXIFILES)
-@MAINT@	echo stamp > stamp-functions
-
-INSTALL_DEST = @INSTALL_DEST@
-install: install_to_$(INSTALL_DEST) install-subdir
-
-install_to_libdir: all
-	${mkinstalldirs} $(DESTDIR)$(libdir)$(MULTISUBDIR)
-	$(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)$(MULTISUBDIR)/$(TARGETLIB)n
-	( cd $(DESTDIR)$(libdir)$(MULTISUBDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n )
-	mv -f $(DESTDIR)$(libdir)$(MULTISUBDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)$(MULTISUBDIR)/$(TARGETLIB)
-	if test -n "${target_header_dir}"; then \
-	  case "${target_header_dir}" in \
-	    /*)    thd=${target_header_dir};; \
-	    *)     thd=${includedir}${MULTISUBDIR}/${target_header_dir};; \
-	  esac; \
-	  ${mkinstalldirs} $(DESTDIR)$${thd}; \
-	  for h in ${INSTALLED_HEADERS}; do \
-	    ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \
-	  done; \
-	fi
-	@$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
-
-# This is tricky.  Even though CC in the Makefile contains
-# multilib-specific flags, it's overridden by FLAGS_TO_PASS from the
-# default multilib, so we have to take LIBCFLAGS into account as well,
-# since it will be passed the multilib flags.
-MULTIOSDIR = `$(CC) $(LIBCFLAGS) -print-multi-os-directory`
-install_to_tooldir: all
-	${mkinstalldirs} $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)
-	$(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)n
-	( cd $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n; $(RANLIB) $(TARGETLIB)n )
-	mv -f $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)
-	@$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
-
-# needed-list is used by libstdc++.  NEEDED is the list of functions
-# to include there.  Do not add anything LGPL to this list; libstdc++
-# can't use anything encumbering.
-NEEDED = atexit calloc memchr memcmp memcpy memmove memset rename strchr \
-	 strerror strncmp strrchr strstr strtol strtoul tmpnam vfprintf vprintf \
-	 vfork waitpid bcmp bcopy bzero
-needed-list: Makefile
-	rm -f needed-list; touch needed-list; \
-	for f in $(NEEDED); do \
-	  for g in $(LIBOBJS) $(EXTRA_OFILES); do \
-	    case "$$g" in \
-	      *$$f*) echo $$g >> needed-list ;; \
-	    esac; \
-	  done; \
-	done
-
-# required-list was used when building a shared bfd/opcodes/libiberty
-# library.  I don't know if it used by anything currently.
-required-list: Makefile
-	echo $(REQUIRED_OFILES) > required-list
-
-stamp-picdir:
-	if [ x"$(PICFLAG)" != x ] && [ ! -d pic ]; then \
-	  mkdir pic; \
-	else true; fi
-	touch stamp-picdir
-
-.PHONY: all etags tags ls clean stage1 stage2
-
-etags tags: TAGS etags-subdir
-
-TAGS: $(CFILES)
-	etags `for i in $(CFILES); do echo $(srcdir)/$$i ; done`
-
-# The standalone demangler (c++filt) has been moved to binutils.
-demangle:
-	@echo "The standalone demangler, now named c++filt, is now"
-	@echo "a part of binutils."
-	@false
-
-ls:
-	@echo Makefile $(CFILES)
-
-# Various targets for maintainers.
-
-maint-missing :
-	@$(PERL) $(srcdir)/maint-tool -s $(srcdir) missing $(CFILES) $(REQUIRED_OFILES) $(CONFIGURED_OFILES)
-
-maint-buildall : $(REQUIRED_OFILES) $(CONFIGURED_OFILES)
-	@true
-
-maint-undoc : $(srcdir)/functions.texi
-	@$(PERL) $(srcdir)/maint-tool -s $(srcdir) undoc
-
-maint-deps :
-	@$(PERL) $(srcdir)/maint-tool -s $(srcdir) deps $(INCDIR)
-
-# Need to deal with profiled libraries, too.
-
-# Cleaning has to be done carefully to ensure that we don't clean our SUBDIRS
-# multiple times, hence our explicit recursion with an empty SUBDIRS.
-mostlyclean: mostlyclean-subdir
-	-rm -rf *.o pic core errs \#* *.E a.out
-	-rm -f needed.awk needed2.awk errors dummy needed-list config.h stamp-*
-	-rm -f $(CONFIG_H) $(NEEDED_LIST) stamp-picdir
-	-rm -f libiberty.aux libiberty.cp libiberty.cps libiberty.fn libiberty.ky
-	-rm -f libiberty.log libiberty.tmp libiberty.tps libiberty.pg
-	-rm -f libiberty.pgs libiberty.toc libiberty.tp libiberty.tpl libiberty.vr
-	-rm -f libtexi.stamp
-	@$(MULTICLEAN) multi-clean DO=mostlyclean
-clean: clean-subdir
-	$(MAKE) SUBDIRS="" mostlyclean
-	-rm -f *.a required-list tmpmulti.out
-	-rm -f libiberty.dvi libiberty.info* libiberty.html
-	@$(MULTICLEAN) multi-clean DO=clean
-distclean: distclean-subdir
-	$(MAKE) SUBDIRS="" clean
-	@$(MULTICLEAN) multi-clean DO=distclean
-	-rm -f *~ Makefile config.cache config.status xhost-mkfrag TAGS multilib.out
-	-rm -f config.log
-	-rmdir testsuite 2>/dev/null
-maintainer-clean realclean: maintainer-clean-subdir
-	$(MAKE) SUBDIRS="" distclean
-
-force:
-
-Makefile: $(srcdir)/Makefile.in config.status
-	CONFIG_FILES=Makefile CONFIG_HEADERS= $(SHELL) ./config.status
-
-# Depending on Makefile makes sure that config.status has been re-run
-# if needed.  This prevents problems with parallel builds.
-config.h: stamp-h ; @true
-stamp-h: $(srcdir)/config.in config.status Makefile
-	CONFIG_FILES= CONFIG_HEADERS=config.h:$(srcdir)/config.in $(SHELL) ./config.status
-
-config.status: $(srcdir)/configure
-	$(SHELL) ./config.status --recheck
-
-# Depending on config.h makes sure that config.status has been re-run
-# if needed.  This prevents problems with parallel builds, in case
-# subdirectories need to run config.status also.
-all-subdir check-subdir installcheck-subdir info-subdir	\
-install-info-subdir clean-info-subdir dvi-subdir install-subdir	\
-etags-subdir mostlyclean-subdir clean-subdir distclean-subdir \
-maintainer-clean-subdir: config.h
-	@subdirs='$(SUBDIRS)'; \
-	target=`echo $@ | sed -e 's/-subdir//'`; \
-	for dir in $$subdirs ; do \
-	  cd $$dir && $(MAKE) $(FLAGS_TO_PASS) $$target; \
-	done
-
-$(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS): stamp-picdir
-$(CONFIGURED_OFILES): stamp-picdir
-
-# Don't export variables to the environment, in order to not confuse
-# configure.
-.NOEXPORT:
-
-# The dependencies in the remainder of this file are automatically
-# generated by "make maint-deps".  Manual edits will be lost.
-
-./_doprnt.o: $(srcdir)/_doprnt.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/_doprnt.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/_doprnt.c $(OUTPUT_OPTION)
-
-./alloca.o: $(srcdir)/alloca.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/alloca.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/alloca.c $(OUTPUT_OPTION)
-
-./argv.o: $(srcdir)/argv.c config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
-	$(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/argv.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/argv.c $(OUTPUT_OPTION)
-
-./asprintf.o: $(srcdir)/asprintf.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/asprintf.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/asprintf.c $(OUTPUT_OPTION)
-
-./atexit.o: $(srcdir)/atexit.c config.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/atexit.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/atexit.c $(OUTPUT_OPTION)
-
-./basename.o: $(srcdir)/basename.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/basename.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/basename.c $(OUTPUT_OPTION)
-
-./bcmp.o: $(srcdir)/bcmp.c
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/bcmp.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/bcmp.c $(OUTPUT_OPTION)
-
-./bcopy.o: $(srcdir)/bcopy.c
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/bcopy.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/bcopy.c $(OUTPUT_OPTION)
-
-./bsearch.o: $(srcdir)/bsearch.c config.h $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/bsearch.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/bsearch.c $(OUTPUT_OPTION)
-
-./bzero.o: $(srcdir)/bzero.c
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/bzero.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/bzero.c $(OUTPUT_OPTION)
-
-./calloc.o: $(srcdir)/calloc.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/calloc.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/calloc.c $(OUTPUT_OPTION)
-
-./choose-temp.o: $(srcdir)/choose-temp.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/choose-temp.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/choose-temp.c $(OUTPUT_OPTION)
-
-./clock.o: $(srcdir)/clock.c config.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/clock.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/clock.c $(OUTPUT_OPTION)
-
-./concat.o: $(srcdir)/concat.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/concat.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/concat.c $(OUTPUT_OPTION)
-
-./copysign.o: $(srcdir)/copysign.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/copysign.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/copysign.c $(OUTPUT_OPTION)
-
-./cp-demangle.o: $(srcdir)/cp-demangle.c config.h $(INCDIR)/ansidecl.h \
-	$(srcdir)/cp-demangle.h $(INCDIR)/demangle.h \
-	$(INCDIR)/dyn-string.h $(INCDIR)/getopt.h $(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/cp-demangle.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/cp-demangle.c $(OUTPUT_OPTION)
-
-./cp-demint.o: $(srcdir)/cp-demint.c config.h $(INCDIR)/ansidecl.h \
-	$(srcdir)/cp-demangle.h $(INCDIR)/demangle.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/cp-demint.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/cp-demint.c $(OUTPUT_OPTION)
-
-./cplus-dem.o: $(srcdir)/cplus-dem.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/demangle.h $(INCDIR)/libiberty.h \
-	$(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/cplus-dem.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/cplus-dem.c $(OUTPUT_OPTION)
-
-./dyn-string.o: $(srcdir)/dyn-string.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/dyn-string.h $(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/dyn-string.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/dyn-string.c $(OUTPUT_OPTION)
-
-./fdmatch.o: $(srcdir)/fdmatch.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/fdmatch.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/fdmatch.c $(OUTPUT_OPTION)
-
-./ffs.o: $(srcdir)/ffs.c
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/ffs.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/ffs.c $(OUTPUT_OPTION)
-
-./fibheap.o: $(srcdir)/fibheap.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/fibheap.h $(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/fibheap.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/fibheap.c $(OUTPUT_OPTION)
-
-./floatformat.o: $(srcdir)/floatformat.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/floatformat.h $(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/floatformat.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/floatformat.c $(OUTPUT_OPTION)
-
-./fnmatch.o: $(srcdir)/fnmatch.c config.h $(INCDIR)/fnmatch.h \
-	$(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/fnmatch.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/fnmatch.c $(OUTPUT_OPTION)
-
-./fopen_unlocked.o: $(srcdir)/fopen_unlocked.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/fopen_unlocked.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/fopen_unlocked.c $(OUTPUT_OPTION)
-
-./getcwd.o: $(srcdir)/getcwd.c config.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/getcwd.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/getcwd.c $(OUTPUT_OPTION)
-
-./getopt.o: $(srcdir)/getopt.c config.h $(INCDIR)/ansidecl.h $(INCDIR)/getopt.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/getopt.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/getopt.c $(OUTPUT_OPTION)
-
-./getopt1.o: $(srcdir)/getopt1.c config.h $(INCDIR)/getopt.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/getopt1.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/getopt1.c $(OUTPUT_OPTION)
-
-./getpagesize.o: $(srcdir)/getpagesize.c config.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/getpagesize.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/getpagesize.c $(OUTPUT_OPTION)
-
-./getpwd.o: $(srcdir)/getpwd.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/getpwd.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/getpwd.c $(OUTPUT_OPTION)
-
-./getruntime.o: $(srcdir)/getruntime.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/getruntime.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/getruntime.c $(OUTPUT_OPTION)
-
-./gettimeofday.o: $(srcdir)/gettimeofday.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/gettimeofday.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/gettimeofday.c $(OUTPUT_OPTION)
-
-./hashtab.o: $(srcdir)/hashtab.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/hashtab.h $(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/hashtab.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/hashtab.c $(OUTPUT_OPTION)
-
-./hex.o: $(srcdir)/hex.c config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
-	$(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/hex.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/hex.c $(OUTPUT_OPTION)
-
-./index.o: $(srcdir)/index.c
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/index.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/index.c $(OUTPUT_OPTION)
-
-./insque.o: $(srcdir)/insque.c
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/insque.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/insque.c $(OUTPUT_OPTION)
-
-./lbasename.o: $(srcdir)/lbasename.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/filenames.h $(INCDIR)/libiberty.h \
-	$(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/lbasename.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/lbasename.c $(OUTPUT_OPTION)
-
-./lrealpath.o: $(srcdir)/lrealpath.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/lrealpath.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/lrealpath.c $(OUTPUT_OPTION)
-
-./make-relative-prefix.o: $(srcdir)/make-relative-prefix.c config.h \
-	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/make-relative-prefix.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/make-relative-prefix.c $(OUTPUT_OPTION)
-
-./make-temp-file.o: $(srcdir)/make-temp-file.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/make-temp-file.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/make-temp-file.c $(OUTPUT_OPTION)
-
-./md5.o: $(srcdir)/md5.c config.h $(INCDIR)/ansidecl.h $(INCDIR)/md5.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/md5.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/md5.c $(OUTPUT_OPTION)
-
-./memchr.o: $(srcdir)/memchr.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/memchr.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/memchr.c $(OUTPUT_OPTION)
-
-./memcmp.o: $(srcdir)/memcmp.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/memcmp.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/memcmp.c $(OUTPUT_OPTION)
-
-./memcpy.o: $(srcdir)/memcpy.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/memcpy.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/memcpy.c $(OUTPUT_OPTION)
-
-./memmove.o: $(srcdir)/memmove.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/memmove.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/memmove.c $(OUTPUT_OPTION)
-
-./mempcpy.o: $(srcdir)/mempcpy.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/mempcpy.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/mempcpy.c $(OUTPUT_OPTION)
-
-./memset.o: $(srcdir)/memset.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/memset.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/memset.c $(OUTPUT_OPTION)
-
-./mkstemps.o: $(srcdir)/mkstemps.c config.h $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/mkstemps.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/mkstemps.c $(OUTPUT_OPTION)
-
-./msdos.o: $(srcdir)/msdos.c
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/msdos.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/msdos.c $(OUTPUT_OPTION)
-
-./objalloc.o: $(srcdir)/objalloc.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/objalloc.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/objalloc.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/objalloc.c $(OUTPUT_OPTION)
-
-./obstack.o: $(srcdir)/obstack.c config.h $(INCDIR)/obstack.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/obstack.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/obstack.c $(OUTPUT_OPTION)
-
-./partition.o: $(srcdir)/partition.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h $(INCDIR)/partition.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/partition.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/partition.c $(OUTPUT_OPTION)
-
-./pex-common.o: $(srcdir)/pex-common.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h $(srcdir)/pex-common.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pex-common.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/pex-common.c $(OUTPUT_OPTION)
-
-./pex-djgpp.o: $(srcdir)/pex-djgpp.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h $(srcdir)/pex-common.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pex-djgpp.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/pex-djgpp.c $(OUTPUT_OPTION)
-
-./pex-msdos.o: $(srcdir)/pex-msdos.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h $(srcdir)/pex-common.h \
-	$(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pex-msdos.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/pex-msdos.c $(OUTPUT_OPTION)
-
-./pex-one.o: $(srcdir)/pex-one.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pex-one.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/pex-one.c $(OUTPUT_OPTION)
-
-./pex-unix.o: $(srcdir)/pex-unix.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h $(srcdir)/pex-common.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pex-unix.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/pex-unix.c $(OUTPUT_OPTION)
-
-./pex-win32.o: $(srcdir)/pex-win32.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h $(srcdir)/pex-common.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pex-win32.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/pex-win32.c $(OUTPUT_OPTION)
-
-./pexecute.o: $(srcdir)/pexecute.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pexecute.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/pexecute.c $(OUTPUT_OPTION)
-
-./physmem.o: $(srcdir)/physmem.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/physmem.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/physmem.c $(OUTPUT_OPTION)
-
-./putenv.o: $(srcdir)/putenv.c config.h $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/putenv.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/putenv.c $(OUTPUT_OPTION)
-
-./random.o: $(srcdir)/random.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/random.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/random.c $(OUTPUT_OPTION)
-
-./regex.o: $(srcdir)/regex.c config.h $(INCDIR)/ansidecl.h $(INCDIR)/xregex.h \
-	$(INCDIR)/xregex2.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/regex.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/regex.c $(OUTPUT_OPTION)
-
-./rename.o: $(srcdir)/rename.c config.h $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/rename.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/rename.c $(OUTPUT_OPTION)
-
-./rindex.o: $(srcdir)/rindex.c
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/rindex.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/rindex.c $(OUTPUT_OPTION)
-
-./safe-ctype.o: $(srcdir)/safe-ctype.c $(INCDIR)/ansidecl.h \
-	$(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/safe-ctype.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/safe-ctype.c $(OUTPUT_OPTION)
-
-./setenv.o: $(srcdir)/setenv.c config.h $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/setenv.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/setenv.c $(OUTPUT_OPTION)
-
-./sigsetmask.o: $(srcdir)/sigsetmask.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/sigsetmask.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/sigsetmask.c $(OUTPUT_OPTION)
-
-./snprintf.o: $(srcdir)/snprintf.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/snprintf.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/snprintf.c $(OUTPUT_OPTION)
-
-./sort.o: $(srcdir)/sort.c config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
-	$(INCDIR)/sort.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/sort.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/sort.c $(OUTPUT_OPTION)
-
-./spaces.o: $(srcdir)/spaces.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/spaces.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/spaces.c $(OUTPUT_OPTION)
-
-./splay-tree.o: $(srcdir)/splay-tree.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h $(INCDIR)/splay-tree.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/splay-tree.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/splay-tree.c $(OUTPUT_OPTION)
-
-./stpcpy.o: $(srcdir)/stpcpy.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/stpcpy.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/stpcpy.c $(OUTPUT_OPTION)
-
-./stpncpy.o: $(srcdir)/stpncpy.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/stpncpy.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/stpncpy.c $(OUTPUT_OPTION)
-
-./strcasecmp.o: $(srcdir)/strcasecmp.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strcasecmp.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/strcasecmp.c $(OUTPUT_OPTION)
-
-./strchr.o: $(srcdir)/strchr.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strchr.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/strchr.c $(OUTPUT_OPTION)
-
-./strdup.o: $(srcdir)/strdup.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strdup.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/strdup.c $(OUTPUT_OPTION)
-
-./strerror.o: $(srcdir)/strerror.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strerror.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/strerror.c $(OUTPUT_OPTION)
-
-./strncasecmp.o: $(srcdir)/strncasecmp.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strncasecmp.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/strncasecmp.c $(OUTPUT_OPTION)
-
-./strncmp.o: $(srcdir)/strncmp.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strncmp.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/strncmp.c $(OUTPUT_OPTION)
-
-./strndup.o: $(srcdir)/strndup.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strndup.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/strndup.c $(OUTPUT_OPTION)
-
-./strrchr.o: $(srcdir)/strrchr.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strrchr.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/strrchr.c $(OUTPUT_OPTION)
-
-./strsignal.o: $(srcdir)/strsignal.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strsignal.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/strsignal.c $(OUTPUT_OPTION)
-
-./strstr.o: $(srcdir)/strstr.c
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strstr.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/strstr.c $(OUTPUT_OPTION)
-
-./strtod.o: $(srcdir)/strtod.c $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strtod.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/strtod.c $(OUTPUT_OPTION)
-
-./strtol.o: $(srcdir)/strtol.c config.h $(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strtol.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/strtol.c $(OUTPUT_OPTION)
-
-./strtoul.o: $(srcdir)/strtoul.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strtoul.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/strtoul.c $(OUTPUT_OPTION)
-
-./strverscmp.o: $(srcdir)/strverscmp.c $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
-	$(INCDIR)/safe-ctype.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strverscmp.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/strverscmp.c $(OUTPUT_OPTION)
-
-./ternary.o: $(srcdir)/ternary.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h $(INCDIR)/ternary.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/ternary.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/ternary.c $(OUTPUT_OPTION)
-
-./tmpnam.o: $(srcdir)/tmpnam.c
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/tmpnam.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/tmpnam.c $(OUTPUT_OPTION)
-
-./unlink-if-ordinary.o: $(srcdir)/unlink-if-ordinary.c config.h \
-	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/unlink-if-ordinary.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/unlink-if-ordinary.c $(OUTPUT_OPTION)
-
-./vasprintf.o: $(srcdir)/vasprintf.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vasprintf.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/vasprintf.c $(OUTPUT_OPTION)
-
-./vfork.o: $(srcdir)/vfork.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vfork.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/vfork.c $(OUTPUT_OPTION)
-
-./vfprintf.o: $(srcdir)/vfprintf.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vfprintf.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/vfprintf.c $(OUTPUT_OPTION)
-
-./vprintf.o: $(srcdir)/vprintf.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vprintf.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/vprintf.c $(OUTPUT_OPTION)
-
-./vsnprintf.o: $(srcdir)/vsnprintf.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vsnprintf.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/vsnprintf.c $(OUTPUT_OPTION)
-
-./vsprintf.o: $(srcdir)/vsprintf.c $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vsprintf.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/vsprintf.c $(OUTPUT_OPTION)
-
-./waitpid.o: $(srcdir)/waitpid.c config.h $(INCDIR)/ansidecl.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/waitpid.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/waitpid.c $(OUTPUT_OPTION)
-
-./xatexit.o: $(srcdir)/xatexit.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xatexit.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/xatexit.c $(OUTPUT_OPTION)
-
-./xexit.o: $(srcdir)/xexit.c config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xexit.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/xexit.c $(OUTPUT_OPTION)
-
-./xmalloc.o: $(srcdir)/xmalloc.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xmalloc.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/xmalloc.c $(OUTPUT_OPTION)
-
-./xmemdup.o: $(srcdir)/xmemdup.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xmemdup.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/xmemdup.c $(OUTPUT_OPTION)
-
-./xstrdup.o: $(srcdir)/xstrdup.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xstrdup.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/xstrdup.c $(OUTPUT_OPTION)
-
-./xstrerror.o: $(srcdir)/xstrerror.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xstrerror.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/xstrerror.c $(OUTPUT_OPTION)
-
-./xstrndup.o: $(srcdir)/xstrndup.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xstrndup.c -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $(srcdir)/xstrndup.c $(OUTPUT_OPTION)
-
diff --git a/libiberty/README b/libiberty/README
deleted file mode 100644
index 886bd67..0000000
--- a/libiberty/README
+++ /dev/null
@@ -1,66 +0,0 @@
-This directory contains the -liberty library of free software.
-It is a collection of subroutines used by various GNU programs.
-Current members include:
-
-	getopt -- get options from command line
-	obstack -- stacks of arbitrarily-sized objects
-	strerror -- error message strings corresponding to errno
-	strtol -- string-to-long conversion
-	strtoul -- string-to-unsigned-long conversion
-
-We expect many of the GNU subroutines that are floating around to
-eventually arrive here.
-
-The library must be configured from the top source directory.  Don't
-try to run configure in this directory.  Follow the configuration
-instructions in ../README.
-
-Please report bugs to "gcc-bugs@gcc.gnu.org" and send fixes to
-"gcc-patches@gcc.gnu.org".  Thank you.
-
-ADDING A NEW FILE
-=================
-
-There are two sets of files:  Those that are "required" will be
-included in the library for all configurations, while those
-that are "optional" will be included in the library only if "needed."
-
-To add a new required file, edit Makefile to add the source file
-name to CFILES and the object file to REQUIRED_OFILES.
-
-To add a new optional file, it must provide a single function, and the
-name of the function must be the same as the name of the file.
-
-    * Add the source file name to CFILES.
-
-    * Add the function to name to the funcs shell variable in
-      configure.ac.
-
-    * Add the function to the AC_CHECK_FUNCS lists just after the
-      setting of the funcs shell variable.  These AC_CHECK_FUNCS calls
-      are never executed; they are there to make autoheader work
-      better.
-
-    * Consider the special cases of building libiberty; as of this
-      writing, the special cases are newlib and VxWorks.  If a
-      particular special case provides the function, you do not need
-      to do anything.  If it does not provide the function, add the
-      object file to LIBOBJS, and add the function name to the case
-      controlling whether to define HAVE_func.
-
-The optional file you've added (e.g. getcwd.c) should compile and work
-on all hosts where it is needed.  It does not have to work or even
-compile on hosts where it is not needed.
-
-ADDING A NEW CONFIGURATION
-==========================
-
-On most hosts you should be able to use the scheme for automatically
-figuring out which files are needed.  In that case, you probably
-don't need a special Makefile stub for that configuration.
-
-If the fully automatic scheme doesn't work, you may be able to get
-by with defining EXTRA_OFILES in your Makefile stub.  This is
-a list of object file names that should be treated as required
-for this configuration - they will be included in libiberty.a,
-regardless of whatever might be in the C library.
diff --git a/libiberty/_doprnt.c b/libiberty/_doprnt.c
deleted file mode 100644
index ca97bc8..0000000
--- a/libiberty/_doprnt.c
+++ /dev/null
@@ -1,296 +0,0 @@
-/* Provide a version of _doprnt in terms of fprintf.
-   Copyright (C) 1998, 1999, 2000, 2001, 2002   Free Software Foundation, Inc.
-   Contributed by Kaveh Ghazi  (ghazi@caip.rutgers.edu)  3/29/98
-
-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, 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, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#include "config.h"
-#include "ansidecl.h"
-#include "safe-ctype.h"
-
-#include <stdio.h>
-#include <stdarg.h>
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-#undef _doprnt
-
-#ifdef HAVE__DOPRNT
-#define TEST
-#endif
-
-#ifdef TEST /* Make sure to use the internal one.  */
-#define _doprnt my_doprnt
-#endif
-
-#define COPY_VA_INT \
-  do { \
-	 const int value = abs (va_arg (ap, int)); \
-	 char buf[32]; \
-	 ptr++; /* Go past the asterisk.  */ \
-	 *sptr = '\0'; /* NULL terminate sptr.  */ \
-	 sprintf(buf, "%d", value); \
-	 strcat(sptr, buf); \
-	 while (*sptr) sptr++; \
-     } while (0)
-
-#define PRINT_CHAR(CHAR) \
-  do { \
-	 putc(CHAR, stream); \
-	 ptr++; \
-	 total_printed++; \
-	 continue; \
-     } while (0)
-
-#define PRINT_TYPE(TYPE) \
-  do { \
-	int result; \
-	TYPE value = va_arg (ap, TYPE); \
-	*sptr++ = *ptr++; /* Copy the type specifier.  */ \
-	*sptr = '\0'; /* NULL terminate sptr.  */ \
-	result = fprintf(stream, specifier, value); \
-	if (result == -1) \
-	  return -1; \
-	else \
-	  { \
-	    total_printed += result; \
-	    continue; \
-	  } \
-      } while (0)
-
-int
-_doprnt (const char *format, va_list ap, FILE *stream)
-{
-  const char * ptr = format;
-  char specifier[128];
-  int total_printed = 0;
-  
-  while (*ptr != '\0')
-    {
-      if (*ptr != '%') /* While we have regular characters, print them.  */
-	PRINT_CHAR(*ptr);
-      else /* We got a format specifier! */
-	{
-	  char * sptr = specifier;
-	  int wide_width = 0, short_width = 0;
-	  
-	  *sptr++ = *ptr++; /* Copy the % and move forward.  */
-
-	  while (strchr ("-+ #0", *ptr)) /* Move past flags.  */
-	    *sptr++ = *ptr++;
-
-	  if (*ptr == '*')
-	    COPY_VA_INT;
-	  else
-	    while (ISDIGIT(*ptr)) /* Handle explicit numeric value.  */
-	      *sptr++ = *ptr++;
-	  
-	  if (*ptr == '.')
-	    {
-	      *sptr++ = *ptr++; /* Copy and go past the period.  */
-	      if (*ptr == '*')
-		COPY_VA_INT;
-	      else
-		while (ISDIGIT(*ptr)) /* Handle explicit numeric value.  */
-		  *sptr++ = *ptr++;
-	    }
-	  while (strchr ("hlL", *ptr))
-	    {
-	      switch (*ptr)
-		{
-		case 'h':
-		  short_width = 1;
-		  break;
-		case 'l':
-		  wide_width++;
-		  break;
-		case 'L':
-		  wide_width = 2;
-		  break;
-		default:
-		  abort();
-		}
-	      *sptr++ = *ptr++;
-	    }
-
-	  switch (*ptr)
-	    {
-	    case 'd':
-	    case 'i':
-	    case 'o':
-	    case 'u':
-	    case 'x':
-	    case 'X':
-	    case 'c':
-	      {
-		/* Short values are promoted to int, so just copy it
-                   as an int and trust the C library printf to cast it
-                   to the right width.  */
-		if (short_width)
-		  PRINT_TYPE(int);
-		else
-		  {
-		    switch (wide_width)
-		      {
-		      case 0:
-			PRINT_TYPE(int);
-			break;
-		      case 1:
-			PRINT_TYPE(long);
-			break;
-		      case 2:
-		      default:
-#if defined(__GNUC__) || defined(HAVE_LONG_LONG)
-			PRINT_TYPE(long long);
-#else
-			PRINT_TYPE(long); /* Fake it and hope for the best.  */
-#endif
-			break;
-		      } /* End of switch (wide_width) */
-		  } /* End of else statement */
-	      } /* End of integer case */
-	      break;
-	    case 'f':
-	    case 'e':
-	    case 'E':
-	    case 'g':
-	    case 'G':
-	      {
-		if (wide_width == 0)
-		  PRINT_TYPE(double);
-		else
-		  {
-#if defined(__GNUC__) || defined(HAVE_LONG_DOUBLE)
-		    PRINT_TYPE(long double);
-#else
-		    PRINT_TYPE(double); /* Fake it and hope for the best.  */
-#endif
-		  }
-	      }
-	      break;
-	    case 's':
-	      PRINT_TYPE(char *);
-	      break;
-	    case 'p':
-	      PRINT_TYPE(void *);
-	      break;
-	    case '%':
-	      PRINT_CHAR('%');
-	      break;
-	    default:
-	      abort();
-	    } /* End of switch (*ptr) */
-	} /* End of else statement */
-    }
-
-  return total_printed;
-}
-
-#ifdef TEST
-
-#include <math.h>
-#ifndef M_PI
-#define M_PI (3.1415926535897932385)
-#endif
-
-#define RESULT(x) do \
-{ \
-    int i = (x); \
-    printf ("printed %d characters\n", i); \
-    fflush(stdin); \
-} while (0)
-
-static int checkit (const char * format, ...) ATTRIBUTE_PRINTF_1;
-
-static int
-checkit (const char* format, ...)
-{
-  int result;
-  VA_OPEN (args, format);
-  VA_FIXEDARG (args, char *, format);
-
-  result = _doprnt (format, args, stdout);
-  VA_CLOSE (args);
-
-  return result;
-}
-
-int
-main (void)
-{
-  RESULT(checkit ("<%d>\n", 0x12345678));
-  RESULT(printf ("<%d>\n", 0x12345678));
-
-  RESULT(checkit ("<%200d>\n", 5));
-  RESULT(printf ("<%200d>\n", 5));
-
-  RESULT(checkit ("<%.300d>\n", 6));
-  RESULT(printf ("<%.300d>\n", 6));
-
-  RESULT(checkit ("<%100.150d>\n", 7));
-  RESULT(printf ("<%100.150d>\n", 7));
-
-  RESULT(checkit ("<%s>\n",
-		  "jjjjjjjjjiiiiiiiiiiiiiiioooooooooooooooooppppppppppppaa\n\
-777777777777777777333333333333366666666666622222222222777777777777733333"));
-  RESULT(printf ("<%s>\n",
-		 "jjjjjjjjjiiiiiiiiiiiiiiioooooooooooooooooppppppppppppaa\n\
-777777777777777777333333333333366666666666622222222222777777777777733333"));
-
-  RESULT(checkit ("<%f><%0+#f>%s%d%s>\n",
-		  1.0, 1.0, "foo", 77, "asdjffffffffffffffiiiiiiiiiiixxxxx"));
-  RESULT(printf ("<%f><%0+#f>%s%d%s>\n",
-		 1.0, 1.0, "foo", 77, "asdjffffffffffffffiiiiiiiiiiixxxxx"));
-
-  RESULT(checkit ("<%4f><%.4f><%%><%4.4f>\n", M_PI, M_PI, M_PI));
-  RESULT(printf ("<%4f><%.4f><%%><%4.4f>\n", M_PI, M_PI, M_PI));
-
-  RESULT(checkit ("<%*f><%.*f><%%><%*.*f>\n", 3, M_PI, 3, M_PI, 3, 3, M_PI));
-  RESULT(printf ("<%*f><%.*f><%%><%*.*f>\n", 3, M_PI, 3, M_PI, 3, 3, M_PI));
-
-  RESULT(checkit ("<%d><%i><%o><%u><%x><%X><%c>\n",
-		  75, 75, 75, 75, 75, 75, 75));
-  RESULT(printf ("<%d><%i><%o><%u><%x><%X><%c>\n",
-		 75, 75, 75, 75, 75, 75, 75));
-
-  RESULT(checkit ("<%d><%i><%o><%u><%x><%X><%c>\n",
-		  75, 75, 75, 75, 75, 75, 75));
-  RESULT(printf ("<%d><%i><%o><%u><%x><%X><%c>\n",
-		 75, 75, 75, 75, 75, 75, 75));
-
-  RESULT(checkit ("Testing (hd) short: <%d><%ld><%hd><%hd><%d>\n", 123, (long)234, 345, 123456789, 456));
-  RESULT(printf ("Testing (hd) short: <%d><%ld><%hd><%hd><%d>\n", 123, (long)234, 345, 123456789, 456));
-
-#if defined(__GNUC__) || defined (HAVE_LONG_LONG)
-  RESULT(checkit ("Testing (lld) long long: <%d><%lld><%d>\n", 123, 234234234234234234LL, 345));
-  RESULT(printf ("Testing (lld) long long: <%d><%lld><%d>\n", 123, 234234234234234234LL, 345));
-  RESULT(checkit ("Testing (Ld) long long: <%d><%Ld><%d>\n", 123, 234234234234234234LL, 345));
-  RESULT(printf ("Testing (Ld) long long: <%d><%Ld><%d>\n", 123, 234234234234234234LL, 345));
-#endif
-
-#if defined(__GNUC__) || defined (HAVE_LONG_DOUBLE)
-  RESULT(checkit ("Testing (Lf) long double: <%.20f><%.20Lf><%0+#.20f>\n",
-		  1.23456, 1.234567890123456789L, 1.23456));
-  RESULT(printf ("Testing (Lf) long double: <%.20f><%.20Lf><%0+#.20f>\n",
-		 1.23456, 1.234567890123456789L, 1.23456));
-#endif
-
-  return 0;
-}
-#endif /* TEST */
diff --git a/libiberty/aclocal.m4 b/libiberty/aclocal.m4
deleted file mode 100644
index 0b49d03..0000000
--- a/libiberty/aclocal.m4
+++ /dev/null
@@ -1,221 +0,0 @@
-sinclude(../config/acx.m4)
-sinclude(../config/no-executables.m4)
-
-dnl See whether strncmp reads past the end of its string parameters.
-dnl On some versions of SunOS4 at least, strncmp reads a word at a time
-dnl but erroneously reads past the end of strings.  This can cause
-dnl a SEGV in some cases.
-AC_DEFUN(libiberty_AC_FUNC_STRNCMP,
-[AC_REQUIRE([AC_FUNC_MMAP])
-AC_CACHE_CHECK([for working strncmp], ac_cv_func_strncmp_works,
-[AC_TRY_RUN([
-/* Test by Jim Wilson and Kaveh Ghazi.
-   Check whether strncmp reads past the end of its string parameters. */
-#include <sys/types.h>
-
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-
-#ifdef HAVE_SYS_MMAN_H
-#include <sys/mman.h>
-#endif
-
-#ifndef MAP_ANON
-#ifdef MAP_ANONYMOUS
-#define MAP_ANON MAP_ANONYMOUS
-#else
-#define MAP_ANON MAP_FILE
-#endif
-#endif
-
-#ifndef MAP_FILE
-#define MAP_FILE 0
-#endif
-#ifndef O_RDONLY
-#define O_RDONLY 0
-#endif
-
-#define MAP_LEN 0x10000
-
-main ()
-{
-#if defined(HAVE_MMAP) || defined(HAVE_MMAP_ANYWHERE)
-  char *p;
-  int dev_zero;
-
-  dev_zero = open ("/dev/zero", O_RDONLY);
-  if (dev_zero < 0)
-    exit (1);
-  
-  p = (char *) mmap (0, MAP_LEN, PROT_READ|PROT_WRITE,
-		     MAP_ANON|MAP_PRIVATE, dev_zero, 0);
-  if (p == (char *)-1)
-    p = (char *) mmap (0, MAP_LEN, PROT_READ|PROT_WRITE,
-		       MAP_ANON|MAP_PRIVATE, -1, 0);
-  if (p == (char *)-1)
-    exit (2);
-  else
-    {
-      char *string = "__si_type_info";
-      char *q = (char *) p + MAP_LEN - strlen (string) - 2;
-      char *r = (char *) p + 0xe;
-
-      strcpy (q, string);
-      strcpy (r, string);
-      strncmp (r, q, 14);
-    }
-#endif /* HAVE_MMAP || HAVE_MMAP_ANYWHERE */
-  exit (0);
-}
-], ac_cv_func_strncmp_works=yes, ac_cv_func_strncmp_works=no,
-  ac_cv_func_strncmp_works=no)
-rm -f core core.* *.core])
-if test $ac_cv_func_strncmp_works = no ; then
-  AC_LIBOBJ([strncmp])
-fi
-])
-
-dnl See if errno must be declared even when <errno.h> is included.
-AC_DEFUN(libiberty_AC_DECLARE_ERRNO,
-[AC_CACHE_CHECK(whether errno must be declared, libiberty_cv_declare_errno,
-[AC_TRY_COMPILE(
-[#include <errno.h>],
-[int x = errno;],
-libiberty_cv_declare_errno=no,
-libiberty_cv_declare_errno=yes)])
-if test $libiberty_cv_declare_errno = yes
-then AC_DEFINE(NEED_DECLARATION_ERRNO, 1,
-  [Define if errno must be declared even when <errno.h> is included.])
-fi
-])
-
-dnl See whether we need a declaration for a function.
-AC_DEFUN(libiberty_NEED_DECLARATION,
-[AC_MSG_CHECKING([whether $1 must be declared])
-AC_CACHE_VAL(libiberty_cv_decl_needed_$1,
-[AC_TRY_COMPILE([
-#include "confdefs.h"
-#include <stdio.h>
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif],
-[char *(*pfn) = (char *(*)) $1],
-libiberty_cv_decl_needed_$1=no, libiberty_cv_decl_needed_$1=yes)])
-AC_MSG_RESULT($libiberty_cv_decl_needed_$1)
-if test $libiberty_cv_decl_needed_$1 = yes; then
-  AC_DEFINE([NEED_DECLARATION_]translit($1, [a-z], [A-Z]), 1,
-            [Define if $1 is not declared in system header files.])
-fi
-])dnl
-
-# We always want a C version of alloca() compiled into libiberty,
-# because native-compiler support for the real alloca is so !@#$%
-# unreliable that GCC has decided to use it only when being compiled
-# by GCC.  This is the part of AC_FUNC_ALLOCA that calculates the
-# information alloca.c needs.
-AC_DEFUN(libiberty_AC_FUNC_C_ALLOCA,
-[AC_CACHE_CHECK(whether alloca needs Cray hooks, ac_cv_os_cray,
-[AC_EGREP_CPP(webecray,
-[#if defined(CRAY) && ! defined(CRAY2)
-webecray
-#else
-wenotbecray
-#endif
-], ac_cv_os_cray=yes, ac_cv_os_cray=no)])
-if test $ac_cv_os_cray = yes; then
-  for ac_func in _getb67 GETB67 getb67; do
-    AC_CHECK_FUNC($ac_func, 
-      [AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func, 
-  [Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP
-   systems. This function is required for alloca.c support on those
-   systems.])  break])
-  done
-fi
-
-AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction,
-[AC_TRY_RUN([find_stack_direction ()
-{
-  static char *addr = 0;
-  auto char dummy;
-  if (addr == 0)
-    {
-      addr = &dummy;
-      return find_stack_direction ();
-    }
-  else
-    return (&dummy > addr) ? 1 : -1;
-}
-main ()
-{
-  exit (find_stack_direction() < 0);
-}], 
-  ac_cv_c_stack_direction=1,
-  ac_cv_c_stack_direction=-1,
-  ac_cv_c_stack_direction=0)])
-AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction,
-  [Define if you know the direction of stack growth for your system;
-   otherwise it will be automatically deduced at run-time.
-        STACK_DIRECTION > 0 => grows toward higher addresses
-        STACK_DIRECTION < 0 => grows toward lower addresses
-        STACK_DIRECTION = 0 => direction of growth unknown])
-])
-
-# AC_LANG_FUNC_LINK_TRY(C)(FUNCTION)
-# ----------------------------------
-# Don't include <ctype.h> because on OSF/1 3.0 it includes
-# <sys/types.h> which includes <sys/select.h> which contains a
-# prototype for select.  Similarly for bzero.
-#
-# This test used to merely assign f=$1 in main(), but that was
-# optimized away by HP unbundled cc A.05.36 for ia64 under +O3,
-# presumably on the basis that there's no need to do that store if the
-# program is about to exit.  Conversely, the AIX linker optimizes an
-# unused external declaration that initializes f=$1.  So this test
-# program has both an external initialization of f, and a use of f in
-# main that affects the exit status.
-#
-m4_define([AC_LANG_FUNC_LINK_TRY(C)],
-[AC_LANG_PROGRAM(
-[/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $1 (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  Under hpux,
-    including <limits.h> includes <sys/time.h> and causes problems
-    checking for functions defined therein.  */
-#if defined (__STDC__) && !defined (_HPUX_SOURCE)
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $1 ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$1) || defined (__stub___$1)
-choke me
-#else
-char (*f) () = $1;
-#endif
-#ifdef __cplusplus
-}
-#endif
-], [return f != $1;])])
-
diff --git a/libiberty/alloca.c b/libiberty/alloca.c
deleted file mode 100644
index 9b2e9cb..0000000
--- a/libiberty/alloca.c
+++ /dev/null
@@ -1,483 +0,0 @@
-/* alloca.c -- allocate automatically reclaimed memory
-   (Mostly) portable public-domain implementation -- D A Gwyn
-
-   This implementation of the PWB library alloca function,
-   which is used to allocate space off the run-time stack so
-   that it is automatically reclaimed upon procedure exit,
-   was inspired by discussions with J. Q. Johnson of Cornell.
-   J.Otto Tennant <jot@cray.com> contributed the Cray support.
-
-   There are some preprocessor constants that can
-   be defined when compiling for your specific system, for
-   improved efficiency; however, the defaults should be okay.
-
-   The general concept of this implementation is to keep
-   track of all alloca-allocated blocks, and reclaim any
-   that are found to be deeper in the stack than the current
-   invocation.  This heuristic does not reclaim storage as
-   soon as it becomes invalid, but it will do so eventually.
-
-   As a special case, alloca(0) reclaims storage without
-   allocating any.  It is a good idea to use alloca(0) in
-   your main control loop, etc. to force garbage collection.  */
-
-/*
-
-@deftypefn Replacement void* alloca (size_t @var{size})
-
-This function allocates memory which will be automatically reclaimed
-after the procedure exits.  The @libib{} implementation does not free
-the memory immediately but will do so eventually during subsequent
-calls to this function.  Memory is allocated using @code{xmalloc} under
-normal circumstances.
-
-The header file @file{alloca-conf.h} can be used in conjunction with the
-GNU Autoconf test @code{AC_FUNC_ALLOCA} to test for and properly make
-available this function.  The @code{AC_FUNC_ALLOCA} test requires that
-client code use a block of preprocessor code to be safe (see the Autoconf
-manual for more); this header incorporates that logic and more, including
-the possibility of a GCC built-in function.
-
-@end deftypefn
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <libiberty.h>
-
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-/* These variables are used by the ASTRDUP implementation that relies
-   on C_alloca.  */
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-const char *libiberty_optr;
-char *libiberty_nptr;
-unsigned long libiberty_len;
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-/* If your stack is a linked list of frames, you have to
-   provide an "address metric" ADDRESS_FUNCTION macro.  */
-
-#if defined (CRAY) && defined (CRAY_STACKSEG_END)
-static long i00afunc ();
-#define ADDRESS_FUNCTION(arg) (char *) i00afunc (&(arg))
-#else
-#define ADDRESS_FUNCTION(arg) &(arg)
-#endif
-
-#ifndef NULL
-#define	NULL	0
-#endif
-
-/* Define STACK_DIRECTION if you know the direction of stack
-   growth for your system; otherwise it will be automatically
-   deduced at run-time.
-
-   STACK_DIRECTION > 0 => grows toward higher addresses
-   STACK_DIRECTION < 0 => grows toward lower addresses
-   STACK_DIRECTION = 0 => direction of growth unknown  */
-
-#ifndef STACK_DIRECTION
-#define	STACK_DIRECTION	0	/* Direction unknown.  */
-#endif
-
-#if STACK_DIRECTION != 0
-
-#define	STACK_DIR	STACK_DIRECTION	/* Known at compile-time.  */
-
-#else /* STACK_DIRECTION == 0; need run-time code.  */
-
-static int stack_dir;		/* 1 or -1 once known.  */
-#define	STACK_DIR	stack_dir
-
-static void
-find_stack_direction (void)
-{
-  static char *addr = NULL;	/* Address of first `dummy', once known.  */
-  auto char dummy;		/* To get stack address.  */
-
-  if (addr == NULL)
-    {				/* Initial entry.  */
-      addr = ADDRESS_FUNCTION (dummy);
-
-      find_stack_direction ();	/* Recurse once.  */
-    }
-  else
-    {
-      /* Second entry.  */
-      if (ADDRESS_FUNCTION (dummy) > addr)
-	stack_dir = 1;		/* Stack grew upward.  */
-      else
-	stack_dir = -1;		/* Stack grew downward.  */
-    }
-}
-
-#endif /* STACK_DIRECTION == 0 */
-
-/* An "alloca header" is used to:
-   (a) chain together all alloca'ed blocks;
-   (b) keep track of stack depth.
-
-   It is very important that sizeof(header) agree with malloc
-   alignment chunk size.  The following default should work okay.  */
-
-#ifndef	ALIGN_SIZE
-#define	ALIGN_SIZE	sizeof(double)
-#endif
-
-typedef union hdr
-{
-  char align[ALIGN_SIZE];	/* To force sizeof(header).  */
-  struct
-    {
-      union hdr *next;		/* For chaining headers.  */
-      char *deep;		/* For stack depth measure.  */
-    } h;
-} header;
-
-static header *last_alloca_header = NULL;	/* -> last alloca header.  */
-
-/* Return a pointer to at least SIZE bytes of storage,
-   which will be automatically reclaimed upon exit from
-   the procedure that called alloca.  Originally, this space
-   was supposed to be taken from the current stack frame of the
-   caller, but that method cannot be made to work for some
-   implementations of C, for example under Gould's UTX/32.  */
-
-/* @undocumented C_alloca */
-
-PTR
-C_alloca (size_t size)
-{
-  auto char probe;		/* Probes stack depth: */
-  register char *depth = ADDRESS_FUNCTION (probe);
-
-#if STACK_DIRECTION == 0
-  if (STACK_DIR == 0)		/* Unknown growth direction.  */
-    find_stack_direction ();
-#endif
-
-  /* Reclaim garbage, defined as all alloca'd storage that
-     was allocated from deeper in the stack than currently.  */
-
-  {
-    register header *hp;	/* Traverses linked list.  */
-
-    for (hp = last_alloca_header; hp != NULL;)
-      if ((STACK_DIR > 0 && hp->h.deep > depth)
-	  || (STACK_DIR < 0 && hp->h.deep < depth))
-	{
-	  register header *np = hp->h.next;
-
-	  free ((PTR) hp);	/* Collect garbage.  */
-
-	  hp = np;		/* -> next header.  */
-	}
-      else
-	break;			/* Rest are not deeper.  */
-
-    last_alloca_header = hp;	/* -> last valid storage.  */
-  }
-
-  if (size == 0)
-    return NULL;		/* No allocation required.  */
-
-  /* Allocate combined header + user data storage.  */
-
-  {
-    register void *new_storage = XNEWVEC (char, sizeof (header) + size);
-    /* Address of header.  */
-
-    if (new_storage == 0)
-      abort();
-
-    ((header *) new_storage)->h.next = last_alloca_header;
-    ((header *) new_storage)->h.deep = depth;
-
-    last_alloca_header = (header *) new_storage;
-
-    /* User storage begins just after header.  */
-
-    return (PTR) ((char *) new_storage + sizeof (header));
-  }
-}
-
-#if defined (CRAY) && defined (CRAY_STACKSEG_END)
-
-#ifdef DEBUG_I00AFUNC
-#include <stdio.h>
-#endif
-
-#ifndef CRAY_STACK
-#define CRAY_STACK
-#ifndef CRAY2
-/* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */
-struct stack_control_header
-  {
-    long shgrow:32;		/* Number of times stack has grown.  */
-    long shaseg:32;		/* Size of increments to stack.  */
-    long shhwm:32;		/* High water mark of stack.  */
-    long shsize:32;		/* Current size of stack (all segments).  */
-  };
-
-/* The stack segment linkage control information occurs at
-   the high-address end of a stack segment.  (The stack
-   grows from low addresses to high addresses.)  The initial
-   part of the stack segment linkage control information is
-   0200 (octal) words.  This provides for register storage
-   for the routine which overflows the stack.  */
-
-struct stack_segment_linkage
-  {
-    long ss[0200];		/* 0200 overflow words.  */
-    long sssize:32;		/* Number of words in this segment.  */
-    long ssbase:32;		/* Offset to stack base.  */
-    long:32;
-    long sspseg:32;		/* Offset to linkage control of previous
-				   segment of stack.  */
-    long:32;
-    long sstcpt:32;		/* Pointer to task common address block.  */
-    long sscsnm;		/* Private control structure number for
-				   microtasking.  */
-    long ssusr1;		/* Reserved for user.  */
-    long ssusr2;		/* Reserved for user.  */
-    long sstpid;		/* Process ID for pid based multi-tasking.  */
-    long ssgvup;		/* Pointer to multitasking thread giveup.  */
-    long sscray[7];		/* Reserved for Cray Research.  */
-    long ssa0;
-    long ssa1;
-    long ssa2;
-    long ssa3;
-    long ssa4;
-    long ssa5;
-    long ssa6;
-    long ssa7;
-    long sss0;
-    long sss1;
-    long sss2;
-    long sss3;
-    long sss4;
-    long sss5;
-    long sss6;
-    long sss7;
-  };
-
-#else /* CRAY2 */
-/* The following structure defines the vector of words
-   returned by the STKSTAT library routine.  */
-struct stk_stat
-  {
-    long now;			/* Current total stack size.  */
-    long maxc;			/* Amount of contiguous space which would
-				   be required to satisfy the maximum
-				   stack demand to date.  */
-    long high_water;		/* Stack high-water mark.  */
-    long overflows;		/* Number of stack overflow ($STKOFEN) calls.  */
-    long hits;			/* Number of internal buffer hits.  */
-    long extends;		/* Number of block extensions.  */
-    long stko_mallocs;		/* Block allocations by $STKOFEN.  */
-    long underflows;		/* Number of stack underflow calls ($STKRETN).  */
-    long stko_free;		/* Number of deallocations by $STKRETN.  */
-    long stkm_free;		/* Number of deallocations by $STKMRET.  */
-    long segments;		/* Current number of stack segments.  */
-    long maxs;			/* Maximum number of stack segments so far.  */
-    long pad_size;		/* Stack pad size.  */
-    long current_address;	/* Current stack segment address.  */
-    long current_size;		/* Current stack segment size.  This
-				   number is actually corrupted by STKSTAT to
-				   include the fifteen word trailer area.  */
-    long initial_address;	/* Address of initial segment.  */
-    long initial_size;		/* Size of initial segment.  */
-  };
-
-/* The following structure describes the data structure which trails
-   any stack segment.  I think that the description in 'asdef' is
-   out of date.  I only describe the parts that I am sure about.  */
-
-struct stk_trailer
-  {
-    long this_address;		/* Address of this block.  */
-    long this_size;		/* Size of this block (does not include
-				   this trailer).  */
-    long unknown2;
-    long unknown3;
-    long link;			/* Address of trailer block of previous
-				   segment.  */
-    long unknown5;
-    long unknown6;
-    long unknown7;
-    long unknown8;
-    long unknown9;
-    long unknown10;
-    long unknown11;
-    long unknown12;
-    long unknown13;
-    long unknown14;
-  };
-
-#endif /* CRAY2 */
-#endif /* not CRAY_STACK */
-
-#ifdef CRAY2
-/* Determine a "stack measure" for an arbitrary ADDRESS.
-   I doubt that "lint" will like this much.  */
-
-static long
-i00afunc (long *address)
-{
-  struct stk_stat status;
-  struct stk_trailer *trailer;
-  long *block, size;
-  long result = 0;
-
-  /* We want to iterate through all of the segments.  The first
-     step is to get the stack status structure.  We could do this
-     more quickly and more directly, perhaps, by referencing the
-     $LM00 common block, but I know that this works.  */
-
-  STKSTAT (&status);
-
-  /* Set up the iteration.  */
-
-  trailer = (struct stk_trailer *) (status.current_address
-				    + status.current_size
-				    - 15);
-
-  /* There must be at least one stack segment.  Therefore it is
-     a fatal error if "trailer" is null.  */
-
-  if (trailer == 0)
-    abort ();
-
-  /* Discard segments that do not contain our argument address.  */
-
-  while (trailer != 0)
-    {
-      block = (long *) trailer->this_address;
-      size = trailer->this_size;
-      if (block == 0 || size == 0)
-	abort ();
-      trailer = (struct stk_trailer *) trailer->link;
-      if ((block <= address) && (address < (block + size)))
-	break;
-    }
-
-  /* Set the result to the offset in this segment and add the sizes
-     of all predecessor segments.  */
-
-  result = address - block;
-
-  if (trailer == 0)
-    {
-      return result;
-    }
-
-  do
-    {
-      if (trailer->this_size <= 0)
-	abort ();
-      result += trailer->this_size;
-      trailer = (struct stk_trailer *) trailer->link;
-    }
-  while (trailer != 0);
-
-  /* We are done.  Note that if you present a bogus address (one
-     not in any segment), you will get a different number back, formed
-     from subtracting the address of the first block.  This is probably
-     not what you want.  */
-
-  return (result);
-}
-
-#else /* not CRAY2 */
-/* Stack address function for a CRAY-1, CRAY X-MP, or CRAY Y-MP.
-   Determine the number of the cell within the stack,
-   given the address of the cell.  The purpose of this
-   routine is to linearize, in some sense, stack addresses
-   for alloca.  */
-
-static long
-i00afunc (long address)
-{
-  long stkl = 0;
-
-  long size, pseg, this_segment, stack;
-  long result = 0;
-
-  struct stack_segment_linkage *ssptr;
-
-  /* Register B67 contains the address of the end of the
-     current stack segment.  If you (as a subprogram) store
-     your registers on the stack and find that you are past
-     the contents of B67, you have overflowed the segment.
-
-     B67 also points to the stack segment linkage control
-     area, which is what we are really interested in.  */
-
-  stkl = CRAY_STACKSEG_END ();
-  ssptr = (struct stack_segment_linkage *) stkl;
-
-  /* If one subtracts 'size' from the end of the segment,
-     one has the address of the first word of the segment.
-
-     If this is not the first segment, 'pseg' will be
-     nonzero.  */
-
-  pseg = ssptr->sspseg;
-  size = ssptr->sssize;
-
-  this_segment = stkl - size;
-
-  /* It is possible that calling this routine itself caused
-     a stack overflow.  Discard stack segments which do not
-     contain the target address.  */
-
-  while (!(this_segment <= address && address <= stkl))
-    {
-#ifdef DEBUG_I00AFUNC
-      fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl);
-#endif
-      if (pseg == 0)
-	break;
-      stkl = stkl - pseg;
-      ssptr = (struct stack_segment_linkage *) stkl;
-      size = ssptr->sssize;
-      pseg = ssptr->sspseg;
-      this_segment = stkl - size;
-    }
-
-  result = address - this_segment;
-
-  /* If you subtract pseg from the current end of the stack,
-     you get the address of the previous stack segment's end.
-     This seems a little convoluted to me, but I'll bet you save
-     a cycle somewhere.  */
-
-  while (pseg != 0)
-    {
-#ifdef DEBUG_I00AFUNC
-      fprintf (stderr, "%011o %011o\n", pseg, size);
-#endif
-      stkl = stkl - pseg;
-      ssptr = (struct stack_segment_linkage *) stkl;
-      size = ssptr->sssize;
-      pseg = ssptr->sspseg;
-      result += size;
-    }
-  return (result);
-}
-
-#endif /* not CRAY2 */
-#endif /* CRAY */
diff --git a/libiberty/argv.c b/libiberty/argv.c
deleted file mode 100644
index 11ca549..0000000
--- a/libiberty/argv.c
+++ /dev/null
@@ -1,460 +0,0 @@
-/* Create and destroy argument vectors (argv's)
-   Copyright (C) 1992, 2001 Free Software Foundation, Inc.
-   Written by Fred Fish @ Cygnus Support
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-
-/*  Create and destroy argument vectors.  An argument vector is simply an
-    array of string pointers, terminated by a NULL pointer. */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include "ansidecl.h"
-#include "libiberty.h"
-#include "safe-ctype.h"
-
-/*  Routines imported from standard C runtime libraries. */
-
-#include <stddef.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-#ifndef EOS
-#define EOS '\0'
-#endif
-
-#define INITIAL_MAXARGC 8	/* Number of args + NULL in initial argv */
-
-
-/*
-
-@deftypefn Extension char** dupargv (char **@var{vector})
-
-Duplicate an argument vector.  Simply scans through @var{vector},
-duplicating each argument until the terminating @code{NULL} is found.
-Returns a pointer to the argument vector if successful.  Returns
-@code{NULL} if there is insufficient memory to complete building the
-argument vector.
-
-@end deftypefn
-
-*/
-
-char **
-dupargv (char **argv)
-{
-  int argc;
-  char **copy;
-  
-  if (argv == NULL)
-    return NULL;
-  
-  /* the vector */
-  for (argc = 0; argv[argc] != NULL; argc++);
-  copy = (char **) malloc ((argc + 1) * sizeof (char *));
-  if (copy == NULL)
-    return NULL;
-  
-  /* the strings */
-  for (argc = 0; argv[argc] != NULL; argc++)
-    {
-      int len = strlen (argv[argc]);
-      copy[argc] = (char *) malloc (len + 1);
-      if (copy[argc] == NULL)
-	{
-	  freeargv (copy);
-	  return NULL;
-	}
-      strcpy (copy[argc], argv[argc]);
-    }
-  copy[argc] = NULL;
-  return copy;
-}
-
-/*
-
-@deftypefn Extension void freeargv (char **@var{vector})
-
-Free an argument vector that was built using @code{buildargv}.  Simply
-scans through @var{vector}, freeing the memory for each argument until
-the terminating @code{NULL} is found, and then frees @var{vector}
-itself.
-
-@end deftypefn
-
-*/
-
-void freeargv (char **vector)
-{
-  register char **scan;
-
-  if (vector != NULL)
-    {
-      for (scan = vector; *scan != NULL; scan++)
-	{
-	  free (*scan);
-	}
-      free (vector);
-    }
-}
-
-/*
-
-@deftypefn Extension char** buildargv (char *@var{sp})
-
-Given a pointer to a string, parse the string extracting fields
-separated by whitespace and optionally enclosed within either single
-or double quotes (which are stripped off), and build a vector of
-pointers to copies of the string for each field.  The input string
-remains unchanged.  The last element of the vector is followed by a
-@code{NULL} element.
-
-All of the memory for the pointer array and copies of the string
-is obtained from @code{malloc}.  All of the memory can be returned to the
-system with the single function call @code{freeargv}, which takes the
-returned result of @code{buildargv}, as it's argument.
-
-Returns a pointer to the argument vector if successful.  Returns
-@code{NULL} if @var{sp} is @code{NULL} or if there is insufficient
-memory to complete building the argument vector.
-
-If the input is a null string (as opposed to a @code{NULL} pointer),
-then buildarg returns an argument vector that has one arg, a null
-string.
-
-@end deftypefn
-
-The memory for the argv array is dynamically expanded as necessary.
-
-In order to provide a working buffer for extracting arguments into,
-with appropriate stripping of quotes and translation of backslash
-sequences, we allocate a working buffer at least as long as the input
-string.  This ensures that we always have enough space in which to
-work, since the extracted arg is never larger than the input string.
-
-The argument vector is always kept terminated with a @code{NULL} arg
-pointer, so it can be passed to @code{freeargv} at any time, or
-returned, as appropriate.
-
-*/
-
-char **buildargv (const char *input)
-{
-  char *arg;
-  char *copybuf;
-  int squote = 0;
-  int dquote = 0;
-  int bsquote = 0;
-  int argc = 0;
-  int maxargc = 0;
-  char **argv = NULL;
-  char **nargv;
-
-  if (input != NULL)
-    {
-      copybuf = (char *) alloca (strlen (input) + 1);
-      /* Is a do{}while to always execute the loop once.  Always return an
-	 argv, even for null strings.  See NOTES above, test case below. */
-      do
-	{
-	  /* Pick off argv[argc] */
-	  while (ISBLANK (*input))
-	    {
-	      input++;
-	    }
-	  if ((maxargc == 0) || (argc >= (maxargc - 1)))
-	    {
-	      /* argv needs initialization, or expansion */
-	      if (argv == NULL)
-		{
-		  maxargc = INITIAL_MAXARGC;
-		  nargv = (char **) malloc (maxargc * sizeof (char *));
-		}
-	      else
-		{
-		  maxargc *= 2;
-		  nargv = (char **) realloc (argv, maxargc * sizeof (char *));
-		}
-	      if (nargv == NULL)
-		{
-		  if (argv != NULL)
-		    {
-		      freeargv (argv);
-		      argv = NULL;
-		    }
-		  break;
-		}
-	      argv = nargv;
-	      argv[argc] = NULL;
-	    }
-	  /* Begin scanning arg */
-	  arg = copybuf;
-	  while (*input != EOS)
-	    {
-	      if (ISSPACE (*input) && !squote && !dquote && !bsquote)
-		{
-		  break;
-		}
-	      else
-		{
-		  if (bsquote)
-		    {
-		      bsquote = 0;
-		      *arg++ = *input;
-		    }
-		  else if (*input == '\\')
-		    {
-		      bsquote = 1;
-		    }
-		  else if (squote)
-		    {
-		      if (*input == '\'')
-			{
-			  squote = 0;
-			}
-		      else
-			{
-			  *arg++ = *input;
-			}
-		    }
-		  else if (dquote)
-		    {
-		      if (*input == '"')
-			{
-			  dquote = 0;
-			}
-		      else
-			{
-			  *arg++ = *input;
-			}
-		    }
-		  else
-		    {
-		      if (*input == '\'')
-			{
-			  squote = 1;
-			}
-		      else if (*input == '"')
-			{
-			  dquote = 1;
-			}
-		      else
-			{
-			  *arg++ = *input;
-			}
-		    }
-		  input++;
-		}
-	    }
-	  *arg = EOS;
-	  argv[argc] = strdup (copybuf);
-	  if (argv[argc] == NULL)
-	    {
-	      freeargv (argv);
-	      argv = NULL;
-	      break;
-	    }
-	  argc++;
-	  argv[argc] = NULL;
-
-	  while (ISSPACE (*input))
-	    {
-	      input++;
-	    }
-	}
-      while (*input != EOS);
-    }
-  return (argv);
-}
-
-/*
-
-@deftypefn Extension void expandargv (int *@var{argcp}, char ***@var{argvp})
-
-The @var{argcp} and @code{argvp} arguments are pointers to the usual
-@code{argc} and @code{argv} arguments to @code{main}.  This function
-looks for arguments that begin with the character @samp{@@}.  Any such
-arguments are interpreted as ``response files''.  The contents of the
-response file are interpreted as additional command line options.  In
-particular, the file is separated into whitespace-separated strings;
-each such string is taken as a command-line option.  The new options
-are inserted in place of the option naming the response file, and
-@code{*argcp} and @code{*argvp} will be updated.  If the value of
-@code{*argvp} is modified by this function, then the new value has
-been dynamically allocated and can be deallocated by the caller with
-@code{freeargv}.  However, most callers will simply call
-@code{expandargv} near the beginning of @code{main} and allow the
-operating system to free the memory when the program exits.
-
-@end deftypefn
-
-*/
-
-void
-expandargv (argcp, argvp)
-     int *argcp;
-     char ***argvp;
-{
-  /* The argument we are currently processing.  */
-  int i = 0;
-  /* Non-zero if ***argvp has been dynamically allocated.  */
-  int argv_dynamic = 0;
-  /* Loop over the arguments, handling response files.  We always skip
-     ARGVP[0], as that is the name of the program being run.  */
-  while (++i < *argcp)
-    {
-      /* The name of the response file.  */
-      const char *filename;
-      /* The response file.  */
-      FILE *f;
-      /* An upper bound on the number of characters in the response
-	 file.  */
-      long pos;
-      /* The number of characters in the response file, when actually
-	 read.  */
-      size_t len;
-      /* A dynamically allocated buffer used to hold options read from a
-	 response file.  */
-      char *buffer;
-      /* Dynamically allocated storage for the options read from the
-	 response file.  */
-      char **file_argv;
-      /* The number of options read from the response file, if any.  */
-      size_t file_argc;
-      /* We are only interested in options of the form "@file".  */
-      filename = (*argvp)[i];
-      if (filename[0] != '@')
-	continue;
-      /* Read the contents of the file.  */
-      f = fopen (++filename, "r");
-      if (!f)
-	continue;
-      if (fseek (f, 0L, SEEK_END) == -1)
-	goto error;
-      pos = ftell (f);
-      if (pos == -1)
-	goto error;
-      if (fseek (f, 0L, SEEK_SET) == -1)
-	goto error;
-      buffer = (char *) xmalloc (pos * sizeof (char) + 1);
-      len = fread (buffer, sizeof (char), pos, f);
-      if (len != (size_t) pos
-	  /* On Windows, fread may return a value smaller than POS,
-	     due to CR/LF->CR translation when reading text files.
-	     That does not in-and-of itself indicate failure.  */
-	  && ferror (f))
-	goto error;
-      /* Add a NUL terminator.  */
-      buffer[len] = '\0';
-      /* Parse the string.  */
-      file_argv = buildargv (buffer);
-      /* If *ARGVP is not already dynamically allocated, copy it.  */
-      if (!argv_dynamic)
-	{
-	  *argvp = dupargv (*argvp);
-	  if (!*argvp)
-	    {
-	      fputs ("\nout of memory\n", stderr);
-	      xexit (1);
-	    }
-	}
-      /* Count the number of arguments.  */
-      file_argc = 0;
-      while (file_argv[file_argc] && *file_argv[file_argc])
-	++file_argc;
-      /* Now, insert FILE_ARGV into ARGV.  The "+1" below handles the
-	 NULL terminator at the end of ARGV.  */ 
-      *argvp = ((char **) 
-		xrealloc (*argvp, 
-			  (*argcp + file_argc + 1) * sizeof (char *)));
-      memmove (*argvp + i + file_argc, *argvp + i + 1, 
-	       (*argcp - i) * sizeof (char *));
-      memcpy (*argvp + i, file_argv, file_argc * sizeof (char *));
-      /* The original option has been replaced by all the new
-	 options.  */
-      *argcp += file_argc - 1;
-      /* Free up memory allocated to process the response file.  We do
-	 not use freeargv because the individual options in FILE_ARGV
-	 are now in the main ARGV.  */
-      free (file_argv);
-      free (buffer);
-      /* Rescan all of the arguments just read to support response
-	 files that include other response files.  */
-      --i;
-    error:
-      /* We're all done with the file now.  */
-      fclose (f);
-    }
-}
-
-#ifdef MAIN
-
-/* Simple little test driver. */
-
-static const char *const tests[] =
-{
-  "a simple command line",
-  "arg 'foo' is single quoted",
-  "arg \"bar\" is double quoted",
-  "arg \"foo bar\" has embedded whitespace",
-  "arg 'Jack said \\'hi\\'' has single quotes",
-  "arg 'Jack said \\\"hi\\\"' has double quotes",
-  "a b c d e f g h i j k l m n o p q r s t u v w x y z 1 2 3 4 5 6 7 8 9",
-  
-  /* This should be expanded into only one argument.  */
-  "trailing-whitespace ",
-
-  "",
-  NULL
-};
-
-int
-main (void)
-{
-  char **argv;
-  const char *const *test;
-  char **targs;
-
-  for (test = tests; *test != NULL; test++)
-    {
-      printf ("buildargv(\"%s\")\n", *test);
-      if ((argv = buildargv (*test)) == NULL)
-	{
-	  printf ("failed!\n\n");
-	}
-      else
-	{
-	  for (targs = argv; *targs != NULL; targs++)
-	    {
-	      printf ("\t\"%s\"\n", *targs);
-	    }
-	  printf ("\n");
-	}
-      freeargv (argv);
-    }
-
-  return 0;
-}
-
-#endif	/* MAIN */
diff --git a/libiberty/asprintf.c b/libiberty/asprintf.c
deleted file mode 100644
index 3cf5052..0000000
--- a/libiberty/asprintf.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Like sprintf but provides a pointer to malloc'd storage, which must
-   be freed by the caller.
-   Copyright (C) 1997, 2003 Free Software Foundation, Inc.
-   Contributed by Cygnus Solutions.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include "ansidecl.h"
-#include "libiberty.h"
-
-#include <stdarg.h>
-
-/*
-
-@deftypefn Extension int asprintf (char **@var{resptr}, const char *@var{format}, ...)
-
-Like @code{sprintf}, but instead of passing a pointer to a buffer, you
-pass a pointer to a pointer.  This function will compute the size of
-the buffer needed, allocate memory with @code{malloc}, and store a
-pointer to the allocated memory in @code{*@var{resptr}}.  The value
-returned is the same as @code{sprintf} would return.  If memory could
-not be allocated, minus one is returned and @code{NULL} is stored in
-@code{*@var{resptr}}.
-
-@end deftypefn
-
-*/
-
-int
-asprintf (char **buf, const char *fmt, ...)
-{
-  int status;
-  VA_OPEN (ap, fmt);
-  VA_FIXEDARG (ap, char **, buf);
-  VA_FIXEDARG (ap, const char *, fmt);
-  status = vasprintf (buf, fmt, ap);
-  VA_CLOSE (ap);
-  return status;
-}
diff --git a/libiberty/at-file.texi b/libiberty/at-file.texi
deleted file mode 100644
index 080d195..0000000
--- a/libiberty/at-file.texi
+++ /dev/null
@@ -1,15 +0,0 @@
-@c This file is designed to be included in manuals that use 
-@c expandargv.
-
-@item @@@var{file}
-Read command-line options from @var{file}.  The options read are
-inserted in place of the original @@@var{file} option.  If @var{file}
-does not exist, or cannot be read, then the option will be treated
-literally, and not removed.  
-
-Options in @var{file} are separated by whitespace.  A whitespace
-character may be included in an option by surrounding the entire
-option in either single or double quotes.  Any character (including a
-backslash) may be included by prefixing the character to be included
-with a backslash.  The @var{file} may itself contain additional
-@@@var{file} options; any such options will be processed recursively.
diff --git a/libiberty/atexit.c b/libiberty/atexit.c
deleted file mode 100644
index e091f01..0000000
--- a/libiberty/atexit.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Wrapper to implement ANSI C's atexit using SunOS's on_exit. */
-/* This function is in the public domain.  --Mike Stump. */
-
-/*
-
-@deftypefn Supplemental int atexit (void (*@var{f})())
-
-Causes function @var{f} to be called at exit.  Returns 0.
-
-@end deftypefn
-
-*/
-
-#include "config.h"
-
-#ifdef HAVE_ON_EXIT
-
-int
-atexit(void (*f)(void))
-{
-  /* If the system doesn't provide a definition for atexit, use on_exit
-     if the system provides that.  */
-  on_exit (f, 0);
-  return 0;
-}
-
-#endif
diff --git a/libiberty/basename.c b/libiberty/basename.c
deleted file mode 100644
index 0f2c069..0000000
--- a/libiberty/basename.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Return the basename of a pathname.
-   This file is in the public domain. */
-
-/*
-
-@deftypefn Supplemental char* basename (const char *@var{name})
-
-Returns a pointer to the last component of pathname @var{name}.
-Behavior is undefined if the pathname ends in a directory separator.
-
-@end deftypefn
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include "ansidecl.h"
-#include "libiberty.h"
-#include "safe-ctype.h"
-
-#ifndef DIR_SEPARATOR
-#define DIR_SEPARATOR '/'
-#endif
-
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
-  defined (__OS2__)
-#define HAVE_DOS_BASED_FILE_SYSTEM
-#ifndef DIR_SEPARATOR_2 
-#define DIR_SEPARATOR_2 '\\'
-#endif
-#endif
-
-/* Define IS_DIR_SEPARATOR.  */
-#ifndef DIR_SEPARATOR_2
-# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
-#else /* DIR_SEPARATOR_2 */
-# define IS_DIR_SEPARATOR(ch) \
-	(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
-#endif /* DIR_SEPARATOR_2 */
-
-char *
-basename (const char *name)
-{
-  const char *base;
-
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  /* Skip over the disk name in MSDOS pathnames. */
-  if (ISALPHA (name[0]) && name[1] == ':') 
-    name += 2;
-#endif
-
-  for (base = name; *name; name++)
-    {
-      if (IS_DIR_SEPARATOR (*name))
-	{
-	  base = name + 1;
-	}
-    }
-  return (char *) base;
-}
-
diff --git a/libiberty/bcmp.c b/libiberty/bcmp.c
deleted file mode 100644
index c639f98..0000000
--- a/libiberty/bcmp.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* bcmp
-   This function is in the public domain.  */
-
-/*
-
-@deftypefn Supplemental int bcmp (char *@var{x}, char *@var{y}, int @var{count})
-
-Compares the first @var{count} bytes of two areas of memory.  Returns
-zero if they are the same, nonzero otherwise.  Returns zero if
-@var{count} is zero.  A nonzero result only indicates a difference,
-it does not indicate any sorting order (say, by having a positive
-result mean @var{x} sorts before @var{y}).
-
-@end deftypefn
-
-*/
-
-#include <stddef.h>
-
-extern int memcmp(const void *, const void *, size_t);
-
-int
-bcmp (const void *s1, const void *s2, size_t count)
-{
-  return memcmp (s1, s2, count);
-}
-
diff --git a/libiberty/bcopy.c b/libiberty/bcopy.c
deleted file mode 100644
index 1e2eca9..0000000
--- a/libiberty/bcopy.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* bcopy -- copy memory regions of arbitary length
-
-@deftypefn Supplemental void bcopy (char *@var{in}, char *@var{out}, int @var{length})
-
-Copies @var{length} bytes from memory region @var{in} to region
-@var{out}.  The use of @code{bcopy} is deprecated in new programs.
-
-@end deftypefn
-
-*/
-
-#include <stddef.h>
-
-void
-bcopy (const void *src, void *dest, size_t len)
-{
-  if (dest < src)
-    {
-      const char *firsts = src;
-      char *firstd = dest;
-      while (len--)
-	*firstd++ = *firsts++;
-    }
-  else
-    {
-      const char *lasts = (const char *)src + (len-1);
-      char *lastd = (char *)dest + (len-1);
-      while (len--)
-        *lastd-- = *lasts--;
-    }
-}
diff --git a/libiberty/bsearch.c b/libiberty/bsearch.c
deleted file mode 100644
index 771d5de..0000000
--- a/libiberty/bsearch.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (c) 1990 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. [rescinded 22 July 1999]
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
-
-@deftypefn Supplemental void* bsearch (const void *@var{key}, const void *@var{base}, size_t @var{nmemb}, size_t @var{size}, int (*@var{compar})(const void *, const void *))
-
-Performs a search over an array of @var{nmemb} elements pointed to by
-@var{base} for a member that matches the object pointed to by @var{key}.
-The size of each member is specified by @var{size}.  The array contents
-should be sorted in ascending order according to the @var{compar}
-comparison function.  This routine should take two arguments pointing to
-the @var{key} and to an array member, in that order, and should return an
-integer less than, equal to, or greater than zero if the @var{key} object
-is respectively less than, matching, or greater than the array member.
-
-@end deftypefn
-
-*/
-
-#include "config.h"
-#include "ansidecl.h"
-#include <sys/types.h>		/* size_t */
-#include <stdio.h>
-
-/*
- * Perform a binary search.
- *
- * The code below is a bit sneaky.  After a comparison fails, we
- * divide the work in half by moving either left or right. If lim
- * is odd, moving left simply involves halving lim: e.g., when lim
- * is 5 we look at item 2, so we change lim to 2 so that we will
- * look at items 0 & 1.  If lim is even, the same applies.  If lim
- * is odd, moving right again involes halving lim, this time moving
- * the base up one item past p: e.g., when lim is 5 we change base
- * to item 3 and make lim 2 so that we will look at items 3 and 4.
- * If lim is even, however, we have to shrink it by one before
- * halving: e.g., when lim is 4, we still looked at item 2, so we
- * have to make lim 3, then halve, obtaining 1, so that we will only
- * look at item 3.
- */
-void *
-bsearch (register const void *key, const void *base0,
-         size_t nmemb, register size_t size,
-         register int (*compar)(const void *, const void *))
-{
-	register const char *base = (const char *) base0;
-	register int lim, cmp;
-	register const void *p;
-
-	for (lim = nmemb; lim != 0; lim >>= 1) {
-		p = base + (lim >> 1) * size;
-		cmp = (*compar)(key, p);
-		if (cmp == 0)
-			return (void *)p;
-		if (cmp > 0) {	/* key > p: move right */
-			base = (const char *)p + size;
-			lim--;
-		} /* else move left */
-	}
-	return (NULL);
-}
diff --git a/libiberty/bzero.c b/libiberty/bzero.c
deleted file mode 100644
index 44ad73d..0000000
--- a/libiberty/bzero.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Portable version of bzero for systems without it.
-   This function is in the public domain.  */
-
-/*
-
-@deftypefn Supplemental void bzero (char *@var{mem}, int @var{count})
-
-Zeros @var{count} bytes starting at @var{mem}.  Use of this function
-is deprecated in favor of @code{memset}.
-
-@end deftypefn
-
-*/
-
-#include <stddef.h>
-
-extern void *memset(void *, int, size_t);
-
-void
-bzero (void *to, size_t count)
-{
-  memset (to, 0, count);
-}
diff --git a/libiberty/calloc.c b/libiberty/calloc.c
deleted file mode 100644
index f4bd27b..0000000
--- a/libiberty/calloc.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* calloc -- allocate memory which has been initialized to zero.
-   This function is in the public domain. */
-
-/*
-
-@deftypefn Supplemental void* calloc (size_t @var{nelem}, size_t @var{elsize})
-
-Uses @code{malloc} to allocate storage for @var{nelem} objects of
-@var{elsize} bytes each, then zeros the memory.
-
-@end deftypefn
-
-*/
- 
-#include "ansidecl.h"
-#include <stddef.h>
-
-/* For systems with larger pointers than ints, this must be declared.  */
-PTR malloc (size_t);
-void bzero (PTR, size_t);
-
-PTR
-calloc (size_t nelem, size_t elsize)
-{
-  register PTR ptr;  
-
-  if (nelem == 0 || elsize == 0)
-    nelem = elsize = 1;
-  
-  ptr = malloc (nelem * elsize);
-  if (ptr) bzero (ptr, nelem * elsize);
-  
-  return ptr;
-}
diff --git a/libiberty/choose-temp.c b/libiberty/choose-temp.c
deleted file mode 100644
index 0cba990..0000000
--- a/libiberty/choose-temp.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Utility to pick a temporary filename prefix.
-   Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If not,
-write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdio.h>	/* May get P_tmpdir.  */
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-
-#include "libiberty.h"
-extern char *choose_tmpdir (void);
-
-/* Name of temporary file.
-   mktemp requires 6 trailing X's.  */
-#define TEMP_FILE "ccXXXXXX"
-#define TEMP_FILE_LEN (sizeof(TEMP_FILE) - 1)
-
-/*
-
-@deftypefn Extension char* choose_temp_base (void)
-
-Return a prefix for temporary file names or @code{NULL} if unable to
-find one.  The current directory is chosen if all else fails so the
-program is exited if a temporary directory can't be found (@code{mktemp}
-fails).  The buffer for the result is obtained with @code{xmalloc}.
-
-This function is provided for backwards compatability only.  Its use is
-not recommended.
-
-@end deftypefn
-
-*/
-
-char *
-choose_temp_base (void)
-{
-  const char *base = choose_tmpdir ();
-  char *temp_filename;
-  int len;
-
-  len = strlen (base);
-  temp_filename = XNEWVEC (char, len + TEMP_FILE_LEN + 1);
-  strcpy (temp_filename, base);
-  strcpy (temp_filename + len, TEMP_FILE);
-
-  mktemp (temp_filename);
-  if (strlen (temp_filename) == 0)
-    abort ();
-  return temp_filename;
-}
diff --git a/libiberty/clock.c b/libiberty/clock.c
deleted file mode 100644
index 07d902e..0000000
--- a/libiberty/clock.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/* ANSI-compatible clock function.
-   Copyright (C) 1994, 1995, 1999 Free Software Foundation, Inc.
-
-This file is part of the libiberty library.  This library 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.
-
-This library 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 GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-As a special exception, if you link this library with files
-compiled with a GNU compiler to produce an executable, this does not cause
-the resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why
-the executable file might be covered by the GNU General Public License. */
-
-/*
-
-@deftypefn Supplemental long clock (void)
-
-Returns an approximation of the CPU time used by the process as a
-@code{clock_t}; divide this number by @samp{CLOCKS_PER_SEC} to get the
-number of seconds used.
-
-@end deftypefn
-
-*/
-
-#include "config.h"
-
-#ifdef HAVE_GETRUSAGE
-#include <sys/time.h>
-#include <sys/resource.h>
-#endif
-
-#ifdef HAVE_TIMES
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#include <sys/times.h>
-#endif
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef _SC_CLK_TCK
-#define GNU_HZ  sysconf(_SC_CLK_TCK)
-#else
-#ifdef HZ
-#define GNU_HZ  HZ
-#else
-#ifdef CLOCKS_PER_SEC
-#define GNU_HZ  CLOCKS_PER_SEC
-#endif
-#endif
-#endif
-
-/* FIXME: should be able to declare as clock_t. */
-
-long
-clock (void)
-{
-#ifdef HAVE_GETRUSAGE
-  struct rusage rusage;
-
-  getrusage (0, &rusage);
-  return (rusage.ru_utime.tv_sec * 1000000 + rusage.ru_utime.tv_usec
-	  + rusage.ru_stime.tv_sec * 1000000 + rusage.ru_stime.tv_usec);
-#else
-#ifdef HAVE_TIMES
-  struct tms tms;
-
-  times (&tms);
-  return (tms.tms_utime + tms.tms_stime) * (1000000 / GNU_HZ);
-#else
-#ifdef VMS
-  struct
-    {
-      int proc_user_time;
-      int proc_system_time;
-      int child_user_time;
-      int child_system_time;
-    } vms_times;
-
-  times (&vms_times);
-  return (vms_times.proc_user_time + vms_times.proc_system_time) * 10000;
-#else
-  /* A fallback, if nothing else available. */
-  return 0;
-#endif /* VMS */
-#endif /* HAVE_TIMES */
-#endif /* HAVE_GETRUSAGE */
-}
-
diff --git a/libiberty/concat.c b/libiberty/concat.c
deleted file mode 100644
index 1f329ea..0000000
--- a/libiberty/concat.c
+++ /dev/null
@@ -1,232 +0,0 @@
-/* Concatenate variable number of strings.
-   Copyright (C) 1991, 1994, 2001 Free Software Foundation, Inc.
-   Written by Fred Fish @ Cygnus Support
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-
-/*
-
-@deftypefn Extension char* concat (const char *@var{s1}, const char *@var{s2}, @dots{}, @code{NULL})
-
-Concatenate zero or more of strings and return the result in freshly
-@code{xmalloc}ed memory.  Returns @code{NULL} if insufficient memory is
-available.  The argument list is terminated by the first @code{NULL}
-pointer encountered.  Pointers to empty strings are ignored.
-
-@end deftypefn
-
-NOTES
-
-	This function uses xmalloc() which is expected to be a front end
-	function to malloc() that deals with low memory situations.  In
-	typical use, if malloc() returns NULL then xmalloc() diverts to an
-	error handler routine which never returns, and thus xmalloc will
-	never return a NULL pointer.  If the client application wishes to
-	deal with low memory situations itself, it should supply an xmalloc
-	that just directly invokes malloc and blindly returns whatever
-	malloc returns.
-
-*/
-
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include "ansidecl.h"
-#include "libiberty.h"
-#include <sys/types.h>		/* size_t */
-
-#include <stdarg.h>
-
-# if HAVE_STRING_H
-#  include <string.h>
-# else
-#  if HAVE_STRINGS_H
-#   include <strings.h>
-#  endif
-# endif
-
-#if HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-static inline unsigned long vconcat_length (const char *, va_list);
-static inline unsigned long
-vconcat_length (const char *first, va_list args)
-{
-  unsigned long length = 0;
-  const char *arg;
-
-  for (arg = first; arg ; arg = va_arg (args, const char *))
-    length += strlen (arg);
-
-  return length;
-}
-
-static inline char *
-vconcat_copy (char *dst, const char *first, va_list args)
-{
-  char *end = dst;
-  const char *arg;
-
-  for (arg = first; arg ; arg = va_arg (args, const char *))
-    {
-      unsigned long length = strlen (arg);
-      memcpy (end, arg, length);
-      end += length;
-    }
-  *end = '\000';
-
-  return dst;
-}
-
-/* @undocumented concat_length */
-
-unsigned long
-concat_length (const char *first, ...)
-{
-  unsigned long length;
-
-  VA_OPEN (args, first);
-  VA_FIXEDARG (args, const char *, first);
-  length = vconcat_length (first, args);
-  VA_CLOSE (args);
-
-  return length;
-}
-
-/* @undocumented concat_copy */
-
-char *
-concat_copy (char *dst, const char *first, ...)
-{
-  char *save_dst;
-
-  VA_OPEN (args, first);
-  VA_FIXEDARG (args, char *, dst);
-  VA_FIXEDARG (args, const char *, first);
-  vconcat_copy (dst, first, args);
-  save_dst = dst; /* With K&R C, dst goes out of scope here.  */
-  VA_CLOSE (args);
-
-  return save_dst;
-}
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-char *libiberty_concat_ptr;
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-/* @undocumented concat_copy2 */
-
-char *
-concat_copy2 (const char *first, ...)
-{
-  VA_OPEN (args, first);
-  VA_FIXEDARG (args, const char *, first);
-  vconcat_copy (libiberty_concat_ptr, first, args);
-  VA_CLOSE (args);
-
-  return libiberty_concat_ptr;
-}
-
-char *
-concat (const char *first, ...)
-{
-  char *newstr;
-
-  /* First compute the size of the result and get sufficient memory.  */
-  VA_OPEN (args, first);
-  VA_FIXEDARG (args, const char *, first);
-  newstr = XNEWVEC (char, vconcat_length (first, args) + 1);
-  VA_CLOSE (args);
-
-  /* Now copy the individual pieces to the result string. */
-  VA_OPEN (args, first);
-  VA_FIXEDARG (args, const char *, first);
-  vconcat_copy (newstr, first, args);
-  VA_CLOSE (args);
-
-  return newstr;
-}
-
-/*
-
-@deftypefn Extension char* reconcat (char *@var{optr}, const char *@var{s1}, @dots{}, @code{NULL})
-
-Same as @code{concat}, except that if @var{optr} is not @code{NULL} it
-is freed after the string is created.  This is intended to be useful
-when you're extending an existing string or building up a string in a
-loop:
-
-@example
-  str = reconcat (str, "pre-", str, NULL);
-@end example
-
-@end deftypefn
-
-*/
-
-char *
-reconcat (char *optr, const char *first, ...)
-{
-  char *newstr;
-
-  /* First compute the size of the result and get sufficient memory.  */
-  VA_OPEN (args, first);
-  VA_FIXEDARG (args, char *, optr);
-  VA_FIXEDARG (args, const char *, first);
-  newstr = XNEWVEC (char, vconcat_length (first, args) + 1);
-  VA_CLOSE (args);
-
-  /* Now copy the individual pieces to the result string. */
-  VA_OPEN (args, first);
-  VA_FIXEDARG (args, char *, optr);
-  VA_FIXEDARG (args, const char *, first);
-  vconcat_copy (newstr, first, args);
-  if (optr) /* Done before VA_CLOSE so optr stays in scope for K&R C.  */
-    free (optr);
-  VA_CLOSE (args);
-
-  return newstr;
-}
-
-#ifdef MAIN
-#define NULLP (char *)0
-
-/* Simple little test driver. */
-
-#include <stdio.h>
-
-int
-main (void)
-{
-  printf ("\"\" = \"%s\"\n", concat (NULLP));
-  printf ("\"a\" = \"%s\"\n", concat ("a", NULLP));
-  printf ("\"ab\" = \"%s\"\n", concat ("a", "b", NULLP));
-  printf ("\"abc\" = \"%s\"\n", concat ("a", "b", "c", NULLP));
-  printf ("\"abcd\" = \"%s\"\n", concat ("ab", "cd", NULLP));
-  printf ("\"abcde\" = \"%s\"\n", concat ("ab", "c", "de", NULLP));
-  printf ("\"abcdef\" = \"%s\"\n", concat ("", "a", "", "bcd", "ef", NULLP));
-  return 0;
-}
-
-#endif
diff --git a/libiberty/config.h-vms b/libiberty/config.h-vms
deleted file mode 100644
index ccac6a2..0000000
--- a/libiberty/config.h-vms
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef NEED_strerror
-#define NEED_strerror
-#endif
-#ifndef NEED_basename
-#define NEED_basename
-#endif
-#ifndef NEED_psignal
-#define NEED_psignal
-#endif
-#ifndef NEED_on_exit
-#define NEED_on_exit
-#endif
-
diff --git a/libiberty/config.in b/libiberty/config.in
deleted file mode 100644
index 436a58d..0000000
--- a/libiberty/config.in
+++ /dev/null
@@ -1,444 +0,0 @@
-/* config.in.  Generated from configure.ac by autoheader.  */
-
-/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
-   This function is required for alloca.c support on those systems. */
-#undef CRAY_STACKSEG_END
-
-/* Define to 1 if you have the <alloca.h> header file. */
-#undef HAVE_ALLOCA_H
-
-/* Define to 1 if you have the `asprintf' function. */
-#undef HAVE_ASPRINTF
-
-/* Define to 1 if you have the `atexit' function. */
-#undef HAVE_ATEXIT
-
-/* Define to 1 if you have the `basename' function. */
-#undef HAVE_BASENAME
-
-/* Define to 1 if you have the `bcmp' function. */
-#undef HAVE_BCMP
-
-/* Define to 1 if you have the `bcopy' function. */
-#undef HAVE_BCOPY
-
-/* Define to 1 if you have the `bsearch' function. */
-#undef HAVE_BSEARCH
-
-/* Define to 1 if you have the `bzero' function. */
-#undef HAVE_BZERO
-
-/* Define to 1 if you have the `calloc' function. */
-#undef HAVE_CALLOC
-
-/* Define to 1 if you have the `canonicalize_file_name' function. */
-#undef HAVE_CANONICALIZE_FILE_NAME
-
-/* Define to 1 if you have the `clock' function. */
-#undef HAVE_CLOCK
-
-/* Define to 1 if you have the declaration of `asprintf', and to 0 if you
-   don't. */
-#undef HAVE_DECL_ASPRINTF
-
-/* Define to 1 if you have the declaration of `basename', and to 0 if you
-   don't. */
-#undef HAVE_DECL_BASENAME
-
-/* Define to 1 if you have the declaration of `calloc', and to 0 if you don't.
-   */
-#undef HAVE_DECL_CALLOC
-
-/* Define to 1 if you have the declaration of `ffs', and to 0 if you don't. */
-#undef HAVE_DECL_FFS
-
-/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't.
-   */
-#undef HAVE_DECL_GETENV
-
-/* Define to 1 if you have the declaration of `getopt', and to 0 if you don't.
-   */
-#undef HAVE_DECL_GETOPT
-
-/* Define to 1 if you have the declaration of `malloc', and to 0 if you don't.
-   */
-#undef HAVE_DECL_MALLOC
-
-/* Define to 1 if you have the declaration of `realloc', and to 0 if you
-   don't. */
-#undef HAVE_DECL_REALLOC
-
-/* Define to 1 if you have the declaration of `sbrk', and to 0 if you don't.
-   */
-#undef HAVE_DECL_SBRK
-
-/* Define to 1 if you have the declaration of `snprintf', and to 0 if you
-   don't. */
-#undef HAVE_DECL_SNPRINTF
-
-/* Define to 1 if you have the declaration of `strverscmp', and to 0 if you
-   don't. */
-#undef HAVE_DECL_STRVERSCMP
-
-/* Define to 1 if you have the declaration of `vasprintf', and to 0 if you
-   don't. */
-#undef HAVE_DECL_VASPRINTF
-
-/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you
-   don't. */
-#undef HAVE_DECL_VSNPRINTF
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Define to 1 if you have the `ffs' function. */
-#undef HAVE_FFS
-
-/* Define to 1 if you have the `fork' function. */
-#undef HAVE_FORK
-
-/* Define to 1 if you have the `getcwd' function. */
-#undef HAVE_GETCWD
-
-/* Define to 1 if you have the `getpagesize' function. */
-#undef HAVE_GETPAGESIZE
-
-/* Define to 1 if you have the `getrusage' function. */
-#undef HAVE_GETRUSAGE
-
-/* Define to 1 if you have the `getsysinfo' function. */
-#undef HAVE_GETSYSINFO
-
-/* Define to 1 if you have the `gettimeofday' function. */
-#undef HAVE_GETTIMEOFDAY
-
-/* Define to 1 if you have the `index' function. */
-#undef HAVE_INDEX
-
-/* Define to 1 if you have the `insque' function. */
-#undef HAVE_INSQUE
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the <limits.h> header file. */
-#undef HAVE_LIMITS_H
-
-/* Define to 1 if you have the <machine/hal_sysinfo.h> header file. */
-#undef HAVE_MACHINE_HAL_SYSINFO_H
-
-/* Define to 1 if you have the <malloc.h> header file. */
-#undef HAVE_MALLOC_H
-
-/* Define to 1 if you have the `memchr' function. */
-#undef HAVE_MEMCHR
-
-/* Define to 1 if you have the `memcmp' function. */
-#undef HAVE_MEMCMP
-
-/* Define to 1 if you have the `memcpy' function. */
-#undef HAVE_MEMCPY
-
-/* Define to 1 if you have the `memmove' function. */
-#undef HAVE_MEMMOVE
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the `mempcpy' function. */
-#undef HAVE_MEMPCPY
-
-/* Define to 1 if you have the `memset' function. */
-#undef HAVE_MEMSET
-
-/* Define to 1 if you have the `mkstemps' function. */
-#undef HAVE_MKSTEMPS
-
-/* Define to 1 if you have a working `mmap' system call. */
-#undef HAVE_MMAP
-
-/* Define to 1 if you have the `on_exit' function. */
-#undef HAVE_ON_EXIT
-
-/* Define to 1 if you have the `psignal' function. */
-#undef HAVE_PSIGNAL
-
-/* Define to 1 if you have the `pstat_getdynamic' function. */
-#undef HAVE_PSTAT_GETDYNAMIC
-
-/* Define to 1 if you have the `pstat_getstatic' function. */
-#undef HAVE_PSTAT_GETSTATIC
-
-/* Define to 1 if you have the `putenv' function. */
-#undef HAVE_PUTENV
-
-/* Define to 1 if you have the `random' function. */
-#undef HAVE_RANDOM
-
-/* Define to 1 if you have the `realpath' function. */
-#undef HAVE_REALPATH
-
-/* Define to 1 if you have the `rename' function. */
-#undef HAVE_RENAME
-
-/* Define to 1 if you have the `rindex' function. */
-#undef HAVE_RINDEX
-
-/* Define to 1 if you have the `sbrk' function. */
-#undef HAVE_SBRK
-
-/* Define to 1 if you have the `setenv' function. */
-#undef HAVE_SETENV
-
-/* Define to 1 if you have the `sigsetmask' function. */
-#undef HAVE_SIGSETMASK
-
-/* Define to 1 if you have the `snprintf' function. */
-#undef HAVE_SNPRINTF
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdio_ext.h> header file. */
-#undef HAVE_STDIO_EXT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the `stpcpy' function. */
-#undef HAVE_STPCPY
-
-/* Define to 1 if you have the `stpncpy' function. */
-#undef HAVE_STPNCPY
-
-/* Define to 1 if you have the `strcasecmp' function. */
-#undef HAVE_STRCASECMP
-
-/* Define to 1 if you have the `strchr' function. */
-#undef HAVE_STRCHR
-
-/* Define to 1 if you have the `strdup' function. */
-#undef HAVE_STRDUP
-
-/* Define to 1 if you have the `strerror' function. */
-#undef HAVE_STRERROR
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the `strncasecmp' function. */
-#undef HAVE_STRNCASECMP
-
-/* Define to 1 if you have the `strndup' function. */
-#undef HAVE_STRNDUP
-
-/* Define to 1 if you have the `strrchr' function. */
-#undef HAVE_STRRCHR
-
-/* Define to 1 if you have the `strsignal' function. */
-#undef HAVE_STRSIGNAL
-
-/* Define to 1 if you have the `strstr' function. */
-#undef HAVE_STRSTR
-
-/* Define to 1 if you have the `strtod' function. */
-#undef HAVE_STRTOD
-
-/* Define to 1 if you have the `strtol' function. */
-#undef HAVE_STRTOL
-
-/* Define to 1 if you have the `strtoul' function. */
-#undef HAVE_STRTOUL
-
-/* Define to 1 if you have the `strverscmp' function. */
-#undef HAVE_STRVERSCMP
-
-/* Define to 1 if you have the `sysconf' function. */
-#undef HAVE_SYSCONF
-
-/* Define to 1 if you have the `sysctl' function. */
-#undef HAVE_SYSCTL
-
-/* Define to 1 if you have the `sysmp' function. */
-#undef HAVE_SYSMP
-
-/* Define if you have the sys_errlist variable. */
-#undef HAVE_SYS_ERRLIST
-
-/* Define to 1 if you have the <sys/file.h> header file. */
-#undef HAVE_SYS_FILE_H
-
-/* Define to 1 if you have the <sys/mman.h> header file. */
-#undef HAVE_SYS_MMAN_H
-
-/* Define if you have the sys_nerr variable. */
-#undef HAVE_SYS_NERR
-
-/* Define to 1 if you have the <sys/param.h> header file. */
-#undef HAVE_SYS_PARAM_H
-
-/* Define to 1 if you have the <sys/pstat.h> header file. */
-#undef HAVE_SYS_PSTAT_H
-
-/* Define to 1 if you have the <sys/resource.h> header file. */
-#undef HAVE_SYS_RESOURCE_H
-
-/* Define if you have the sys_siglist variable. */
-#undef HAVE_SYS_SIGLIST
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/sysctl.h> header file. */
-#undef HAVE_SYS_SYSCTL_H
-
-/* Define to 1 if you have the <sys/sysinfo.h> header file. */
-#undef HAVE_SYS_SYSINFO_H
-
-/* Define to 1 if you have the <sys/sysmp.h> header file. */
-#undef HAVE_SYS_SYSMP_H
-
-/* Define to 1 if you have the <sys/systemcfg.h> header file. */
-#undef HAVE_SYS_SYSTEMCFG_H
-
-/* Define to 1 if you have the <sys/table.h> header file. */
-#undef HAVE_SYS_TABLE_H
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
-#undef HAVE_SYS_WAIT_H
-
-/* Define to 1 if you have the `table' function. */
-#undef HAVE_TABLE
-
-/* Define to 1 if you have the `times' function. */
-#undef HAVE_TIMES
-
-/* Define to 1 if you have the <time.h> header file. */
-#undef HAVE_TIME_H
-
-/* Define to 1 if you have the `tmpnam' function. */
-#undef HAVE_TMPNAM
-
-/* Define if you have the \`uintptr_t' type. */
-#undef HAVE_UINTPTR_T
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to 1 if you have the `vasprintf' function. */
-#undef HAVE_VASPRINTF
-
-/* Define to 1 if you have the `vfork' function. */
-#undef HAVE_VFORK
-
-/* Define to 1 if you have the <vfork.h> header file. */
-#undef HAVE_VFORK_H
-
-/* Define to 1 if you have the `vfprintf' function. */
-#undef HAVE_VFPRINTF
-
-/* Define to 1 if you have the `vprintf' function. */
-#undef HAVE_VPRINTF
-
-/* Define to 1 if you have the `vsnprintf' function. */
-#undef HAVE_VSNPRINTF
-
-/* Define to 1 if you have the `vsprintf' function. */
-#undef HAVE_VSPRINTF
-
-/* Define to 1 if you have the `wait3' function. */
-#undef HAVE_WAIT3
-
-/* Define to 1 if you have the `wait4' function. */
-#undef HAVE_WAIT4
-
-/* Define to 1 if you have the `waitpid' function. */
-#undef HAVE_WAITPID
-
-/* Define to 1 if `fork' works. */
-#undef HAVE_WORKING_FORK
-
-/* Define to 1 if `vfork' works. */
-#undef HAVE_WORKING_VFORK
-
-/* Define to 1 if you have the `_doprnt' function. */
-#undef HAVE__DOPRNT
-
-/* Define if you have the _system_configuration variable. */
-#undef HAVE__SYSTEM_CONFIGURATION
-
-/* Define to 1 if you have the `__fsetlocking' function. */
-#undef HAVE___FSETLOCKING
-
-/* Define if canonicalize_file_name is not declared in system header files. */
-#undef NEED_DECLARATION_CANONICALIZE_FILE_NAME
-
-/* Define if errno must be declared even when <errno.h> is included. */
-#undef NEED_DECLARATION_ERRNO
-
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#undef NO_MINUS_C_MINUS_O
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* The size of a `int', as computed by sizeof. */
-#undef SIZEOF_INT
-
-/* Define if you know the direction of stack growth for your system; otherwise
-   it will be automatically deduced at run-time. STACK_DIRECTION > 0 => grows
-   toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses
-   STACK_DIRECTION = 0 => direction of growth unknown */
-#undef STACK_DIRECTION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-#undef TIME_WITH_SYS_TIME
-
-/* Define to an unsigned 64-bit type available in the compiler. */
-#undef UNSIGNED_64BIT_TYPE
-
-/* Define to 1 if your processor stores words with the most significant byte
-   first (like Motorola and SPARC, unlike Intel and VAX). */
-#undef WORDS_BIGENDIAN
-
-/* Define to empty if `const' does not conform to ANSI C. */
-#undef const
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
-   calls it, or to nothing if 'inline' is not supported under any name.  */
-#ifndef __cplusplus
-#undef inline
-#endif
-
-/* Define to `int' if <sys/types.h> does not define. */
-#undef pid_t
-
-/* Define to `unsigned long' if <sys/types.h> does not define. */
-#undef uintptr_t
-
-/* Define as `fork' if `vfork' does not work. */
-#undef vfork
diff --git a/libiberty/config/mh-aix b/libiberty/config/mh-aix
deleted file mode 100644
index 6b64505..0000000
--- a/libiberty/config/mh-aix
+++ /dev/null
@@ -1,9 +0,0 @@
-# This file is only needed by AIX 3.1.
-HDEFINES = -D__IEEE_BIG_ENDIAN
-
-# Most releases of AIX 3.1 include an incorrect internal version of copysign
-# in libc.a for use by some libc public functions including modf.  The public
-# version of copysign in libm.a is usable.  For the sake of libg++ (which
-# uses modf), we add copysign here.  Supposedly, this problem is fixed in AIX
-# 3.1.8 and above, including all releases of AIX 3.2.
-EXTRA_OFILES = copysign.o
diff --git a/libiberty/config/mh-cxux7 b/libiberty/config/mh-cxux7
deleted file mode 100644
index a924b08..0000000
--- a/libiberty/config/mh-cxux7
+++ /dev/null
@@ -1 +0,0 @@
-HDEFINES = -DHARRIS_FLOAT_FORMAT
diff --git a/libiberty/config/mh-fbsd21 b/libiberty/config/mh-fbsd21
deleted file mode 100644
index 1375a78..0000000
--- a/libiberty/config/mh-fbsd21
+++ /dev/null
@@ -1 +0,0 @@
-EXTRA_OFILES=vasprintf.o
diff --git a/libiberty/config/mh-openedition b/libiberty/config/mh-openedition
deleted file mode 100644
index 8de8ed1..0000000
--- a/libiberty/config/mh-openedition
+++ /dev/null
@@ -1,3 +0,0 @@
-HDEFINES = -D_ALL_SOURCE -DLE370
-CC=c89
-
diff --git a/libiberty/config/mh-windows b/libiberty/config/mh-windows
deleted file mode 100644
index 3ff5f79..0000000
--- a/libiberty/config/mh-windows
+++ /dev/null
@@ -1 +0,0 @@
-EXTRA_OFILES=asprintf.o strcasecmp.o strncasecmp.o vasprintf.o
diff --git a/libiberty/configure b/libiberty/configure
deleted file mode 100755
index ed7423a..0000000
--- a/libiberty/configure
+++ /dev/null
@@ -1,9983 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59.
-#
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-exec 6>&1
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_config_libobj_dir=.
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete.  It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
-# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-
-ac_unique_file="xmalloc.c"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# if HAVE_STDLIB_H
-#  include <stdlib.h>
-# endif
-#endif
-#if HAVE_STRING_H
-# if !STDC_HEADERS && HAVE_MEMORY_H
-#  include <memory.h>
-# endif
-# include <string.h>
-#endif
-#if HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#else
-# if HAVE_STDINT_H
-#  include <stdint.h>
-# endif
-#endif
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libiberty_topdir MAINT NOTMAINT MAKEINFO BUILD_INFO PERL HAVE_PERL build build_cpu build_vendor build_os host host_cpu host_vendor host_os AR ac_ct_AR RANLIB ac_ct_RANLIB CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP ac_libiberty_warn_cflags NO_MINUS_C_MINUS_O OUTPUT_OPTION INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA EGREP LIBOBJS CHECK target_header_dir pexecute INSTALL_DEST datarootdir docdir htmldir LTLIBOBJS'
-ac_subst_files='host_makefile_frag'
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-ac_prev=
-for ac_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval "$ac_prev=\$ac_option"
-    ac_prev=
-    continue
-  fi
-
-  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_option in
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir=$ac_optarg ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build_alias ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build_alias=$ac_optarg ;;
-
-  -cache-file | --cache-file | --cache-fil | --cache-fi \
-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-    ac_prev=cache_file ;;
-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file=$ac_optarg ;;
-
-  --config-cache | -C)
-    cache_file=config.cache ;;
-
-  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-  | --da=*)
-    datadir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    eval "enable_$ac_feature=no" ;;
-
-  -enable-* | --enable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "enable_$ac_feature='$ac_optarg'" ;;
-
-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-  | --exec | --exe | --ex)
-    ac_prev=exec_prefix ;;
-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-  | --exec=* | --exe=* | --ex=*)
-    exec_prefix=$ac_optarg ;;
-
-  -gas | --gas | --ga | --g)
-    # Obsolete; use --with-gas.
-    with_gas=yes ;;
-
-  -help | --help | --hel | --he | -h)
-    ac_init_help=long ;;
-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-    ac_init_help=recursive ;;
-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-    ac_init_help=short ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host_alias ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host_alias=$ac_optarg ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir=$ac_optarg ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir=$ac_optarg ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir=$ac_optarg ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir=$ac_optarg ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst \
-  | --locals | --local | --loca | --loc | --lo)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-    localstatedir=$ac_optarg ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir=$ac_optarg ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir=$ac_optarg ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix=$ac_optarg ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix=$ac_optarg ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix=$ac_optarg ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name=$ac_optarg ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir=$ac_optarg ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir=$ac_optarg ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site=$ac_optarg ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir=$ac_optarg ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir=$ac_optarg ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target_alias ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target_alias=$ac_optarg ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers | -V)
-    ac_init_version=: ;;
-
-  -with-* | --with-*)
-    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "with_$ac_package='$ac_optarg'" ;;
-
-  -without-* | --without-*)
-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/-/_/g'`
-    eval "with_$ac_package=no" ;;
-
-  --x)
-    # Obsolete; use --with-x.
-    with_x=yes ;;
-
-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-  | --x-incl | --x-inc | --x-in | --x-i)
-    ac_prev=x_includes ;;
-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes=$ac_optarg ;;
-
-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-    ac_prev=x_libraries ;;
-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries=$ac_optarg ;;
-
-  -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
-    eval "$ac_envvar='$ac_optarg'"
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-	      localstatedir libdir includedir oldincludedir infodir mandir
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
-  if test "x$build_alias" = x; then
-    cross_compiling=maybe
-    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used." >&2
-  elif test "x$build_alias" != "x$host_alias"; then
-    cross_compiling=yes
-  fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
-  ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then its parent.
-  ac_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$0" : 'X\(//\)[^/]' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$0" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  srcdir=$ac_confdir
-  if test ! -r $srcdir/$ac_unique_file; then
-    srcdir=..
-  fi
-else
-  ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
-  if test "$ac_srcdir_defaulted" = yes; then
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
-   { (exit 1); exit 1; }; }
-  else
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
-  fi
-fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
-  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
-   { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-ac_env_CC_set=${CC+set}
-ac_env_CC_value=$CC
-ac_cv_env_CC_set=${CC+set}
-ac_cv_env_CC_value=$CC
-ac_env_CFLAGS_set=${CFLAGS+set}
-ac_env_CFLAGS_value=$CFLAGS
-ac_cv_env_CFLAGS_set=${CFLAGS+set}
-ac_cv_env_CFLAGS_value=$CFLAGS
-ac_env_LDFLAGS_set=${LDFLAGS+set}
-ac_env_LDFLAGS_value=$LDFLAGS
-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
-ac_cv_env_LDFLAGS_value=$LDFLAGS
-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_env_CPPFLAGS_value=$CPPFLAGS
-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
-ac_env_CPP_set=${CPP+set}
-ac_env_CPP_value=$CPP
-ac_cv_env_CPP_set=${CPP+set}
-ac_cv_env_CPP_value=$CPP
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
-  # Omit some internal or obsolete options to make the list less imposing.
-  # This message is too long to be a string in the A/UX 3.1 sh.
-  cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-_ACEOF
-
-  cat <<_ACEOF
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-			  [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-			  [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR           user executables [EPREFIX/bin]
-  --sbindir=DIR          system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR       program executables [EPREFIX/libexec]
-  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
-  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
-  --libdir=DIR           object code libraries [EPREFIX/lib]
-  --includedir=DIR       C header files [PREFIX/include]
-  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
-  --infodir=DIR          info documentation [PREFIX/info]
-  --mandir=DIR           man documentation [PREFIX/man]
-_ACEOF
-
-  cat <<\_ACEOF
-
-System types:
-  --build=BUILD     configure for building on BUILD [guessed]
-  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-
-  cat <<\_ACEOF
-
-Optional Features:
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-maintainer-mode
-                          enable make rules and dependencies not useful
-                          (and sometimes confusing) to the casual installer
-  --enable-install-libiberty       Install headers for end users
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-target-subdir=SUBDIR      Configuring in a subdirectory for target
-  --with-build-subdir=SUBDIR       Configuring in a subdirectory for build
-  --with-cross-host=HOST           Configuring with a cross compiler
-  --with-newlib                    Configuring with newlib
-
-Some influential environment variables:
-  CC          C compiler command
-  CFLAGS      C compiler flags
-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
-              nonstandard directory <lib dir>
-  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
-              headers in a nonstandard directory <include dir>
-  CPP         C preprocessor
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-_ACEOF
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  ac_popdir=`pwd`
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d $ac_dir || continue
-    ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-    cd $ac_dir
-    # Check for guested configure; otherwise get Cygnus style configure.
-    if test -f $ac_srcdir/configure.gnu; then
-      echo
-      $SHELL $ac_srcdir/configure.gnu  --help=recursive
-    elif test -f $ac_srcdir/configure; then
-      echo
-      $SHELL $ac_srcdir/configure  --help=recursive
-    elif test -f $ac_srcdir/configure.ac ||
-	   test -f $ac_srcdir/configure.in; then
-      echo
-      $ac_configure --help
-    else
-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi
-    cd $ac_popdir
-  done
-fi
-
-test -n "$ac_init_help" && exit 0
-if $ac_init_version; then
-  cat <<\_ACEOF
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
-  exit 0
-fi
-exec 5>config.log
-cat >&5 <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by $as_me, which was
-generated by GNU Autoconf 2.59.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  echo "PATH: $as_dir"
-done
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_sep=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
-    2)
-      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-	ac_must_keep_next=false # Got value, back to normal.
-      else
-	case $ac_arg in
-	  *=* | --config-cache | -C | -disable-* | --disable-* \
-	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-	  | -with-* | --with-* | -without-* | --without-* | --x)
-	    case "$ac_configure_args0 " in
-	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-	    esac
-	    ;;
-	  -* ) ac_must_keep_next=true ;;
-	esac
-      fi
-      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-      # Get rid of the leading space.
-      ac_sep=" "
-      ;;
-    esac
-  done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-{
-  (set) 2>&1 |
-    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      sed -n \
-	"s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
-      ;;
-    *)
-      sed -n \
-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-}
-    echo
-
-    cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=$`echo $ac_var`
-      echo "$ac_var='"'"'$ac_val'"'"'"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------- ##
-## Output files. ##
-## ------------- ##
-_ASBOX
-      echo
-      for ac_var in $ac_subst_files
-      do
-	eval ac_val=$`echo $ac_var`
-	echo "$ac_var='"'"'$ac_val'"'"'"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
-      echo
-      sed "/^$/d" confdefs.h | sort
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      echo "$as_me: caught signal $ac_signal"
-    echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core &&
-  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-     ' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
-  if test "x$prefix" != xNONE; then
-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
-  else
-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
-  fi
-fi
-for ac_site_file in $CONFIG_SITE; do
-  if test -r "$ac_site_file"; then
-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
-  fi
-done
-
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special
-  # files actually), so we avoid doing that.
-  if test -f "$cache_file"; then
-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . $cache_file;;
-      *)                      . ./$cache_file;;
-    esac
-  fi
-else
-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
-	       sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
-  eval ac_new_val="\$ac_env_${ac_var}_value"
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
-echo "$as_me:   former value:  $ac_old_val" >&2;}
-	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
-echo "$as_me:   current value: $ac_new_val" >&2;}
-	ac_cache_corrupted=:
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# This works around the fact that libtool configuration may change LD
-# for this particular configuration, but some shells, instead of
-# keeping the changes in LD private, export them just because LD is
-# exported.  We don't use libtool yet, but some day we might, so...
-ORIGINAL_LD_FOR_MULTILIBS=$LD
-
-
-# Check whether --with-target-subdir or --without-target-subdir was given.
-if test "${with_target_subdir+set}" = set; then
-  withval="$with_target_subdir"
-
-fi;
-
-# Check whether --with-build-subdir or --without-build-subdir was given.
-if test "${with_build_subdir+set}" = set; then
-  withval="$with_build_subdir"
-
-fi;
-
-# Check whether --with-cross-host or --without-cross-host was given.
-if test "${with_cross_host+set}" = set; then
-  withval="$with_cross_host"
-
-fi;
-
-# Check whether --with-newlib or --without-newlib was given.
-if test "${with_newlib+set}" = set; then
-  withval="$with_newlib"
-
-fi;
-
-if test "${srcdir}" = "."; then
-  if test -n "${with_build_subdir}"; then
-    libiberty_topdir="${srcdir}/../.."
-    with_target_subdir=
-  elif test -z "${with_target_subdir}"; then
-    libiberty_topdir="${srcdir}/.."
-  else
-    if test "${with_target_subdir}" != "."; then
-      libiberty_topdir="${srcdir}/${with_multisrctop}../.."
-    else
-      libiberty_topdir="${srcdir}/${with_multisrctop}.."
-    fi
-  fi
-else
-  libiberty_topdir="${srcdir}/.."
-fi
-
-ac_aux_dir=
-for ac_dir in $libiberty_topdir $srcdir/$libiberty_topdir; do
-  if test -f $ac_dir/install-sh; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f $ac_dir/install.sh; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f $ac_dir/shtool; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $libiberty_topdir $srcdir/$libiberty_topdir" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in $libiberty_topdir $srcdir/$libiberty_topdir" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-
-
-
-echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
-echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
-    # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then
-  enableval="$enable_maintainer_mode"
-  maintainer_mode=$enableval
-else
-  maintainer_mode=no
-fi;
-
-echo "$as_me:$LINENO: result: $maintainer_mode" >&5
-echo "${ECHO_T}$maintainer_mode" >&6
-
-if test "$maintainer_mode" = "yes"; then
-  MAINT=''
-  NOTMAINT='#'
-else
-  MAINT='#'
-  NOTMAINT=''
-fi
-
-# Do we have a single-tree copy of texinfo?  Even if we do, we can't
-# rely on it - libiberty is built before texinfo.
-# Extract the first word of "makeinfo", so it can be a program name with args.
-set dummy makeinfo; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_MAKEINFO+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$MAKEINFO"; then
-  ac_cv_prog_MAKEINFO="$MAKEINFO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_MAKEINFO="makeinfo"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-MAKEINFO=$ac_cv_prog_MAKEINFO
-if test -n "$MAKEINFO"; then
-  echo "$as_me:$LINENO: result: $MAKEINFO" >&5
-echo "${ECHO_T}$MAKEINFO" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-if test "x$MAKEINFO" = "x"; then
-    MAKEINFO="@echo makeinfo missing; true"
-    BUILD_INFO=
-else
-    BUILD_INFO=info
-    case "$MAKEINFO" in
-      */missing\ makeinfo*)
-	BUILD_INFO=
-	{ echo "$as_me:$LINENO: WARNING:
-*** Makeinfo is missing. Info documentation will not be built." >&5
-echo "$as_me: WARNING:
-*** Makeinfo is missing. Info documentation will not be built." >&2;}
-        ;;
-      *)
-	case x"`$MAKEINFO --version | grep 'GNU texinfo'`" in
-	  x*\ [1-3].* )
-	    MAKEINFO="@echo $MAKEINFO is too old, 4.0 or newer required; true"
-	    BUILD_INFO=
-	    { echo "$as_me:$LINENO: WARNING:
-*** Makeinfo is too old. Info documentation will not be built." >&5
-echo "$as_me: WARNING:
-*** Makeinfo is too old. Info documentation will not be built." >&2;}
-	  ;;
-	esac
-	;;
-    esac
-fi
-
-
-
-# Extract the first word of "perl", so it can be a program name with args.
-set dummy perl; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_PERL+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$PERL"; then
-  ac_cv_prog_PERL="$PERL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_PERL="perl"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-PERL=$ac_cv_prog_PERL
-if test -n "$PERL"; then
-  echo "$as_me:$LINENO: result: $PERL" >&5
-echo "${ECHO_T}$PERL" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-if test x"$PERL" = x""; then
-  HAVE_PERL='#'
-else
-  HAVE_PERL=''
-fi
-
-
-# Make sure we can run config.sub.
-$ac_config_sub sun4 >/dev/null 2>&1 ||
-  { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
-   { (exit 1); exit 1; }; }
-
-echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6
-if test "${ac_cv_build+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_build_alias=$build_alias
-test -z "$ac_cv_build_alias" &&
-  ac_cv_build_alias=`$ac_config_guess`
-test -z "$ac_cv_build_alias" &&
-  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
-   { (exit 1); exit 1; }; }
-ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6
-build=$ac_cv_build
-build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6
-if test "${ac_cv_host+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_host_alias=$host_alias
-test -z "$ac_cv_host_alias" &&
-  ac_cv_host_alias=$ac_cv_build_alias
-ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6
-host=$ac_cv_host
-host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_AR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$AR"; then
-  ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_AR="${ac_tool_prefix}ar"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
-  echo "$as_me:$LINENO: result: $AR" >&5
-echo "${ECHO_T}$AR" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_AR"; then
-  ac_ct_AR=$AR
-  # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_AR"; then
-  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_AR="ar"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
-  echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
-echo "${ECHO_T}$ac_ct_AR" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  AR=$ac_ct_AR
-else
-  AR="$ac_cv_prog_AR"
-fi
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  RANLIB=$ac_ct_RANLIB
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  CC=$ac_ct_CC
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  CC=$ac_ct_CC
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  test -n "$ac_ct_CC" && break
-done
-
-  CC=$ac_ct_CC
-fi
-
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
-     "checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
-  (eval $ac_compiler --version </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
-  (eval $ac_compiler -v </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
-  (eval $ac_compiler -V </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-# FIXME: Cleanup?
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  gcc_no_link=no
-else
-  gcc_no_link=yes
-fi
-
-if test x$gcc_no_link = xyes; then
-  # Setting cross_compile will disable run tests; it will
-  # also disable AC_CHECK_FILE but that's generally
-  # correct if we can't link.
-  cross_compiling=yes
-  EXEEXT=
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
-  (eval $ac_link_default) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # Find the output, starting from the most likely.  This scheme is
-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
-# resort.
-
-# Be careful to initialize this variable, since it used to be cached.
-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
-ac_cv_exeext=
-# b.out is created by i960 compilers.
-for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
-do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
-	;;
-    conftest.$ac_ext )
-	# This is the source file.
-	;;
-    [ab].out )
-	# We found the default executable, but exeext='' is most
-	# certainly right.
-	break;;
-    *.* )
-	ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	# FIXME: I believe we export ac_cv_exeext for Libtool,
-	# but it would be cool to find out if it's true.  Does anybody
-	# maintain Libtool? --akim.
-	export ac_cv_exeext
-	break;;
-    * )
-	break;;
-  esac
-done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6
-
-# Check the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
-  if { ac_try='./$ac_file'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-	cross_compiling=yes
-    else
-	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-    fi
-  fi
-fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-rm -f a.out a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-# Check the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6
-
-echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	  export ac_cv_exeext
-	  break;;
-    * ) break;;
-  esac
-done
-else
-  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-fi
-echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
-if test "${ac_cv_objext+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_compiler_gnu=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_compiler_gnu=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-CFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_prog_cc_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_prog_cc_g=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_prog_cc_stdc=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std1 is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std1.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX			-qlanglvl=ansi
-# Ultrix and OSF/1	-std1
-# HP-UX 10.20 and later	-Ae
-# HP-UX older versions	-Aa -D_HPUX_SOURCE
-# SVR4			-Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_prog_cc_stdc=$ac_arg
-break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext
-done
-rm -f conftest.$ac_ext conftest.$ac_objext
-CC=$ac_save_CC
-
-fi
-
-case "x$ac_cv_prog_cc_stdc" in
-  x|xno)
-    echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
-  *)
-    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-    CC="$CC $ac_cv_prog_cc_stdc" ;;
-esac
-
-# Some people use a C++ compiler to compile C.  Since we use `exit',
-# in C++ we need to declare it.  In case someone uses the same compiler
-# for both compiling C and C++ we need to have the C++ compiler decide
-# the declaration of exit, since it's the most demanding environment.
-cat >conftest.$ac_ext <<_ACEOF
-#ifndef __cplusplus
-  choke me
-#endif
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  for ac_declaration in \
-   '' \
-   'extern "C" void std::exit (int) throw (); using std::exit;' \
-   'extern "C" void std::exit (int); using std::exit;' \
-   'extern "C" void exit (int) throw ();' \
-   'extern "C" void exit (int);' \
-   'void exit (int);'
-do
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_declaration
-#include <stdlib.h>
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-continue
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_declaration
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
-  echo '#ifdef __cplusplus' >>confdefs.h
-  echo $ac_declaration      >>confdefs.h
-  echo '#endif'             >>confdefs.h
-fi
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  break
-fi
-
-    done
-    ac_cv_prog_CPP=$CPP
-
-fi
-  CPP=$ac_cv_prog_CPP
-else
-  ac_cv_prog_CPP=$CPP
-fi
-echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
-else
-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-ac_c_preproc_warn_flag=yes
-
-# Warn C++ incompatibilities if supported.
-
-echo "$as_me:$LINENO: checking whether ${CC} accepts -Wc++-compat" >&5
-echo $ECHO_N "checking whether ${CC} accepts -Wc++-compat... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_w_cxx_compat+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  save_CFLAGS="$CFLAGS"
-  CFLAGS="-Wc++-compat"
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_prog_cc_w_cxx_compat=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_prog_cc_w_cxx_compat=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-  CFLAGS="$save_CFLAGS"
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_w_cxx_compat" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_w_cxx_compat" >&6
-
-
-if test x$GCC = xyes; then
-  ac_libiberty_warn_cflags='-W -Wall -pedantic -Wwrite-strings -Wstrict-prototypes'
-fi
-if test $ac_cv_prog_cc_w_cxx_compat = yes ; then
-  ac_libiberty_warn_cflags="${ac_libiberty_warn_cflags} -Wc++-compat"
-fi
-
-
-if test "x$CC" != xcc; then
-  echo "$as_me:$LINENO: checking whether $CC and cc understand -c and -o together" >&5
-echo $ECHO_N "checking whether $CC and cc understand -c and -o together... $ECHO_C" >&6
-else
-  echo "$as_me:$LINENO: checking whether cc understands -c and -o together" >&5
-echo $ECHO_N "checking whether cc understands -c and -o together... $ECHO_C" >&6
-fi
-set dummy $CC; ac_cc=`echo $2 |
-		      sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-# Make sure it works both with $CC and with simple cc.
-# We do the test twice because some compilers refuse to overwrite an
-# existing .o file with -o, though they will create one.
-ac_try='$CC -c conftest.$ac_ext -o conftest.$ac_objext >&5'
-if { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-   test -f conftest.$ac_objext && { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); };
-then
-  eval ac_cv_prog_cc_${ac_cc}_c_o=yes
-  if test "x$CC" != xcc; then
-    # Test first that cc exists at all.
-    if { ac_try='cc -c conftest.$ac_ext >&5'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-      ac_try='cc -c conftest.$ac_ext -o conftest.$ac_objext >&5'
-      if { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 test -f conftest.$ac_objext && { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); };
-      then
-	# cc works too.
-	:
-      else
-	# cc exists but doesn't like -o.
-	eval ac_cv_prog_cc_${ac_cc}_c_o=no
-      fi
-    fi
-  fi
-else
-  eval ac_cv_prog_cc_${ac_cc}_c_o=no
-fi
-rm -f conftest*
-
-fi
-if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = yes"; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-
-cat >>confdefs.h <<\_ACEOF
-#define NO_MINUS_C_MINUS_O 1
-_ACEOF
-
-fi
-
-# autoconf is lame and doesn't give us any substitution variable for this.
-if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
-  NO_MINUS_C_MINUS_O=yes
-else
-  OUTPUT_OPTION='-o $@'
-fi
-
-
-
-echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
-echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
-if test "${ac_cv_c_const+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-/* FIXME: Include the comments suggested by Paul. */
-#ifndef __cplusplus
-  /* Ultrix mips cc rejects this.  */
-  typedef int charset[2];
-  const charset x;
-  /* SunOS 4.1.1 cc rejects this.  */
-  char const *const *ccp;
-  char **p;
-  /* NEC SVR4.0.2 mips cc rejects this.  */
-  struct point {int x, y;};
-  static struct point const zero = {0,0};
-  /* AIX XL C 1.02.0.0 rejects this.
-     It does not let you subtract one const X* pointer from another in
-     an arm of an if-expression whose if-part is not a constant
-     expression */
-  const char *g = "string";
-  ccp = &g + (g ? g-g : 0);
-  /* HPUX 7.0 cc rejects these. */
-  ++ccp;
-  p = (char**) ccp;
-  ccp = (char const *const *) p;
-  { /* SCO 3.2v4 cc rejects this.  */
-    char *t;
-    char const *s = 0 ? (char *) 0 : (char const *) 0;
-
-    *t++ = 0;
-  }
-  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
-    int x[] = {25, 17};
-    const int *foo = &x[0];
-    ++foo;
-  }
-  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
-    typedef const int *iptr;
-    iptr p = 0;
-    ++p;
-  }
-  { /* AIX XL C 1.02.0.0 rejects this saying
-       "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
-    struct s { int j; const int *ap[3]; };
-    struct s *b; b->j = 5;
-  }
-  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
-    const int foo = 10;
-  }
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_c_const=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_c_const=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
-echo "${ECHO_T}$ac_cv_c_const" >&6
-if test $ac_cv_c_const = no; then
-
-cat >>confdefs.h <<\_ACEOF
-#define const
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: checking for inline" >&5
-echo $ECHO_N "checking for inline... $ECHO_C" >&6
-if test "${ac_cv_c_inline+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_c_inline=no
-for ac_kw in inline __inline__ __inline; do
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifndef __cplusplus
-typedef int foo_t;
-static $ac_kw foo_t static_foo () {return 0; }
-$ac_kw foo_t foo () {return 0; }
-#endif
-
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_c_inline=$ac_kw; break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
-echo "${ECHO_T}$ac_cv_c_inline" >&6
-
-
-case $ac_cv_c_inline in
-  inline | yes) ;;
-  *)
-    case $ac_cv_c_inline in
-      no) ac_val=;;
-      *) ac_val=$ac_cv_c_inline;;
-    esac
-    cat >>confdefs.h <<_ACEOF
-#ifndef __cplusplus
-#define inline $ac_val
-#endif
-_ACEOF
-    ;;
-esac
-
-echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
-echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6
-if test "${ac_cv_c_bigendian+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # See if sys/param.h defines the BYTE_ORDER macro.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <sys/param.h>
-
-int
-main ()
-{
-#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
- bogus endian macros
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  # It does; now see whether it defined to BIG_ENDIAN or not.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <sys/param.h>
-
-int
-main ()
-{
-#if BYTE_ORDER != BIG_ENDIAN
- not big endian
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_c_bigendian=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_c_bigendian=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-# It does not; compile a test program.
-if test "$cross_compiling" = yes; then
-  # try to guess the endianness by grepping values into an object file
-  ac_cv_c_bigendian=unknown
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
-short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
-void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; }
-short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
-short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
-void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; }
-int
-main ()
-{
- _ascii (); _ebcdic ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then
-  ac_cv_c_bigendian=yes
-fi
-if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
-  if test "$ac_cv_c_bigendian" = unknown; then
-    ac_cv_c_bigendian=no
-  else
-    # finding both strings is unlikely to happen, but who knows?
-    ac_cv_c_bigendian=unknown
-  fi
-fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-int
-main ()
-{
-  /* Are we little or big endian?  From Harbison&Steele.  */
-  union
-  {
-    long l;
-    char c[sizeof (long)];
-  } u;
-  u.l = 1;
-  exit (u.c[sizeof (long) - 1] == 1);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_c_bigendian=no
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_c_bigendian=yes
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
-echo "${ECHO_T}$ac_cv_c_bigendian" >&6
-case $ac_cv_c_bigendian in
-  yes)
-
-cat >>confdefs.h <<\_ACEOF
-#define WORDS_BIGENDIAN 1
-_ACEOF
- ;;
-  no)
-     ;;
-  *)
-    { { echo "$as_me:$LINENO: error: unknown endianness
-presetting ac_cv_c_bigendian=no (or yes) will help" >&5
-echo "$as_me: error: unknown endianness
-presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
-   { (exit 1); exit 1; }; } ;;
-esac
-
-
-
-
-          ac_config_headers="$ac_config_headers config.h:config.in"
-
-
-
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
-  ./ | .// | /cC/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-	if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
-	  if test $ac_prog = install &&
-	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # AIX install.  It has an incompatible calling convention.
-	    :
-	  elif test $ac_prog = install &&
-	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # program-specific install script used by HP pwplus--don't use.
-	    :
-	  else
-	    ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-	    break 3
-	  fi
-	fi
-      done
-    done
-    ;;
-esac
-done
-
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
-  else
-    # As a last resort, use the slow shell script.  We don't cache a
-    # path for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the path is relative.
-    INSTALL=$ac_install_sh
-  fi
-fi
-echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-
-# Don't build the shared library for build.
-if [ -n "${with_build_subdir}" ]; then
-  enable_shared=no
-fi
-
-frag=
-case "${host}" in
-  rs6000-ibm-aix3.1 | rs6000-ibm-aix)
-                        frag=mh-aix ;;
-  *-*-cxux7*)		frag=mh-cxux7 ;;
-  *-*-freebsd2.1.*)	frag=mh-fbsd21 ;;
-  *-*-freebsd2.2.[012])	frag=mh-fbsd21 ;;
-  i370-*-opened*)       frag=mh-openedition ;;
-  i[34567]86-*-windows*)	frag=mh-windows ;;
-esac
-
-if [ -n "${frag}" ]; then
-  frags=${libiberty_topdir}/libiberty/config/$frag
-else
-  frags=
-fi
-
-# If they didn't specify --enable-shared, don't generate shared libs.
-case "${enable_shared}" in
-  yes) shared=yes ;;
-  no) shared=no ;;
-  "") shared=no ;;
-  *) shared=yes ;;
-esac
-if [ "${shared}" = "yes" ]; then
-  frag=
-  case "${host}" in
-    *-*-cygwin*)	;;
-    alpha*-*-linux*)	frag=mh-elfalphapic ;;
-    arm*-*-*)		frag=mh-armpic ;;
-    hppa*-*-*)		frag=mh-papic ;;
-    i[34567]86-*-* | x86_64-*-*)
-			frag=mh-x86pic ;;
-    powerpc*-*-aix*)	;;
-    powerpc*-*-*)	frag=mh-ppcpic ;;
-    sparc*-*-*)		frag=mh-sparcpic ;;
-    s390*-*-*)		frag=mh-s390pic ;;
-    *)			frag=mh-${host_cpu}pic ;;
-  esac
-  if [ -n "${frag}" ]; then
-    frags="${frags} ${libiberty_topdir}/config/${frag}"
-  fi
-fi
-
-echo "# Warning: this fragment is automatically generated" > temp-frag
-
-for frag in ${frags}; do
-  if [ -f ${frag} ]; then
-    echo "Appending ${frag} to xhost-mkfrag"
-    echo "# Following fragment copied from ${frag}" >> temp-frag
-    cat ${frag} >> temp-frag
-  fi
-done
-
-# record if we want to build shared libs.
-if [ "${shared}" = "yes" ]; then
-  echo enable_shared = yes >> temp-frag
-else
-  echo enable_shared = no >> temp-frag
-fi
-
-frag=xhost-mkfrag
-${CONFIG_SHELL-/bin/sh} ${libiberty_topdir}/move-if-change temp-frag xhost-mkfrag
-
-host_makefile_frag=${frag}
-
-
-# It's OK to check for header files.  Although the compiler may not be
-# able to link anything, it had better be able to at least compile
-# something.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-for ac_header in sys/file.h sys/param.h limits.h stdlib.h malloc.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h alloca.h sys/pstat.h sys/sysmp.h sys/sysinfo.h machine/hal_sysinfo.h sys/table.h sys/sysctl.h sys/systemcfg.h stdint.h stdio_ext.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  eval "$as_ac_Header=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5
-echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6
-if test "${ac_cv_header_sys_wait_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <sys/wait.h>
-#ifndef WEXITSTATUS
-# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
-#endif
-#ifndef WIFEXITED
-# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
-#endif
-
-int
-main ()
-{
-  int s;
-  wait (&s);
-  s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_header_sys_wait_h=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_header_sys_wait_h=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
-echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6
-if test $ac_cv_header_sys_wait_h = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SYS_WAIT_H 1
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5
-echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
-if test "${ac_cv_header_time+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
-
-int
-main ()
-{
-if ((struct tm *) 0)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_header_time=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_header_time=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
-echo "${ECHO_T}$ac_cv_header_time" >&6
-if test $ac_cv_header_time = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define TIME_WITH_SYS_TIME 1
-_ACEOF
-
-fi
-
-
-echo "$as_me:$LINENO: checking whether errno must be declared" >&5
-echo $ECHO_N "checking whether errno must be declared... $ECHO_C" >&6
-if test "${libiberty_cv_declare_errno+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <errno.h>
-int
-main ()
-{
-int x = errno;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  libiberty_cv_declare_errno=no
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-libiberty_cv_declare_errno=yes
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $libiberty_cv_declare_errno" >&5
-echo "${ECHO_T}$libiberty_cv_declare_errno" >&6
-if test $libiberty_cv_declare_errno = yes
-then
-cat >>confdefs.h <<\_ACEOF
-#define NEED_DECLARATION_ERRNO 1
-_ACEOF
-
-fi
-
-
-# Determine the size of an int for struct fibnode.
-echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
-if test "${ac_cv_prog_egrep+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-    then ac_cv_prog_egrep='grep -E'
-    else ac_cv_prog_egrep='egrep'
-    fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
- EGREP=$ac_cv_prog_egrep
-
-
-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_header_stdc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_header_stdc=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then
-  :
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then
-  :
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-		   (('a' <= (c) && (c) <= 'i') \
-		     || ('j' <= (c) && (c) <= 'r') \
-		     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-	|| toupper (i) != TOUPPER (i))
-      exit(2);
-  exit (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-		  inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  eval "$as_ac_Header=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-echo "$as_me:$LINENO: checking for int" >&5
-echo $ECHO_N "checking for int... $ECHO_C" >&6
-if test "${ac_cv_type_int+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if ((int *) 0)
-  return 0;
-if (sizeof (int))
-  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_type_int=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_type_int=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5
-echo "${ECHO_T}$ac_cv_type_int" >&6
-
-echo "$as_me:$LINENO: checking size of int" >&5
-echo $ECHO_N "checking size of int... $ECHO_C" >&6
-if test "${ac_cv_sizeof_int+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "$ac_cv_type_int" = yes; then
-  # The cast to unsigned long works around a bug in the HP C Compiler
-  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-  # This bug is HP SR number 8606223364.
-  if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long) (sizeof (int))) >= 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_hi=$ac_mid; break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_lo=`expr $ac_mid + 1`
-		    if test $ac_lo -le $ac_mid; then
-		      ac_lo= ac_hi=
-		      break
-		    fi
-		    ac_mid=`expr 2 '*' $ac_mid + 1`
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long) (sizeof (int))) < 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long) (sizeof (int))) >= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_lo=$ac_mid; break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_hi=`expr '(' $ac_mid ')' - 1`
-		       if test $ac_mid -le $ac_hi; then
-			 ac_lo= ac_hi=
-			 break
-		       fi
-		       ac_mid=`expr 2 '*' $ac_mid`
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_lo= ac_hi=
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_hi=$ac_mid
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) ac_cv_sizeof_int=$ac_lo;;
-'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute sizeof (int), 77
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; } ;;
-esac
-else
-  if test "$cross_compiling" = yes; then
-  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-long longval () { return (long) (sizeof (int)); }
-unsigned long ulongval () { return (long) (sizeof (int)); }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    exit (1);
-  if (((long) (sizeof (int))) < 0)
-    {
-      long i = longval ();
-      if (i != ((long) (sizeof (int))))
-	exit (1);
-      fprintf (f, "%ld\n", i);
-    }
-  else
-    {
-      unsigned long i = ulongval ();
-      if (i != ((long) (sizeof (int))))
-	exit (1);
-      fprintf (f, "%lu\n", i);
-    }
-  exit (ferror (f) || fclose (f) != 0);
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_sizeof_int=`cat conftest.val`
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-{ { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute sizeof (int), 77
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-rm -f conftest.val
-else
-  ac_cv_sizeof_int=0
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5
-echo "${ECHO_T}$ac_cv_sizeof_int" >&6
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_INT $ac_cv_sizeof_int
-_ACEOF
-
-
-
-echo "$as_me:$LINENO: checking for uintptr_t" >&5
-echo $ECHO_N "checking for uintptr_t... $ECHO_C" >&6
-if test "${ac_cv_type_uintptr_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if ((uintptr_t *) 0)
-  return 0;
-if (sizeof (uintptr_t))
-  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_type_uintptr_t=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_type_uintptr_t=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_type_uintptr_t" >&5
-echo "${ECHO_T}$ac_cv_type_uintptr_t" >&6
-if test $ac_cv_type_uintptr_t = yes; then
-  :
-else
-
-cat >>confdefs.h <<_ACEOF
-#define uintptr_t unsigned long
-_ACEOF
-
-fi
-
-
-# Look for a 64-bit type.
-echo "$as_me:$LINENO: checking for a 64-bit type" >&5
-echo $ECHO_N "checking for a 64-bit type... $ECHO_C" >&6
-if test "${liberty_cv_uint64+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
-int
-main ()
-{
-extern uint64_t foo;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  liberty_cv_uint64=uint64_t
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef HAVE_LIMITS_H
-#include <limits.h>
-#endif
-#ifndef CHAR_BIT
-#define CHAR_BIT 8
-#endif
-int
-main ()
-{
-extern char foo[sizeof(long) * CHAR_BIT >= 64 ? 1 : -1];
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  liberty_cv_uint64="unsigned long"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef HAVE_LIMITS_H
-#include <limits.h>
-#endif
-#ifndef CHAR_BIT
-#define CHAR_BIT 8
-#endif
-int
-main ()
-{
-extern char foo[sizeof(long long) * CHAR_BIT >= 64 ? 1 : -1];
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  liberty_cv_uint64="unsigned long long"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-liberty_cv_uint64=none
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-echo "$as_me:$LINENO: result: $liberty_cv_uint64" >&5
-echo "${ECHO_T}$liberty_cv_uint64" >&6
-if test "$liberty_cv_uint64" != none; then
-
-cat >>confdefs.h <<_ACEOF
-#define UNSIGNED_64BIT_TYPE $liberty_cv_uint64
-_ACEOF
-
-fi
-
-# Given the above check, we always have uintptr_t or a fallback
-# definition.  So define HAVE_UINTPTR_T in case any imported code
-# relies on it.
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_UINTPTR_T 1
-_ACEOF
-
-
-echo "$as_me:$LINENO: checking for pid_t" >&5
-echo $ECHO_N "checking for pid_t... $ECHO_C" >&6
-if test "${ac_cv_type_pid_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if ((pid_t *) 0)
-  return 0;
-if (sizeof (pid_t))
-  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_type_pid_t=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_type_pid_t=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5
-echo "${ECHO_T}$ac_cv_type_pid_t" >&6
-if test $ac_cv_type_pid_t = yes; then
-  :
-else
-
-cat >>confdefs.h <<_ACEOF
-#define pid_t int
-_ACEOF
-
-fi
-
-
-# This is the list of functions which libiberty will provide if they
-# are not available on the host.
-
-funcs="asprintf"
-funcs="$funcs atexit"
-funcs="$funcs basename"
-funcs="$funcs bcmp"
-funcs="$funcs bcopy"
-funcs="$funcs bsearch"
-funcs="$funcs bzero"
-funcs="$funcs calloc"
-funcs="$funcs clock"
-funcs="$funcs ffs"
-funcs="$funcs getcwd"
-funcs="$funcs getpagesize"
-funcs="$funcs gettimeofday"
-funcs="$funcs index"
-funcs="$funcs insque"
-funcs="$funcs memchr"
-funcs="$funcs memcmp"
-funcs="$funcs memcpy"
-funcs="$funcs memmove"
-funcs="$funcs mempcpy"
-funcs="$funcs memset"
-funcs="$funcs mkstemps"
-funcs="$funcs putenv"
-funcs="$funcs random"
-funcs="$funcs rename"
-funcs="$funcs rindex"
-funcs="$funcs setenv"
-funcs="$funcs snprintf"
-funcs="$funcs sigsetmask"
-funcs="$funcs stpcpy"
-funcs="$funcs stpncpy"
-funcs="$funcs strcasecmp"
-funcs="$funcs strchr"
-funcs="$funcs strdup"
-funcs="$funcs strncasecmp"
-funcs="$funcs strndup"
-funcs="$funcs strrchr"
-funcs="$funcs strstr"
-funcs="$funcs strtod"
-funcs="$funcs strtol"
-funcs="$funcs strtoul"
-funcs="$funcs strverscmp"
-funcs="$funcs tmpnam"
-funcs="$funcs vasprintf"
-funcs="$funcs vfprintf"
-funcs="$funcs vprintf"
-funcs="$funcs vsnprintf"
-funcs="$funcs vsprintf"
-funcs="$funcs waitpid"
-
-# Also in the old function.def file: alloca, vfork, getopt.
-
-vars="sys_errlist sys_nerr sys_siglist"
-
-checkfuncs="getrusage on_exit psignal strerror strsignal sysconf times sbrk gettimeofday"
-checkfuncs="$checkfuncs realpath canonicalize_file_name pstat_getstatic pstat_getdynamic sysmp"
-checkfuncs="$checkfuncs getsysinfo table sysctl wait3 wait4 __fsetlocking"
-
-# These are neither executed nor required, but they help keep
-# autoheader happy without adding a bunch of text to acconfig.h.
-if test "x" = "y"; then
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-for ac_func in asprintf atexit basename bcmp bcopy bsearch bzero calloc clock \
-  getcwd getpagesize gettimeofday index insque mkstemps memchr memcmp memcpy \
-  memmove mempcpy memset putenv random rename rindex sigsetmask \
-  strcasecmp setenv stpcpy stpncpy strchr strdup strncasecmp strndup strrchr strstr \
-  strtod strtol strtoul strverscmp tmpnam vasprintf vfprintf vprintf \
-  vsprintf waitpid getrusage on_exit psignal strerror strsignal \
-  sysconf times sbrk gettimeofday ffs snprintf vsnprintf \
-  pstat_getstatic pstat_getdynamic sysmp getsysinfo table sysctl wait3 wait4 \
-  realpath canonicalize_file_name __fsetlocking
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test x$gcc_no_link = xyes; then
-  { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
-echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  Under hpux,
-    including <limits.h> includes <sys/time.h> and causes problems
-    checking for functions defined therein.  */
-#if defined (__STDC__) && !defined (_HPUX_SOURCE)
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-  echo "$as_me:$LINENO: checking whether basename is declared" >&5
-echo $ECHO_N "checking whether basename is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_basename+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef basename
-  char *p = (char *) basename;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_have_decl_basename=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_basename=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_basename" >&5
-echo "${ECHO_T}$ac_cv_have_decl_basename" >&6
-if test $ac_cv_have_decl_basename = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_BASENAME 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_BASENAME 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether ffs is declared" >&5
-echo $ECHO_N "checking whether ffs is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_ffs+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef ffs
-  char *p = (char *) ffs;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_have_decl_ffs=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_ffs=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_ffs" >&5
-echo "${ECHO_T}$ac_cv_have_decl_ffs" >&6
-if test $ac_cv_have_decl_ffs = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FFS 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FFS 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether asprintf is declared" >&5
-echo $ECHO_N "checking whether asprintf is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_asprintf+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef asprintf
-  char *p = (char *) asprintf;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_have_decl_asprintf=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_asprintf=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_asprintf" >&5
-echo "${ECHO_T}$ac_cv_have_decl_asprintf" >&6
-if test $ac_cv_have_decl_asprintf = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_ASPRINTF 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_ASPRINTF 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether vasprintf is declared" >&5
-echo $ECHO_N "checking whether vasprintf is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_vasprintf+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef vasprintf
-  char *p = (char *) vasprintf;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_have_decl_vasprintf=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_vasprintf=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_vasprintf" >&5
-echo "${ECHO_T}$ac_cv_have_decl_vasprintf" >&6
-if test $ac_cv_have_decl_vasprintf = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_VASPRINTF 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_VASPRINTF 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether snprintf is declared" >&5
-echo $ECHO_N "checking whether snprintf is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_snprintf+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef snprintf
-  char *p = (char *) snprintf;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_have_decl_snprintf=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_snprintf=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_snprintf" >&5
-echo "${ECHO_T}$ac_cv_have_decl_snprintf" >&6
-if test $ac_cv_have_decl_snprintf = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SNPRINTF 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SNPRINTF 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether vsnprintf is declared" >&5
-echo $ECHO_N "checking whether vsnprintf is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_vsnprintf+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef vsnprintf
-  char *p = (char *) vsnprintf;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_have_decl_vsnprintf=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_vsnprintf=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_vsnprintf" >&5
-echo "${ECHO_T}$ac_cv_have_decl_vsnprintf" >&6
-if test $ac_cv_have_decl_vsnprintf = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_VSNPRINTF 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_VSNPRINTF 0
-_ACEOF
-
-
-fi
-
-
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SYS_ERRLIST 1
-_ACEOF
-
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SYS_NERR 1
-_ACEOF
-
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SYS_SIGLIST 1
-_ACEOF
-
-fi
-
-# For each of these functions, if the host does not provide the
-# function we want to put FN.o in LIBOBJS, and if the host does
-# provide the function, we want to define HAVE_FN in config.h.
-
-setobjs=
-CHECK=
-target_header_dir=
-if test -n "${with_target_subdir}"; then
-
-  # We are being configured as a target library.  AC_REPLACE_FUNCS
-  # may not work correctly, because the compiler may not be able to
-  # link executables.  Note that we may still be being configured
-  # native.
-
-  # If we are being configured for newlib, we know which functions
-  # newlib provide and which ones we will be expected to provide.
-
-  if test "x${with_newlib}" = "xyes"; then
-    case $LIBOBJS in
-    "asprintf.$ac_objext"   | \
-  *" asprintf.$ac_objext"   | \
-    "asprintf.$ac_objext "* | \
-  *" asprintf.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS asprintf.$ac_objext" ;;
-esac
-
-    case $LIBOBJS in
-    "basename.$ac_objext"   | \
-  *" basename.$ac_objext"   | \
-    "basename.$ac_objext "* | \
-  *" basename.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS basename.$ac_objext" ;;
-esac
-
-    case $LIBOBJS in
-    "insque.$ac_objext"   | \
-  *" insque.$ac_objext"   | \
-    "insque.$ac_objext "* | \
-  *" insque.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS insque.$ac_objext" ;;
-esac
-
-    case $LIBOBJS in
-    "random.$ac_objext"   | \
-  *" random.$ac_objext"   | \
-    "random.$ac_objext "* | \
-  *" random.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS random.$ac_objext" ;;
-esac
-
-    case $LIBOBJS in
-    "strdup.$ac_objext"   | \
-  *" strdup.$ac_objext"   | \
-    "strdup.$ac_objext "* | \
-  *" strdup.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS strdup.$ac_objext" ;;
-esac
-
-    case $LIBOBJS in
-    "vasprintf.$ac_objext"   | \
-  *" vasprintf.$ac_objext"   | \
-    "vasprintf.$ac_objext "* | \
-  *" vasprintf.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS vasprintf.$ac_objext" ;;
-esac
-
-
-    for f in $funcs; do
-      case "$f" in
-	asprintf | basename | insque | random | strdup | vasprintf)
-	  ;;
-	*)
-	  n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-	  cat >>confdefs.h <<_ACEOF
-#define $n 1
-_ACEOF
-
-	  ;;
-      esac
-    done
-
-    # newlib doesnt provide any of the variables in $vars, so we
-    # dont have to check them here.
-
-    # Of the functions in $checkfuncs, newlib only has strerror.
-    cat >>confdefs.h <<\_ACEOF
-#define HAVE_STRERROR 1
-_ACEOF
-
-
-    setobjs=yes
-
-  fi
-
-  # We may wish to install the target headers somewhere.
-  # Check whether --enable-install-libiberty or --disable-install-libiberty was given.
-if test "${enable_install_libiberty+set}" = set; then
-  enableval="$enable_install_libiberty"
-  enable_install_libiberty=$enableval
-else
-  enable_install_libiberty=no
-fi;
-  # Option parsed, now set things appropriately.
-  case x"$enable_install_libiberty" in
-    xyes|x)
-      target_header_dir=libiberty
-      ;;
-    xno)
-      target_header_dir=
-      ;;
-    *)
-      # This could be sanity-checked in various ways...
-      target_header_dir="${enable_install_libiberty}"
-      ;;
-  esac
-
-
-else
-
-   # Not a target library, so we set things up to run the test suite.
-   CHECK=really-check
-
-fi
-
-
-
-
-case "${host}" in
-  *-*-cygwin* | *-*-mingw*)
-    cat >>confdefs.h <<\_ACEOF
-#define HAVE_SYS_ERRLIST 1
-_ACEOF
-
-    cat >>confdefs.h <<\_ACEOF
-#define HAVE_SYS_NERR 1
-_ACEOF
-
-    ;;
-esac
-
-if test -z "${setobjs}"; then
-  case "${host}" in
-
-  *-*-vxworks*)
-    # Handle VxWorks configuration specially, since on VxWorks the
-    # libraries are actually on the target board, not in the file
-    # system.
-    case $LIBOBJS in
-    "basename.$ac_objext"   | \
-  *" basename.$ac_objext"   | \
-    "basename.$ac_objext "* | \
-  *" basename.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS basename.$ac_objext" ;;
-esac
-
-    case $LIBOBJS in
-    "getpagesize.$ac_objext"   | \
-  *" getpagesize.$ac_objext"   | \
-    "getpagesize.$ac_objext "* | \
-  *" getpagesize.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS getpagesize.$ac_objext" ;;
-esac
-
-    case $LIBOBJS in
-    "insque.$ac_objext"   | \
-  *" insque.$ac_objext"   | \
-    "insque.$ac_objext "* | \
-  *" insque.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS insque.$ac_objext" ;;
-esac
-
-    case $LIBOBJS in
-    "random.$ac_objext"   | \
-  *" random.$ac_objext"   | \
-    "random.$ac_objext "* | \
-  *" random.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS random.$ac_objext" ;;
-esac
-
-    case $LIBOBJS in
-    "strcasecmp.$ac_objext"   | \
-  *" strcasecmp.$ac_objext"   | \
-    "strcasecmp.$ac_objext "* | \
-  *" strcasecmp.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS strcasecmp.$ac_objext" ;;
-esac
-
-    case $LIBOBJS in
-    "strncasecmp.$ac_objext"   | \
-  *" strncasecmp.$ac_objext"   | \
-    "strncasecmp.$ac_objext "* | \
-  *" strncasecmp.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS strncasecmp.$ac_objext" ;;
-esac
-
-    case $LIBOBJS in
-    "strdup.$ac_objext"   | \
-  *" strdup.$ac_objext"   | \
-    "strdup.$ac_objext "* | \
-  *" strdup.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS strdup.$ac_objext" ;;
-esac
-
-    case $LIBOBJS in
-    "vfork.$ac_objext"   | \
-  *" vfork.$ac_objext"   | \
-    "vfork.$ac_objext "* | \
-  *" vfork.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS vfork.$ac_objext" ;;
-esac
-
-    case $LIBOBJS in
-    "waitpid.$ac_objext"   | \
-  *" waitpid.$ac_objext"   | \
-    "waitpid.$ac_objext "* | \
-  *" waitpid.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS waitpid.$ac_objext" ;;
-esac
-
-    case $LIBOBJS in
-    "vasprintf.$ac_objext"   | \
-  *" vasprintf.$ac_objext"   | \
-    "vasprintf.$ac_objext "* | \
-  *" vasprintf.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS vasprintf.$ac_objext" ;;
-esac
-
-    for f in $funcs; do
-      case "$f" in
-	basename | getpagesize | insque | random | strcasecmp)
-	  ;;
-	strncasecmp | strdup | vfork | waitpid | vasprintf)
-	  ;;
-	*)
-	  n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-	  cat >>confdefs.h <<_ACEOF
-#define $n 1
-_ACEOF
-
-	  ;;
-      esac
-    done
-
-    # VxWorks doesn't provide any of the variables in $vars, so we
-    # don't have to check them here.
-
-    # Of the functions in $checkfuncs, VxWorks only has strerror.
-    cat >>confdefs.h <<\_ACEOF
-#define HAVE_STRERROR 1
-_ACEOF
-
-
-    setobjs=yes
-    ;;
-
-  esac
-fi
-
-if test -z "${setobjs}"; then
-
-  case "${host}" in
-
-  *-*-cygwin*)
-    # The Cygwin library actually uses a couple of files from
-    # libiberty when it is built.  If we are building a native
-    # Cygwin, and we run the tests, we will appear to have these
-    # files.  However, when we go on to build winsup, we will wind up
-    # with a library which does not have the files, since they should
-    # have come from libiberty.
-
-    # We handle this by removing the functions the winsup library
-    # provides from our shell variables, so that they appear to be
-    # missing.
-
-    # DJ - only if we're *building* cygwin, not just building *with* cygwin
-
-    if test -n "${with_target_subdir}"
-    then
-      funcs="`echo $funcs | sed -e 's/random//'`"
-      case $LIBOBJS in
-    "random.$ac_objext"   | \
-  *" random.$ac_objext"   | \
-    "random.$ac_objext "* | \
-  *" random.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS random.$ac_objext" ;;
-esac
-
-      vars="`echo $vars | sed -e 's/sys_siglist//'`"
-      checkfuncs="`echo $checkfuncs | sed -e 's/strsignal//' -e 's/psignal//'`"
-    fi
-    ;;
-
-  *-*-mingw32*)
-    # Under mingw32, sys_nerr and sys_errlist exist, but they are
-    # macros, so the test below won't find them.
-    libiberty_cv_var_sys_nerr=yes
-    libiberty_cv_var_sys_errlist=yes
-    ;;
-
-  *-*-msdosdjgpp*)
-    # vfork and fork are stubs.
-    ac_cv_func_vfork_works=no
-    ;;
-
-  *-*-uwin*)
-    # Under some versions of uwin, vfork is notoriously buggy and the test
-    # can hang configure; on other versions, vfork exists just as a stub.
-    # FIXME: This should be removed once vfork in uwin's runtime is fixed.
-    ac_cv_func_vfork_works=no
-    # Under uwin 2.0+, sys_nerr and sys_errlist exist, but they are
-    # macros (actually, these are imported from a DLL, but the end effect
-    # is the same), so the test below won't find them.
-    libiberty_cv_var_sys_nerr=yes
-    libiberty_cv_var_sys_errlist=yes
-    ;;
-
-  *-*-*vms*)
-    # Under VMS, vfork works very different than on Unix. The standard test
-    # won't work, and it isn't easily adaptable. It makes more sense to
-    # just force it.
-    ac_cv_func_vfork_works=yes
-    ;;
-
-  esac
-
-  # We haven't set the list of objects yet.  Use the standard autoconf
-  # tests.  This will only work if the compiler works.
-  echo "$as_me:$LINENO: checking for library containing strerror" >&5
-echo $ECHO_N "checking for library containing strerror... $ECHO_C" >&6
-if test "${ac_cv_search_strerror+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-ac_cv_search_strerror=no
-if test x$gcc_no_link = xyes; then
-  { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
-echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char strerror ();
-int
-main ()
-{
-strerror ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_search_strerror="none required"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-if test "$ac_cv_search_strerror" = no; then
-  for ac_lib in cposix; do
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-    if test x$gcc_no_link = xyes; then
-  { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
-echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char strerror ();
-int
-main ()
-{
-strerror ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_search_strerror="-l$ac_lib"
-break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-  done
-fi
-LIBS=$ac_func_search_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5
-echo "${ECHO_T}$ac_cv_search_strerror" >&6
-if test "$ac_cv_search_strerror" != no; then
-  test "$ac_cv_search_strerror" = "none required" || LIBS="$ac_cv_search_strerror $LIBS"
-
-fi
-
-
-for ac_func in $funcs
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test x$gcc_no_link = xyes; then
-  { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
-echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  Under hpux,
-    including <limits.h> includes <sys/time.h> and causes problems
-    checking for functions defined therein.  */
-#if defined (__STDC__) && !defined (_HPUX_SOURCE)
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-else
-  case $LIBOBJS in
-    "$ac_func.$ac_objext"   | \
-  *" $ac_func.$ac_objext"   | \
-    "$ac_func.$ac_objext "* | \
-  *" $ac_func.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" ;;
-esac
-
-fi
-done
-
-
-  echo "$as_me:$LINENO: checking whether alloca needs Cray hooks" >&5
-echo $ECHO_N "checking whether alloca needs Cray hooks... $ECHO_C" >&6
-if test "${ac_cv_os_cray+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#if defined(CRAY) && ! defined(CRAY2)
-webecray
-#else
-wenotbecray
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "webecray" >/dev/null 2>&1; then
-  ac_cv_os_cray=yes
-else
-  ac_cv_os_cray=no
-fi
-rm -f conftest*
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5
-echo "${ECHO_T}$ac_cv_os_cray" >&6
-if test $ac_cv_os_cray = yes; then
-  for ac_func in _getb67 GETB67 getb67; do
-    as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test x$gcc_no_link = xyes; then
-  { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
-echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  Under hpux,
-    including <limits.h> includes <sys/time.h> and causes problems
-    checking for functions defined therein.  */
-#if defined (__STDC__) && !defined (_HPUX_SOURCE)
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define CRAY_STACKSEG_END $ac_func
-_ACEOF
-  break
-fi
-
-  done
-fi
-
-echo "$as_me:$LINENO: checking stack direction for C alloca" >&5
-echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6
-if test "${ac_cv_c_stack_direction+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "$cross_compiling" = yes; then
-  ac_cv_c_stack_direction=0
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-find_stack_direction ()
-{
-  static char *addr = 0;
-  auto char dummy;
-  if (addr == 0)
-    {
-      addr = &dummy;
-      return find_stack_direction ();
-    }
-  else
-    return (&dummy > addr) ? 1 : -1;
-}
-main ()
-{
-  exit (find_stack_direction() < 0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_c_stack_direction=1
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_c_stack_direction=-1
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5
-echo "${ECHO_T}$ac_cv_c_stack_direction" >&6
-
-cat >>confdefs.h <<_ACEOF
-#define STACK_DIRECTION $ac_cv_c_stack_direction
-_ACEOF
-
-
-
-
-for ac_header in unistd.h vfork.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  eval "$as_ac_Header=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-for ac_func in fork vfork
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test x$gcc_no_link = xyes; then
-  { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
-echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  Under hpux,
-    including <limits.h> includes <sys/time.h> and causes problems
-    checking for functions defined therein.  */
-#if defined (__STDC__) && !defined (_HPUX_SOURCE)
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-if test "x$ac_cv_func_fork" = xyes; then
-  echo "$as_me:$LINENO: checking for working fork" >&5
-echo $ECHO_N "checking for working fork... $ECHO_C" >&6
-if test "${ac_cv_func_fork_works+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "$cross_compiling" = yes; then
-  ac_cv_func_fork_works=cross
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* By Ruediger Kuhlmann. */
-      #include <sys/types.h>
-      #if HAVE_UNISTD_H
-      # include <unistd.h>
-      #endif
-      /* Some systems only have a dummy stub for fork() */
-      int main ()
-      {
-	if (fork() < 0)
-	  exit (1);
-	exit (0);
-      }
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_fork_works=yes
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_fork_works=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_fork_works" >&5
-echo "${ECHO_T}$ac_cv_func_fork_works" >&6
-
-else
-  ac_cv_func_fork_works=$ac_cv_func_fork
-fi
-if test "x$ac_cv_func_fork_works" = xcross; then
-  case $host in
-    *-*-amigaos* | *-*-msdosdjgpp*)
-      # Override, as these systems have only a dummy fork() stub
-      ac_cv_func_fork_works=no
-      ;;
-    *)
-      ac_cv_func_fork_works=yes
-      ;;
-  esac
-  { echo "$as_me:$LINENO: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5
-echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;}
-fi
-ac_cv_func_vfork_works=$ac_cv_func_vfork
-if test "x$ac_cv_func_vfork" = xyes; then
-  echo "$as_me:$LINENO: checking for working vfork" >&5
-echo $ECHO_N "checking for working vfork... $ECHO_C" >&6
-if test "${ac_cv_func_vfork_works+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "$cross_compiling" = yes; then
-  ac_cv_func_vfork_works=cross
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Thanks to Paul Eggert for this test.  */
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/wait.h>
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-#if HAVE_VFORK_H
-# include <vfork.h>
-#endif
-/* On some sparc systems, changes by the child to local and incoming
-   argument registers are propagated back to the parent.  The compiler
-   is told about this with #include <vfork.h>, but some compilers
-   (e.g. gcc -O) don't grok <vfork.h>.  Test for this by using a
-   static variable whose address is put into a register that is
-   clobbered by the vfork.  */
-static void
-#ifdef __cplusplus
-sparc_address_test (int arg)
-# else
-sparc_address_test (arg) int arg;
-#endif
-{
-  static pid_t child;
-  if (!child) {
-    child = vfork ();
-    if (child < 0) {
-      perror ("vfork");
-      _exit(2);
-    }
-    if (!child) {
-      arg = getpid();
-      write(-1, "", 0);
-      _exit (arg);
-    }
-  }
-}
-
-int
-main ()
-{
-  pid_t parent = getpid ();
-  pid_t child;
-
-  sparc_address_test (0);
-
-  child = vfork ();
-
-  if (child == 0) {
-    /* Here is another test for sparc vfork register problems.  This
-       test uses lots of local variables, at least as many local
-       variables as main has allocated so far including compiler
-       temporaries.  4 locals are enough for gcc 1.40.3 on a Solaris
-       4.1.3 sparc, but we use 8 to be safe.  A buggy compiler should
-       reuse the register of parent for one of the local variables,
-       since it will think that parent can't possibly be used any more
-       in this routine.  Assigning to the local variable will thus
-       munge parent in the parent process.  */
-    pid_t
-      p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(),
-      p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid();
-    /* Convince the compiler that p..p7 are live; otherwise, it might
-       use the same hardware register for all 8 local variables.  */
-    if (p != p1 || p != p2 || p != p3 || p != p4
-	|| p != p5 || p != p6 || p != p7)
-      _exit(1);
-
-    /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent
-       from child file descriptors.  If the child closes a descriptor
-       before it execs or exits, this munges the parent's descriptor
-       as well.  Test for this by closing stdout in the child.  */
-    _exit(close(fileno(stdout)) != 0);
-  } else {
-    int status;
-    struct stat st;
-
-    while (wait(&status) != child)
-      ;
-    exit(
-	 /* Was there some problem with vforking?  */
-	 child < 0
-
-	 /* Did the child fail?  (This shouldn't happen.)  */
-	 || status
-
-	 /* Did the vfork/compiler bug occur?  */
-	 || parent != getpid()
-
-	 /* Did the file descriptor bug occur?  */
-	 || fstat(fileno(stdout), &st) != 0
-	 );
-  }
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_vfork_works=yes
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_vfork_works=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_vfork_works" >&5
-echo "${ECHO_T}$ac_cv_func_vfork_works" >&6
-
-fi;
-if test "x$ac_cv_func_fork_works" = xcross; then
-  ac_cv_func_vfork_works=$ac_cv_func_vfork
-  { echo "$as_me:$LINENO: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5
-echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;}
-fi
-
-if test "x$ac_cv_func_vfork_works" = xyes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_WORKING_VFORK 1
-_ACEOF
-
-else
-
-cat >>confdefs.h <<\_ACEOF
-#define vfork fork
-_ACEOF
-
-fi
-if test "x$ac_cv_func_fork_works" = xyes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_WORKING_FORK 1
-_ACEOF
-
-fi
-
-  if test $ac_cv_func_vfork_works = no; then
-    case $LIBOBJS in
-    "vfork.$ac_objext"   | \
-  *" vfork.$ac_objext"   | \
-    "vfork.$ac_objext "* | \
-  *" vfork.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS vfork.$ac_objext" ;;
-esac
-
-  fi
-  # We only need _doprnt if we might use it to implement v*printf.
-  if test $ac_cv_func_vprintf != yes \
-     || test $ac_cv_func_vfprintf != yes \
-     || test $ac_cv_func_vsprintf != yes; then
-
-for ac_func in _doprnt
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test x$gcc_no_link = xyes; then
-  { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
-echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  Under hpux,
-    including <limits.h> includes <sys/time.h> and causes problems
-    checking for functions defined therein.  */
-#if defined (__STDC__) && !defined (_HPUX_SOURCE)
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-else
-  case $LIBOBJS in
-    "$ac_func.$ac_objext"   | \
-  *" $ac_func.$ac_objext"   | \
-    "$ac_func.$ac_objext "* | \
-  *" $ac_func.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" ;;
-esac
-
-fi
-done
-
-
-  else
-
-for ac_func in _doprnt
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test x$gcc_no_link = xyes; then
-  { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
-echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  Under hpux,
-    including <limits.h> includes <sys/time.h> and causes problems
-    checking for functions defined therein.  */
-#if defined (__STDC__) && !defined (_HPUX_SOURCE)
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-  fi
-
-  for v in $vars; do
-    echo "$as_me:$LINENO: checking for $v" >&5
-echo $ECHO_N "checking for $v... $ECHO_C" >&6
-    if eval "test \"\${libiberty_cv_var_$v+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test x$gcc_no_link = xyes; then
-  { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
-echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-int *p;
-int
-main ()
-{
-extern int $v []; p = $v;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "libiberty_cv_var_$v=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "libiberty_cv_var_$v=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-
-    if eval "test \"`echo '$libiberty_cv_var_'$v`\" = yes"; then
-      echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-      n=HAVE_`echo $v | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-      cat >>confdefs.h <<_ACEOF
-#define $n 1
-_ACEOF
-
-    else
-      echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-    fi
-  done
-
-  # special check for _system_configuration because AIX <4.3.2 do not
-  # contain the `physmem' member.
-  echo "$as_me:$LINENO: checking for external symbol _system_configuration" >&5
-echo $ECHO_N "checking for external symbol _system_configuration... $ECHO_C" >&6
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/systemcfg.h>
-int
-main ()
-{
-double x = _system_configuration.physmem;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE__SYSTEM_CONFIGURATION 1
-_ACEOF
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-
-
-for ac_func in $checkfuncs
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test x$gcc_no_link = xyes; then
-  { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
-echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  Under hpux,
-    including <limits.h> includes <sys/time.h> and causes problems
-    checking for functions defined therein.  */
-#if defined (__STDC__) && !defined (_HPUX_SOURCE)
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-  echo "$as_me:$LINENO: checking whether basename is declared" >&5
-echo $ECHO_N "checking whether basename is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_basename+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef basename
-  char *p = (char *) basename;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_have_decl_basename=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_basename=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_basename" >&5
-echo "${ECHO_T}$ac_cv_have_decl_basename" >&6
-if test $ac_cv_have_decl_basename = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_BASENAME 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_BASENAME 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether ffs is declared" >&5
-echo $ECHO_N "checking whether ffs is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_ffs+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef ffs
-  char *p = (char *) ffs;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_have_decl_ffs=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_ffs=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_ffs" >&5
-echo "${ECHO_T}$ac_cv_have_decl_ffs" >&6
-if test $ac_cv_have_decl_ffs = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FFS 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FFS 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether asprintf is declared" >&5
-echo $ECHO_N "checking whether asprintf is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_asprintf+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef asprintf
-  char *p = (char *) asprintf;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_have_decl_asprintf=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_asprintf=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_asprintf" >&5
-echo "${ECHO_T}$ac_cv_have_decl_asprintf" >&6
-if test $ac_cv_have_decl_asprintf = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_ASPRINTF 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_ASPRINTF 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether vasprintf is declared" >&5
-echo $ECHO_N "checking whether vasprintf is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_vasprintf+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef vasprintf
-  char *p = (char *) vasprintf;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_have_decl_vasprintf=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_vasprintf=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_vasprintf" >&5
-echo "${ECHO_T}$ac_cv_have_decl_vasprintf" >&6
-if test $ac_cv_have_decl_vasprintf = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_VASPRINTF 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_VASPRINTF 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether snprintf is declared" >&5
-echo $ECHO_N "checking whether snprintf is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_snprintf+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef snprintf
-  char *p = (char *) snprintf;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_have_decl_snprintf=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_snprintf=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_snprintf" >&5
-echo "${ECHO_T}$ac_cv_have_decl_snprintf" >&6
-if test $ac_cv_have_decl_snprintf = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SNPRINTF 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SNPRINTF 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether vsnprintf is declared" >&5
-echo $ECHO_N "checking whether vsnprintf is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_vsnprintf+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef vsnprintf
-  char *p = (char *) vsnprintf;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_have_decl_vsnprintf=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_vsnprintf=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_vsnprintf" >&5
-echo "${ECHO_T}$ac_cv_have_decl_vsnprintf" >&6
-if test $ac_cv_have_decl_vsnprintf = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_VSNPRINTF 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_VSNPRINTF 0
-_ACEOF
-
-
-fi
-
-
-  echo "$as_me:$LINENO: checking whether calloc is declared" >&5
-echo $ECHO_N "checking whether calloc is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_calloc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef calloc
-  char *p = (char *) calloc;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_have_decl_calloc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_calloc=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_calloc" >&5
-echo "${ECHO_T}$ac_cv_have_decl_calloc" >&6
-if test $ac_cv_have_decl_calloc = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_CALLOC 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_CALLOC 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether getenv is declared" >&5
-echo $ECHO_N "checking whether getenv is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_getenv+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef getenv
-  char *p = (char *) getenv;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_have_decl_getenv=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_getenv=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_getenv" >&5
-echo "${ECHO_T}$ac_cv_have_decl_getenv" >&6
-if test $ac_cv_have_decl_getenv = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETENV 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETENV 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether getopt is declared" >&5
-echo $ECHO_N "checking whether getopt is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_getopt+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef getopt
-  char *p = (char *) getopt;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_have_decl_getopt=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_getopt=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_getopt" >&5
-echo "${ECHO_T}$ac_cv_have_decl_getopt" >&6
-if test $ac_cv_have_decl_getopt = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETOPT 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETOPT 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether malloc is declared" >&5
-echo $ECHO_N "checking whether malloc is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_malloc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef malloc
-  char *p = (char *) malloc;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_have_decl_malloc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_malloc=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_malloc" >&5
-echo "${ECHO_T}$ac_cv_have_decl_malloc" >&6
-if test $ac_cv_have_decl_malloc = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_MALLOC 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_MALLOC 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether realloc is declared" >&5
-echo $ECHO_N "checking whether realloc is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_realloc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef realloc
-  char *p = (char *) realloc;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_have_decl_realloc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_realloc=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_realloc" >&5
-echo "${ECHO_T}$ac_cv_have_decl_realloc" >&6
-if test $ac_cv_have_decl_realloc = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_REALLOC 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_REALLOC 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether sbrk is declared" >&5
-echo $ECHO_N "checking whether sbrk is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_sbrk+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef sbrk
-  char *p = (char *) sbrk;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_have_decl_sbrk=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_sbrk=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_sbrk" >&5
-echo "${ECHO_T}$ac_cv_have_decl_sbrk" >&6
-if test $ac_cv_have_decl_sbrk = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SBRK 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SBRK 0
-_ACEOF
-
-
-fi
-
-
-  echo "$as_me:$LINENO: checking whether strverscmp is declared" >&5
-echo $ECHO_N "checking whether strverscmp is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_strverscmp+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef strverscmp
-  char *p = (char *) strverscmp;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_have_decl_strverscmp=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_strverscmp=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_strverscmp" >&5
-echo "${ECHO_T}$ac_cv_have_decl_strverscmp" >&6
-if test $ac_cv_have_decl_strverscmp = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRVERSCMP 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRVERSCMP 0
-_ACEOF
-
-
-fi
-
-
-  echo "$as_me:$LINENO: checking whether canonicalize_file_name must be declared" >&5
-echo $ECHO_N "checking whether canonicalize_file_name must be declared... $ECHO_C" >&6
-if test "${libiberty_cv_decl_needed_canonicalize_file_name+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include "confdefs.h"
-#include <stdio.h>
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-int
-main ()
-{
-char *(*pfn) = (char *(*)) canonicalize_file_name
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  libiberty_cv_decl_needed_canonicalize_file_name=no
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-libiberty_cv_decl_needed_canonicalize_file_name=yes
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-echo "$as_me:$LINENO: result: $libiberty_cv_decl_needed_canonicalize_file_name" >&5
-echo "${ECHO_T}$libiberty_cv_decl_needed_canonicalize_file_name" >&6
-if test $libiberty_cv_decl_needed_canonicalize_file_name = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define NEED_DECLARATION_CANONICALIZE_FILE_NAME 1
-_ACEOF
-
-fi
-
-fi
-
-# Figure out which version of pexecute to use.
-case "${host}" in
-     *-*-mingw* | *-*-winnt*)	pexecute=./pex-win32.o  ;;
-     *-*-msdosdjgpp*)		pexecute=./pex-djgpp.o  ;;
-     *-*-msdos*)		pexecute=./pex-msdos.o  ;;
-     *)				pexecute=./pex-unix.o   ;;
-esac
-
-
-if test x$gcc_no_link = xyes; then
-  if test "x${ac_cv_func_mmap_fixed_mapped+set}" != xset; then
-    ac_cv_func_mmap_fixed_mapped=no
-  fi
-fi
-if test "x${ac_cv_func_mmap_fixed_mapped}" != xno; then
-
-
-for ac_header in stdlib.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  eval "$as_ac_Header=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-for ac_func in getpagesize
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test x$gcc_no_link = xyes; then
-  { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
-echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  Under hpux,
-    including <limits.h> includes <sys/time.h> and causes problems
-    checking for functions defined therein.  */
-#if defined (__STDC__) && !defined (_HPUX_SOURCE)
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-echo "$as_me:$LINENO: checking for working mmap" >&5
-echo $ECHO_N "checking for working mmap... $ECHO_C" >&6
-if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "$cross_compiling" = yes; then
-  ac_cv_func_mmap_fixed_mapped=no
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-/* malloc might have been renamed as rpl_malloc. */
-#undef malloc
-
-/* Thanks to Mike Haertel and Jim Avera for this test.
-   Here is a matrix of mmap possibilities:
-	mmap private not fixed
-	mmap private fixed at somewhere currently unmapped
-	mmap private fixed at somewhere already mapped
-	mmap shared not fixed
-	mmap shared fixed at somewhere currently unmapped
-	mmap shared fixed at somewhere already mapped
-   For private mappings, we should verify that changes cannot be read()
-   back from the file, nor mmap's back from the file at a different
-   address.  (There have been systems where private was not correctly
-   implemented like the infamous i386 svr4.0, and systems where the
-   VM page cache was not coherent with the file system buffer cache
-   like early versions of FreeBSD and possibly contemporary NetBSD.)
-   For shared mappings, we should conversely verify that changes get
-   propagated back to all the places they're supposed to be.
-
-   Grep wants private fixed already mapped.
-   The main things grep needs to know about mmap are:
-   * does it exist and is it safe to write into the mmap'd area
-   * how to use it (BSD variants)  */
-
-#include <fcntl.h>
-#include <sys/mman.h>
-
-#if !STDC_HEADERS && !HAVE_STDLIB_H
-char *malloc ();
-#endif
-
-/* This mess was copied from the GNU getpagesize.h.  */
-#if !HAVE_GETPAGESIZE
-/* Assume that all systems that can run configure have sys/param.h.  */
-# if !HAVE_SYS_PARAM_H
-#  define HAVE_SYS_PARAM_H 1
-# endif
-
-# ifdef _SC_PAGESIZE
-#  define getpagesize() sysconf(_SC_PAGESIZE)
-# else /* no _SC_PAGESIZE */
-#  if HAVE_SYS_PARAM_H
-#   include <sys/param.h>
-#   ifdef EXEC_PAGESIZE
-#    define getpagesize() EXEC_PAGESIZE
-#   else /* no EXEC_PAGESIZE */
-#    ifdef NBPG
-#     define getpagesize() NBPG * CLSIZE
-#     ifndef CLSIZE
-#      define CLSIZE 1
-#     endif /* no CLSIZE */
-#    else /* no NBPG */
-#     ifdef NBPC
-#      define getpagesize() NBPC
-#     else /* no NBPC */
-#      ifdef PAGESIZE
-#       define getpagesize() PAGESIZE
-#      endif /* PAGESIZE */
-#     endif /* no NBPC */
-#    endif /* no NBPG */
-#   endif /* no EXEC_PAGESIZE */
-#  else /* no HAVE_SYS_PARAM_H */
-#   define getpagesize() 8192	/* punt totally */
-#  endif /* no HAVE_SYS_PARAM_H */
-# endif /* no _SC_PAGESIZE */
-
-#endif /* no HAVE_GETPAGESIZE */
-
-int
-main ()
-{
-  char *data, *data2, *data3;
-  int i, pagesize;
-  int fd;
-
-  pagesize = getpagesize ();
-
-  /* First, make a file with some known garbage in it. */
-  data = (char *) malloc (pagesize);
-  if (!data)
-    exit (1);
-  for (i = 0; i < pagesize; ++i)
-    *(data + i) = rand ();
-  umask (0);
-  fd = creat ("conftest.mmap", 0600);
-  if (fd < 0)
-    exit (1);
-  if (write (fd, data, pagesize) != pagesize)
-    exit (1);
-  close (fd);
-
-  /* Next, try to mmap the file at a fixed address which already has
-     something else allocated at it.  If we can, also make sure that
-     we see the same garbage.  */
-  fd = open ("conftest.mmap", O_RDWR);
-  if (fd < 0)
-    exit (1);
-  data2 = (char *) malloc (2 * pagesize);
-  if (!data2)
-    exit (1);
-  data2 += (pagesize - ((long) data2 & (pagesize - 1))) & (pagesize - 1);
-  if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
-		     MAP_PRIVATE | MAP_FIXED, fd, 0L))
-    exit (1);
-  for (i = 0; i < pagesize; ++i)
-    if (*(data + i) != *(data2 + i))
-      exit (1);
-
-  /* Finally, make sure that changes to the mapped area do not
-     percolate back to the file as seen by read().  (This is a bug on
-     some variants of i386 svr4.0.)  */
-  for (i = 0; i < pagesize; ++i)
-    *(data2 + i) = *(data2 + i) + 1;
-  data3 = (char *) malloc (pagesize);
-  if (!data3)
-    exit (1);
-  if (read (fd, data3, pagesize) != pagesize)
-    exit (1);
-  for (i = 0; i < pagesize; ++i)
-    if (*(data + i) != *(data3 + i))
-      exit (1);
-  close (fd);
-  exit (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_mmap_fixed_mapped=yes
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_mmap_fixed_mapped=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5
-echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6
-if test $ac_cv_func_mmap_fixed_mapped = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MMAP 1
-_ACEOF
-
-fi
-rm -f conftest.mmap
-
-fi
-
-echo "$as_me:$LINENO: checking for working strncmp" >&5
-echo $ECHO_N "checking for working strncmp... $ECHO_C" >&6
-if test "${ac_cv_func_strncmp_works+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "$cross_compiling" = yes; then
-  ac_cv_func_strncmp_works=no
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Test by Jim Wilson and Kaveh Ghazi.
-   Check whether strncmp reads past the end of its string parameters. */
-#include <sys/types.h>
-
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-
-#ifdef HAVE_SYS_MMAN_H
-#include <sys/mman.h>
-#endif
-
-#ifndef MAP_ANON
-#ifdef MAP_ANONYMOUS
-#define MAP_ANON MAP_ANONYMOUS
-#else
-#define MAP_ANON MAP_FILE
-#endif
-#endif
-
-#ifndef MAP_FILE
-#define MAP_FILE 0
-#endif
-#ifndef O_RDONLY
-#define O_RDONLY 0
-#endif
-
-#define MAP_LEN 0x10000
-
-main ()
-{
-#if defined(HAVE_MMAP) || defined(HAVE_MMAP_ANYWHERE)
-  char *p;
-  int dev_zero;
-
-  dev_zero = open ("/dev/zero", O_RDONLY);
-  if (dev_zero < 0)
-    exit (1);
-
-  p = (char *) mmap (0, MAP_LEN, PROT_READ|PROT_WRITE,
-		     MAP_ANON|MAP_PRIVATE, dev_zero, 0);
-  if (p == (char *)-1)
-    p = (char *) mmap (0, MAP_LEN, PROT_READ|PROT_WRITE,
-		       MAP_ANON|MAP_PRIVATE, -1, 0);
-  if (p == (char *)-1)
-    exit (2);
-  else
-    {
-      char *string = "__si_type_info";
-      char *q = (char *) p + MAP_LEN - strlen (string) - 2;
-      char *r = (char *) p + 0xe;
-
-      strcpy (q, string);
-      strcpy (r, string);
-      strncmp (r, q, 14);
-    }
-#endif /* HAVE_MMAP || HAVE_MMAP_ANYWHERE */
-  exit (0);
-}
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_strncmp_works=yes
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_strncmp_works=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core core.* *.core
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_strncmp_works" >&5
-echo "${ECHO_T}$ac_cv_func_strncmp_works" >&6
-if test $ac_cv_func_strncmp_works = no ; then
-  case $LIBOBJS in
-    "strncmp.$ac_objext"   | \
-  *" strncmp.$ac_objext"   | \
-    "strncmp.$ac_objext "* | \
-  *" strncmp.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS strncmp.$ac_objext" ;;
-esac
-
-fi
-
-
-# Install a library built with a cross compiler in $(tooldir) rather
-# than $(libdir).
-if test -z "${with_cross_host}"; then
-  INSTALL_DEST=libdir
-else
-  INSTALL_DEST=tooldir
-fi
-
-
-
-L=""
-for l in x $LIBOBJS; do
-  case $l in
-    x) ;;
-    *) L="$L ./$l" ;;
-  esac
-done
-LIBOBJS="$L"
-
-
-
-
-
-# We need multilib support, but only if configuring for the target.
-                    ac_config_files="$ac_config_files Makefile testsuite/Makefile"
-
-          ac_config_commands="$ac_config_commands default"
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-{
-  (set) 2>&1 |
-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;;
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n \
-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-} |
-  sed '
-     t clear
-     : clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
-  if test -w $cache_file; then
-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
-    cat confcache >$cache_file
-  else
-    echo "not updating unwritable cache $cache_file"
-  fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[	 ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[	 ]*$//;
-}'
-fi
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_i=`echo "$ac_i" |
-	 sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
-  # 2. Add them.
-  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.  Logging --version etc. is OK.
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by $as_me, which was
-generated by GNU Autoconf 2.59.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-_ACEOF
-
-# Files that config.status was made for.
-if test -n "$ac_config_files"; then
-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number, then exit
-  -q, --quiet      do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-  --file=FILE[:TEMPLATE]
-		   instantiate the configuration file FILE
-  --header=FILE[:TEMPLATE]
-		   instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to <bug-autoconf@gnu.org>."
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-config.status
-configured by $0, generated by GNU Autoconf 2.59,
-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-INSTALL="$INSTALL"
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=*)
-    ac_option=`expr "x$1" : 'x\([^=]*\)='`
-    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
-    ac_shift=:
-    ;;
-  -*)
-    ac_option=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  *) # This is not an option, so the user has probably given explicit
-     # arguments.
-     ac_option=$1
-     ac_need_defaults=false;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --vers* | -V )
-    echo "$ac_cs_version"; exit 0 ;;
-  --he | --h)
-    # Conflict between --help and --header
-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; };;
-  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit 0 ;;
-  --debug | --d* | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
-    ac_need_defaults=false;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; } ;;
-
-  *) ac_config_targets="$ac_config_targets $1" ;;
-
-  esac
-  shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
-  exec 6>/dev/null
-  ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-if \$ac_cs_recheck; then
-  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-#
-# INIT-COMMANDS section.
-#
-
-srcdir=${srcdir}
-host=${host}
-target=${target}
-with_target_subdir=${with_target_subdir}
-with_multisubdir=${with_multisubdir}
-ac_configure_args="--enable-multilib ${ac_configure_args}"
-CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
-libiberty_topdir=${libiberty_topdir}
-
-
-_ACEOF
-
-
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
-  case "$ac_config_target" in
-  # Handling of arguments.
-  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-  "testsuite/Makefile" ) CONFIG_FILES="$CONFIG_FILES testsuite/Makefile" ;;
-  "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
-  "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.in" ;;
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason to put it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
-  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=./confstat$$-$RANDOM
-  (umask 077 && mkdir $tmp)
-} ||
-{
-   echo "$me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
-  # Protect against being on the right side of a sed subst in config.status.
-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s,@SHELL@,$SHELL,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s,@exec_prefix@,$exec_prefix,;t t
-s,@prefix@,$prefix,;t t
-s,@program_transform_name@,$program_transform_name,;t t
-s,@bindir@,$bindir,;t t
-s,@sbindir@,$sbindir,;t t
-s,@libexecdir@,$libexecdir,;t t
-s,@datadir@,$datadir,;t t
-s,@sysconfdir@,$sysconfdir,;t t
-s,@sharedstatedir@,$sharedstatedir,;t t
-s,@localstatedir@,$localstatedir,;t t
-s,@libdir@,$libdir,;t t
-s,@includedir@,$includedir,;t t
-s,@oldincludedir@,$oldincludedir,;t t
-s,@infodir@,$infodir,;t t
-s,@mandir@,$mandir,;t t
-s,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;t t
-s,@LIBS@,$LIBS,;t t
-s,@libiberty_topdir@,$libiberty_topdir,;t t
-s,@MAINT@,$MAINT,;t t
-s,@NOTMAINT@,$NOTMAINT,;t t
-s,@MAKEINFO@,$MAKEINFO,;t t
-s,@BUILD_INFO@,$BUILD_INFO,;t t
-s,@PERL@,$PERL,;t t
-s,@HAVE_PERL@,$HAVE_PERL,;t t
-s,@build@,$build,;t t
-s,@build_cpu@,$build_cpu,;t t
-s,@build_vendor@,$build_vendor,;t t
-s,@build_os@,$build_os,;t t
-s,@host@,$host,;t t
-s,@host_cpu@,$host_cpu,;t t
-s,@host_vendor@,$host_vendor,;t t
-s,@host_os@,$host_os,;t t
-s,@AR@,$AR,;t t
-s,@ac_ct_AR@,$ac_ct_AR,;t t
-s,@RANLIB@,$RANLIB,;t t
-s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
-s,@CC@,$CC,;t t
-s,@CFLAGS@,$CFLAGS,;t t
-s,@LDFLAGS@,$LDFLAGS,;t t
-s,@CPPFLAGS@,$CPPFLAGS,;t t
-s,@ac_ct_CC@,$ac_ct_CC,;t t
-s,@EXEEXT@,$EXEEXT,;t t
-s,@OBJEXT@,$OBJEXT,;t t
-s,@CPP@,$CPP,;t t
-s,@ac_libiberty_warn_cflags@,$ac_libiberty_warn_cflags,;t t
-s,@NO_MINUS_C_MINUS_O@,$NO_MINUS_C_MINUS_O,;t t
-s,@OUTPUT_OPTION@,$OUTPUT_OPTION,;t t
-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
-s,@EGREP@,$EGREP,;t t
-s,@LIBOBJS@,$LIBOBJS,;t t
-s,@CHECK@,$CHECK,;t t
-s,@target_header_dir@,$target_header_dir,;t t
-s,@pexecute@,$pexecute,;t t
-s,@INSTALL_DEST@,$INSTALL_DEST,;t t
-s,@datarootdir@,$datarootdir,;t t
-s,@docdir@,$docdir,;t t
-s,@htmldir@,$htmldir,;t t
-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
-/@host_makefile_frag@/r $host_makefile_frag
-s,@host_makefile_frag@,,;t t
-CEOF
-
-_ACEOF
-
-  cat >>$CONFIG_STATUS <<\_ACEOF
-  # Split the substitutions into bite-sized pieces for seds with
-  # small command number limits, like on Digital OSF/1 and HP-UX.
-  ac_max_sed_lines=48
-  ac_sed_frag=1 # Number of current file.
-  ac_beg=1 # First line for current file.
-  ac_end=$ac_max_sed_lines # Line after last line for current file.
-  ac_more_lines=:
-  ac_sed_cmds=
-  while $ac_more_lines; do
-    if test $ac_beg -gt 1; then
-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    else
-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    fi
-    if test ! -s $tmp/subs.frag; then
-      ac_more_lines=false
-    else
-      # The purpose of the label and of the branching condition is to
-      # speed up the sed processing (if there are no `@' at all, there
-      # is no need to browse any of the substitutions).
-      # These are the two extra sed commands mentioned above.
-      (echo ':t
-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
-      if test -z "$ac_sed_cmds"; then
-	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
-      else
-	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
-      fi
-      ac_sed_frag=`expr $ac_sed_frag + 1`
-      ac_beg=$ac_end
-      ac_end=`expr $ac_end + $ac_max_sed_lines`
-    fi
-  done
-  if test -z "$ac_sed_cmds"; then
-    ac_sed_cmds=cat
-  fi
-fi # test -n "$CONFIG_FILES"
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-	cat >$tmp/stdin
-	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
-  esac
-
-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-
-  case $INSTALL in
-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
-  esac
-
-  if test x"$ac_file" != x-; then
-    { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    rm -f "$ac_file"
-  fi
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    configure_input=
-  else
-    configure_input="$ac_file.  "
-  fi
-  configure_input=$configure_input"Generated from `echo $ac_file_in |
-				     sed 's,.*/,,'` by configure."
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-	 # Absolute (can't be DOS-style, as IFS=:)
-	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 echo "$f";;
-      *) # Relative
-	 if test -f "$f"; then
-	   # Build tree
-	   echo "$f"
-	 elif test -f "$srcdir/$f"; then
-	   # Source tree
-	   echo "$srcdir/$f"
-	 else
-	   # /dev/null tree
-	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;t t
-s,@srcdir@,$ac_srcdir,;t t
-s,@abs_srcdir@,$ac_abs_srcdir,;t t
-s,@top_srcdir@,$ac_top_srcdir,;t t
-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s,@builddir@,$ac_builddir,;t t
-s,@abs_builddir@,$ac_abs_builddir,;t t
-s,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-s,@INSTALL@,$ac_INSTALL,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
-  rm -f $tmp/stdin
-  if test x"$ac_file" != x-; then
-    mv $tmp/out $ac_file
-  else
-    cat $tmp/out
-    rm -f $tmp/out
-  fi
-
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_HEADER section.
-#
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s,^\([	 ]*\)#\([	 ]*define[	 ][	 ]*\)'
-ac_dB='[	 ].*$,\1#\2'
-ac_dC=' '
-ac_dD=',;t'
-# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_uA='s,^\([	 ]*\)#\([	 ]*\)undef\([	 ][	 ]*\)'
-ac_uB='$,\1#\2define\3'
-ac_uC=' '
-ac_uD=',;t'
-
-for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-	cat >$tmp/stdin
-	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
-  esac
-
-  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-	 # Absolute (can't be DOS-style, as IFS=:)
-	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 # Do quote $f, to prevent DOS paths from being IFS'd.
-	 echo "$f";;
-      *) # Relative
-	 if test -f "$f"; then
-	   # Build tree
-	   echo "$f"
-	 elif test -f "$srcdir/$f"; then
-	   # Source tree
-	   echo "$srcdir/$f"
-	 else
-	   # /dev/null tree
-	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-  # Remove the trailing spaces.
-  sed 's/[	 ]*$//' $ac_file_inputs >$tmp/in
-
-_ACEOF
-
-# Transform confdefs.h into two sed scripts, `conftest.defines' and
-# `conftest.undefs', that substitutes the proper values into
-# config.h.in to produce config.h.  The first handles `#define'
-# templates, and the second `#undef' templates.
-# And first: Protect against being on the right side of a sed subst in
-# config.status.  Protect against being in an unquoted here document
-# in config.status.
-rm -f conftest.defines conftest.undefs
-# Using a here document instead of a string reduces the quoting nightmare.
-# Putting comments in sed scripts is not portable.
-#
-# `end' is used to avoid that the second main sed command (meant for
-# 0-ary CPP macros) applies to n-ary macro definitions.
-# See the Autoconf documentation for `clear'.
-cat >confdef2sed.sed <<\_ACEOF
-s/[\\&,]/\\&/g
-s,[\\$`],\\&,g
-t clear
-: clear
-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*\)\(([^)]*)\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
-t end
-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
-: end
-_ACEOF
-# If some macros were called several times there might be several times
-# the same #defines, which is useless.  Nevertheless, we may not want to
-# sort them, since we want the *last* AC-DEFINE to be honored.
-uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
-sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
-rm -f confdef2sed.sed
-
-# This sed command replaces #undef with comments.  This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >>conftest.undefs <<\_ACEOF
-s,^[	 ]*#[	 ]*undef[	 ][	 ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
-_ACEOF
-
-# Break up conftest.defines because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo '  if grep "^[	 ]*#[	 ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
-echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
-echo '  :' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.defines >/dev/null
-do
-  # Write a limited-size here document to $tmp/defines.sed.
-  echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
-  # Speed up: don't consider the non `#define' lines.
-  echo '/^[	 ]*#[	 ]*define/!b' >>$CONFIG_STATUS
-  # Work around the forget-to-reset-the-flag bug.
-  echo 't clr' >>$CONFIG_STATUS
-  echo ': clr' >>$CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
-  echo 'CEOF
-  sed -f $tmp/defines.sed $tmp/in >$tmp/out
-  rm -f $tmp/in
-  mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
-  rm -f conftest.defines
-  mv conftest.tail conftest.defines
-done
-rm -f conftest.defines
-echo '  fi # grep' >>$CONFIG_STATUS
-echo >>$CONFIG_STATUS
-
-# Break up conftest.undefs because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.undefs >/dev/null
-do
-  # Write a limited-size here document to $tmp/undefs.sed.
-  echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
-  # Speed up: don't consider the non `#undef'
-  echo '/^[	 ]*#[	 ]*undef/!b' >>$CONFIG_STATUS
-  # Work around the forget-to-reset-the-flag bug.
-  echo 't clr' >>$CONFIG_STATUS
-  echo ': clr' >>$CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
-  echo 'CEOF
-  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
-  rm -f $tmp/in
-  mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
-  rm -f conftest.undefs
-  mv conftest.tail conftest.undefs
-done
-rm -f conftest.undefs
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    echo "/* Generated by configure.  */" >$tmp/config.h
-  else
-    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
-  fi
-  cat $tmp/in >>$tmp/config.h
-  rm -f $tmp/in
-  if test x"$ac_file" != x-; then
-    if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
-      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-echo "$as_me: $ac_file is unchanged" >&6;}
-    else
-      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-      { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-      rm -f $ac_file
-      mv $tmp/config.h $ac_file
-    fi
-  else
-    cat $tmp/config.h
-    rm -f $tmp/config.h
-  fi
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_COMMANDS section.
-#
-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
-  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
-  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
-  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_dest" : 'X\(//\)[^/]' \| \
-	 X"$ac_dest" : 'X\(//\)$' \| \
-	 X"$ac_dest" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_dest" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-
-  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
-echo "$as_me: executing $ac_dest commands" >&6;}
-  case $ac_dest in
-    default ) test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
-if test -n "$CONFIG_FILES"; then
-  if test -n "${with_target_subdir}"; then
-    # FIXME: We shouldn't need to set ac_file
-    ac_file=Makefile
-    LD="${ORIGINAL_LD_FOR_MULTILIBS}"
-    . ${libiberty_topdir}/config-ml.in
-  fi
-fi ;;
-  esac
-done
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  ac_config_status_args=
-  test "$silent" = yes &&
-    ac_config_status_args="$ac_config_status_args --quiet"
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || { (exit 1); exit 1; }
-fi
-
diff --git a/libiberty/configure.ac b/libiberty/configure.ac
deleted file mode 100644
index 76cf3d5..0000000
--- a/libiberty/configure.ac
+++ /dev/null
@@ -1,669 +0,0 @@
-dnl Process this file with autoconf to produce a configure script
-
-AC_PREREQ(2.59)
-AC_INIT
-AC_CONFIG_SRCDIR([xmalloc.c])
-
-# This works around the fact that libtool configuration may change LD
-# for this particular configuration, but some shells, instead of
-# keeping the changes in LD private, export them just because LD is
-# exported.  We don't use libtool yet, but some day we might, so...
-ORIGINAL_LD_FOR_MULTILIBS=$LD
-
-dnl We use these options to decide which functions to include.
-AC_ARG_WITH(target-subdir,
-[  --with-target-subdir=SUBDIR      Configuring in a subdirectory for target])
-AC_ARG_WITH(build-subdir,
-[  --with-build-subdir=SUBDIR       Configuring in a subdirectory for build])
-AC_ARG_WITH(cross-host,
-[  --with-cross-host=HOST           Configuring with a cross compiler])
-AC_ARG_WITH(newlib,
-[  --with-newlib                    Configuring with newlib])
-
-if test "${srcdir}" = "."; then
-  if test -n "${with_build_subdir}"; then
-    libiberty_topdir="${srcdir}/../.."
-    with_target_subdir=
-  elif test -z "${with_target_subdir}"; then
-    libiberty_topdir="${srcdir}/.."
-  else
-    if test "${with_target_subdir}" != "."; then
-      libiberty_topdir="${srcdir}/${with_multisrctop}../.."
-    else
-      libiberty_topdir="${srcdir}/${with_multisrctop}.."
-    fi
-  fi
-else
-  libiberty_topdir="${srcdir}/.."
-fi
-AC_SUBST(libiberty_topdir)
-AC_CONFIG_AUX_DIR($libiberty_topdir)
-
-dnl Very limited version of automake's enable-maintainer-mode
-
-AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
-  dnl maintainer-mode is disabled by default
-  AC_ARG_ENABLE(maintainer-mode,
-[  --enable-maintainer-mode
-                          enable make rules and dependencies not useful
-                          (and sometimes confusing) to the casual installer],
-      maintainer_mode=$enableval,
-      maintainer_mode=no)
-
-AC_MSG_RESULT($maintainer_mode)
-
-if test "$maintainer_mode" = "yes"; then
-  MAINT=''
-  NOTMAINT='#'
-else
-  MAINT='#'
-  NOTMAINT=''
-fi
-AC_SUBST(MAINT)dnl
-AC_SUBST(NOTMAINT)dnl
-
-# Do we have a single-tree copy of texinfo?  Even if we do, we can't
-# rely on it - libiberty is built before texinfo.
-AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
-if test "x$MAKEINFO" = "x"; then
-    MAKEINFO="@echo makeinfo missing; true"
-    BUILD_INFO=
-else
-    BUILD_INFO=info
-    case "$MAKEINFO" in
-      */missing\ makeinfo*)
-	BUILD_INFO=
-	AC_MSG_WARN([
-*** Makeinfo is missing. Info documentation will not be built.])
-        ;;
-      *)
-	case x"`$MAKEINFO --version | grep 'GNU texinfo'`" in
-	  x*\ [[1-3]].* )
-	    MAKEINFO="@echo $MAKEINFO is too old, 4.0 or newer required; true"
-	    BUILD_INFO=
-	    AC_MSG_WARN([
-*** Makeinfo is too old. Info documentation will not be built.])
-	  ;;
-	esac
-	;;
-    esac
-fi
-AC_SUBST(MAKEINFO)
-AC_SUBST(BUILD_INFO)
-
-AC_CHECK_PROG(PERL, perl, perl, )
-if test x"$PERL" = x""; then
-  HAVE_PERL='#'
-else
-  HAVE_PERL=''
-fi
-AC_SUBST(HAVE_PERL)
-
-AC_CANONICAL_HOST
-
-dnl When we start using automake:
-dnl AM_INIT_AUTOMAKE(libiberty, 1.0)
-
-dnl These must be called before AM_PROG_LIBTOOL, because it may want
-dnl to call AC_CHECK_PROG.
-AC_CHECK_TOOL(AR, ar)
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-
-GCC_NO_EXECUTABLES
-AC_PROG_CC
-AC_PROG_CPP_WERROR
-
-# Warn C++ incompatibilities if supported.
-AC_CACHE_CHECK(
-  [whether ${CC} accepts -Wc++-compat],
-  [ac_cv_prog_cc_w_cxx_compat],
-  [save_CFLAGS="$CFLAGS"
-  CFLAGS="-Wc++-compat"
-  AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
-                    [ac_cv_prog_cc_w_cxx_compat=yes],
-                    [ac_cv_prog_cc_w_cxx_compat=no])
-  CFLAGS="$save_CFLAGS"
-  ])
-
-
-if test x$GCC = xyes; then
-  ac_libiberty_warn_cflags='-W -Wall -pedantic -Wwrite-strings -Wstrict-prototypes'
-fi
-if test $ac_cv_prog_cc_w_cxx_compat = yes ; then
-  ac_libiberty_warn_cflags="${ac_libiberty_warn_cflags} -Wc++-compat"
-fi
-AC_SUBST(ac_libiberty_warn_cflags)
-
-AC_PROG_CC_C_O
-# autoconf is lame and doesn't give us any substitution variable for this.
-if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
-  NO_MINUS_C_MINUS_O=yes
-else
-  OUTPUT_OPTION='-o $@'
-fi
-AC_SUBST(NO_MINUS_C_MINUS_O)
-AC_SUBST(OUTPUT_OPTION)
-
-AC_C_CONST
-AC_C_INLINE
-AC_C_BIGENDIAN
-
-dnl When we start using libtool:
-dnl Default to a non shared library.  This may be overridden by the
-dnl configure option --enable-shared.
-dnl AM_DISABLE_SHARED
-
-dnl When we start using libtool:
-dnl AM_PROG_LIBTOOL
-
-dnl When we start using automake:
-dnl AM_CONFIG_HEADER(config.h:config.in)
-AC_CONFIG_HEADER(config.h:config.in)
-
-dnl When we start using automake:
-dnl AM_MAINTAINER_MODE
-dnl AC_EXEEXT
-
-dnl When we start using automake:
-dnl AM_PROG_INSTALL
-AC_PROG_INSTALL
-
-# Don't build the shared library for build.
-if [[ -n "${with_build_subdir}" ]]; then
-  enable_shared=no
-fi
-
-frag=
-case "${host}" in
-  rs6000-ibm-aix3.1 | rs6000-ibm-aix)
-                        frag=mh-aix ;;
-  *-*-cxux7*)		frag=mh-cxux7 ;;
-  *-*-freebsd2.1.*)	frag=mh-fbsd21 ;;
-  *-*-freebsd2.2.[[012]])	frag=mh-fbsd21 ;;
-  i370-*-opened*)       frag=mh-openedition ;;
-  i[[34567]]86-*-windows*)	frag=mh-windows ;;
-esac
-
-if [[ -n "${frag}" ]]; then
-  frags=${libiberty_topdir}/libiberty/config/$frag
-else
-  frags=
-fi
-
-# If they didn't specify --enable-shared, don't generate shared libs.
-case "${enable_shared}" in
-  yes) shared=yes ;;
-  no) shared=no ;;
-  "") shared=no ;;
-  *) shared=yes ;;
-esac
-if [[ "${shared}" = "yes" ]]; then
-  frag=
-  case "${host}" in
-    *-*-cygwin*)	;;
-    alpha*-*-linux*)	frag=mh-elfalphapic ;;
-    arm*-*-*)		frag=mh-armpic ;;
-    hppa*-*-*)		frag=mh-papic ;;
-    i[[34567]]86-*-* | x86_64-*-*)
-			frag=mh-x86pic ;;
-    powerpc*-*-aix*)	;;
-    powerpc*-*-*)	frag=mh-ppcpic ;;
-    sparc*-*-*)		frag=mh-sparcpic ;;
-    s390*-*-*)		frag=mh-s390pic ;;
-    *)			frag=mh-${host_cpu}pic ;;
-  esac
-  if [[ -n "${frag}" ]]; then
-    frags="${frags} ${libiberty_topdir}/config/${frag}"
-  fi
-fi
-
-echo "# Warning: this fragment is automatically generated" > temp-frag
-
-for frag in ${frags}; do
-  if [[ -f ${frag} ]]; then
-    echo "Appending ${frag} to xhost-mkfrag"
-    echo "# Following fragment copied from ${frag}" >> temp-frag
-    cat ${frag} >> temp-frag
-  fi
-done
-
-# record if we want to build shared libs.
-if [[ "${shared}" = "yes" ]]; then
-  echo enable_shared = yes >> temp-frag
-else
-  echo enable_shared = no >> temp-frag
-fi
-
-frag=xhost-mkfrag
-${CONFIG_SHELL-/bin/sh} ${libiberty_topdir}/move-if-change temp-frag xhost-mkfrag
-
-host_makefile_frag=${frag}
-AC_SUBST_FILE(host_makefile_frag)
-
-# It's OK to check for header files.  Although the compiler may not be
-# able to link anything, it had better be able to at least compile
-# something.
-AC_CHECK_HEADERS(sys/file.h sys/param.h limits.h stdlib.h malloc.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h alloca.h sys/pstat.h sys/sysmp.h sys/sysinfo.h machine/hal_sysinfo.h sys/table.h sys/sysctl.h sys/systemcfg.h stdint.h stdio_ext.h)
-AC_HEADER_SYS_WAIT
-AC_HEADER_TIME
-
-libiberty_AC_DECLARE_ERRNO
-
-# Determine the size of an int for struct fibnode.
-AC_CHECK_SIZEOF([int])
-
-AC_CHECK_TYPE(uintptr_t, unsigned long)
-
-# Look for a 64-bit type.
-AC_MSG_CHECKING([for a 64-bit type])
-AC_CACHE_VAL(liberty_cv_uint64,
-[AC_TRY_COMPILE(
-[#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif],
-[extern uint64_t foo;],
-liberty_cv_uint64=uint64_t,
-[AC_TRY_COMPILE(
-[#ifdef HAVE_LIMITS_H
-#include <limits.h>
-#endif
-#ifndef CHAR_BIT
-#define CHAR_BIT 8
-#endif],
-[extern char foo[sizeof(long) * CHAR_BIT >= 64 ? 1 : -1];],
-liberty_cv_uint64="unsigned long",
-[AC_TRY_COMPILE(
-[#ifdef HAVE_LIMITS_H
-#include <limits.h>
-#endif
-#ifndef CHAR_BIT
-#define CHAR_BIT 8
-#endif],
-[extern char foo[sizeof(long long) * CHAR_BIT >= 64 ? 1 : -1];],
-liberty_cv_uint64="unsigned long long", liberty_cv_uint64=none)])])])
-AC_MSG_RESULT($liberty_cv_uint64)
-if test "$liberty_cv_uint64" != none; then
-  AC_DEFINE_UNQUOTED(UNSIGNED_64BIT_TYPE, $liberty_cv_uint64,
-                     [Define to an unsigned 64-bit type available in the compiler.])
-fi
-
-# Given the above check, we always have uintptr_t or a fallback
-# definition.  So define HAVE_UINTPTR_T in case any imported code
-# relies on it.
-AC_DEFINE(HAVE_UINTPTR_T, 1, [Define if you have the \`uintptr_t' type.])
-
-AC_TYPE_PID_T
-
-# This is the list of functions which libiberty will provide if they
-# are not available on the host.
-
-funcs="asprintf"
-funcs="$funcs atexit"
-funcs="$funcs basename"
-funcs="$funcs bcmp"
-funcs="$funcs bcopy"
-funcs="$funcs bsearch"
-funcs="$funcs bzero"
-funcs="$funcs calloc"
-funcs="$funcs clock"
-funcs="$funcs ffs"
-funcs="$funcs getcwd"
-funcs="$funcs getpagesize"
-funcs="$funcs gettimeofday"
-funcs="$funcs index"
-funcs="$funcs insque"
-funcs="$funcs memchr"
-funcs="$funcs memcmp"
-funcs="$funcs memcpy"
-funcs="$funcs memmove"
-funcs="$funcs mempcpy"
-funcs="$funcs memset"
-funcs="$funcs mkstemps"
-funcs="$funcs putenv"
-funcs="$funcs random"
-funcs="$funcs rename"
-funcs="$funcs rindex"
-funcs="$funcs setenv"
-funcs="$funcs snprintf"
-funcs="$funcs sigsetmask"
-funcs="$funcs stpcpy"
-funcs="$funcs stpncpy"
-funcs="$funcs strcasecmp"
-funcs="$funcs strchr"
-funcs="$funcs strdup"
-funcs="$funcs strncasecmp"
-funcs="$funcs strndup"
-funcs="$funcs strrchr"
-funcs="$funcs strstr"
-funcs="$funcs strtod"
-funcs="$funcs strtol"
-funcs="$funcs strtoul"
-funcs="$funcs strverscmp"
-funcs="$funcs tmpnam"
-funcs="$funcs vasprintf"
-funcs="$funcs vfprintf"
-funcs="$funcs vprintf"
-funcs="$funcs vsnprintf"
-funcs="$funcs vsprintf"
-funcs="$funcs waitpid"
-
-# Also in the old function.def file: alloca, vfork, getopt.
-
-vars="sys_errlist sys_nerr sys_siglist"
-
-checkfuncs="getrusage on_exit psignal strerror strsignal sysconf times sbrk gettimeofday"
-checkfuncs="$checkfuncs realpath canonicalize_file_name pstat_getstatic pstat_getdynamic sysmp"
-checkfuncs="$checkfuncs getsysinfo table sysctl wait3 wait4 __fsetlocking"
-
-# These are neither executed nor required, but they help keep
-# autoheader happy without adding a bunch of text to acconfig.h.
-if test "x" = "y"; then
-  AC_CHECK_FUNCS(asprintf atexit basename bcmp bcopy bsearch bzero calloc clock \
-  getcwd getpagesize gettimeofday index insque mkstemps memchr memcmp memcpy \
-  memmove mempcpy memset putenv random rename rindex sigsetmask \
-  strcasecmp setenv stpcpy stpncpy strchr strdup strncasecmp strndup strrchr strstr \
-  strtod strtol strtoul strverscmp tmpnam vasprintf vfprintf vprintf \
-  vsprintf waitpid getrusage on_exit psignal strerror strsignal \
-  sysconf times sbrk gettimeofday ffs snprintf vsnprintf \
-  pstat_getstatic pstat_getdynamic sysmp getsysinfo table sysctl wait3 wait4 \
-  realpath canonicalize_file_name __fsetlocking)
-  AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf])
-  AC_DEFINE(HAVE_SYS_ERRLIST, 1, [Define if you have the sys_errlist variable.])
-  AC_DEFINE(HAVE_SYS_NERR,    1, [Define if you have the sys_nerr variable.])
-  AC_DEFINE(HAVE_SYS_SIGLIST, 1, [Define if you have the sys_siglist variable.])
-fi
-
-# For each of these functions, if the host does not provide the
-# function we want to put FN.o in LIBOBJS, and if the host does
-# provide the function, we want to define HAVE_FN in config.h.
-
-setobjs=
-CHECK=
-target_header_dir=
-if test -n "${with_target_subdir}"; then
-
-  # We are being configured as a target library.  AC_REPLACE_FUNCS
-  # may not work correctly, because the compiler may not be able to
-  # link executables.  Note that we may still be being configured
-  # native.
-
-  # If we are being configured for newlib, we know which functions
-  # newlib provide and which ones we will be expected to provide.
-
-  if test "x${with_newlib}" = "xyes"; then
-    AC_LIBOBJ([asprintf])
-    AC_LIBOBJ([basename])
-    AC_LIBOBJ([insque])
-    AC_LIBOBJ([random])
-    AC_LIBOBJ([strdup])
-    AC_LIBOBJ([vasprintf])
-
-    for f in $funcs; do
-      case "$f" in
-	asprintf | basename | insque | random | strdup | vasprintf)
-	  ;;
-	*)
-	  n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-	  AC_DEFINE_UNQUOTED($n)
-	  ;;
-      esac
-    done
-
-    # newlib doesnt provide any of the variables in $vars, so we
-    # dont have to check them here.
-
-    # Of the functions in $checkfuncs, newlib only has strerror.
-    AC_DEFINE(HAVE_STRERROR)
-
-    setobjs=yes
-
-  fi
-
-  # We may wish to install the target headers somewhere.
-  AC_ARG_ENABLE(install-libiberty,
-  [  --enable-install-libiberty       Install headers for end users],
-  enable_install_libiberty=$enableval,
-  enable_install_libiberty=no)dnl
-  
-  # Option parsed, now set things appropriately.
-  case x"$enable_install_libiberty" in
-    xyes|x)
-      target_header_dir=libiberty
-      ;;
-    xno)   
-      target_header_dir=
-      ;;
-    *) 
-      # This could be sanity-checked in various ways...
-      target_header_dir="${enable_install_libiberty}"
-      ;;
-  esac
-
-
-else
-
-   # Not a target library, so we set things up to run the test suite.
-   CHECK=really-check
-
-fi
-
-AC_SUBST(CHECK)
-AC_SUBST(target_header_dir)
-
-case "${host}" in
-  *-*-cygwin* | *-*-mingw*)
-    AC_DEFINE(HAVE_SYS_ERRLIST)
-    AC_DEFINE(HAVE_SYS_NERR)
-    ;;
-esac
-
-if test -z "${setobjs}"; then
-  case "${host}" in
-
-  *-*-vxworks*)
-    # Handle VxWorks configuration specially, since on VxWorks the
-    # libraries are actually on the target board, not in the file
-    # system.
-    AC_LIBOBJ([basename])
-    AC_LIBOBJ([getpagesize])
-    AC_LIBOBJ([insque])
-    AC_LIBOBJ([random])
-    AC_LIBOBJ([strcasecmp])
-    AC_LIBOBJ([strncasecmp])
-    AC_LIBOBJ([strdup])
-    AC_LIBOBJ([vfork])
-    AC_LIBOBJ([waitpid])
-    AC_LIBOBJ([vasprintf])
-    for f in $funcs; do
-      case "$f" in
-	basename | getpagesize | insque | random | strcasecmp)
-	  ;;
-	strncasecmp | strdup | vfork | waitpid | vasprintf)
-	  ;;
-	*)
-	  n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-	  AC_DEFINE_UNQUOTED($n)
-	  ;;
-      esac
-    done
-
-    # VxWorks doesn't provide any of the variables in $vars, so we
-    # don't have to check them here.
-
-    # Of the functions in $checkfuncs, VxWorks only has strerror.
-    AC_DEFINE(HAVE_STRERROR)
-
-    setobjs=yes
-    ;;
-
-  esac
-fi
-
-if test -z "${setobjs}"; then
-
-  case "${host}" in
-
-  *-*-cygwin*)
-    # The Cygwin library actually uses a couple of files from
-    # libiberty when it is built.  If we are building a native
-    # Cygwin, and we run the tests, we will appear to have these
-    # files.  However, when we go on to build winsup, we will wind up
-    # with a library which does not have the files, since they should
-    # have come from libiberty.
-
-    # We handle this by removing the functions the winsup library
-    # provides from our shell variables, so that they appear to be
-    # missing.
-
-    # DJ - only if we're *building* cygwin, not just building *with* cygwin
-  
-    if test -n "${with_target_subdir}"
-    then
-      funcs="`echo $funcs | sed -e 's/random//'`"
-      AC_LIBOBJ([random])
-      vars="`echo $vars | sed -e 's/sys_siglist//'`"
-      checkfuncs="`echo $checkfuncs | sed -e 's/strsignal//' -e 's/psignal//'`"
-    fi
-    ;;
-
-  *-*-mingw32*)
-    # Under mingw32, sys_nerr and sys_errlist exist, but they are
-    # macros, so the test below won't find them.
-    libiberty_cv_var_sys_nerr=yes
-    libiberty_cv_var_sys_errlist=yes
-    ;;
-
-  *-*-msdosdjgpp*)
-    # vfork and fork are stubs.
-    ac_cv_func_vfork_works=no
-    ;;
-
-  *-*-uwin*)
-    # Under some versions of uwin, vfork is notoriously buggy and the test 
-    # can hang configure; on other versions, vfork exists just as a stub.
-    # FIXME: This should be removed once vfork in uwin's runtime is fixed.
-    ac_cv_func_vfork_works=no
-    # Under uwin 2.0+, sys_nerr and sys_errlist exist, but they are
-    # macros (actually, these are imported from a DLL, but the end effect 
-    # is the same), so the test below won't find them.
-    libiberty_cv_var_sys_nerr=yes
-    libiberty_cv_var_sys_errlist=yes
-    ;;
-
-  *-*-*vms*)
-    # Under VMS, vfork works very different than on Unix. The standard test 
-    # won't work, and it isn't easily adaptable. It makes more sense to
-    # just force it.
-    ac_cv_func_vfork_works=yes
-    ;;
-
-  esac
-
-  # We haven't set the list of objects yet.  Use the standard autoconf
-  # tests.  This will only work if the compiler works.
-  AC_ISC_POSIX
-  AC_REPLACE_FUNCS($funcs)
-  libiberty_AC_FUNC_C_ALLOCA
-  AC_FUNC_FORK
-  if test $ac_cv_func_vfork_works = no; then
-    AC_LIBOBJ([vfork])
-  fi
-  # We only need _doprnt if we might use it to implement v*printf.
-  if test $ac_cv_func_vprintf != yes \
-     || test $ac_cv_func_vfprintf != yes \
-     || test $ac_cv_func_vsprintf != yes; then
-    AC_REPLACE_FUNCS(_doprnt)
-  else
-    AC_CHECK_FUNCS(_doprnt)
-  fi
-
-  for v in $vars; do
-    AC_MSG_CHECKING([for $v])
-    AC_CACHE_VAL(libiberty_cv_var_$v,
-      [AC_LINK_IFELSE([AC_LANG_PROGRAM([[int *p;]],[[extern int $v []; p = $v;]])],
-		      [eval "libiberty_cv_var_$v=yes"],
-		      [eval "libiberty_cv_var_$v=no"])])
-    if eval "test \"`echo '$libiberty_cv_var_'$v`\" = yes"; then
-      AC_MSG_RESULT(yes)
-      n=HAVE_`echo $v | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-      AC_DEFINE_UNQUOTED($n)
-    else
-      AC_MSG_RESULT(no)
-    fi
-  done
-
-  # special check for _system_configuration because AIX <4.3.2 do not
-  # contain the `physmem' member.
-  AC_MSG_CHECKING([for external symbol _system_configuration])
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/systemcfg.h>]],
-			[[double x = _system_configuration.physmem;]])],
-    [AC_MSG_RESULT([yes])
-    AC_DEFINE(HAVE__SYSTEM_CONFIGURATION, 1,
-	      [Define if you have the _system_configuration variable.])],
-    [AC_MSG_RESULT([no])])
-
-  AC_CHECK_FUNCS($checkfuncs)
-  AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf])
-  AC_CHECK_DECLS([calloc, getenv, getopt, malloc, realloc, sbrk])
-  AC_CHECK_DECLS([strverscmp])
-  libiberty_NEED_DECLARATION(canonicalize_file_name)
-fi
-
-# Figure out which version of pexecute to use.
-case "${host}" in
-     *-*-mingw* | *-*-winnt*)	pexecute=./pex-win32.o  ;;
-     *-*-msdosdjgpp*)		pexecute=./pex-djgpp.o  ;;
-     *-*-msdos*)		pexecute=./pex-msdos.o  ;;
-     *)				pexecute=./pex-unix.o   ;;
-esac
-AC_SUBST(pexecute)
-
-libiberty_AC_FUNC_STRNCMP
-
-# Install a library built with a cross compiler in $(tooldir) rather
-# than $(libdir).
-if test -z "${with_cross_host}"; then
-  INSTALL_DEST=libdir
-else
-  INSTALL_DEST=tooldir
-fi
-AC_SUBST(INSTALL_DEST)
-
-m4_pattern_allow(LIBOBJS)
-L=""
-for l in x $LIBOBJS; do
-  case $l in
-    x) ;;
-    *) L="$L ./$l" ;;
-  esac
-done
-LIBOBJS="$L"
-
-dnl Required by html and install-html
-AC_SUBST(datarootdir)
-AC_SUBST(docdir)
-AC_SUBST(htmldir)
-
-# We need multilib support, but only if configuring for the target.
-AC_CONFIG_FILES([Makefile testsuite/Makefile])
-AC_CONFIG_COMMANDS([default],
-  [[test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
-if test -n "$CONFIG_FILES"; then
-  if test -n "${with_target_subdir}"; then
-    # FIXME: We shouldn't need to set ac_file
-    ac_file=Makefile
-    LD="${ORIGINAL_LD_FOR_MULTILIBS}"
-    . ${libiberty_topdir}/config-ml.in
-  fi
-fi]],
-[[srcdir=${srcdir}
-host=${host}
-target=${target}
-with_target_subdir=${with_target_subdir}
-with_multisubdir=${with_multisubdir}
-ac_configure_args="--enable-multilib ${ac_configure_args}"
-CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
-libiberty_topdir=${libiberty_topdir}
-]])
-AC_OUTPUT
diff --git a/libiberty/copying-lib.texi b/libiberty/copying-lib.texi
deleted file mode 100644
index 79e1038..0000000
--- a/libiberty/copying-lib.texi
+++ /dev/null
@@ -1,565 +0,0 @@
-@node Library Copying
-@appendixsec GNU LESSER GENERAL PUBLIC LICENSE
-
-@cindex LGPL, Lesser General Public License
-@center Version 2.1, February 1999
-
-@display
-Copyright @copyright{} 1991, 1999 Free Software Foundation, Inc.
-51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA
-
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
-as the successor of the GNU Library Public License, version 2, hence the
-version number 2.1.]
-@end display
-
-@appendixsubsec Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software---to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software---typically libraries---of the Free
-Software Foundation and other authors who decide to use it.  You can use
-it too, but we suggest you first think carefully about whether this
-license or the ordinary General Public License is the better strategy to
-use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of it
-in new free programs; and that you are informed that you can do these
-things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the @dfn{Lesser} General Public License because it
-does @emph{Less} to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-``work based on the library'' and a ``work that uses the library''.  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
-@iftex
-@appendixsubsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-@end iftex
-@ifinfo
-@center GNU LESSER GENERAL PUBLIC LICENSE
-@center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-@end ifinfo
-
-@enumerate 0
-@item
-This License Agreement applies to any software library or other program
-which contains a notice placed by the copyright holder or other
-authorized party saying it may be distributed under the terms of this
-Lesser General Public License (also called ``this License'').  Each
-licensee is addressed as ``you''.
-
-  A ``library'' means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The ``Library'', below, refers to any such software library or work
-which has been distributed under these terms.  A ``work based on the
-Library'' means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term ``modification''.)
-
-  ``Source code'' for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
-@item
-You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
-@item
-You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-@enumerate a
-@item
-The modified work must itself be a software library.
-
-@item
-You must cause the files modified to carry prominent notices
-stating that you changed the files and the date of any change.
-
-@item
-You must cause the whole of the work to be licensed at no
-charge to all third parties under the terms of this License.
-
-@item
-If a facility in the modified Library refers to a function or a
-table of data to be supplied by an application program that uses
-the facility, other than as an argument passed when the facility
-is invoked, then you must make a good faith effort to ensure that,
-in the event an application does not supply such function or
-table, the facility still operates, and performs whatever part of
-its purpose remains meaningful.
-
-(For example, a function in a library to compute square roots has
-a purpose that is entirely well-defined independent of the
-application.  Therefore, Subsection 2d requires that any
-application-supplied function or table used by this function must
-be optional: if the application does not supply it, the square
-root function must still compute square roots.)
-@end enumerate
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-@item
-You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-@item
-You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-@item
-A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a ``work that uses the Library''.  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a ``work that uses the Library'' with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a ``work that uses the
-library''.  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a ``work that uses the Library'' uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-@item
-As an exception to the Sections above, you may also combine or
-link a ``work that uses the Library'' with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-@enumerate a
-@item
-Accompany the work with the complete corresponding
-machine-readable source code for the Library including whatever
-changes were used in the work (which must be distributed under
-Sections 1 and 2 above); and, if the work is an executable linked
-with the Library, with the complete machine-readable ``work that
-uses the Library'', as object code and/or source code, so that the
-user can modify the Library and then relink to produce a modified
-executable containing the modified Library.  (It is understood
-that the user who changes the contents of definitions files in the
-Library will not necessarily be able to recompile the application
-to use the modified definitions.)
-
-@item
-Use a suitable shared library mechanism for linking with the Library.  A
-suitable mechanism is one that (1) uses at run time a copy of the
-library already present on the user's computer system, rather than
-copying library functions into the executable, and (2) will operate
-properly with a modified version of the library, if the user installs
-one, as long as the modified version is interface-compatible with the
-version that the work was made with.
-
-@item
-Accompany the work with a written offer, valid for at
-least three years, to give the same user the materials
-specified in Subsection 6a, above, for a charge no more
-than the cost of performing this distribution.
-
-@item
-If distribution of the work is made by offering access to copy
-from a designated place, offer equivalent access to copy the above
-specified materials from the same place.
-
-@item
-Verify that the user has already received a copy of these
-materials or that you have already sent this user a copy.
-@end enumerate
-
-  For an executable, the required form of the ``work that uses the
-Library'' must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies the
-executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-@item
-You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-@enumerate a
-@item
-Accompany the combined library with a copy of the same work
-based on the Library, uncombined with any other library
-facilities.  This must be distributed under the terms of the
-Sections above.
-
-@item
-Give prominent notice with the combined library of the fact
-that part of it is a work based on the Library, and explaining
-where to find the accompanying uncombined form of the same work.
-@end enumerate
-
-@item
-You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-@item
-You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-@item
-Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
-@item
-If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-@item
-If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-@item
-The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-``any later version'', you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-@item
-If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-@iftex
-@heading NO WARRANTY
-@end iftex
-@ifinfo
-@center NO WARRANTY
-@end ifinfo
-
-@item
-BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY ``AS IS'' WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-@item
-IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-@end enumerate
-
-@iftex
-@heading END OF TERMS AND CONDITIONS
-@end iftex
-@ifinfo
-@center END OF TERMS AND CONDITIONS
-@end ifinfo
-
-@page
-@appendixsubsec How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-``copyright'' line and a pointer to where the full notice is found.
-
-@smallexample
-@var{one line to give the library's name and an idea of what it does.}
-Copyright (C) @var{year}  @var{name of author}
-
-This library is free software; you can redistribute it and/or modify it
-under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 2.1 of the License, or (at
-your option) any later version.
-
-This library 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
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-USA.
-@end smallexample
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a ``copyright disclaimer'' for the library, if
-necessary.  Here is a sample; alter the names:
-
-@smallexample
-Yoyodyne, Inc., hereby disclaims all copyright interest in the library
-`Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-@var{signature of Ty Coon}, 1 April 1990
-Ty Coon, President of Vice
-@end smallexample
-
-That's all there is to it!
diff --git a/libiberty/copysign.c b/libiberty/copysign.c
deleted file mode 100644
index 6793f22..0000000
--- a/libiberty/copysign.c
+++ /dev/null
@@ -1,154 +0,0 @@
-#include <ansidecl.h>
-
-#ifdef __IEEE_BIG_ENDIAN
-
-typedef union 
-{
-  double value;
-  struct 
-  {
-    unsigned int sign : 1;
-    unsigned int exponent: 11;
-    unsigned int fraction0:4;
-    unsigned int fraction1:16;
-    unsigned int fraction2:16;
-    unsigned int fraction3:16;
-    
-  } number;
-  struct 
-  {
-    unsigned int sign : 1;
-    unsigned int exponent: 11;
-    unsigned int quiet:1;
-    unsigned int function0:3;
-    unsigned int function1:16;
-    unsigned int function2:16;
-    unsigned int function3:16;
-  } nan;
-  struct 
-  {
-    unsigned long msw;
-    unsigned long lsw;
-  } parts;
-    long aslong[2];
-} __ieee_double_shape_type;
-
-#endif
-
-#ifdef __IEEE_LITTLE_ENDIAN
-
-typedef union 
-{
-  double value;
-  struct 
-  {
-#ifdef __SMALL_BITFIELDS
-    unsigned int fraction3:16;
-    unsigned int fraction2:16;
-    unsigned int fraction1:16;
-    unsigned int fraction0: 4;
-#else
-    unsigned int fraction1:32;
-    unsigned int fraction0:20;
-#endif
-    unsigned int exponent :11;
-    unsigned int sign     : 1;
-  } number;
-  struct 
-  {
-#ifdef __SMALL_BITFIELDS
-    unsigned int function3:16;
-    unsigned int function2:16;
-    unsigned int function1:16;
-    unsigned int function0:3;
-#else
-    unsigned int function1:32;
-    unsigned int function0:19;
-#endif
-    unsigned int quiet:1;
-    unsigned int exponent: 11;
-    unsigned int sign : 1;
-  } nan;
-  struct 
-  {
-    unsigned long lsw;
-    unsigned long msw;
-  } parts;
-
-  long aslong[2];
-
-} __ieee_double_shape_type;
-
-#endif
-
-#ifdef __IEEE_BIG_ENDIAN
-typedef union
-{
-  float value;
-  struct 
-  {
-    unsigned int sign : 1;
-    unsigned int exponent: 8;
-    unsigned int fraction0: 7;
-    unsigned int fraction1: 16;
-  } number;
-  struct 
-  {
-    unsigned int sign:1;
-    unsigned int exponent:8;
-    unsigned int quiet:1;
-    unsigned int function0:6;
-    unsigned int function1:16;
-  } nan;
-  long p1;
-  
-} __ieee_float_shape_type;
-#endif
-
-#ifdef __IEEE_LITTLE_ENDIAN
-typedef union
-{
-  float value;
-  struct 
-  {
-    unsigned int fraction0: 7;
-    unsigned int fraction1: 16;
-    unsigned int exponent: 8;
-    unsigned int sign : 1;
-  } number;
-  struct 
-  {
-    unsigned int function1:16;
-    unsigned int function0:6;
-    unsigned int quiet:1;
-    unsigned int exponent:8;
-    unsigned int sign:1;
-  } nan;
-  long p1;
-  
-} __ieee_float_shape_type;
-#endif
-
-#if defined(__IEEE_BIG_ENDIAN) || defined(__IEEE_LITTLE_ENDIAN)
-
-double
-copysign (double x, double y)
-{
-  __ieee_double_shape_type a,b;
-  b.value = y;  
-  a.value = x;
-  a.number.sign =b.number.sign;
-  return a.value;
-}
-
-#else
-
-double
-copysign (double x, double y)
-{
-  if ((x < 0 && y > 0) || (x > 0 && y < 0))
-    return -x;
-  return x;
-}
-
-#endif
diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c
deleted file mode 100644
index 109d533..0000000
--- a/libiberty/cp-demangle.c
+++ /dev/null
@@ -1,4351 +0,0 @@
-/* Demangler for g++ V3 ABI.
-   Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
-   Written by Ian Lance Taylor <ian@wasabisystems.com>.
-
-   This file is part of the libiberty library, which is part of GCC.
-
-   This file 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.
-
-   In addition to the permissions in the GNU General Public License, the
-   Free Software Foundation gives you unlimited permission to link the
-   compiled version of this file into combinations with other programs,
-   and to distribute those combinations without any restriction coming
-   from the use of this file.  (The General Public License restrictions
-   do apply in other respects; for example, they cover modification of
-   the file, and distribution when not linked into a combined
-   executable.)
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. 
-*/
-
-/* This code implements a demangler for the g++ V3 ABI.  The ABI is
-   described on this web page:
-       http://www.codesourcery.com/cxx-abi/abi.html#mangling
-
-   This code was written while looking at the demangler written by
-   Alex Samuel <samuel@codesourcery.com>.
-
-   This code first pulls the mangled name apart into a list of
-   components, and then walks the list generating the demangled
-   name.
-
-   This file will normally define the following functions, q.v.:
-      char *cplus_demangle_v3(const char *mangled, int options)
-      char *java_demangle_v3(const char *mangled)
-      enum gnu_v3_ctor_kinds is_gnu_v3_mangled_ctor (const char *name)
-      enum gnu_v3_dtor_kinds is_gnu_v3_mangled_dtor (const char *name)
-
-   Also, the interface to the component list is public, and defined in
-   demangle.h.  The interface consists of these types, which are
-   defined in demangle.h:
-      enum demangle_component_type
-      struct demangle_component
-   and these functions defined in this file:
-      cplus_demangle_fill_name
-      cplus_demangle_fill_extended_operator
-      cplus_demangle_fill_ctor
-      cplus_demangle_fill_dtor
-      cplus_demangle_print
-   and other functions defined in the file cp-demint.c.
-
-   This file also defines some other functions and variables which are
-   only to be used by the file cp-demint.c.
-
-   Preprocessor macros you can define while compiling this file:
-
-   IN_LIBGCC2
-      If defined, this file defines the following function, q.v.:
-         char *__cxa_demangle (const char *mangled, char *buf, size_t *len,
-                               int *status)
-      instead of cplus_demangle_v3() and java_demangle_v3().
-
-   IN_GLIBCPP_V3
-      If defined, this file defines only __cxa_demangle(), and no other
-      publically visible functions or variables.
-
-   STANDALONE_DEMANGLER
-      If defined, this file defines a main() function which demangles
-      any arguments, or, if none, demangles stdin.
-
-   CP_DEMANGLE_DEBUG
-      If defined, turns on debugging mode, which prints information on
-      stdout about the mangled string.  This is not generally useful.
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdio.h>
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-
-#include "ansidecl.h"
-#include "libiberty.h"
-#include "demangle.h"
-#include "cp-demangle.h"
-
-/* If IN_GLIBCPP_V3 is defined, some functions are made static.  We
-   also rename them via #define to avoid compiler errors when the
-   static definition conflicts with the extern declaration in a header
-   file.  */
-#ifdef IN_GLIBCPP_V3
-
-#define CP_STATIC_IF_GLIBCPP_V3 static
-
-#define cplus_demangle_fill_name d_fill_name
-static int d_fill_name (struct demangle_component *, const char *, int);
-
-#define cplus_demangle_fill_extended_operator d_fill_extended_operator
-static int
-d_fill_extended_operator (struct demangle_component *, int,
-                          struct demangle_component *);
-
-#define cplus_demangle_fill_ctor d_fill_ctor
-static int
-d_fill_ctor (struct demangle_component *, enum gnu_v3_ctor_kinds,
-             struct demangle_component *);
-
-#define cplus_demangle_fill_dtor d_fill_dtor
-static int
-d_fill_dtor (struct demangle_component *, enum gnu_v3_dtor_kinds,
-             struct demangle_component *);
-
-#define cplus_demangle_mangled_name d_mangled_name
-static struct demangle_component *d_mangled_name (struct d_info *, int);
-
-#define cplus_demangle_type d_type
-static struct demangle_component *d_type (struct d_info *);
-
-#define cplus_demangle_print d_print
-static char *d_print (int, const struct demangle_component *, int, size_t *);
-
-#define cplus_demangle_init_info d_init_info
-static void d_init_info (const char *, int, size_t, struct d_info *);
-
-#else /* ! defined(IN_GLIBCPP_V3) */
-#define CP_STATIC_IF_GLIBCPP_V3
-#endif /* ! defined(IN_GLIBCPP_V3) */
-
-/* See if the compiler supports dynamic arrays.  */
-
-#ifdef __GNUC__
-#define CP_DYNAMIC_ARRAYS
-#else
-#ifdef __STDC__
-#ifdef __STDC_VERSION__
-#if __STDC_VERSION__ >= 199901L
-#define CP_DYNAMIC_ARRAYS
-#endif /* __STDC__VERSION >= 199901L */
-#endif /* defined (__STDC_VERSION__) */
-#endif /* defined (__STDC__) */
-#endif /* ! defined (__GNUC__) */
-
-/* We avoid pulling in the ctype tables, to prevent pulling in
-   additional unresolved symbols when this code is used in a library.
-   FIXME: Is this really a valid reason?  This comes from the original
-   V3 demangler code.
-
-   As of this writing this file has the following undefined references
-   when compiled with -DIN_GLIBCPP_V3: malloc, realloc, free, memcpy,
-   strcpy, strcat, strlen.  */
-
-#define IS_DIGIT(c) ((c) >= '0' && (c) <= '9')
-#define IS_UPPER(c) ((c) >= 'A' && (c) <= 'Z')
-#define IS_LOWER(c) ((c) >= 'a' && (c) <= 'z')
-
-/* The prefix prepended by GCC to an identifier represnting the
-   anonymous namespace.  */
-#define ANONYMOUS_NAMESPACE_PREFIX "_GLOBAL_"
-#define ANONYMOUS_NAMESPACE_PREFIX_LEN \
-  (sizeof (ANONYMOUS_NAMESPACE_PREFIX) - 1)
-
-/* Information we keep for the standard substitutions.  */
-
-struct d_standard_sub_info
-{
-  /* The code for this substitution.  */
-  char code;
-  /* The simple string it expands to.  */
-  const char *simple_expansion;
-  /* The length of the simple expansion.  */
-  int simple_len;
-  /* The results of a full, verbose, expansion.  This is used when
-     qualifying a constructor/destructor, or when in verbose mode.  */
-  const char *full_expansion;
-  /* The length of the full expansion.  */
-  int full_len;
-  /* What to set the last_name field of d_info to; NULL if we should
-     not set it.  This is only relevant when qualifying a
-     constructor/destructor.  */
-  const char *set_last_name;
-  /* The length of set_last_name.  */
-  int set_last_name_len;
-};
-
-/* Accessors for subtrees of struct demangle_component.  */
-
-#define d_left(dc) ((dc)->u.s_binary.left)
-#define d_right(dc) ((dc)->u.s_binary.right)
-
-/* A list of templates.  This is used while printing.  */
-
-struct d_print_template
-{
-  /* Next template on the list.  */
-  struct d_print_template *next;
-  /* This template.  */
-  const struct demangle_component *template_decl;
-};
-
-/* A list of type modifiers.  This is used while printing.  */
-
-struct d_print_mod
-{
-  /* Next modifier on the list.  These are in the reverse of the order
-     in which they appeared in the mangled string.  */
-  struct d_print_mod *next;
-  /* The modifier.  */
-  const struct demangle_component *mod;
-  /* Whether this modifier was printed.  */
-  int printed;
-  /* The list of templates which applies to this modifier.  */
-  struct d_print_template *templates;
-};
-
-/* We use this structure to hold information during printing.  */
-
-struct d_print_info
-{
-  /* The options passed to the demangler.  */
-  int options;
-  /* Buffer holding the result.  */
-  char *buf;
-  /* Current length of data in buffer.  */
-  size_t len;
-  /* Allocated size of buffer.  */
-  size_t alc;
-  /* The current list of templates, if any.  */
-  struct d_print_template *templates;
-  /* The current list of modifiers (e.g., pointer, reference, etc.),
-     if any.  */
-  struct d_print_mod *modifiers;
-  /* Set to 1 if we had a memory allocation failure.  */
-  int allocation_failure;
-};
-
-#define d_print_saw_error(dpi) ((dpi)->buf == NULL)
-
-#define d_append_char(dpi, c) \
-  do \
-    { \
-      if ((dpi)->buf != NULL && (dpi)->len < (dpi)->alc) \
-        (dpi)->buf[(dpi)->len++] = (c); \
-      else \
-        d_print_append_char ((dpi), (c)); \
-    } \
-  while (0)
-
-#define d_append_buffer(dpi, s, l) \
-  do \
-    { \
-      if ((dpi)->buf != NULL && (dpi)->len + (l) <= (dpi)->alc) \
-        { \
-          memcpy ((dpi)->buf + (dpi)->len, (s), (l)); \
-          (dpi)->len += l; \
-        } \
-      else \
-        d_print_append_buffer ((dpi), (s), (l)); \
-    } \
-  while (0)
-
-#define d_append_string_constant(dpi, s) \
-  d_append_buffer (dpi, (s), sizeof (s) - 1)
-
-#define d_last_char(dpi) \
-  ((dpi)->buf == NULL || (dpi)->len == 0 ? '\0' : (dpi)->buf[(dpi)->len - 1])
-
-#ifdef CP_DEMANGLE_DEBUG
-static void d_dump (struct demangle_component *, int);
-#endif
-
-static struct demangle_component *
-d_make_empty (struct d_info *);
-
-static struct demangle_component *
-d_make_comp (struct d_info *, enum demangle_component_type,
-             struct demangle_component *,
-             struct demangle_component *);
-
-static struct demangle_component *
-d_make_name (struct d_info *, const char *, int);
-
-static struct demangle_component *
-d_make_builtin_type (struct d_info *,
-                     const struct demangle_builtin_type_info *);
-
-static struct demangle_component *
-d_make_operator (struct d_info *,
-                 const struct demangle_operator_info *);
-
-static struct demangle_component *
-d_make_extended_operator (struct d_info *, int,
-                          struct demangle_component *);
-
-static struct demangle_component *
-d_make_ctor (struct d_info *, enum gnu_v3_ctor_kinds,
-             struct demangle_component *);
-
-static struct demangle_component *
-d_make_dtor (struct d_info *, enum gnu_v3_dtor_kinds,
-             struct demangle_component *);
-
-static struct demangle_component *
-d_make_template_param (struct d_info *, long);
-
-static struct demangle_component *
-d_make_sub (struct d_info *, const char *, int);
-
-static int
-has_return_type (struct demangle_component *);
-
-static int
-is_ctor_dtor_or_conversion (struct demangle_component *);
-
-static struct demangle_component *d_encoding (struct d_info *, int);
-
-static struct demangle_component *d_name (struct d_info *);
-
-static struct demangle_component *d_nested_name (struct d_info *);
-
-static struct demangle_component *d_prefix (struct d_info *);
-
-static struct demangle_component *d_unqualified_name (struct d_info *);
-
-static struct demangle_component *d_source_name (struct d_info *);
-
-static long d_number (struct d_info *);
-
-static struct demangle_component *d_identifier (struct d_info *, int);
-
-static struct demangle_component *d_operator_name (struct d_info *);
-
-static struct demangle_component *d_special_name (struct d_info *);
-
-static int d_call_offset (struct d_info *, int);
-
-static struct demangle_component *d_ctor_dtor_name (struct d_info *);
-
-static struct demangle_component **
-d_cv_qualifiers (struct d_info *, struct demangle_component **, int);
-
-static struct demangle_component *
-d_function_type (struct d_info *);
-
-static struct demangle_component *
-d_bare_function_type (struct d_info *, int);
-
-static struct demangle_component *
-d_class_enum_type (struct d_info *);
-
-static struct demangle_component *d_array_type (struct d_info *);
-
-static struct demangle_component *
-d_pointer_to_member_type (struct d_info *);
-
-static struct demangle_component *
-d_template_param (struct d_info *);
-
-static struct demangle_component *d_template_args (struct d_info *);
-
-static struct demangle_component *
-d_template_arg (struct d_info *);
-
-static struct demangle_component *d_expression (struct d_info *);
-
-static struct demangle_component *d_expr_primary (struct d_info *);
-
-static struct demangle_component *d_local_name (struct d_info *);
-
-static int d_discriminator (struct d_info *);
-
-static int
-d_add_substitution (struct d_info *, struct demangle_component *);
-
-static struct demangle_component *d_substitution (struct d_info *, int);
-
-static void d_print_resize (struct d_print_info *, size_t);
-
-static void d_print_append_char (struct d_print_info *, int);
-
-static void
-d_print_append_buffer (struct d_print_info *, const char *, size_t);
-
-static void d_print_error (struct d_print_info *);
-
-static void
-d_print_comp (struct d_print_info *, const struct demangle_component *);
-
-static void
-d_print_java_identifier (struct d_print_info *, const char *, int);
-
-static void
-d_print_mod_list (struct d_print_info *, struct d_print_mod *, int);
-
-static void
-d_print_mod (struct d_print_info *, const struct demangle_component *);
-
-static void
-d_print_function_type (struct d_print_info *,
-                       const struct demangle_component *,
-                       struct d_print_mod *);
-
-static void
-d_print_array_type (struct d_print_info *,
-                    const struct demangle_component *,
-                    struct d_print_mod *);
-
-static void
-d_print_expr_op (struct d_print_info *, const struct demangle_component *);
-
-static void
-d_print_cast (struct d_print_info *, const struct demangle_component *);
-
-static char *d_demangle (const char *, int, size_t *);
-
-#ifdef CP_DEMANGLE_DEBUG
-
-static void
-d_dump (struct demangle_component *dc, int indent)
-{
-  int i;
-
-  if (dc == NULL)
-    return;
-
-  for (i = 0; i < indent; ++i)
-    putchar (' ');
-
-  switch (dc->type)
-    {
-    case DEMANGLE_COMPONENT_NAME:
-      printf ("name '%.*s'\n", dc->u.s_name.len, dc->u.s_name.s);
-      return;
-    case DEMANGLE_COMPONENT_TEMPLATE_PARAM:
-      printf ("template parameter %ld\n", dc->u.s_number.number);
-      return;
-    case DEMANGLE_COMPONENT_CTOR:
-      printf ("constructor %d\n", (int) dc->u.s_ctor.kind);
-      d_dump (dc->u.s_ctor.name, indent + 2);
-      return;
-    case DEMANGLE_COMPONENT_DTOR:
-      printf ("destructor %d\n", (int) dc->u.s_dtor.kind);
-      d_dump (dc->u.s_dtor.name, indent + 2);
-      return;
-    case DEMANGLE_COMPONENT_SUB_STD:
-      printf ("standard substitution %s\n", dc->u.s_string.string);
-      return;
-    case DEMANGLE_COMPONENT_BUILTIN_TYPE:
-      printf ("builtin type %s\n", dc->u.s_builtin.type->name);
-      return;
-    case DEMANGLE_COMPONENT_OPERATOR:
-      printf ("operator %s\n", dc->u.s_operator.op->name);
-      return;
-    case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:
-      printf ("extended operator with %d args\n",
-	      dc->u.s_extended_operator.args);
-      d_dump (dc->u.s_extended_operator.name, indent + 2);
-      return;
-
-    case DEMANGLE_COMPONENT_QUAL_NAME:
-      printf ("qualified name\n");
-      break;
-    case DEMANGLE_COMPONENT_LOCAL_NAME:
-      printf ("local name\n");
-      break;
-    case DEMANGLE_COMPONENT_TYPED_NAME:
-      printf ("typed name\n");
-      break;
-    case DEMANGLE_COMPONENT_TEMPLATE:
-      printf ("template\n");
-      break;
-    case DEMANGLE_COMPONENT_VTABLE:
-      printf ("vtable\n");
-      break;
-    case DEMANGLE_COMPONENT_VTT:
-      printf ("VTT\n");
-      break;
-    case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:
-      printf ("construction vtable\n");
-      break;
-    case DEMANGLE_COMPONENT_TYPEINFO:
-      printf ("typeinfo\n");
-      break;
-    case DEMANGLE_COMPONENT_TYPEINFO_NAME:
-      printf ("typeinfo name\n");
-      break;
-    case DEMANGLE_COMPONENT_TYPEINFO_FN:
-      printf ("typeinfo function\n");
-      break;
-    case DEMANGLE_COMPONENT_THUNK:
-      printf ("thunk\n");
-      break;
-    case DEMANGLE_COMPONENT_VIRTUAL_THUNK:
-      printf ("virtual thunk\n");
-      break;
-    case DEMANGLE_COMPONENT_COVARIANT_THUNK:
-      printf ("covariant thunk\n");
-      break;
-    case DEMANGLE_COMPONENT_JAVA_CLASS:
-      printf ("java class\n");
-      break;
-    case DEMANGLE_COMPONENT_GUARD:
-      printf ("guard\n");
-      break;
-    case DEMANGLE_COMPONENT_REFTEMP:
-      printf ("reference temporary\n");
-      break;
-    case DEMANGLE_COMPONENT_HIDDEN_ALIAS:
-      printf ("hidden alias\n");
-      break;
-    case DEMANGLE_COMPONENT_RESTRICT:
-      printf ("restrict\n");
-      break;
-    case DEMANGLE_COMPONENT_VOLATILE:
-      printf ("volatile\n");
-      break;
-    case DEMANGLE_COMPONENT_CONST:
-      printf ("const\n");
-      break;
-    case DEMANGLE_COMPONENT_RESTRICT_THIS:
-      printf ("restrict this\n");
-      break;
-    case DEMANGLE_COMPONENT_VOLATILE_THIS:
-      printf ("volatile this\n");
-      break;
-    case DEMANGLE_COMPONENT_CONST_THIS:
-      printf ("const this\n");
-      break;
-    case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:
-      printf ("vendor type qualifier\n");
-      break;
-    case DEMANGLE_COMPONENT_POINTER:
-      printf ("pointer\n");
-      break;
-    case DEMANGLE_COMPONENT_REFERENCE:
-      printf ("reference\n");
-      break;
-    case DEMANGLE_COMPONENT_COMPLEX:
-      printf ("complex\n");
-      break;
-    case DEMANGLE_COMPONENT_IMAGINARY:
-      printf ("imaginary\n");
-      break;
-    case DEMANGLE_COMPONENT_VENDOR_TYPE:
-      printf ("vendor type\n");
-      break;
-    case DEMANGLE_COMPONENT_FUNCTION_TYPE:
-      printf ("function type\n");
-      break;
-    case DEMANGLE_COMPONENT_ARRAY_TYPE:
-      printf ("array type\n");
-      break;
-    case DEMANGLE_COMPONENT_PTRMEM_TYPE:
-      printf ("pointer to member type\n");
-      break;
-    case DEMANGLE_COMPONENT_ARGLIST:
-      printf ("argument list\n");
-      break;
-    case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:
-      printf ("template argument list\n");
-      break;
-    case DEMANGLE_COMPONENT_CAST:
-      printf ("cast\n");
-      break;
-    case DEMANGLE_COMPONENT_UNARY:
-      printf ("unary operator\n");
-      break;
-    case DEMANGLE_COMPONENT_BINARY:
-      printf ("binary operator\n");
-      break;
-    case DEMANGLE_COMPONENT_BINARY_ARGS:
-      printf ("binary operator arguments\n");
-      break;
-    case DEMANGLE_COMPONENT_TRINARY:
-      printf ("trinary operator\n");
-      break;
-    case DEMANGLE_COMPONENT_TRINARY_ARG1:
-      printf ("trinary operator arguments 1\n");
-      break;
-    case DEMANGLE_COMPONENT_TRINARY_ARG2:
-      printf ("trinary operator arguments 1\n");
-      break;
-    case DEMANGLE_COMPONENT_LITERAL:
-      printf ("literal\n");
-      break;
-    case DEMANGLE_COMPONENT_LITERAL_NEG:
-      printf ("negative literal\n");
-      break;
-    }
-
-  d_dump (d_left (dc), indent + 2);
-  d_dump (d_right (dc), indent + 2);
-}
-
-#endif /* CP_DEMANGLE_DEBUG */
-
-/* Fill in a DEMANGLE_COMPONENT_NAME.  */
-
-CP_STATIC_IF_GLIBCPP_V3
-int
-cplus_demangle_fill_name (struct demangle_component *p, const char *s, int len)
-{
-  if (p == NULL || s == NULL || len == 0)
-    return 0;
-  p->type = DEMANGLE_COMPONENT_NAME;
-  p->u.s_name.s = s;
-  p->u.s_name.len = len;
-  return 1;
-}
-
-/* Fill in a DEMANGLE_COMPONENT_EXTENDED_OPERATOR.  */
-
-CP_STATIC_IF_GLIBCPP_V3
-int
-cplus_demangle_fill_extended_operator (struct demangle_component *p, int args,
-                                       struct demangle_component *name)
-{
-  if (p == NULL || args < 0 || name == NULL)
-    return 0;
-  p->type = DEMANGLE_COMPONENT_EXTENDED_OPERATOR;
-  p->u.s_extended_operator.args = args;
-  p->u.s_extended_operator.name = name;
-  return 1;
-}
-
-/* Fill in a DEMANGLE_COMPONENT_CTOR.  */
-
-CP_STATIC_IF_GLIBCPP_V3
-int
-cplus_demangle_fill_ctor (struct demangle_component *p,
-                          enum gnu_v3_ctor_kinds kind,
-                          struct demangle_component *name)
-{
-  if (p == NULL
-      || name == NULL
-      || (kind < gnu_v3_complete_object_ctor
-	  && kind > gnu_v3_complete_object_allocating_ctor))
-    return 0;
-  p->type = DEMANGLE_COMPONENT_CTOR;
-  p->u.s_ctor.kind = kind;
-  p->u.s_ctor.name = name;
-  return 1;
-}
-
-/* Fill in a DEMANGLE_COMPONENT_DTOR.  */
-
-CP_STATIC_IF_GLIBCPP_V3
-int
-cplus_demangle_fill_dtor (struct demangle_component *p,
-                          enum gnu_v3_dtor_kinds kind,
-                          struct demangle_component *name)
-{
-  if (p == NULL
-      || name == NULL
-      || (kind < gnu_v3_deleting_dtor
-	  && kind > gnu_v3_base_object_dtor))
-    return 0;
-  p->type = DEMANGLE_COMPONENT_DTOR;
-  p->u.s_dtor.kind = kind;
-  p->u.s_dtor.name = name;
-  return 1;
-}
-
-/* Add a new component.  */
-
-static struct demangle_component *
-d_make_empty (struct d_info *di)
-{
-  struct demangle_component *p;
-
-  if (di->next_comp >= di->num_comps)
-    return NULL;
-  p = &di->comps[di->next_comp];
-  ++di->next_comp;
-  return p;
-}
-
-/* Add a new generic component.  */
-
-static struct demangle_component *
-d_make_comp (struct d_info *di, enum demangle_component_type type,
-             struct demangle_component *left,
-             struct demangle_component *right)
-{
-  struct demangle_component *p;
-
-  /* We check for errors here.  A typical error would be a NULL return
-     from a subroutine.  We catch those here, and return NULL
-     upward.  */
-  switch (type)
-    {
-      /* These types require two parameters.  */
-    case DEMANGLE_COMPONENT_QUAL_NAME:
-    case DEMANGLE_COMPONENT_LOCAL_NAME:
-    case DEMANGLE_COMPONENT_TYPED_NAME:
-    case DEMANGLE_COMPONENT_TEMPLATE:
-    case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:
-    case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:
-    case DEMANGLE_COMPONENT_PTRMEM_TYPE:
-    case DEMANGLE_COMPONENT_UNARY:
-    case DEMANGLE_COMPONENT_BINARY:
-    case DEMANGLE_COMPONENT_BINARY_ARGS:
-    case DEMANGLE_COMPONENT_TRINARY:
-    case DEMANGLE_COMPONENT_TRINARY_ARG1:
-    case DEMANGLE_COMPONENT_TRINARY_ARG2:
-    case DEMANGLE_COMPONENT_LITERAL:
-    case DEMANGLE_COMPONENT_LITERAL_NEG:
-      if (left == NULL || right == NULL)
-	return NULL;
-      break;
-
-      /* These types only require one parameter.  */
-    case DEMANGLE_COMPONENT_VTABLE:
-    case DEMANGLE_COMPONENT_VTT:
-    case DEMANGLE_COMPONENT_TYPEINFO:
-    case DEMANGLE_COMPONENT_TYPEINFO_NAME:
-    case DEMANGLE_COMPONENT_TYPEINFO_FN:
-    case DEMANGLE_COMPONENT_THUNK:
-    case DEMANGLE_COMPONENT_VIRTUAL_THUNK:
-    case DEMANGLE_COMPONENT_COVARIANT_THUNK:
-    case DEMANGLE_COMPONENT_JAVA_CLASS:
-    case DEMANGLE_COMPONENT_GUARD:
-    case DEMANGLE_COMPONENT_REFTEMP:
-    case DEMANGLE_COMPONENT_HIDDEN_ALIAS:
-    case DEMANGLE_COMPONENT_POINTER:
-    case DEMANGLE_COMPONENT_REFERENCE:
-    case DEMANGLE_COMPONENT_COMPLEX:
-    case DEMANGLE_COMPONENT_IMAGINARY:
-    case DEMANGLE_COMPONENT_VENDOR_TYPE:
-    case DEMANGLE_COMPONENT_ARGLIST:
-    case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:
-    case DEMANGLE_COMPONENT_CAST:
-      if (left == NULL)
-	return NULL;
-      break;
-
-      /* This needs a right parameter, but the left parameter can be
-	 empty.  */
-    case DEMANGLE_COMPONENT_ARRAY_TYPE:
-      if (right == NULL)
-	return NULL;
-      break;
-
-      /* These are allowed to have no parameters--in some cases they
-	 will be filled in later.  */
-    case DEMANGLE_COMPONENT_FUNCTION_TYPE:
-    case DEMANGLE_COMPONENT_RESTRICT:
-    case DEMANGLE_COMPONENT_VOLATILE:
-    case DEMANGLE_COMPONENT_CONST:
-    case DEMANGLE_COMPONENT_RESTRICT_THIS:
-    case DEMANGLE_COMPONENT_VOLATILE_THIS:
-    case DEMANGLE_COMPONENT_CONST_THIS:
-      break;
-
-      /* Other types should not be seen here.  */
-    default:
-      return NULL;
-    }
-
-  p = d_make_empty (di);
-  if (p != NULL)
-    {
-      p->type = type;
-      p->u.s_binary.left = left;
-      p->u.s_binary.right = right;
-    }
-  return p;
-}
-
-/* Add a new name component.  */
-
-static struct demangle_component *
-d_make_name (struct d_info *di, const char *s, int len)
-{
-  struct demangle_component *p;
-
-  p = d_make_empty (di);
-  if (! cplus_demangle_fill_name (p, s, len))
-    return NULL;
-  return p;
-}
-
-/* Add a new builtin type component.  */
-
-static struct demangle_component *
-d_make_builtin_type (struct d_info *di,
-                     const struct demangle_builtin_type_info *type)
-{
-  struct demangle_component *p;
-
-  if (type == NULL)
-    return NULL;
-  p = d_make_empty (di);
-  if (p != NULL)
-    {
-      p->type = DEMANGLE_COMPONENT_BUILTIN_TYPE;
-      p->u.s_builtin.type = type;
-    }
-  return p;
-}
-
-/* Add a new operator component.  */
-
-static struct demangle_component *
-d_make_operator (struct d_info *di, const struct demangle_operator_info *op)
-{
-  struct demangle_component *p;
-
-  p = d_make_empty (di);
-  if (p != NULL)
-    {
-      p->type = DEMANGLE_COMPONENT_OPERATOR;
-      p->u.s_operator.op = op;
-    }
-  return p;
-}
-
-/* Add a new extended operator component.  */
-
-static struct demangle_component *
-d_make_extended_operator (struct d_info *di, int args,
-                          struct demangle_component *name)
-{
-  struct demangle_component *p;
-
-  p = d_make_empty (di);
-  if (! cplus_demangle_fill_extended_operator (p, args, name))
-    return NULL;
-  return p;
-}
-
-/* Add a new constructor component.  */
-
-static struct demangle_component *
-d_make_ctor (struct d_info *di, enum gnu_v3_ctor_kinds kind,
-             struct demangle_component *name)
-{
-  struct demangle_component *p;
-
-  p = d_make_empty (di);
-  if (! cplus_demangle_fill_ctor (p, kind, name))
-    return NULL;
-  return p;
-}
-
-/* Add a new destructor component.  */
-
-static struct demangle_component *
-d_make_dtor (struct d_info *di, enum gnu_v3_dtor_kinds kind,
-             struct demangle_component *name)
-{
-  struct demangle_component *p;
-
-  p = d_make_empty (di);
-  if (! cplus_demangle_fill_dtor (p, kind, name))
-    return NULL;
-  return p;
-}
-
-/* Add a new template parameter.  */
-
-static struct demangle_component *
-d_make_template_param (struct d_info *di, long i)
-{
-  struct demangle_component *p;
-
-  p = d_make_empty (di);
-  if (p != NULL)
-    {
-      p->type = DEMANGLE_COMPONENT_TEMPLATE_PARAM;
-      p->u.s_number.number = i;
-    }
-  return p;
-}
-
-/* Add a new standard substitution component.  */
-
-static struct demangle_component *
-d_make_sub (struct d_info *di, const char *name, int len)
-{
-  struct demangle_component *p;
-
-  p = d_make_empty (di);
-  if (p != NULL)
-    {
-      p->type = DEMANGLE_COMPONENT_SUB_STD;
-      p->u.s_string.string = name;
-      p->u.s_string.len = len;
-    }
-  return p;
-}
-
-/* <mangled-name> ::= _Z <encoding>
-
-   TOP_LEVEL is non-zero when called at the top level.  */
-
-CP_STATIC_IF_GLIBCPP_V3
-struct demangle_component *
-cplus_demangle_mangled_name (struct d_info *di, int top_level)
-{
-  if (d_next_char (di) != '_')
-    return NULL;
-  if (d_next_char (di) != 'Z')
-    return NULL;
-  return d_encoding (di, top_level);
-}
-
-/* Return whether a function should have a return type.  The argument
-   is the function name, which may be qualified in various ways.  The
-   rules are that template functions have return types with some
-   exceptions, function types which are not part of a function name
-   mangling have return types with some exceptions, and non-template
-   function names do not have return types.  The exceptions are that
-   constructors, destructors, and conversion operators do not have
-   return types.  */
-
-static int
-has_return_type (struct demangle_component *dc)
-{
-  if (dc == NULL)
-    return 0;
-  switch (dc->type)
-    {
-    default:
-      return 0;
-    case DEMANGLE_COMPONENT_TEMPLATE:
-      return ! is_ctor_dtor_or_conversion (d_left (dc));
-    case DEMANGLE_COMPONENT_RESTRICT_THIS:
-    case DEMANGLE_COMPONENT_VOLATILE_THIS:
-    case DEMANGLE_COMPONENT_CONST_THIS:
-      return has_return_type (d_left (dc));
-    }
-}
-
-/* Return whether a name is a constructor, a destructor, or a
-   conversion operator.  */
-
-static int
-is_ctor_dtor_or_conversion (struct demangle_component *dc)
-{
-  if (dc == NULL)
-    return 0;
-  switch (dc->type)
-    {
-    default:
-      return 0;
-    case DEMANGLE_COMPONENT_QUAL_NAME:
-    case DEMANGLE_COMPONENT_LOCAL_NAME:
-      return is_ctor_dtor_or_conversion (d_right (dc));
-    case DEMANGLE_COMPONENT_CTOR:
-    case DEMANGLE_COMPONENT_DTOR:
-    case DEMANGLE_COMPONENT_CAST:
-      return 1;
-    }
-}
-
-/* <encoding> ::= <(function) name> <bare-function-type>
-              ::= <(data) name>
-              ::= <special-name>
-
-   TOP_LEVEL is non-zero when called at the top level, in which case
-   if DMGL_PARAMS is not set we do not demangle the function
-   parameters.  We only set this at the top level, because otherwise
-   we would not correctly demangle names in local scopes.  */
-
-static struct demangle_component *
-d_encoding (struct d_info *di, int top_level)
-{
-  char peek = d_peek_char (di);
-
-  if (peek == 'G' || peek == 'T')
-    return d_special_name (di);
-  else
-    {
-      struct demangle_component *dc;
-
-      dc = d_name (di);
-
-      if (dc != NULL && top_level && (di->options & DMGL_PARAMS) == 0)
-	{
-	  /* Strip off any initial CV-qualifiers, as they really apply
-	     to the `this' parameter, and they were not output by the
-	     v2 demangler without DMGL_PARAMS.  */
-	  while (dc->type == DEMANGLE_COMPONENT_RESTRICT_THIS
-		 || dc->type == DEMANGLE_COMPONENT_VOLATILE_THIS
-		 || dc->type == DEMANGLE_COMPONENT_CONST_THIS)
-	    dc = d_left (dc);
-
-	  /* If the top level is a DEMANGLE_COMPONENT_LOCAL_NAME, then
-	     there may be CV-qualifiers on its right argument which
-	     really apply here; this happens when parsing a class
-	     which is local to a function.  */
-	  if (dc->type == DEMANGLE_COMPONENT_LOCAL_NAME)
-	    {
-	      struct demangle_component *dcr;
-
-	      dcr = d_right (dc);
-	      while (dcr->type == DEMANGLE_COMPONENT_RESTRICT_THIS
-		     || dcr->type == DEMANGLE_COMPONENT_VOLATILE_THIS
-		     || dcr->type == DEMANGLE_COMPONENT_CONST_THIS)
-		dcr = d_left (dcr);
-	      dc->u.s_binary.right = dcr;
-	    }
-
-	  return dc;
-	}
-
-      peek = d_peek_char (di);
-      if (peek == '\0' || peek == 'E')
-	return dc;
-      return d_make_comp (di, DEMANGLE_COMPONENT_TYPED_NAME, dc,
-			  d_bare_function_type (di, has_return_type (dc)));
-    }
-}
-
-/* <name> ::= <nested-name>
-          ::= <unscoped-name>
-          ::= <unscoped-template-name> <template-args>
-          ::= <local-name>
-
-   <unscoped-name> ::= <unqualified-name>
-                   ::= St <unqualified-name>
-
-   <unscoped-template-name> ::= <unscoped-name>
-                            ::= <substitution>
-*/
-
-static struct demangle_component *
-d_name (struct d_info *di)
-{
-  char peek = d_peek_char (di);
-  struct demangle_component *dc;
-
-  switch (peek)
-    {
-    case 'N':
-      return d_nested_name (di);
-
-    case 'Z':
-      return d_local_name (di);
-
-    case 'S':
-      {
-	int subst;
-
-	if (d_peek_next_char (di) != 't')
-	  {
-	    dc = d_substitution (di, 0);
-	    subst = 1;
-	  }
-	else
-	  {
-	    d_advance (di, 2);
-	    dc = d_make_comp (di, DEMANGLE_COMPONENT_QUAL_NAME,
-			      d_make_name (di, "std", 3),
-			      d_unqualified_name (di));
-	    di->expansion += 3;
-	    subst = 0;
-	  }
-
-	if (d_peek_char (di) != 'I')
-	  {
-	    /* The grammar does not permit this case to occur if we
-	       called d_substitution() above (i.e., subst == 1).  We
-	       don't bother to check.  */
-	  }
-	else
-	  {
-	    /* This is <template-args>, which means that we just saw
-	       <unscoped-template-name>, which is a substitution
-	       candidate if we didn't just get it from a
-	       substitution.  */
-	    if (! subst)
-	      {
-		if (! d_add_substitution (di, dc))
-		  return NULL;
-	      }
-	    dc = d_make_comp (di, DEMANGLE_COMPONENT_TEMPLATE, dc,
-			      d_template_args (di));
-	  }
-
-	return dc;
-      }
-
-    default:
-      dc = d_unqualified_name (di);
-      if (d_peek_char (di) == 'I')
-	{
-	  /* This is <template-args>, which means that we just saw
-	     <unscoped-template-name>, which is a substitution
-	     candidate.  */
-	  if (! d_add_substitution (di, dc))
-	    return NULL;
-	  dc = d_make_comp (di, DEMANGLE_COMPONENT_TEMPLATE, dc,
-			    d_template_args (di));
-	}
-      return dc;
-    }
-}
-
-/* <nested-name> ::= N [<CV-qualifiers>] <prefix> <unqualified-name> E
-                 ::= N [<CV-qualifiers>] <template-prefix> <template-args> E
-*/
-
-static struct demangle_component *
-d_nested_name (struct d_info *di)
-{
-  struct demangle_component *ret;
-  struct demangle_component **pret;
-
-  if (d_next_char (di) != 'N')
-    return NULL;
-
-  pret = d_cv_qualifiers (di, &ret, 1);
-  if (pret == NULL)
-    return NULL;
-
-  *pret = d_prefix (di);
-  if (*pret == NULL)
-    return NULL;
-
-  if (d_next_char (di) != 'E')
-    return NULL;
-
-  return ret;
-}
-
-/* <prefix> ::= <prefix> <unqualified-name>
-            ::= <template-prefix> <template-args>
-            ::= <template-param>
-            ::=
-            ::= <substitution>
-
-   <template-prefix> ::= <prefix> <(template) unqualified-name>
-                     ::= <template-param>
-                     ::= <substitution>
-*/
-
-static struct demangle_component *
-d_prefix (struct d_info *di)
-{
-  struct demangle_component *ret = NULL;
-
-  while (1)
-    {
-      char peek;
-      enum demangle_component_type comb_type;
-      struct demangle_component *dc;
-
-      peek = d_peek_char (di);
-      if (peek == '\0')
-	return NULL;
-
-      /* The older code accepts a <local-name> here, but I don't see
-	 that in the grammar.  The older code does not accept a
-	 <template-param> here.  */
-
-      comb_type = DEMANGLE_COMPONENT_QUAL_NAME;
-      if (IS_DIGIT (peek)
-	  || IS_LOWER (peek)
-	  || peek == 'C'
-	  || peek == 'D')
-	dc = d_unqualified_name (di);
-      else if (peek == 'S')
-	dc = d_substitution (di, 1);
-      else if (peek == 'I')
-	{
-	  if (ret == NULL)
-	    return NULL;
-	  comb_type = DEMANGLE_COMPONENT_TEMPLATE;
-	  dc = d_template_args (di);
-	}
-      else if (peek == 'T')
-	dc = d_template_param (di);
-      else if (peek == 'E')
-	return ret;
-      else
-	return NULL;
-
-      if (ret == NULL)
-	ret = dc;
-      else
-	ret = d_make_comp (di, comb_type, ret, dc);
-
-      if (peek != 'S' && d_peek_char (di) != 'E')
-	{
-	  if (! d_add_substitution (di, ret))
-	    return NULL;
-	}
-    }
-}
-
-/* <unqualified-name> ::= <operator-name>
-                      ::= <ctor-dtor-name>
-                      ::= <source-name>
-*/
-
-static struct demangle_component *
-d_unqualified_name (struct d_info *di)
-{
-  char peek;
-
-  peek = d_peek_char (di);
-  if (IS_DIGIT (peek))
-    return d_source_name (di);
-  else if (IS_LOWER (peek))
-    {
-      struct demangle_component *ret;
-
-      ret = d_operator_name (di);
-      if (ret != NULL && ret->type == DEMANGLE_COMPONENT_OPERATOR)
-	di->expansion += sizeof "operator" + ret->u.s_operator.op->len - 2;
-      return ret;
-    }
-  else if (peek == 'C' || peek == 'D')
-    return d_ctor_dtor_name (di);
-  else
-    return NULL;
-}
-
-/* <source-name> ::= <(positive length) number> <identifier>  */
-
-static struct demangle_component *
-d_source_name (struct d_info *di)
-{
-  long len;
-  struct demangle_component *ret;
-
-  len = d_number (di);
-  if (len <= 0)
-    return NULL;
-  ret = d_identifier (di, len);
-  di->last_name = ret;
-  return ret;
-}
-
-/* number ::= [n] <(non-negative decimal integer)>  */
-
-static long
-d_number (struct d_info *di)
-{
-  int negative;
-  char peek;
-  long ret;
-
-  negative = 0;
-  peek = d_peek_char (di);
-  if (peek == 'n')
-    {
-      negative = 1;
-      d_advance (di, 1);
-      peek = d_peek_char (di);
-    }
-
-  ret = 0;
-  while (1)
-    {
-      if (! IS_DIGIT (peek))
-	{
-	  if (negative)
-	    ret = - ret;
-	  return ret;
-	}
-      ret = ret * 10 + peek - '0';
-      d_advance (di, 1);
-      peek = d_peek_char (di);
-    }
-}
-
-/* identifier ::= <(unqualified source code identifier)>  */
-
-static struct demangle_component *
-d_identifier (struct d_info *di, int len)
-{
-  const char *name;
-
-  name = d_str (di);
-
-  if (di->send - name < len)
-    return NULL;
-
-  d_advance (di, len);
-
-  /* A Java mangled name may have a trailing '$' if it is a C++
-     keyword.  This '$' is not included in the length count.  We just
-     ignore the '$'.  */
-  if ((di->options & DMGL_JAVA) != 0
-      && d_peek_char (di) == '$')
-    d_advance (di, 1);
-
-  /* Look for something which looks like a gcc encoding of an
-     anonymous namespace, and replace it with a more user friendly
-     name.  */
-  if (len >= (int) ANONYMOUS_NAMESPACE_PREFIX_LEN + 2
-      && memcmp (name, ANONYMOUS_NAMESPACE_PREFIX,
-		 ANONYMOUS_NAMESPACE_PREFIX_LEN) == 0)
-    {
-      const char *s;
-
-      s = name + ANONYMOUS_NAMESPACE_PREFIX_LEN;
-      if ((*s == '.' || *s == '_' || *s == '$')
-	  && s[1] == 'N')
-	{
-	  di->expansion -= len - sizeof "(anonymous namespace)";
-	  return d_make_name (di, "(anonymous namespace)",
-			      sizeof "(anonymous namespace)" - 1);
-	}
-    }
-
-  return d_make_name (di, name, len);
-}
-
-/* operator_name ::= many different two character encodings.
-                 ::= cv <type>
-                 ::= v <digit> <source-name>
-*/
-
-#define NL(s) s, (sizeof s) - 1
-
-CP_STATIC_IF_GLIBCPP_V3
-const struct demangle_operator_info cplus_demangle_operators[] =
-{
-  { "aN", NL ("&="),        2 },
-  { "aS", NL ("="),         2 },
-  { "aa", NL ("&&"),        2 },
-  { "ad", NL ("&"),         1 },
-  { "an", NL ("&"),         2 },
-  { "cl", NL ("()"),        0 },
-  { "cm", NL (","),         2 },
-  { "co", NL ("~"),         1 },
-  { "dV", NL ("/="),        2 },
-  { "da", NL ("delete[]"),  1 },
-  { "de", NL ("*"),         1 },
-  { "dl", NL ("delete"),    1 },
-  { "dv", NL ("/"),         2 },
-  { "eO", NL ("^="),        2 },
-  { "eo", NL ("^"),         2 },
-  { "eq", NL ("=="),        2 },
-  { "ge", NL (">="),        2 },
-  { "gt", NL (">"),         2 },
-  { "ix", NL ("[]"),        2 },
-  { "lS", NL ("<<="),       2 },
-  { "le", NL ("<="),        2 },
-  { "ls", NL ("<<"),        2 },
-  { "lt", NL ("<"),         2 },
-  { "mI", NL ("-="),        2 },
-  { "mL", NL ("*="),        2 },
-  { "mi", NL ("-"),         2 },
-  { "ml", NL ("*"),         2 },
-  { "mm", NL ("--"),        1 },
-  { "na", NL ("new[]"),     1 },
-  { "ne", NL ("!="),        2 },
-  { "ng", NL ("-"),         1 },
-  { "nt", NL ("!"),         1 },
-  { "nw", NL ("new"),       1 },
-  { "oR", NL ("|="),        2 },
-  { "oo", NL ("||"),        2 },
-  { "or", NL ("|"),         2 },
-  { "pL", NL ("+="),        2 },
-  { "pl", NL ("+"),         2 },
-  { "pm", NL ("->*"),       2 },
-  { "pp", NL ("++"),        1 },
-  { "ps", NL ("+"),         1 },
-  { "pt", NL ("->"),        2 },
-  { "qu", NL ("?"),         3 },
-  { "rM", NL ("%="),        2 },
-  { "rS", NL (">>="),       2 },
-  { "rm", NL ("%"),         2 },
-  { "rs", NL (">>"),        2 },
-  { "st", NL ("sizeof "),   1 },
-  { "sz", NL ("sizeof "),   1 },
-  { NULL, NULL, 0,          0 }
-};
-
-static struct demangle_component *
-d_operator_name (struct d_info *di)
-{
-  char c1;
-  char c2;
-
-  c1 = d_next_char (di);
-  c2 = d_next_char (di);
-  if (c1 == 'v' && IS_DIGIT (c2))
-    return d_make_extended_operator (di, c2 - '0', d_source_name (di));
-  else if (c1 == 'c' && c2 == 'v')
-    return d_make_comp (di, DEMANGLE_COMPONENT_CAST,
-			cplus_demangle_type (di), NULL);
-  else
-    {
-      /* LOW is the inclusive lower bound.  */
-      int low = 0;
-      /* HIGH is the exclusive upper bound.  We subtract one to ignore
-	 the sentinel at the end of the array.  */
-      int high = ((sizeof (cplus_demangle_operators)
-		   / sizeof (cplus_demangle_operators[0]))
-		  - 1);
-
-      while (1)
-	{
-	  int i;
-	  const struct demangle_operator_info *p;
-
-	  i = low + (high - low) / 2;
-	  p = cplus_demangle_operators + i;
-
-	  if (c1 == p->code[0] && c2 == p->code[1])
-	    return d_make_operator (di, p);
-
-	  if (c1 < p->code[0] || (c1 == p->code[0] && c2 < p->code[1]))
-	    high = i;
-	  else
-	    low = i + 1;
-	  if (low == high)
-	    return NULL;
-	}
-    }
-}
-
-/* <special-name> ::= TV <type>
-                  ::= TT <type>
-                  ::= TI <type>
-                  ::= TS <type>
-                  ::= GV <(object) name>
-                  ::= T <call-offset> <(base) encoding>
-                  ::= Tc <call-offset> <call-offset> <(base) encoding>
-   Also g++ extensions:
-                  ::= TC <type> <(offset) number> _ <(base) type>
-                  ::= TF <type>
-                  ::= TJ <type>
-                  ::= GR <name>
-		  ::= GA <encoding>
-*/
-
-static struct demangle_component *
-d_special_name (struct d_info *di)
-{
-  char c;
-
-  di->expansion += 20;
-  c = d_next_char (di);
-  if (c == 'T')
-    {
-      switch (d_next_char (di))
-	{
-	case 'V':
-	  di->expansion -= 5;
-	  return d_make_comp (di, DEMANGLE_COMPONENT_VTABLE,
-			      cplus_demangle_type (di), NULL);
-	case 'T':
-	  di->expansion -= 10;
-	  return d_make_comp (di, DEMANGLE_COMPONENT_VTT,
-			      cplus_demangle_type (di), NULL);
-	case 'I':
-	  return d_make_comp (di, DEMANGLE_COMPONENT_TYPEINFO,
-			      cplus_demangle_type (di), NULL);
-	case 'S':
-	  return d_make_comp (di, DEMANGLE_COMPONENT_TYPEINFO_NAME,
-			      cplus_demangle_type (di), NULL);
-
-	case 'h':
-	  if (! d_call_offset (di, 'h'))
-	    return NULL;
-	  return d_make_comp (di, DEMANGLE_COMPONENT_THUNK,
-			      d_encoding (di, 0), NULL);
-
-	case 'v':
-	  if (! d_call_offset (di, 'v'))
-	    return NULL;
-	  return d_make_comp (di, DEMANGLE_COMPONENT_VIRTUAL_THUNK,
-			      d_encoding (di, 0), NULL);
-
-	case 'c':
-	  if (! d_call_offset (di, '\0'))
-	    return NULL;
-	  if (! d_call_offset (di, '\0'))
-	    return NULL;
-	  return d_make_comp (di, DEMANGLE_COMPONENT_COVARIANT_THUNK,
-			      d_encoding (di, 0), NULL);
-
-	case 'C':
-	  {
-	    struct demangle_component *derived_type;
-	    long offset;
-	    struct demangle_component *base_type;
-
-	    derived_type = cplus_demangle_type (di);
-	    offset = d_number (di);
-	    if (offset < 0)
-	      return NULL;
-	    if (d_next_char (di) != '_')
-	      return NULL;
-	    base_type = cplus_demangle_type (di);
-	    /* We don't display the offset.  FIXME: We should display
-	       it in verbose mode.  */
-	    di->expansion += 5;
-	    return d_make_comp (di, DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE,
-				base_type, derived_type);
-	  }
-
-	case 'F':
-	  return d_make_comp (di, DEMANGLE_COMPONENT_TYPEINFO_FN,
-			      cplus_demangle_type (di), NULL);
-	case 'J':
-	  return d_make_comp (di, DEMANGLE_COMPONENT_JAVA_CLASS,
-			      cplus_demangle_type (di), NULL);
-
-	default:
-	  return NULL;
-	}
-    }
-  else if (c == 'G')
-    {
-      switch (d_next_char (di))
-	{
-	case 'V':
-	  return d_make_comp (di, DEMANGLE_COMPONENT_GUARD, d_name (di), NULL);
-
-	case 'R':
-	  return d_make_comp (di, DEMANGLE_COMPONENT_REFTEMP, d_name (di),
-			      NULL);
-
-	case 'A':
-	  return d_make_comp (di, DEMANGLE_COMPONENT_HIDDEN_ALIAS,
-			      d_encoding (di, 0), NULL);
-
-	default:
-	  return NULL;
-	}
-    }
-  else
-    return NULL;
-}
-
-/* <call-offset> ::= h <nv-offset> _
-                 ::= v <v-offset> _
-
-   <nv-offset> ::= <(offset) number>
-
-   <v-offset> ::= <(offset) number> _ <(virtual offset) number>
-
-   The C parameter, if not '\0', is a character we just read which is
-   the start of the <call-offset>.
-
-   We don't display the offset information anywhere.  FIXME: We should
-   display it in verbose mode.  */
-
-static int
-d_call_offset (struct d_info *di, int c)
-{
-  if (c == '\0')
-    c = d_next_char (di);
-
-  if (c == 'h')
-    d_number (di);
-  else if (c == 'v')
-    {
-      d_number (di);
-      if (d_next_char (di) != '_')
-	return 0;
-      d_number (di);
-    }
-  else
-    return 0;
-
-  if (d_next_char (di) != '_')
-    return 0;
-
-  return 1;
-}
-
-/* <ctor-dtor-name> ::= C1
-                    ::= C2
-                    ::= C3
-                    ::= D0
-                    ::= D1
-                    ::= D2
-*/
-
-static struct demangle_component *
-d_ctor_dtor_name (struct d_info *di)
-{
-  if (di->last_name != NULL)
-    {
-      if (di->last_name->type == DEMANGLE_COMPONENT_NAME)
-	di->expansion += di->last_name->u.s_name.len;
-      else if (di->last_name->type == DEMANGLE_COMPONENT_SUB_STD)
-	di->expansion += di->last_name->u.s_string.len;
-    }
-  switch (d_next_char (di))
-    {
-    case 'C':
-      {
-	enum gnu_v3_ctor_kinds kind;
-
-	switch (d_next_char (di))
-	  {
-	  case '1':
-	    kind = gnu_v3_complete_object_ctor;
-	    break;
-	  case '2':
-	    kind = gnu_v3_base_object_ctor;
-	    break;
-	  case '3':
-	    kind = gnu_v3_complete_object_allocating_ctor;
-	    break;
-	  default:
-	    return NULL;
-	  }
-	return d_make_ctor (di, kind, di->last_name);
-      }
-
-    case 'D':
-      {
-	enum gnu_v3_dtor_kinds kind;
-
-	switch (d_next_char (di))
-	  {
-	  case '0':
-	    kind = gnu_v3_deleting_dtor;
-	    break;
-	  case '1':
-	    kind = gnu_v3_complete_object_dtor;
-	    break;
-	  case '2':
-	    kind = gnu_v3_base_object_dtor;
-	    break;
-	  default:
-	    return NULL;
-	  }
-	return d_make_dtor (di, kind, di->last_name);
-      }
-
-    default:
-      return NULL;
-    }
-}
-
-/* <type> ::= <builtin-type>
-          ::= <function-type>
-          ::= <class-enum-type>
-          ::= <array-type>
-          ::= <pointer-to-member-type>
-          ::= <template-param>
-          ::= <template-template-param> <template-args>
-          ::= <substitution>
-          ::= <CV-qualifiers> <type>
-          ::= P <type>
-          ::= R <type>
-          ::= C <type>
-          ::= G <type>
-          ::= U <source-name> <type>
-
-   <builtin-type> ::= various one letter codes
-                  ::= u <source-name>
-*/
-
-CP_STATIC_IF_GLIBCPP_V3
-const struct demangle_builtin_type_info
-cplus_demangle_builtin_types[D_BUILTIN_TYPE_COUNT] =
-{
-  /* a */ { NL ("signed char"),	NL ("signed char"),	D_PRINT_DEFAULT },
-  /* b */ { NL ("bool"),	NL ("boolean"),		D_PRINT_BOOL },
-  /* c */ { NL ("char"),	NL ("byte"),		D_PRINT_DEFAULT },
-  /* d */ { NL ("double"),	NL ("double"),		D_PRINT_FLOAT },
-  /* e */ { NL ("long double"),	NL ("long double"),	D_PRINT_FLOAT },
-  /* f */ { NL ("float"),	NL ("float"),		D_PRINT_FLOAT },
-  /* g */ { NL ("__float128"),	NL ("__float128"),	D_PRINT_FLOAT },
-  /* h */ { NL ("unsigned char"), NL ("unsigned char"),	D_PRINT_DEFAULT },
-  /* i */ { NL ("int"),		NL ("int"),		D_PRINT_INT },
-  /* j */ { NL ("unsigned int"), NL ("unsigned"),	D_PRINT_UNSIGNED },
-  /* k */ { NULL, 0,		NULL, 0,		D_PRINT_DEFAULT },
-  /* l */ { NL ("long"),	NL ("long"),		D_PRINT_LONG },
-  /* m */ { NL ("unsigned long"), NL ("unsigned long"),	D_PRINT_UNSIGNED_LONG },
-  /* n */ { NL ("__int128"),	NL ("__int128"),	D_PRINT_DEFAULT },
-  /* o */ { NL ("unsigned __int128"), NL ("unsigned __int128"),
-	    D_PRINT_DEFAULT },
-  /* p */ { NULL, 0,		NULL, 0,		D_PRINT_DEFAULT },
-  /* q */ { NULL, 0,		NULL, 0,		D_PRINT_DEFAULT },
-  /* r */ { NULL, 0,		NULL, 0,		D_PRINT_DEFAULT },
-  /* s */ { NL ("short"),	NL ("short"),		D_PRINT_DEFAULT },
-  /* t */ { NL ("unsigned short"), NL ("unsigned short"), D_PRINT_DEFAULT },
-  /* u */ { NULL, 0,		NULL, 0,		D_PRINT_DEFAULT },
-  /* v */ { NL ("void"),	NL ("void"),		D_PRINT_VOID },
-  /* w */ { NL ("wchar_t"),	NL ("char"),		D_PRINT_DEFAULT },
-  /* x */ { NL ("long long"),	NL ("long"),		D_PRINT_LONG_LONG },
-  /* y */ { NL ("unsigned long long"), NL ("unsigned long long"),
-	    D_PRINT_UNSIGNED_LONG_LONG },
-  /* z */ { NL ("..."),		NL ("..."),		D_PRINT_DEFAULT },
-};
-
-CP_STATIC_IF_GLIBCPP_V3
-struct demangle_component *
-cplus_demangle_type (struct d_info *di)
-{
-  char peek;
-  struct demangle_component *ret;
-  int can_subst;
-
-  /* The ABI specifies that when CV-qualifiers are used, the base type
-     is substitutable, and the fully qualified type is substitutable,
-     but the base type with a strict subset of the CV-qualifiers is
-     not substitutable.  The natural recursive implementation of the
-     CV-qualifiers would cause subsets to be substitutable, so instead
-     we pull them all off now.
-
-     FIXME: The ABI says that order-insensitive vendor qualifiers
-     should be handled in the same way, but we have no way to tell
-     which vendor qualifiers are order-insensitive and which are
-     order-sensitive.  So we just assume that they are all
-     order-sensitive.  g++ 3.4 supports only one vendor qualifier,
-     __vector, and it treats it as order-sensitive when mangling
-     names.  */
-
-  peek = d_peek_char (di);
-  if (peek == 'r' || peek == 'V' || peek == 'K')
-    {
-      struct demangle_component **pret;
-
-      pret = d_cv_qualifiers (di, &ret, 0);
-      if (pret == NULL)
-	return NULL;
-      *pret = cplus_demangle_type (di);
-      if (! d_add_substitution (di, ret))
-	return NULL;
-      return ret;
-    }
-
-  can_subst = 1;
-
-  switch (peek)
-    {
-    case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g':
-    case 'h': case 'i': case 'j':           case 'l': case 'm': case 'n':
-    case 'o':                               case 's': case 't':
-    case 'v': case 'w': case 'x': case 'y': case 'z':
-      ret = d_make_builtin_type (di,
-				 &cplus_demangle_builtin_types[peek - 'a']);
-      di->expansion += ret->u.s_builtin.type->len;
-      can_subst = 0;
-      d_advance (di, 1);
-      break;
-
-    case 'u':
-      d_advance (di, 1);
-      ret = d_make_comp (di, DEMANGLE_COMPONENT_VENDOR_TYPE,
-			 d_source_name (di), NULL);
-      break;
-
-    case 'F':
-      ret = d_function_type (di);
-      break;
-
-    case '0': case '1': case '2': case '3': case '4':
-    case '5': case '6': case '7': case '8': case '9':
-    case 'N':
-    case 'Z':
-      ret = d_class_enum_type (di);
-      break;
-
-    case 'A':
-      ret = d_array_type (di);
-      break;
-
-    case 'M':
-      ret = d_pointer_to_member_type (di);
-      break;
-
-    case 'T':
-      ret = d_template_param (di);
-      if (d_peek_char (di) == 'I')
-	{
-	  /* This is <template-template-param> <template-args>.  The
-	     <template-template-param> part is a substitution
-	     candidate.  */
-	  if (! d_add_substitution (di, ret))
-	    return NULL;
-	  ret = d_make_comp (di, DEMANGLE_COMPONENT_TEMPLATE, ret,
-			     d_template_args (di));
-	}
-      break;
-
-    case 'S':
-      /* If this is a special substitution, then it is the start of
-	 <class-enum-type>.  */
-      {
-	char peek_next;
-
-	peek_next = d_peek_next_char (di);
-	if (IS_DIGIT (peek_next)
-	    || peek_next == '_'
-	    || IS_UPPER (peek_next))
-	  {
-	    ret = d_substitution (di, 0);
-	    /* The substituted name may have been a template name and
-	       may be followed by tepmlate args.  */
-	    if (d_peek_char (di) == 'I')
-	      ret = d_make_comp (di, DEMANGLE_COMPONENT_TEMPLATE, ret,
-				 d_template_args (di));
-	    else
-	      can_subst = 0;
-	  }
-	else
-	  {
-	    ret = d_class_enum_type (di);
-	    /* If the substitution was a complete type, then it is not
-	       a new substitution candidate.  However, if the
-	       substitution was followed by template arguments, then
-	       the whole thing is a substitution candidate.  */
-	    if (ret != NULL && ret->type == DEMANGLE_COMPONENT_SUB_STD)
-	      can_subst = 0;
-	  }
-      }
-      break;
-
-    case 'P':
-      d_advance (di, 1);
-      ret = d_make_comp (di, DEMANGLE_COMPONENT_POINTER,
-			 cplus_demangle_type (di), NULL);
-      break;
-
-    case 'R':
-      d_advance (di, 1);
-      ret = d_make_comp (di, DEMANGLE_COMPONENT_REFERENCE,
-			 cplus_demangle_type (di), NULL);
-      break;
-
-    case 'C':
-      d_advance (di, 1);
-      ret = d_make_comp (di, DEMANGLE_COMPONENT_COMPLEX,
-			 cplus_demangle_type (di), NULL);
-      break;
-
-    case 'G':
-      d_advance (di, 1);
-      ret = d_make_comp (di, DEMANGLE_COMPONENT_IMAGINARY,
-			 cplus_demangle_type (di), NULL);
-      break;
-
-    case 'U':
-      d_advance (di, 1);
-      ret = d_source_name (di);
-      ret = d_make_comp (di, DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL,
-			 cplus_demangle_type (di), ret);
-      break;
-
-    default:
-      return NULL;
-    }
-
-  if (can_subst)
-    {
-      if (! d_add_substitution (di, ret))
-	return NULL;
-    }
-
-  return ret;
-}
-
-/* <CV-qualifiers> ::= [r] [V] [K]  */
-
-static struct demangle_component **
-d_cv_qualifiers (struct d_info *di,
-                 struct demangle_component **pret, int member_fn)
-{
-  char peek;
-
-  peek = d_peek_char (di);
-  while (peek == 'r' || peek == 'V' || peek == 'K')
-    {
-      enum demangle_component_type t;
-
-      d_advance (di, 1);
-      if (peek == 'r')
-	{
-	  t = (member_fn
-	       ? DEMANGLE_COMPONENT_RESTRICT_THIS
-	       : DEMANGLE_COMPONENT_RESTRICT);
-	  di->expansion += sizeof "restrict";
-	}
-      else if (peek == 'V')
-	{
-	  t = (member_fn
-	       ? DEMANGLE_COMPONENT_VOLATILE_THIS
-	       : DEMANGLE_COMPONENT_VOLATILE);
-	  di->expansion += sizeof "volatile";
-	}
-      else
-	{
-	  t = (member_fn
-	       ? DEMANGLE_COMPONENT_CONST_THIS
-	       : DEMANGLE_COMPONENT_CONST);
-	  di->expansion += sizeof "const";
-	}
-
-      *pret = d_make_comp (di, t, NULL, NULL);
-      if (*pret == NULL)
-	return NULL;
-      pret = &d_left (*pret);
-
-      peek = d_peek_char (di);
-    }
-
-  return pret;
-}
-
-/* <function-type> ::= F [Y] <bare-function-type> E  */
-
-static struct demangle_component *
-d_function_type (struct d_info *di)
-{
-  struct demangle_component *ret;
-
-  if (d_next_char (di) != 'F')
-    return NULL;
-  if (d_peek_char (di) == 'Y')
-    {
-      /* Function has C linkage.  We don't print this information.
-	 FIXME: We should print it in verbose mode.  */
-      d_advance (di, 1);
-    }
-  ret = d_bare_function_type (di, 1);
-  if (d_next_char (di) != 'E')
-    return NULL;
-  return ret;
-}
-
-/* <bare-function-type> ::= [J]<type>+  */
-
-static struct demangle_component *
-d_bare_function_type (struct d_info *di, int has_return_type)
-{
-  struct demangle_component *return_type;
-  struct demangle_component *tl;
-  struct demangle_component **ptl;
-  char peek;
-
-  /* Detect special qualifier indicating that the first argument
-     is the return type.  */
-  peek = d_peek_char (di);
-  if (peek == 'J')
-    {
-      d_advance (di, 1);
-      has_return_type = 1;
-    }
-
-  return_type = NULL;
-  tl = NULL;
-  ptl = &tl;
-  while (1)
-    {
-      struct demangle_component *type;
-
-      peek = d_peek_char (di);
-      if (peek == '\0' || peek == 'E')
-	break;
-      type = cplus_demangle_type (di);
-      if (type == NULL)
-	return NULL;
-      if (has_return_type)
-	{
-	  return_type = type;
-	  has_return_type = 0;
-	}
-      else
-	{
-	  *ptl = d_make_comp (di, DEMANGLE_COMPONENT_ARGLIST, type, NULL);
-	  if (*ptl == NULL)
-	    return NULL;
-	  ptl = &d_right (*ptl);
-	}
-    }
-
-  /* There should be at least one parameter type besides the optional
-     return type.  A function which takes no arguments will have a
-     single parameter type void.  */
-  if (tl == NULL)
-    return NULL;
-
-  /* If we have a single parameter type void, omit it.  */
-  if (d_right (tl) == NULL
-      && d_left (tl)->type == DEMANGLE_COMPONENT_BUILTIN_TYPE
-      && d_left (tl)->u.s_builtin.type->print == D_PRINT_VOID)
-    {
-      di->expansion -= d_left (tl)->u.s_builtin.type->len;
-      tl = NULL;
-    }
-
-  return d_make_comp (di, DEMANGLE_COMPONENT_FUNCTION_TYPE, return_type, tl);
-}
-
-/* <class-enum-type> ::= <name>  */
-
-static struct demangle_component *
-d_class_enum_type (struct d_info *di)
-{
-  return d_name (di);
-}
-
-/* <array-type> ::= A <(positive dimension) number> _ <(element) type>
-                ::= A [<(dimension) expression>] _ <(element) type>
-*/
-
-static struct demangle_component *
-d_array_type (struct d_info *di)
-{
-  char peek;
-  struct demangle_component *dim;
-
-  if (d_next_char (di) != 'A')
-    return NULL;
-
-  peek = d_peek_char (di);
-  if (peek == '_')
-    dim = NULL;
-  else if (IS_DIGIT (peek))
-    {
-      const char *s;
-
-      s = d_str (di);
-      do
-	{
-	  d_advance (di, 1);
-	  peek = d_peek_char (di);
-	}
-      while (IS_DIGIT (peek));
-      dim = d_make_name (di, s, d_str (di) - s);
-      if (dim == NULL)
-	return NULL;
-    }
-  else
-    {
-      dim = d_expression (di);
-      if (dim == NULL)
-	return NULL;
-    }
-
-  if (d_next_char (di) != '_')
-    return NULL;
-
-  return d_make_comp (di, DEMANGLE_COMPONENT_ARRAY_TYPE, dim,
-		      cplus_demangle_type (di));
-}
-
-/* <pointer-to-member-type> ::= M <(class) type> <(member) type>  */
-
-static struct demangle_component *
-d_pointer_to_member_type (struct d_info *di)
-{
-  struct demangle_component *cl;
-  struct demangle_component *mem;
-  struct demangle_component **pmem;
-
-  if (d_next_char (di) != 'M')
-    return NULL;
-
-  cl = cplus_demangle_type (di);
-
-  /* The ABI specifies that any type can be a substitution source, and
-     that M is followed by two types, and that when a CV-qualified
-     type is seen both the base type and the CV-qualified types are
-     substitution sources.  The ABI also specifies that for a pointer
-     to a CV-qualified member function, the qualifiers are attached to
-     the second type.  Given the grammar, a plain reading of the ABI
-     suggests that both the CV-qualified member function and the
-     non-qualified member function are substitution sources.  However,
-     g++ does not work that way.  g++ treats only the CV-qualified
-     member function as a substitution source.  FIXME.  So to work
-     with g++, we need to pull off the CV-qualifiers here, in order to
-     avoid calling add_substitution() in cplus_demangle_type().  */
-
-  pmem = d_cv_qualifiers (di, &mem, 1);
-  if (pmem == NULL)
-    return NULL;
-  *pmem = cplus_demangle_type (di);
-
-  return d_make_comp (di, DEMANGLE_COMPONENT_PTRMEM_TYPE, cl, mem);
-}
-
-/* <template-param> ::= T_
-                    ::= T <(parameter-2 non-negative) number> _
-*/
-
-static struct demangle_component *
-d_template_param (struct d_info *di)
-{
-  long param;
-
-  if (d_next_char (di) != 'T')
-    return NULL;
-
-  if (d_peek_char (di) == '_')
-    param = 0;
-  else
-    {
-      param = d_number (di);
-      if (param < 0)
-	return NULL;
-      param += 1;
-    }
-
-  if (d_next_char (di) != '_')
-    return NULL;
-
-  ++di->did_subs;
-
-  return d_make_template_param (di, param);
-}
-
-/* <template-args> ::= I <template-arg>+ E  */
-
-static struct demangle_component *
-d_template_args (struct d_info *di)
-{
-  struct demangle_component *hold_last_name;
-  struct demangle_component *al;
-  struct demangle_component **pal;
-
-  /* Preserve the last name we saw--don't let the template arguments
-     clobber it, as that would give us the wrong name for a subsequent
-     constructor or destructor.  */
-  hold_last_name = di->last_name;
-
-  if (d_next_char (di) != 'I')
-    return NULL;
-
-  al = NULL;
-  pal = &al;
-  while (1)
-    {
-      struct demangle_component *a;
-
-      a = d_template_arg (di);
-      if (a == NULL)
-	return NULL;
-
-      *pal = d_make_comp (di, DEMANGLE_COMPONENT_TEMPLATE_ARGLIST, a, NULL);
-      if (*pal == NULL)
-	return NULL;
-      pal = &d_right (*pal);
-
-      if (d_peek_char (di) == 'E')
-	{
-	  d_advance (di, 1);
-	  break;
-	}
-    }
-
-  di->last_name = hold_last_name;
-
-  return al;
-}
-
-/* <template-arg> ::= <type>
-                  ::= X <expression> E
-                  ::= <expr-primary>
-*/
-
-static struct demangle_component *
-d_template_arg (struct d_info *di)
-{
-  struct demangle_component *ret;
-
-  switch (d_peek_char (di))
-    {
-    case 'X':
-      d_advance (di, 1);
-      ret = d_expression (di);
-      if (d_next_char (di) != 'E')
-	return NULL;
-      return ret;
-
-    case 'L':
-      return d_expr_primary (di);
-
-    default:
-      return cplus_demangle_type (di);
-    }
-}
-
-/* <expression> ::= <(unary) operator-name> <expression>
-                ::= <(binary) operator-name> <expression> <expression>
-                ::= <(trinary) operator-name> <expression> <expression> <expression>
-                ::= st <type>
-                ::= <template-param>
-                ::= sr <type> <unqualified-name>
-                ::= sr <type> <unqualified-name> <template-args>
-                ::= <expr-primary>
-*/
-
-static struct demangle_component *
-d_expression (struct d_info *di)
-{
-  char peek;
-
-  peek = d_peek_char (di);
-  if (peek == 'L')
-    return d_expr_primary (di);
-  else if (peek == 'T')
-    return d_template_param (di);
-  else if (peek == 's' && d_peek_next_char (di) == 'r')
-    {
-      struct demangle_component *type;
-      struct demangle_component *name;
-
-      d_advance (di, 2);
-      type = cplus_demangle_type (di);
-      name = d_unqualified_name (di);
-      if (d_peek_char (di) != 'I')
-	return d_make_comp (di, DEMANGLE_COMPONENT_QUAL_NAME, type, name);
-      else
-	return d_make_comp (di, DEMANGLE_COMPONENT_QUAL_NAME, type,
-			    d_make_comp (di, DEMANGLE_COMPONENT_TEMPLATE, name,
-					 d_template_args (di)));
-    }
-  else
-    {
-      struct demangle_component *op;
-      int args;
-
-      op = d_operator_name (di);
-      if (op == NULL)
-	return NULL;
-
-      if (op->type == DEMANGLE_COMPONENT_OPERATOR)
-	di->expansion += op->u.s_operator.op->len - 2;
-
-      if (op->type == DEMANGLE_COMPONENT_OPERATOR
-	  && strcmp (op->u.s_operator.op->code, "st") == 0)
-	return d_make_comp (di, DEMANGLE_COMPONENT_UNARY, op,
-			    cplus_demangle_type (di));
-
-      switch (op->type)
-	{
-	default:
-	  return NULL;
-	case DEMANGLE_COMPONENT_OPERATOR:
-	  args = op->u.s_operator.op->args;
-	  break;
-	case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:
-	  args = op->u.s_extended_operator.args;
-	  break;
-	case DEMANGLE_COMPONENT_CAST:
-	  args = 1;
-	  break;
-	}
-
-      switch (args)
-	{
-	case 1:
-	  return d_make_comp (di, DEMANGLE_COMPONENT_UNARY, op,
-			      d_expression (di));
-	case 2:
-	  {
-	    struct demangle_component *left;
-
-	    left = d_expression (di);
-	    return d_make_comp (di, DEMANGLE_COMPONENT_BINARY, op,
-				d_make_comp (di,
-					     DEMANGLE_COMPONENT_BINARY_ARGS,
-					     left,
-					     d_expression (di)));
-	  }
-	case 3:
-	  {
-	    struct demangle_component *first;
-	    struct demangle_component *second;
-
-	    first = d_expression (di);
-	    second = d_expression (di);
-	    return d_make_comp (di, DEMANGLE_COMPONENT_TRINARY, op,
-				d_make_comp (di,
-					     DEMANGLE_COMPONENT_TRINARY_ARG1,
-					     first,
-					     d_make_comp (di,
-							  DEMANGLE_COMPONENT_TRINARY_ARG2,
-							  second,
-							  d_expression (di))));
-	  }
-	default:
-	  return NULL;
-	}
-    }
-}
-
-/* <expr-primary> ::= L <type> <(value) number> E
-                  ::= L <type> <(value) float> E
-                  ::= L <mangled-name> E
-*/
-
-static struct demangle_component *
-d_expr_primary (struct d_info *di)
-{
-  struct demangle_component *ret;
-
-  if (d_next_char (di) != 'L')
-    return NULL;
-  if (d_peek_char (di) == '_')
-    ret = cplus_demangle_mangled_name (di, 0);
-  else
-    {
-      struct demangle_component *type;
-      enum demangle_component_type t;
-      const char *s;
-
-      type = cplus_demangle_type (di);
-      if (type == NULL)
-	return NULL;
-
-      /* If we have a type we know how to print, we aren't going to
-	 print the type name itself.  */
-      if (type->type == DEMANGLE_COMPONENT_BUILTIN_TYPE
-	  && type->u.s_builtin.type->print != D_PRINT_DEFAULT)
-	di->expansion -= type->u.s_builtin.type->len;
-
-      /* Rather than try to interpret the literal value, we just
-	 collect it as a string.  Note that it's possible to have a
-	 floating point literal here.  The ABI specifies that the
-	 format of such literals is machine independent.  That's fine,
-	 but what's not fine is that versions of g++ up to 3.2 with
-	 -fabi-version=1 used upper case letters in the hex constant,
-	 and dumped out gcc's internal representation.  That makes it
-	 hard to tell where the constant ends, and hard to dump the
-	 constant in any readable form anyhow.  We don't attempt to
-	 handle these cases.  */
-
-      t = DEMANGLE_COMPONENT_LITERAL;
-      if (d_peek_char (di) == 'n')
-	{
-	  t = DEMANGLE_COMPONENT_LITERAL_NEG;
-	  d_advance (di, 1);
-	}
-      s = d_str (di);
-      while (d_peek_char (di) != 'E')
-	{
-	  if (d_peek_char (di) == '\0')
-	    return NULL;
-	  d_advance (di, 1);
-	}
-      ret = d_make_comp (di, t, type, d_make_name (di, s, d_str (di) - s));
-    }
-  if (d_next_char (di) != 'E')
-    return NULL;
-  return ret;
-}
-
-/* <local-name> ::= Z <(function) encoding> E <(entity) name> [<discriminator>]
-                ::= Z <(function) encoding> E s [<discriminator>]
-*/
-
-static struct demangle_component *
-d_local_name (struct d_info *di)
-{
-  struct demangle_component *function;
-
-  if (d_next_char (di) != 'Z')
-    return NULL;
-
-  function = d_encoding (di, 0);
-
-  if (d_next_char (di) != 'E')
-    return NULL;
-
-  if (d_peek_char (di) == 's')
-    {
-      d_advance (di, 1);
-      if (! d_discriminator (di))
-	return NULL;
-      return d_make_comp (di, DEMANGLE_COMPONENT_LOCAL_NAME, function,
-			  d_make_name (di, "string literal",
-				       sizeof "string literal" - 1));
-    }
-  else
-    {
-      struct demangle_component *name;
-
-      name = d_name (di);
-      if (! d_discriminator (di))
-	return NULL;
-      return d_make_comp (di, DEMANGLE_COMPONENT_LOCAL_NAME, function, name);
-    }
-}
-
-/* <discriminator> ::= _ <(non-negative) number>
-
-   We demangle the discriminator, but we don't print it out.  FIXME:
-   We should print it out in verbose mode.  */
-
-static int
-d_discriminator (struct d_info *di)
-{
-  long discrim;
-
-  if (d_peek_char (di) != '_')
-    return 1;
-  d_advance (di, 1);
-  discrim = d_number (di);
-  if (discrim < 0)
-    return 0;
-  return 1;
-}
-
-/* Add a new substitution.  */
-
-static int
-d_add_substitution (struct d_info *di, struct demangle_component *dc)
-{
-  if (dc == NULL)
-    return 0;
-  if (di->next_sub >= di->num_subs)
-    return 0;
-  di->subs[di->next_sub] = dc;
-  ++di->next_sub;
-  return 1;
-}
-
-/* <substitution> ::= S <seq-id> _
-                  ::= S_
-                  ::= St
-                  ::= Sa
-                  ::= Sb
-                  ::= Ss
-                  ::= Si
-                  ::= So
-                  ::= Sd
-
-   If PREFIX is non-zero, then this type is being used as a prefix in
-   a qualified name.  In this case, for the standard substitutions, we
-   need to check whether we are being used as a prefix for a
-   constructor or destructor, and return a full template name.
-   Otherwise we will get something like std::iostream::~iostream()
-   which does not correspond particularly well to any function which
-   actually appears in the source.
-*/
-
-static const struct d_standard_sub_info standard_subs[] =
-{
-  { 't', NL ("std"),
-    NL ("std"),
-    NULL, 0 },
-  { 'a', NL ("std::allocator"),
-    NL ("std::allocator"),
-    NL ("allocator") },
-  { 'b', NL ("std::basic_string"),
-    NL ("std::basic_string"),
-    NL ("basic_string") },
-  { 's', NL ("std::string"),
-    NL ("std::basic_string<char, std::char_traits<char>, std::allocator<char> >"),
-    NL ("basic_string") },
-  { 'i', NL ("std::istream"),
-    NL ("std::basic_istream<char, std::char_traits<char> >"),
-    NL ("basic_istream") },
-  { 'o', NL ("std::ostream"),
-    NL ("std::basic_ostream<char, std::char_traits<char> >"),
-    NL ("basic_ostream") },
-  { 'd', NL ("std::iostream"),
-    NL ("std::basic_iostream<char, std::char_traits<char> >"),
-    NL ("basic_iostream") }
-};
-
-static struct demangle_component *
-d_substitution (struct d_info *di, int prefix)
-{
-  char c;
-
-  if (d_next_char (di) != 'S')
-    return NULL;
-
-  c = d_next_char (di);
-  if (c == '_' || IS_DIGIT (c) || IS_UPPER (c))
-    {
-      int id;
-
-      id = 0;
-      if (c != '_')
-	{
-	  do
-	    {
-	      if (IS_DIGIT (c))
-		id = id * 36 + c - '0';
-	      else if (IS_UPPER (c))
-		id = id * 36 + c - 'A' + 10;
-	      else
-		return NULL;
-	      c = d_next_char (di);
-	    }
-	  while (c != '_');
-
-	  ++id;
-	}
-
-      if (id >= di->next_sub)
-	return NULL;
-
-      ++di->did_subs;
-
-      return di->subs[id];
-    }
-  else
-    {
-      int verbose;
-      const struct d_standard_sub_info *p;
-      const struct d_standard_sub_info *pend;
-
-      verbose = (di->options & DMGL_VERBOSE) != 0;
-      if (! verbose && prefix)
-	{
-	  char peek;
-
-	  peek = d_peek_char (di);
-	  if (peek == 'C' || peek == 'D')
-	    verbose = 1;
-	}
-
-      pend = (&standard_subs[0]
-	      + sizeof standard_subs / sizeof standard_subs[0]);
-      for (p = &standard_subs[0]; p < pend; ++p)
-	{
-	  if (c == p->code)
-	    {
-	      const char *s;
-	      int len;
-
-	      if (p->set_last_name != NULL)
-		di->last_name = d_make_sub (di, p->set_last_name,
-					    p->set_last_name_len);
-	      if (verbose)
-		{
-		  s = p->full_expansion;
-		  len = p->full_len;
-		}
-	      else
-		{
-		  s = p->simple_expansion;
-		  len = p->simple_len;
-		}
-	      di->expansion += len;
-	      return d_make_sub (di, s, len);
-	    }
-	}
-
-      return NULL;
-    }
-}
-
-/* Resize the print buffer.  */
-
-static void
-d_print_resize (struct d_print_info *dpi, size_t add)
-{
-  size_t need;
-
-  if (dpi->buf == NULL)
-    return;
-  need = dpi->len + add;
-  while (need > dpi->alc)
-    {
-      size_t newalc;
-      char *newbuf;
-
-      newalc = dpi->alc * 2;
-      newbuf = (char *) realloc (dpi->buf, newalc);
-      if (newbuf == NULL)
-	{
-	  free (dpi->buf);
-	  dpi->buf = NULL;
-	  dpi->allocation_failure = 1;
-	  return;
-	}
-      dpi->buf = newbuf;
-      dpi->alc = newalc;
-    }
-}
-
-/* Append a character to the print buffer.  */
-
-static void
-d_print_append_char (struct d_print_info *dpi, int c)
-{
-  if (dpi->buf != NULL)
-    {
-      if (dpi->len >= dpi->alc)
-	{
-	  d_print_resize (dpi, 1);
-	  if (dpi->buf == NULL)
-	    return;
-	}
-
-      dpi->buf[dpi->len] = c;
-      ++dpi->len;
-    }
-}
-
-/* Append a buffer to the print buffer.  */
-
-static void
-d_print_append_buffer (struct d_print_info *dpi, const char *s, size_t l)
-{
-  if (dpi->buf != NULL)
-    {
-      if (dpi->len + l > dpi->alc)
-	{
-	  d_print_resize (dpi, l);
-	  if (dpi->buf == NULL)
-	    return;
-	}
-
-      memcpy (dpi->buf + dpi->len, s, l);
-      dpi->len += l;
-    }
-}
-
-/* Indicate that an error occurred during printing.  */
-
-static void
-d_print_error (struct d_print_info *dpi)
-{
-  free (dpi->buf);
-  dpi->buf = NULL;
-}
-
-/* Turn components into a human readable string.  OPTIONS is the
-   options bits passed to the demangler.  DC is the tree to print.
-   ESTIMATE is a guess at the length of the result.  This returns a
-   string allocated by malloc, or NULL on error.  On success, this
-   sets *PALC to the size of the allocated buffer.  On failure, this
-   sets *PALC to 0 for a bad parse, or to 1 for a memory allocation
-   failure.  */
-
-CP_STATIC_IF_GLIBCPP_V3
-char *
-cplus_demangle_print (int options, const struct demangle_component *dc,
-                      int estimate, size_t *palc)
-{
-  struct d_print_info dpi;
-
-  dpi.options = options;
-
-  dpi.alc = estimate + 1;
-  dpi.buf = (char *) malloc (dpi.alc);
-  if (dpi.buf == NULL)
-    {
-      *palc = 1;
-      return NULL;
-    }
-
-  dpi.len = 0;
-  dpi.templates = NULL;
-  dpi.modifiers = NULL;
-
-  dpi.allocation_failure = 0;
-
-  d_print_comp (&dpi, dc);
-
-  d_append_char (&dpi, '\0');
-
-  if (dpi.buf != NULL)
-    *palc = dpi.alc;
-  else
-    *palc = dpi.allocation_failure;
-
-  return dpi.buf;
-}
-
-/* Subroutine to handle components.  */
-
-static void
-d_print_comp (struct d_print_info *dpi,
-              const struct demangle_component *dc)
-{
-  if (dc == NULL)
-    {
-      d_print_error (dpi);
-      return;
-    }
-  if (d_print_saw_error (dpi))
-    return;
-
-  switch (dc->type)
-    {
-    case DEMANGLE_COMPONENT_NAME:
-      if ((dpi->options & DMGL_JAVA) == 0)
-	d_append_buffer (dpi, dc->u.s_name.s, dc->u.s_name.len);
-      else
-	d_print_java_identifier (dpi, dc->u.s_name.s, dc->u.s_name.len);
-      return;
-
-    case DEMANGLE_COMPONENT_QUAL_NAME:
-    case DEMANGLE_COMPONENT_LOCAL_NAME:
-      d_print_comp (dpi, d_left (dc));
-      if ((dpi->options & DMGL_JAVA) == 0)
-	d_append_string_constant (dpi, "::");
-      else
-	d_append_char (dpi, '.');
-      d_print_comp (dpi, d_right (dc));
-      return;
-
-    case DEMANGLE_COMPONENT_TYPED_NAME:
-      {
-	struct d_print_mod *hold_modifiers;
-	struct demangle_component *typed_name;
-	struct d_print_mod adpm[4];
-	unsigned int i;
-	struct d_print_template dpt;
-
-	/* Pass the name down to the type so that it can be printed in
-	   the right place for the type.  We also have to pass down
-	   any CV-qualifiers, which apply to the this parameter.  */
-	hold_modifiers = dpi->modifiers;
-	i = 0;
-	typed_name = d_left (dc);
-	while (typed_name != NULL)
-	  {
-	    if (i >= sizeof adpm / sizeof adpm[0])
-	      {
-		d_print_error (dpi);
-		return;
-	      }
-
-	    adpm[i].next = dpi->modifiers;
-	    dpi->modifiers = &adpm[i];
-	    adpm[i].mod = typed_name;
-	    adpm[i].printed = 0;
-	    adpm[i].templates = dpi->templates;
-	    ++i;
-
-	    if (typed_name->type != DEMANGLE_COMPONENT_RESTRICT_THIS
-		&& typed_name->type != DEMANGLE_COMPONENT_VOLATILE_THIS
-		&& typed_name->type != DEMANGLE_COMPONENT_CONST_THIS)
-	      break;
-
-	    typed_name = d_left (typed_name);
-	  }
-
-	/* If typed_name is a template, then it applies to the
-	   function type as well.  */
-	if (typed_name->type == DEMANGLE_COMPONENT_TEMPLATE)
-	  {
-	    dpt.next = dpi->templates;
-	    dpi->templates = &dpt;
-	    dpt.template_decl = typed_name;
-	  }
-
-	/* If typed_name is a DEMANGLE_COMPONENT_LOCAL_NAME, then
-	   there may be CV-qualifiers on its right argument which
-	   really apply here; this happens when parsing a class which
-	   is local to a function.  */
-	if (typed_name->type == DEMANGLE_COMPONENT_LOCAL_NAME)
-	  {
-	    struct demangle_component *local_name;
-
-	    local_name = d_right (typed_name);
-	    while (local_name->type == DEMANGLE_COMPONENT_RESTRICT_THIS
-		   || local_name->type == DEMANGLE_COMPONENT_VOLATILE_THIS
-		   || local_name->type == DEMANGLE_COMPONENT_CONST_THIS)
-	      {
-		if (i >= sizeof adpm / sizeof adpm[0])
-		  {
-		    d_print_error (dpi);
-		    return;
-		  }
-
-		adpm[i] = adpm[i - 1];
-		adpm[i].next = &adpm[i - 1];
-		dpi->modifiers = &adpm[i];
-
-		adpm[i - 1].mod = local_name;
-		adpm[i - 1].printed = 0;
-		adpm[i - 1].templates = dpi->templates;
-		++i;
-
-		local_name = d_left (local_name);
-	      }
-	  }
-
-	d_print_comp (dpi, d_right (dc));
-
-	if (typed_name->type == DEMANGLE_COMPONENT_TEMPLATE)
-	  dpi->templates = dpt.next;
-
-	/* If the modifiers didn't get printed by the type, print them
-	   now.  */
-	while (i > 0)
-	  {
-	    --i;
-	    if (! adpm[i].printed)
-	      {
-		d_append_char (dpi, ' ');
-		d_print_mod (dpi, adpm[i].mod);
-	      }
-	  }
-
-	dpi->modifiers = hold_modifiers;
-
-	return;
-      }
-
-    case DEMANGLE_COMPONENT_TEMPLATE:
-      {
-	struct d_print_mod *hold_dpm;
-
-	/* Don't push modifiers into a template definition.  Doing so
-	   could give the wrong definition for a template argument.
-	   Instead, treat the template essentially as a name.  */
-
-	hold_dpm = dpi->modifiers;
-	dpi->modifiers = NULL;
-
-	d_print_comp (dpi, d_left (dc));
-	if (d_last_char (dpi) == '<')
-	  d_append_char (dpi, ' ');
-	d_append_char (dpi, '<');
-	d_print_comp (dpi, d_right (dc));
-	/* Avoid generating two consecutive '>' characters, to avoid
-	   the C++ syntactic ambiguity.  */
-	if (d_last_char (dpi) == '>')
-	  d_append_char (dpi, ' ');
-	d_append_char (dpi, '>');
-
-	dpi->modifiers = hold_dpm;
-
-	return;
-      }
-
-    case DEMANGLE_COMPONENT_TEMPLATE_PARAM:
-      {
-	long i;
-	struct demangle_component *a;
-	struct d_print_template *hold_dpt;
-
-	if (dpi->templates == NULL)
-	  {
-	    d_print_error (dpi);
-	    return;
-	  }
-	i = dc->u.s_number.number;
-	for (a = d_right (dpi->templates->template_decl);
-	     a != NULL;
-	     a = d_right (a))
-	  {
-	    if (a->type != DEMANGLE_COMPONENT_TEMPLATE_ARGLIST)
-	      {
-		d_print_error (dpi);
-		return;
-	      }
-	    if (i <= 0)
-	      break;
-	    --i;
-	  }
-	if (i != 0 || a == NULL)
-	  {
-	    d_print_error (dpi);
-	    return;
-	  }
-
-	/* While processing this parameter, we need to pop the list of
-	   templates.  This is because the template parameter may
-	   itself be a reference to a parameter of an outer
-	   template.  */
-
-	hold_dpt = dpi->templates;
-	dpi->templates = hold_dpt->next;
-
-	d_print_comp (dpi, d_left (a));
-
-	dpi->templates = hold_dpt;
-
-	return;
-      }
-
-    case DEMANGLE_COMPONENT_CTOR:
-      d_print_comp (dpi, dc->u.s_ctor.name);
-      return;
-
-    case DEMANGLE_COMPONENT_DTOR:
-      d_append_char (dpi, '~');
-      d_print_comp (dpi, dc->u.s_dtor.name);
-      return;
-
-    case DEMANGLE_COMPONENT_VTABLE:
-      d_append_string_constant (dpi, "vtable for ");
-      d_print_comp (dpi, d_left (dc));
-      return;
-
-    case DEMANGLE_COMPONENT_VTT:
-      d_append_string_constant (dpi, "VTT for ");
-      d_print_comp (dpi, d_left (dc));
-      return;
-
-    case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:
-      d_append_string_constant (dpi, "construction vtable for ");
-      d_print_comp (dpi, d_left (dc));
-      d_append_string_constant (dpi, "-in-");
-      d_print_comp (dpi, d_right (dc));
-      return;
-
-    case DEMANGLE_COMPONENT_TYPEINFO:
-      d_append_string_constant (dpi, "typeinfo for ");
-      d_print_comp (dpi, d_left (dc));
-      return;
-
-    case DEMANGLE_COMPONENT_TYPEINFO_NAME:
-      d_append_string_constant (dpi, "typeinfo name for ");
-      d_print_comp (dpi, d_left (dc));
-      return;
-
-    case DEMANGLE_COMPONENT_TYPEINFO_FN:
-      d_append_string_constant (dpi, "typeinfo fn for ");
-      d_print_comp (dpi, d_left (dc));
-      return;
-
-    case DEMANGLE_COMPONENT_THUNK:
-      d_append_string_constant (dpi, "non-virtual thunk to ");
-      d_print_comp (dpi, d_left (dc));
-      return;
-
-    case DEMANGLE_COMPONENT_VIRTUAL_THUNK:
-      d_append_string_constant (dpi, "virtual thunk to ");
-      d_print_comp (dpi, d_left (dc));
-      return;
-
-    case DEMANGLE_COMPONENT_COVARIANT_THUNK:
-      d_append_string_constant (dpi, "covariant return thunk to ");
-      d_print_comp (dpi, d_left (dc));
-      return;
-
-    case DEMANGLE_COMPONENT_JAVA_CLASS:
-      d_append_string_constant (dpi, "java Class for ");
-      d_print_comp (dpi, d_left (dc));
-      return;
-
-    case DEMANGLE_COMPONENT_GUARD:
-      d_append_string_constant (dpi, "guard variable for ");
-      d_print_comp (dpi, d_left (dc));
-      return;
-
-    case DEMANGLE_COMPONENT_REFTEMP:
-      d_append_string_constant (dpi, "reference temporary for ");
-      d_print_comp (dpi, d_left (dc));
-      return;
-
-    case DEMANGLE_COMPONENT_HIDDEN_ALIAS:
-      d_append_string_constant (dpi, "hidden alias for ");
-      d_print_comp (dpi, d_left (dc));
-      return;
-
-    case DEMANGLE_COMPONENT_SUB_STD:
-      d_append_buffer (dpi, dc->u.s_string.string, dc->u.s_string.len);
-      return;
-
-    case DEMANGLE_COMPONENT_RESTRICT:
-    case DEMANGLE_COMPONENT_VOLATILE:
-    case DEMANGLE_COMPONENT_CONST:
-      {
-	struct d_print_mod *pdpm;
-
-	/* When printing arrays, it's possible to have cases where the
-	   same CV-qualifier gets pushed on the stack multiple times.
-	   We only need to print it once.  */
-
-	for (pdpm = dpi->modifiers; pdpm != NULL; pdpm = pdpm->next)
-	  {
-	    if (! pdpm->printed)
-	      {
-		if (pdpm->mod->type != DEMANGLE_COMPONENT_RESTRICT
-		    && pdpm->mod->type != DEMANGLE_COMPONENT_VOLATILE
-		    && pdpm->mod->type != DEMANGLE_COMPONENT_CONST)
-		  break;
-		if (pdpm->mod->type == dc->type)
-		  {
-		    d_print_comp (dpi, d_left (dc));
-		    return;
-		  }
-	      }
-	  }
-      }
-      /* Fall through.  */
-    case DEMANGLE_COMPONENT_RESTRICT_THIS:
-    case DEMANGLE_COMPONENT_VOLATILE_THIS:
-    case DEMANGLE_COMPONENT_CONST_THIS:
-    case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:
-    case DEMANGLE_COMPONENT_POINTER:
-    case DEMANGLE_COMPONENT_REFERENCE:
-    case DEMANGLE_COMPONENT_COMPLEX:
-    case DEMANGLE_COMPONENT_IMAGINARY:
-      {
-	/* We keep a list of modifiers on the stack.  */
-	struct d_print_mod dpm;
-
-	dpm.next = dpi->modifiers;
-	dpi->modifiers = &dpm;
-	dpm.mod = dc;
-	dpm.printed = 0;
-	dpm.templates = dpi->templates;
-
-	d_print_comp (dpi, d_left (dc));
-
-	/* If the modifier didn't get printed by the type, print it
-	   now.  */
-	if (! dpm.printed)
-	  d_print_mod (dpi, dc);
-
-	dpi->modifiers = dpm.next;
-
-	return;
-      }
-
-    case DEMANGLE_COMPONENT_BUILTIN_TYPE:
-      if ((dpi->options & DMGL_JAVA) == 0)
-	d_append_buffer (dpi, dc->u.s_builtin.type->name,
-			 dc->u.s_builtin.type->len);
-      else
-	d_append_buffer (dpi, dc->u.s_builtin.type->java_name,
-			 dc->u.s_builtin.type->java_len);
-      return;
-
-    case DEMANGLE_COMPONENT_VENDOR_TYPE:
-      d_print_comp (dpi, d_left (dc));
-      return;
-
-    case DEMANGLE_COMPONENT_FUNCTION_TYPE:
-      {
-	if ((dpi->options & DMGL_RET_POSTFIX) != 0)
-	  d_print_function_type (dpi, dc, dpi->modifiers);
-
-	/* Print return type if present */
-	if (d_left (dc) != NULL)
-	  {
-	    struct d_print_mod dpm;
-
-	    /* We must pass this type down as a modifier in order to
-	       print it in the right location.  */
-	    dpm.next = dpi->modifiers;
-	    dpi->modifiers = &dpm;
-	    dpm.mod = dc;
-	    dpm.printed = 0;
-	    dpm.templates = dpi->templates;
-
-	    d_print_comp (dpi, d_left (dc));
-
-	    dpi->modifiers = dpm.next;
-
-	    if (dpm.printed)
-	      return;
-
-	    /* In standard prefix notation, there is a space between the
-	       return type and the function signature.  */
-	    if ((dpi->options & DMGL_RET_POSTFIX) == 0)
-	      d_append_char (dpi, ' ');
-	  }
-
-	if ((dpi->options & DMGL_RET_POSTFIX) == 0) 
-	  d_print_function_type (dpi, dc, dpi->modifiers);
-
-	return;
-      }
-
-    case DEMANGLE_COMPONENT_ARRAY_TYPE:
-      {
-	struct d_print_mod *hold_modifiers;
-	struct d_print_mod adpm[4];
-	unsigned int i;
-	struct d_print_mod *pdpm;
-
-	/* We must pass this type down as a modifier in order to print
-	   multi-dimensional arrays correctly.  If the array itself is
-	   CV-qualified, we act as though the element type were
-	   CV-qualified.  We do this by copying the modifiers down
-	   rather than fiddling pointers, so that we don't wind up
-	   with a d_print_mod higher on the stack pointing into our
-	   stack frame after we return.  */
-
-	hold_modifiers = dpi->modifiers;
-
-	adpm[0].next = hold_modifiers;
-	dpi->modifiers = &adpm[0];
-	adpm[0].mod = dc;
-	adpm[0].printed = 0;
-	adpm[0].templates = dpi->templates;
-
-	i = 1;
-	pdpm = hold_modifiers;
-	while (pdpm != NULL
-	       && (pdpm->mod->type == DEMANGLE_COMPONENT_RESTRICT
-		   || pdpm->mod->type == DEMANGLE_COMPONENT_VOLATILE
-		   || pdpm->mod->type == DEMANGLE_COMPONENT_CONST))
-	  {
-	    if (! pdpm->printed)
-	      {
-		if (i >= sizeof adpm / sizeof adpm[0])
-		  {
-		    d_print_error (dpi);
-		    return;
-		  }
-
-		adpm[i] = *pdpm;
-		adpm[i].next = dpi->modifiers;
-		dpi->modifiers = &adpm[i];
-		pdpm->printed = 1;
-		++i;
-	      }
-
-	    pdpm = pdpm->next;
-	  }
-
-	d_print_comp (dpi, d_right (dc));
-
-	dpi->modifiers = hold_modifiers;
-
-	if (adpm[0].printed)
-	  return;
-
-	while (i > 1)
-	  {
-	    --i;
-	    d_print_mod (dpi, adpm[i].mod);
-	  }
-
-	d_print_array_type (dpi, dc, dpi->modifiers);
-
-	return;
-      }
-
-    case DEMANGLE_COMPONENT_PTRMEM_TYPE:
-      {
-	struct d_print_mod dpm;
-
-	dpm.next = dpi->modifiers;
-	dpi->modifiers = &dpm;
-	dpm.mod = dc;
-	dpm.printed = 0;
-	dpm.templates = dpi->templates;
-
-	d_print_comp (dpi, d_right (dc));
-
-	/* If the modifier didn't get printed by the type, print it
-	   now.  */
-	if (! dpm.printed)
-	  {
-	    d_append_char (dpi, ' ');
-	    d_print_comp (dpi, d_left (dc));
-	    d_append_string_constant (dpi, "::*");
-	  }
-
-	dpi->modifiers = dpm.next;
-
-	return;
-      }
-
-    case DEMANGLE_COMPONENT_ARGLIST:
-    case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:
-      d_print_comp (dpi, d_left (dc));
-      if (d_right (dc) != NULL)
-	{
-	  d_append_string_constant (dpi, ", ");
-	  d_print_comp (dpi, d_right (dc));
-	}
-      return;
-
-    case DEMANGLE_COMPONENT_OPERATOR:
-      {
-	char c;
-
-	d_append_string_constant (dpi, "operator");
-	c = dc->u.s_operator.op->name[0];
-	if (IS_LOWER (c))
-	  d_append_char (dpi, ' ');
-	d_append_buffer (dpi, dc->u.s_operator.op->name,
-			 dc->u.s_operator.op->len);
-	return;
-      }
-
-    case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:
-      d_append_string_constant (dpi, "operator ");
-      d_print_comp (dpi, dc->u.s_extended_operator.name);
-      return;
-
-    case DEMANGLE_COMPONENT_CAST:
-      d_append_string_constant (dpi, "operator ");
-      d_print_cast (dpi, dc);
-      return;
-
-    case DEMANGLE_COMPONENT_UNARY:
-      if (d_left (dc)->type != DEMANGLE_COMPONENT_CAST)
-	d_print_expr_op (dpi, d_left (dc));
-      else
-	{
-	  d_append_char (dpi, '(');
-	  d_print_cast (dpi, d_left (dc));
-	  d_append_char (dpi, ')');
-	}
-      d_append_char (dpi, '(');
-      d_print_comp (dpi, d_right (dc));
-      d_append_char (dpi, ')');
-      return;
-
-    case DEMANGLE_COMPONENT_BINARY:
-      if (d_right (dc)->type != DEMANGLE_COMPONENT_BINARY_ARGS)
-	{
-	  d_print_error (dpi);
-	  return;
-	}
-
-      /* We wrap an expression which uses the greater-than operator in
-	 an extra layer of parens so that it does not get confused
-	 with the '>' which ends the template parameters.  */
-      if (d_left (dc)->type == DEMANGLE_COMPONENT_OPERATOR
-	  && d_left (dc)->u.s_operator.op->len == 1
-	  && d_left (dc)->u.s_operator.op->name[0] == '>')
-	d_append_char (dpi, '(');
-
-      d_append_char (dpi, '(');
-      d_print_comp (dpi, d_left (d_right (dc)));
-      d_append_string_constant (dpi, ") ");
-      d_print_expr_op (dpi, d_left (dc));
-      d_append_string_constant (dpi, " (");
-      d_print_comp (dpi, d_right (d_right (dc)));
-      d_append_char (dpi, ')');
-
-      if (d_left (dc)->type == DEMANGLE_COMPONENT_OPERATOR
-	  && d_left (dc)->u.s_operator.op->len == 1
-	  && d_left (dc)->u.s_operator.op->name[0] == '>')
-	d_append_char (dpi, ')');
-
-      return;
-
-    case DEMANGLE_COMPONENT_BINARY_ARGS:
-      /* We should only see this as part of DEMANGLE_COMPONENT_BINARY.  */
-      d_print_error (dpi);
-      return;
-
-    case DEMANGLE_COMPONENT_TRINARY:
-      if (d_right (dc)->type != DEMANGLE_COMPONENT_TRINARY_ARG1
-	  || d_right (d_right (dc))->type != DEMANGLE_COMPONENT_TRINARY_ARG2)
-	{
-	  d_print_error (dpi);
-	  return;
-	}
-      d_append_char (dpi, '(');
-      d_print_comp (dpi, d_left (d_right (dc)));
-      d_append_string_constant (dpi, ") ");
-      d_print_expr_op (dpi, d_left (dc));
-      d_append_string_constant (dpi, " (");
-      d_print_comp (dpi, d_left (d_right (d_right (dc))));
-      d_append_string_constant (dpi, ") : (");
-      d_print_comp (dpi, d_right (d_right (d_right (dc))));
-      d_append_char (dpi, ')');
-      return;
-
-    case DEMANGLE_COMPONENT_TRINARY_ARG1:
-    case DEMANGLE_COMPONENT_TRINARY_ARG2:
-      /* We should only see these are part of DEMANGLE_COMPONENT_TRINARY.  */
-      d_print_error (dpi);
-      return;
-
-    case DEMANGLE_COMPONENT_LITERAL:
-    case DEMANGLE_COMPONENT_LITERAL_NEG:
-      {
-	enum d_builtin_type_print tp;
-
-	/* For some builtin types, produce simpler output.  */
-	tp = D_PRINT_DEFAULT;
-	if (d_left (dc)->type == DEMANGLE_COMPONENT_BUILTIN_TYPE)
-	  {
-	    tp = d_left (dc)->u.s_builtin.type->print;
-	    switch (tp)
-	      {
-	      case D_PRINT_INT:
-	      case D_PRINT_UNSIGNED:
-	      case D_PRINT_LONG:
-	      case D_PRINT_UNSIGNED_LONG:
-	      case D_PRINT_LONG_LONG:
-	      case D_PRINT_UNSIGNED_LONG_LONG:
-		if (d_right (dc)->type == DEMANGLE_COMPONENT_NAME)
-		  {
-		    if (dc->type == DEMANGLE_COMPONENT_LITERAL_NEG)
-		      d_append_char (dpi, '-');
-		    d_print_comp (dpi, d_right (dc));
-		    switch (tp)
-		      {
-		      default:
-			break;
-		      case D_PRINT_UNSIGNED:
-			d_append_char (dpi, 'u');
-			break;
-		      case D_PRINT_LONG:
-			d_append_char (dpi, 'l');
-			break;
-		      case D_PRINT_UNSIGNED_LONG:
-			d_append_string_constant (dpi, "ul");
-			break;
-		      case D_PRINT_LONG_LONG:
-			d_append_string_constant (dpi, "ll");
-			break;
-		      case D_PRINT_UNSIGNED_LONG_LONG:
-			d_append_string_constant (dpi, "ull");
-			break;
-		      }
-		    return;
-		  }
-		break;
-
-	      case D_PRINT_BOOL:
-		if (d_right (dc)->type == DEMANGLE_COMPONENT_NAME
-		    && d_right (dc)->u.s_name.len == 1
-		    && dc->type == DEMANGLE_COMPONENT_LITERAL)
-		  {
-		    switch (d_right (dc)->u.s_name.s[0])
-		      {
-		      case '0':
-			d_append_string_constant (dpi, "false");
-			return;
-		      case '1':
-			d_append_string_constant (dpi, "true");
-			return;
-		      default:
-			break;
-		      }
-		  }
-		break;
-
-	      default:
-		break;
-	      }
-	  }
-
-	d_append_char (dpi, '(');
-	d_print_comp (dpi, d_left (dc));
-	d_append_char (dpi, ')');
-	if (dc->type == DEMANGLE_COMPONENT_LITERAL_NEG)
-	  d_append_char (dpi, '-');
-	if (tp == D_PRINT_FLOAT)
-	  d_append_char (dpi, '[');
-	d_print_comp (dpi, d_right (dc));
-	if (tp == D_PRINT_FLOAT)
-	  d_append_char (dpi, ']');
-      }
-      return;
-
-    default:
-      d_print_error (dpi);
-      return;
-    }
-}
-
-/* Print a Java dentifier.  For Java we try to handle encoded extended
-   Unicode characters.  The C++ ABI doesn't mention Unicode encoding,
-   so we don't it for C++.  Characters are encoded as
-   __U<hex-char>+_.  */
-
-static void
-d_print_java_identifier (struct d_print_info *dpi, const char *name, int len)
-{
-  const char *p;
-  const char *end;
-
-  end = name + len;
-  for (p = name; p < end; ++p)
-    {
-      if (end - p > 3
-	  && p[0] == '_'
-	  && p[1] == '_'
-	  && p[2] == 'U')
-	{
-	  unsigned long c;
-	  const char *q;
-
-	  c = 0;
-	  for (q = p + 3; q < end; ++q)
-	    {
-	      int dig;
-
-	      if (IS_DIGIT (*q))
-		dig = *q - '0';
-	      else if (*q >= 'A' && *q <= 'F')
-		dig = *q - 'A' + 10;
-	      else if (*q >= 'a' && *q <= 'f')
-		dig = *q - 'a' + 10;
-	      else
-		break;
-
-	      c = c * 16 + dig;
-	    }
-	  /* If the Unicode character is larger than 256, we don't try
-	     to deal with it here.  FIXME.  */
-	  if (q < end && *q == '_' && c < 256)
-	    {
-	      d_append_char (dpi, c);
-	      p = q;
-	      continue;
-	    }
-	}
-
-      d_append_char (dpi, *p);
-    }
-}
-
-/* Print a list of modifiers.  SUFFIX is 1 if we are printing
-   qualifiers on this after printing a function.  */
-
-static void
-d_print_mod_list (struct d_print_info *dpi,
-                  struct d_print_mod *mods, int suffix)
-{
-  struct d_print_template *hold_dpt;
-
-  if (mods == NULL || d_print_saw_error (dpi))
-    return;
-
-  if (mods->printed
-      || (! suffix
-	  && (mods->mod->type == DEMANGLE_COMPONENT_RESTRICT_THIS
-	      || mods->mod->type == DEMANGLE_COMPONENT_VOLATILE_THIS
-	      || mods->mod->type == DEMANGLE_COMPONENT_CONST_THIS)))
-    {
-      d_print_mod_list (dpi, mods->next, suffix);
-      return;
-    }
-
-  mods->printed = 1;
-
-  hold_dpt = dpi->templates;
-  dpi->templates = mods->templates;
-
-  if (mods->mod->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)
-    {
-      d_print_function_type (dpi, mods->mod, mods->next);
-      dpi->templates = hold_dpt;
-      return;
-    }
-  else if (mods->mod->type == DEMANGLE_COMPONENT_ARRAY_TYPE)
-    {
-      d_print_array_type (dpi, mods->mod, mods->next);
-      dpi->templates = hold_dpt;
-      return;
-    }
-  else if (mods->mod->type == DEMANGLE_COMPONENT_LOCAL_NAME)
-    {
-      struct d_print_mod *hold_modifiers;
-      struct demangle_component *dc;
-
-      /* When this is on the modifier stack, we have pulled any
-	 qualifiers off the right argument already.  Otherwise, we
-	 print it as usual, but don't let the left argument see any
-	 modifiers.  */
-
-      hold_modifiers = dpi->modifiers;
-      dpi->modifiers = NULL;
-      d_print_comp (dpi, d_left (mods->mod));
-      dpi->modifiers = hold_modifiers;
-
-      if ((dpi->options & DMGL_JAVA) == 0)
-	d_append_string_constant (dpi, "::");
-      else
-	d_append_char (dpi, '.');
-
-      dc = d_right (mods->mod);
-      while (dc->type == DEMANGLE_COMPONENT_RESTRICT_THIS
-	     || dc->type == DEMANGLE_COMPONENT_VOLATILE_THIS
-	     || dc->type == DEMANGLE_COMPONENT_CONST_THIS)
-	dc = d_left (dc);
-
-      d_print_comp (dpi, dc);
-
-      dpi->templates = hold_dpt;
-      return;
-    }
-
-  d_print_mod (dpi, mods->mod);
-
-  dpi->templates = hold_dpt;
-
-  d_print_mod_list (dpi, mods->next, suffix);
-}
-
-/* Print a modifier.  */
-
-static void
-d_print_mod (struct d_print_info *dpi,
-             const struct demangle_component *mod)
-{
-  switch (mod->type)
-    {
-    case DEMANGLE_COMPONENT_RESTRICT:
-    case DEMANGLE_COMPONENT_RESTRICT_THIS:
-      d_append_string_constant (dpi, " restrict");
-      return;
-    case DEMANGLE_COMPONENT_VOLATILE:
-    case DEMANGLE_COMPONENT_VOLATILE_THIS:
-      d_append_string_constant (dpi, " volatile");
-      return;
-    case DEMANGLE_COMPONENT_CONST:
-    case DEMANGLE_COMPONENT_CONST_THIS:
-      d_append_string_constant (dpi, " const");
-      return;
-    case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:
-      d_append_char (dpi, ' ');
-      d_print_comp (dpi, d_right (mod));
-      return;
-    case DEMANGLE_COMPONENT_POINTER:
-      /* There is no pointer symbol in Java.  */
-      if ((dpi->options & DMGL_JAVA) == 0)
-	d_append_char (dpi, '*');
-      return;
-    case DEMANGLE_COMPONENT_REFERENCE:
-      d_append_char (dpi, '&');
-      return;
-    case DEMANGLE_COMPONENT_COMPLEX:
-      d_append_string_constant (dpi, "complex ");
-      return;
-    case DEMANGLE_COMPONENT_IMAGINARY:
-      d_append_string_constant (dpi, "imaginary ");
-      return;
-    case DEMANGLE_COMPONENT_PTRMEM_TYPE:
-      if (d_last_char (dpi) != '(')
-	d_append_char (dpi, ' ');
-      d_print_comp (dpi, d_left (mod));
-      d_append_string_constant (dpi, "::*");
-      return;
-    case DEMANGLE_COMPONENT_TYPED_NAME:
-      d_print_comp (dpi, d_left (mod));
-      return;
-    default:
-      /* Otherwise, we have something that won't go back on the
-	 modifier stack, so we can just print it.  */
-      d_print_comp (dpi, mod);
-      return;
-    }
-}
-
-/* Print a function type, except for the return type.  */
-
-static void
-d_print_function_type (struct d_print_info *dpi,
-                       const struct demangle_component *dc,
-                       struct d_print_mod *mods)
-{
-  int need_paren;
-  int saw_mod;
-  int need_space;
-  struct d_print_mod *p;
-  struct d_print_mod *hold_modifiers;
-
-  need_paren = 0;
-  saw_mod = 0;
-  need_space = 0;
-  for (p = mods; p != NULL; p = p->next)
-    {
-      if (p->printed)
-	break;
-
-      saw_mod = 1;
-      switch (p->mod->type)
-	{
-	case DEMANGLE_COMPONENT_POINTER:
-	case DEMANGLE_COMPONENT_REFERENCE:
-	  need_paren = 1;
-	  break;
-	case DEMANGLE_COMPONENT_RESTRICT:
-	case DEMANGLE_COMPONENT_VOLATILE:
-	case DEMANGLE_COMPONENT_CONST:
-	case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:
-	case DEMANGLE_COMPONENT_COMPLEX:
-	case DEMANGLE_COMPONENT_IMAGINARY:
-	case DEMANGLE_COMPONENT_PTRMEM_TYPE:
-	  need_space = 1;
-	  need_paren = 1;
-	  break;
-	case DEMANGLE_COMPONENT_RESTRICT_THIS:
-	case DEMANGLE_COMPONENT_VOLATILE_THIS:
-	case DEMANGLE_COMPONENT_CONST_THIS:
-	  break;
-	default:
-	  break;
-	}
-      if (need_paren)
-	break;
-    }
-
-  if (d_left (dc) != NULL && ! saw_mod)
-    need_paren = 1;
-
-  if (need_paren)
-    {
-      if (! need_space)
-	{
-	  if (d_last_char (dpi) != '('
-	      && d_last_char (dpi) != '*')
-	    need_space = 1;
-	}
-      if (need_space && d_last_char (dpi) != ' ')
-	d_append_char (dpi, ' ');
-      d_append_char (dpi, '(');
-    }
-
-  hold_modifiers = dpi->modifiers;
-  dpi->modifiers = NULL;
-
-  d_print_mod_list (dpi, mods, 0);
-
-  if (need_paren)
-    d_append_char (dpi, ')');
-
-  d_append_char (dpi, '(');
-
-  if (d_right (dc) != NULL)
-    d_print_comp (dpi, d_right (dc));
-
-  d_append_char (dpi, ')');
-
-  d_print_mod_list (dpi, mods, 1);
-
-  dpi->modifiers = hold_modifiers;
-}
-
-/* Print an array type, except for the element type.  */
-
-static void
-d_print_array_type (struct d_print_info *dpi,
-                    const struct demangle_component *dc,
-                    struct d_print_mod *mods)
-{
-  int need_space;
-
-  need_space = 1;
-  if (mods != NULL)
-    {
-      int need_paren;
-      struct d_print_mod *p;
-
-      need_paren = 0;
-      for (p = mods; p != NULL; p = p->next)
-	{
-	  if (! p->printed)
-	    {
-	      if (p->mod->type == DEMANGLE_COMPONENT_ARRAY_TYPE)
-		{
-		  need_space = 0;
-		  break;
-		}
-	      else
-		{
-		  need_paren = 1;
-		  need_space = 1;
-		  break;
-		}
-	    }
-	}
-
-      if (need_paren)
-	d_append_string_constant (dpi, " (");
-
-      d_print_mod_list (dpi, mods, 0);
-
-      if (need_paren)
-	d_append_char (dpi, ')');
-    }
-
-  if (need_space)
-    d_append_char (dpi, ' ');
-
-  d_append_char (dpi, '[');
-
-  if (d_left (dc) != NULL)
-    d_print_comp (dpi, d_left (dc));
-
-  d_append_char (dpi, ']');
-}
-
-/* Print an operator in an expression.  */
-
-static void
-d_print_expr_op (struct d_print_info *dpi,
-                 const struct demangle_component *dc)
-{
-  if (dc->type == DEMANGLE_COMPONENT_OPERATOR)
-    d_append_buffer (dpi, dc->u.s_operator.op->name,
-		     dc->u.s_operator.op->len);
-  else
-    d_print_comp (dpi, dc);
-}
-
-/* Print a cast.  */
-
-static void
-d_print_cast (struct d_print_info *dpi,
-              const struct demangle_component *dc)
-{
-  if (d_left (dc)->type != DEMANGLE_COMPONENT_TEMPLATE)
-    d_print_comp (dpi, d_left (dc));
-  else
-    {
-      struct d_print_mod *hold_dpm;
-      struct d_print_template dpt;
-
-      /* It appears that for a templated cast operator, we need to put
-	 the template parameters in scope for the operator name, but
-	 not for the parameters.  The effect is that we need to handle
-	 the template printing here.  */
-
-      hold_dpm = dpi->modifiers;
-      dpi->modifiers = NULL;
-
-      dpt.next = dpi->templates;
-      dpi->templates = &dpt;
-      dpt.template_decl = d_left (dc);
-
-      d_print_comp (dpi, d_left (d_left (dc)));
-
-      dpi->templates = dpt.next;
-
-      if (d_last_char (dpi) == '<')
-	d_append_char (dpi, ' ');
-      d_append_char (dpi, '<');
-      d_print_comp (dpi, d_right (d_left (dc)));
-      /* Avoid generating two consecutive '>' characters, to avoid
-	 the C++ syntactic ambiguity.  */
-      if (d_last_char (dpi) == '>')
-	d_append_char (dpi, ' ');
-      d_append_char (dpi, '>');
-
-      dpi->modifiers = hold_dpm;
-    }
-}
-
-/* Initialize the information structure we use to pass around
-   information.  */
-
-CP_STATIC_IF_GLIBCPP_V3
-void
-cplus_demangle_init_info (const char *mangled, int options, size_t len,
-                          struct d_info *di)
-{
-  di->s = mangled;
-  di->send = mangled + len;
-  di->options = options;
-
-  di->n = mangled;
-
-  /* We can not need more components than twice the number of chars in
-     the mangled string.  Most components correspond directly to
-     chars, but the ARGLIST types are exceptions.  */
-  di->num_comps = 2 * len;
-  di->next_comp = 0;
-
-  /* Similarly, we can not need more substitutions than there are
-     chars in the mangled string.  */
-  di->num_subs = len;
-  di->next_sub = 0;
-  di->did_subs = 0;
-
-  di->last_name = NULL;
-
-  di->expansion = 0;
-}
-
-/* Entry point for the demangler.  If MANGLED is a g++ v3 ABI mangled
-   name, return a buffer allocated with malloc holding the demangled
-   name.  OPTIONS is the usual libiberty demangler options.  On
-   success, this sets *PALC to the allocated size of the returned
-   buffer.  On failure, this sets *PALC to 0 for a bad name, or 1 for
-   a memory allocation failure.  On failure, this returns NULL.  */
-
-static char *
-d_demangle (const char* mangled, int options, size_t *palc)
-{
-  size_t len;
-  int type;
-  struct d_info di;
-  struct demangle_component *dc;
-  int estimate;
-  char *ret;
-
-  *palc = 0;
-
-  len = strlen (mangled);
-
-  if (mangled[0] == '_' && mangled[1] == 'Z')
-    type = 0;
-  else if (strncmp (mangled, "_GLOBAL_", 8) == 0
-	   && (mangled[8] == '.' || mangled[8] == '_' || mangled[8] == '$')
-	   && (mangled[9] == 'D' || mangled[9] == 'I')
-	   && mangled[10] == '_')
-    {
-      char *r;
-
-      r = (char *) malloc (40 + len - 11);
-      if (r == NULL)
-	*palc = 1;
-      else
-	{
-	  if (mangled[9] == 'I')
-	    strcpy (r, "global constructors keyed to ");
-	  else
-	    strcpy (r, "global destructors keyed to ");
-	  strcat (r, mangled + 11);
-	}
-      return r;
-    }
-  else
-    {
-      if ((options & DMGL_TYPES) == 0)
-	return NULL;
-      type = 1;
-    }
-
-  cplus_demangle_init_info (mangled, options, len, &di);
-
-  {
-#ifdef CP_DYNAMIC_ARRAYS
-    __extension__ struct demangle_component comps[di.num_comps];
-    __extension__ struct demangle_component *subs[di.num_subs];
-
-    di.comps = &comps[0];
-    di.subs = &subs[0];
-#else
-    di.comps = ((struct demangle_component *)
-		malloc (di.num_comps * sizeof (struct demangle_component)));
-    di.subs = ((struct demangle_component **)
-	       malloc (di.num_subs * sizeof (struct demangle_component *)));
-    if (di.comps == NULL || di.subs == NULL)
-      {
-	if (di.comps != NULL)
-	  free (di.comps);
-	if (di.subs != NULL)
-	  free (di.subs);
-	*palc = 1;
-	return NULL;
-      }
-#endif
-
-    if (! type)
-      dc = cplus_demangle_mangled_name (&di, 1);
-    else
-      dc = cplus_demangle_type (&di);
-
-    /* If DMGL_PARAMS is set, then if we didn't consume the entire
-       mangled string, then we didn't successfully demangle it.  If
-       DMGL_PARAMS is not set, we didn't look at the trailing
-       parameters.  */
-    if (((options & DMGL_PARAMS) != 0) && d_peek_char (&di) != '\0')
-      dc = NULL;
-
-#ifdef CP_DEMANGLE_DEBUG
-    if (dc == NULL)
-      printf ("failed demangling\n");
-    else
-      d_dump (dc, 0);
-#endif
-
-    /* We try to guess the length of the demangled string, to minimize
-       calls to realloc during demangling.  */
-    estimate = len + di.expansion + 10 * di.did_subs;
-    estimate += estimate / 8;
-
-    ret = NULL;
-    if (dc != NULL)
-      ret = cplus_demangle_print (options, dc, estimate, palc);
-
-#ifndef CP_DYNAMIC_ARRAYS
-    free (di.comps);
-    free (di.subs);
-#endif
-
-#ifdef CP_DEMANGLE_DEBUG
-    if (ret != NULL)
-      {
-	int rlen;
-
-	rlen = strlen (ret);
-	if (rlen > 2 * estimate)
-	  printf ("*** Length %d much greater than estimate %d\n",
-		  rlen, estimate);
-	else if (rlen > estimate)
-	  printf ("*** Length %d greater than estimate %d\n",
-		  rlen, estimate);
-	else if (rlen < estimate / 2)
-	  printf ("*** Length %d much less than estimate %d\n",
-		  rlen, estimate);
-      }
-#endif
-  }
-
-  return ret;
-}
-
-#if defined(IN_LIBGCC2) || defined(IN_GLIBCPP_V3)
-
-extern char *__cxa_demangle (const char *, char *, size_t *, int *);
-
-/* ia64 ABI-mandated entry point in the C++ runtime library for
-   performing demangling.  MANGLED_NAME is a NUL-terminated character
-   string containing the name to be demangled.
-
-   OUTPUT_BUFFER is a region of memory, allocated with malloc, of
-   *LENGTH bytes, into which the demangled name is stored.  If
-   OUTPUT_BUFFER is not long enough, it is expanded using realloc.
-   OUTPUT_BUFFER may instead be NULL; in that case, the demangled name
-   is placed in a region of memory allocated with malloc.
-
-   If LENGTH is non-NULL, the length of the buffer conaining the
-   demangled name, is placed in *LENGTH.
-
-   The return value is a pointer to the start of the NUL-terminated
-   demangled name, or NULL if the demangling fails.  The caller is
-   responsible for deallocating this memory using free.
-
-   *STATUS is set to one of the following values:
-      0: The demangling operation succeeded.
-     -1: A memory allocation failure occurred.
-     -2: MANGLED_NAME is not a valid name under the C++ ABI mangling rules.
-     -3: One of the arguments is invalid.
-
-   The demangling is performed using the C++ ABI mangling rules, with
-   GNU extensions.  */
-
-char *
-__cxa_demangle (const char *mangled_name, char *output_buffer,
-                size_t *length, int *status)
-{
-  char *demangled;
-  size_t alc;
-
-  if (mangled_name == NULL)
-    {
-      if (status != NULL)
-	*status = -3;
-      return NULL;
-    }
-
-  if (output_buffer != NULL && length == NULL)
-    {
-      if (status != NULL)
-	*status = -3;
-      return NULL;
-    }
-
-  demangled = d_demangle (mangled_name, DMGL_PARAMS | DMGL_TYPES, &alc);
-
-  if (demangled == NULL)
-    {
-      if (status != NULL)
-	{
-	  if (alc == 1)
-	    *status = -1;
-	  else
-	    *status = -2;
-	}
-      return NULL;
-    }
-
-  if (output_buffer == NULL)
-    {
-      if (length != NULL)
-	*length = alc;
-    }
-  else
-    {
-      if (strlen (demangled) < *length)
-	{
-	  strcpy (output_buffer, demangled);
-	  free (demangled);
-	  demangled = output_buffer;
-	}
-      else
-	{
-	  free (output_buffer);
-	  *length = alc;
-	}
-    }
-
-  if (status != NULL)
-    *status = 0;
-
-  return demangled;
-}
-
-#else /* ! (IN_LIBGCC2 || IN_GLIBCPP_V3) */
-
-/* Entry point for libiberty demangler.  If MANGLED is a g++ v3 ABI
-   mangled name, return a buffer allocated with malloc holding the
-   demangled name.  Otherwise, return NULL.  */
-
-char *
-cplus_demangle_v3 (const char* mangled, int options)
-{
-  size_t alc;
-
-  return d_demangle (mangled, options, &alc);
-}
-
-/* Demangle a Java symbol.  Java uses a subset of the V3 ABI C++ mangling 
-   conventions, but the output formatting is a little different.
-   This instructs the C++ demangler not to emit pointer characters ("*"), and 
-   to use Java's namespace separator symbol ("." instead of "::").  It then 
-   does an additional pass over the demangled output to replace instances 
-   of JArray<TYPE> with TYPE[].  */
-
-char *
-java_demangle_v3 (const char* mangled)
-{
-  size_t alc;
-  char *demangled;
-  int nesting;
-  char *from;
-  char *to;
-
-  demangled = d_demangle (mangled, DMGL_JAVA | DMGL_PARAMS | DMGL_RET_POSTFIX, 
-			  &alc);
-
-  if (demangled == NULL)
-    return NULL;
-
-  nesting = 0;
-  from = demangled;
-  to = from;
-  while (*from != '\0')
-    {
-      if (strncmp (from, "JArray<", 7) == 0)
-	{
-	  from += 7;
-	  ++nesting;
-	}
-      else if (nesting > 0 && *from == '>')
-	{
-	  while (to > demangled && to[-1] == ' ')
-	    --to;
-	  *to++ = '[';
-	  *to++ = ']';
-	  --nesting;
-	  ++from;
-	}
-      else
-	*to++ = *from++;
-    }
-
-  *to = '\0';
-
-  return demangled;
-}
-
-#endif /* IN_LIBGCC2 || IN_GLIBCPP_V3 */
-
-#ifndef IN_GLIBCPP_V3
-
-/* Demangle a string in order to find out whether it is a constructor
-   or destructor.  Return non-zero on success.  Set *CTOR_KIND and
-   *DTOR_KIND appropriately.  */
-
-static int
-is_ctor_or_dtor (const char *mangled,
-                 enum gnu_v3_ctor_kinds *ctor_kind,
-                 enum gnu_v3_dtor_kinds *dtor_kind)
-{
-  struct d_info di;
-  struct demangle_component *dc;
-  int ret;
-
-  *ctor_kind = (enum gnu_v3_ctor_kinds) 0;
-  *dtor_kind = (enum gnu_v3_dtor_kinds) 0;
-
-  cplus_demangle_init_info (mangled, DMGL_GNU_V3, strlen (mangled), &di);
-
-  {
-#ifdef CP_DYNAMIC_ARRAYS
-    __extension__ struct demangle_component comps[di.num_comps];
-    __extension__ struct demangle_component *subs[di.num_subs];
-
-    di.comps = &comps[0];
-    di.subs = &subs[0];
-#else
-    di.comps = ((struct demangle_component *)
-		malloc (di.num_comps * sizeof (struct demangle_component)));
-    di.subs = ((struct demangle_component **)
-	       malloc (di.num_subs * sizeof (struct demangle_component *)));
-    if (di.comps == NULL || di.subs == NULL)
-      {
-	if (di.comps != NULL)
-	  free (di.comps);
-	if (di.subs != NULL)
-	  free (di.subs);
-	return 0;
-      }
-#endif
-
-    dc = cplus_demangle_mangled_name (&di, 1);
-
-    /* Note that because we did not pass DMGL_PARAMS, we don't expect
-       to demangle the entire string.  */
-
-    ret = 0;
-    while (dc != NULL)
-      {
-	switch (dc->type)
-	  {
-	  default:
-	    dc = NULL;
-	    break;
-	  case DEMANGLE_COMPONENT_TYPED_NAME:
-	  case DEMANGLE_COMPONENT_TEMPLATE:
-	  case DEMANGLE_COMPONENT_RESTRICT_THIS:
-	  case DEMANGLE_COMPONENT_VOLATILE_THIS:
-	  case DEMANGLE_COMPONENT_CONST_THIS:
-	    dc = d_left (dc);
-	    break;
-	  case DEMANGLE_COMPONENT_QUAL_NAME:
-	  case DEMANGLE_COMPONENT_LOCAL_NAME:
-	    dc = d_right (dc);
-	    break;
-	  case DEMANGLE_COMPONENT_CTOR:
-	    *ctor_kind = dc->u.s_ctor.kind;
-	    ret = 1;
-	    dc = NULL;
-	    break;
-	  case DEMANGLE_COMPONENT_DTOR:
-	    *dtor_kind = dc->u.s_dtor.kind;
-	    ret = 1;
-	    dc = NULL;
-	    break;
-	  }
-      }
-
-#ifndef CP_DYNAMIC_ARRAYS
-    free (di.subs);
-    free (di.comps);
-#endif
-  }
-
-  return ret;
-}
-
-/* Return whether NAME is the mangled form of a g++ V3 ABI constructor
-   name.  A non-zero return indicates the type of constructor.  */
-
-enum gnu_v3_ctor_kinds
-is_gnu_v3_mangled_ctor (const char *name)
-{
-  enum gnu_v3_ctor_kinds ctor_kind;
-  enum gnu_v3_dtor_kinds dtor_kind;
-
-  if (! is_ctor_or_dtor (name, &ctor_kind, &dtor_kind))
-    return (enum gnu_v3_ctor_kinds) 0;
-  return ctor_kind;
-}
-
-
-/* Return whether NAME is the mangled form of a g++ V3 ABI destructor
-   name.  A non-zero return indicates the type of destructor.  */
-
-enum gnu_v3_dtor_kinds
-is_gnu_v3_mangled_dtor (const char *name)
-{
-  enum gnu_v3_ctor_kinds ctor_kind;
-  enum gnu_v3_dtor_kinds dtor_kind;
-
-  if (! is_ctor_or_dtor (name, &ctor_kind, &dtor_kind))
-    return (enum gnu_v3_dtor_kinds) 0;
-  return dtor_kind;
-}
-
-#endif /* IN_GLIBCPP_V3 */
-
-#ifdef STANDALONE_DEMANGLER
-
-#include "getopt.h"
-#include "dyn-string.h"
-
-static void print_usage (FILE* fp, int exit_value);
-
-#define IS_ALPHA(CHAR)                                                  \
-  (((CHAR) >= 'a' && (CHAR) <= 'z')                                     \
-   || ((CHAR) >= 'A' && (CHAR) <= 'Z'))
-
-/* Non-zero if CHAR is a character than can occur in a mangled name.  */
-#define is_mangled_char(CHAR)                                           \
-  (IS_ALPHA (CHAR) || IS_DIGIT (CHAR)                                   \
-   || (CHAR) == '_' || (CHAR) == '.' || (CHAR) == '$')
-
-/* The name of this program, as invoked.  */
-const char* program_name;
-
-/* Prints usage summary to FP and then exits with EXIT_VALUE.  */
-
-static void
-print_usage (FILE* fp, int exit_value)
-{
-  fprintf (fp, "Usage: %s [options] [names ...]\n", program_name);
-  fprintf (fp, "Options:\n");
-  fprintf (fp, "  -h,--help       Display this message.\n");
-  fprintf (fp, "  -p,--no-params  Don't display function parameters\n");
-  fprintf (fp, "  -v,--verbose    Produce verbose demanglings.\n");
-  fprintf (fp, "If names are provided, they are demangled.  Otherwise filters standard input.\n");
-
-  exit (exit_value);
-}
-
-/* Option specification for getopt_long.  */
-static const struct option long_options[] = 
-{
-  { "help",	 no_argument, NULL, 'h' },
-  { "no-params", no_argument, NULL, 'p' },
-  { "verbose",   no_argument, NULL, 'v' },
-  { NULL,        no_argument, NULL, 0   },
-};
-
-/* Main entry for a demangling filter executable.  It will demangle
-   its command line arguments, if any.  If none are provided, it will
-   filter stdin to stdout, replacing any recognized mangled C++ names
-   with their demangled equivalents.  */
-
-int
-main (int argc, char *argv[])
-{
-  int i;
-  int opt_char;
-  int options = DMGL_PARAMS | DMGL_ANSI | DMGL_TYPES;
-
-  /* Use the program name of this program, as invoked.  */
-  program_name = argv[0];
-
-  /* Parse options.  */
-  do 
-    {
-      opt_char = getopt_long (argc, argv, "hpv", long_options, NULL);
-      switch (opt_char)
-	{
-	case '?':  /* Unrecognized option.  */
-	  print_usage (stderr, 1);
-	  break;
-
-	case 'h':
-	  print_usage (stdout, 0);
-	  break;
-
-	case 'p':
-	  options &= ~ DMGL_PARAMS;
-	  break;
-
-	case 'v':
-	  options |= DMGL_VERBOSE;
-	  break;
-	}
-    }
-  while (opt_char != -1);
-
-  if (optind == argc) 
-    /* No command line arguments were provided.  Filter stdin.  */
-    {
-      dyn_string_t mangled = dyn_string_new (3);
-      char *s;
-
-      /* Read all of input.  */
-      while (!feof (stdin))
-	{
-	  char c;
-
-	  /* Pile characters into mangled until we hit one that can't
-	     occur in a mangled name.  */
-	  c = getchar ();
-	  while (!feof (stdin) && is_mangled_char (c))
-	    {
-	      dyn_string_append_char (mangled, c);
-	      if (feof (stdin))
-		break;
-	      c = getchar ();
-	    }
-
-	  if (dyn_string_length (mangled) > 0)
-	    {
-#ifdef IN_GLIBCPP_V3
-	      s = __cxa_demangle (dyn_string_buf (mangled), NULL, NULL, NULL);
-#else
-	      s = cplus_demangle_v3 (dyn_string_buf (mangled), options);
-#endif
-
-	      if (s != NULL)
-		{
-		  fputs (s, stdout);
-		  free (s);
-		}
-	      else
-		{
-		  /* It might not have been a mangled name.  Print the
-		     original text.  */
-		  fputs (dyn_string_buf (mangled), stdout);
-		}
-
-	      dyn_string_clear (mangled);
-	    }
-
-	  /* If we haven't hit EOF yet, we've read one character that
-	     can't occur in a mangled name, so print it out.  */
-	  if (!feof (stdin))
-	    putchar (c);
-	}
-
-      dyn_string_delete (mangled);
-    }
-  else
-    /* Demangle command line arguments.  */
-    {
-      /* Loop over command line arguments.  */
-      for (i = optind; i < argc; ++i)
-	{
-	  char *s;
-#ifdef IN_GLIBCPP_V3
-	  int status;
-#endif
-
-	  /* Attempt to demangle.  */
-#ifdef IN_GLIBCPP_V3
-	  s = __cxa_demangle (argv[i], NULL, NULL, &status);
-#else
-	  s = cplus_demangle_v3 (argv[i], options);
-#endif
-
-	  /* If it worked, print the demangled name.  */
-	  if (s != NULL)
-	    {
-	      printf ("%s\n", s);
-	      free (s);
-	    }
-	  else
-	    {
-#ifdef IN_GLIBCPP_V3
-	      fprintf (stderr, "Failed: %s (status %d)\n", argv[i], status);
-#else
-	      fprintf (stderr, "Failed: %s\n", argv[i]);
-#endif
-	    }
-	}
-    }
-
-  return 0;
-}
-
-#endif /* STANDALONE_DEMANGLER */
diff --git a/libiberty/cp-demangle.h b/libiberty/cp-demangle.h
deleted file mode 100644
index 2517a57e..0000000
--- a/libiberty/cp-demangle.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/* Internal demangler interface for g++ V3 ABI.
-   Copyright (C) 2003, 2004 Free Software Foundation, Inc.
-   Written by Ian Lance Taylor <ian@wasabisystems.com>.
-
-   This file is part of the libiberty library, which is part of GCC.
-
-   This file 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.
-
-   In addition to the permissions in the GNU General Public License, the
-   Free Software Foundation gives you unlimited permission to link the
-   compiled version of this file into combinations with other programs,
-   and to distribute those combinations without any restriction coming
-   from the use of this file.  (The General Public License restrictions
-   do apply in other respects; for example, they cover modification of
-   the file, and distribution when not linked into a combined
-   executable.)
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. 
-*/
-
-/* This file provides some definitions shared by cp-demangle.c and
-   cp-demint.c.  It should not be included by any other files.  */
-
-/* Information we keep for operators.  */
-
-struct demangle_operator_info
-{
-  /* Mangled name.  */
-  const char *code;
-  /* Real name.  */
-  const char *name;
-  /* Length of real name.  */
-  int len;
-  /* Number of arguments.  */
-  int args;
-};
-
-/* How to print the value of a builtin type.  */
-
-enum d_builtin_type_print
-{
-  /* Print as (type)val.  */
-  D_PRINT_DEFAULT,
-  /* Print as integer.  */
-  D_PRINT_INT,
-  /* Print as unsigned integer, with trailing "u".  */
-  D_PRINT_UNSIGNED,
-  /* Print as long, with trailing "l".  */
-  D_PRINT_LONG,
-  /* Print as unsigned long, with trailing "ul".  */
-  D_PRINT_UNSIGNED_LONG,
-  /* Print as long long, with trailing "ll".  */
-  D_PRINT_LONG_LONG,
-  /* Print as unsigned long long, with trailing "ull".  */
-  D_PRINT_UNSIGNED_LONG_LONG,
-  /* Print as bool.  */
-  D_PRINT_BOOL,
-  /* Print as float--put value in square brackets.  */
-  D_PRINT_FLOAT,
-  /* Print in usual way, but here to detect void.  */
-  D_PRINT_VOID
-};
-
-/* Information we keep for a builtin type.  */
-
-struct demangle_builtin_type_info
-{
-  /* Type name.  */
-  const char *name;
-  /* Length of type name.  */
-  int len;
-  /* Type name when using Java.  */
-  const char *java_name;
-  /* Length of java name.  */
-  int java_len;
-  /* How to print a value of this type.  */
-  enum d_builtin_type_print print;
-};
-
-/* The information structure we pass around.  */
-
-struct d_info
-{
-  /* The string we are demangling.  */
-  const char *s;
-  /* The end of the string we are demangling.  */
-  const char *send;
-  /* The options passed to the demangler.  */
-  int options;
-  /* The next character in the string to consider.  */
-  const char *n;
-  /* The array of components.  */
-  struct demangle_component *comps;
-  /* The index of the next available component.  */
-  int next_comp;
-  /* The number of available component structures.  */
-  int num_comps;
-  /* The array of substitutions.  */
-  struct demangle_component **subs;
-  /* The index of the next substitution.  */
-  int next_sub;
-  /* The number of available entries in the subs array.  */
-  int num_subs;
-  /* The number of substitutions which we actually made from the subs
-     array, plus the number of template parameter references we
-     saw.  */
-  int did_subs;
-  /* The last name we saw, for constructors and destructors.  */
-  struct demangle_component *last_name;
-  /* A running total of the length of large expansions from the
-     mangled name to the demangled name, such as standard
-     substitutions and builtin types.  */
-  int expansion;
-};
-
-#define d_peek_char(di) (*((di)->n))
-#define d_peek_next_char(di) ((di)->n[1])
-#define d_advance(di, i) ((di)->n += (i))
-#define d_next_char(di) (*((di)->n++))
-#define d_str(di) ((di)->n)
-
-/* Functions and arrays in cp-demangle.c which are referenced by
-   functions in cp-demint.c.  */
-#ifdef IN_GLIBCPP_V3
-#define CP_STATIC_IF_GLIBCPP_V3 static
-#else
-#define CP_STATIC_IF_GLIBCPP_V3 extern
-#endif
-
-CP_STATIC_IF_GLIBCPP_V3
-const struct demangle_operator_info cplus_demangle_operators[];
-
-#define D_BUILTIN_TYPE_COUNT (26)
-
-CP_STATIC_IF_GLIBCPP_V3
-const struct demangle_builtin_type_info
-cplus_demangle_builtin_types[D_BUILTIN_TYPE_COUNT];
-
-CP_STATIC_IF_GLIBCPP_V3
-struct demangle_component *
-cplus_demangle_mangled_name (struct d_info *, int);
-
-CP_STATIC_IF_GLIBCPP_V3
-struct demangle_component *
-cplus_demangle_type (struct d_info *);
-
-extern void
-cplus_demangle_init_info (const char *, int, size_t, struct d_info *);
-
-/* cp-demangle.c needs to define this a little differently */
-#undef CP_STATIC_IF_GLIBCPP_V3
diff --git a/libiberty/cp-demint.c b/libiberty/cp-demint.c
deleted file mode 100644
index 2e8f8d2..0000000
--- a/libiberty/cp-demint.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/* Demangler component interface functions.
-   Copyright (C) 2004 Free Software Foundation, Inc.
-   Written by Ian Lance Taylor <ian@wasabisystems.com>.
-
-   This file is part of the libiberty library, which is part of GCC.
-
-   This file 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.
-
-   In addition to the permissions in the GNU General Public License, the
-   Free Software Foundation gives you unlimited permission to link the
-   compiled version of this file into combinations with other programs,
-   and to distribute those combinations without any restriction coming
-   from the use of this file.  (The General Public License restrictions
-   do apply in other respects; for example, they cover modification of
-   the file, and distribution when not linked into a combined
-   executable.)
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. 
-*/
-
-/* This file implements a few interface functions which are provided
-   for use with struct demangle_component trees.  These functions are
-   declared in demangle.h.  These functions are closely tied to the
-   demangler code in cp-demangle.c, and other interface functions can
-   be found in that file.  We put these functions in a separate file
-   because they are not needed by the demangler, and so we avoid
-   having them pulled in by programs which only need the
-   demangler.  */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-
-#include "ansidecl.h"
-#include "libiberty.h"
-#include "demangle.h"
-#include "cp-demangle.h"
-
-/* Fill in most component types.  */
-
-int
-cplus_demangle_fill_component (struct demangle_component *p,
-                               enum demangle_component_type type,
-                               struct demangle_component *left,
-                                struct demangle_component *right)
-{
-  if (p == NULL)
-    return 0;
-  switch (type)
-    {
-    case DEMANGLE_COMPONENT_QUAL_NAME:
-    case DEMANGLE_COMPONENT_LOCAL_NAME:
-    case DEMANGLE_COMPONENT_TYPED_NAME:
-    case DEMANGLE_COMPONENT_TEMPLATE:
-    case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:
-    case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:
-    case DEMANGLE_COMPONENT_FUNCTION_TYPE:
-    case DEMANGLE_COMPONENT_ARRAY_TYPE:
-    case DEMANGLE_COMPONENT_PTRMEM_TYPE:
-    case DEMANGLE_COMPONENT_ARGLIST:
-    case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:
-    case DEMANGLE_COMPONENT_UNARY:
-    case DEMANGLE_COMPONENT_BINARY:
-    case DEMANGLE_COMPONENT_BINARY_ARGS:
-    case DEMANGLE_COMPONENT_TRINARY:
-    case DEMANGLE_COMPONENT_TRINARY_ARG1:
-    case DEMANGLE_COMPONENT_TRINARY_ARG2:
-    case DEMANGLE_COMPONENT_LITERAL:
-    case DEMANGLE_COMPONENT_LITERAL_NEG:
-      break;
-
-      /* These component types only have one subtree.  */
-    case DEMANGLE_COMPONENT_VTABLE:
-    case DEMANGLE_COMPONENT_VTT:
-    case DEMANGLE_COMPONENT_TYPEINFO:
-    case DEMANGLE_COMPONENT_TYPEINFO_NAME:
-    case DEMANGLE_COMPONENT_TYPEINFO_FN:
-    case DEMANGLE_COMPONENT_THUNK:
-    case DEMANGLE_COMPONENT_VIRTUAL_THUNK:
-    case DEMANGLE_COMPONENT_COVARIANT_THUNK:
-    case DEMANGLE_COMPONENT_JAVA_CLASS:
-    case DEMANGLE_COMPONENT_GUARD:
-    case DEMANGLE_COMPONENT_REFTEMP:
-    case DEMANGLE_COMPONENT_RESTRICT:
-    case DEMANGLE_COMPONENT_VOLATILE:
-    case DEMANGLE_COMPONENT_CONST:
-    case DEMANGLE_COMPONENT_RESTRICT_THIS:
-    case DEMANGLE_COMPONENT_VOLATILE_THIS:
-    case DEMANGLE_COMPONENT_CONST_THIS:
-    case DEMANGLE_COMPONENT_POINTER:
-    case DEMANGLE_COMPONENT_REFERENCE:
-    case DEMANGLE_COMPONENT_COMPLEX:
-    case DEMANGLE_COMPONENT_IMAGINARY:
-    case DEMANGLE_COMPONENT_VENDOR_TYPE:
-    case DEMANGLE_COMPONENT_CAST:
-      if (right != NULL)
-	return 0;
-      break;
-
-    default:
-      /* Other types do not use subtrees.  */
-      return 0;
-    }
-
-  p->type = type;
-  p->u.s_binary.left = left;
-  p->u.s_binary.right = right;
-
-  return 1;
-}
-
-/* Fill in a DEMANGLE_COMPONENT_BUILTIN_TYPE.  */
-
-int
-cplus_demangle_fill_builtin_type (struct demangle_component *p,
-                                  const char *type_name)
-{
-  int len;
-  unsigned int i;
-
-  if (p == NULL || type_name == NULL)
-    return 0;
-  len = strlen (type_name);
-  for (i = 0; i < D_BUILTIN_TYPE_COUNT; ++i)
-    {
-      if (len == cplus_demangle_builtin_types[i].len
-	  && strcmp (type_name, cplus_demangle_builtin_types[i].name) == 0)
-	{
-	  p->type = DEMANGLE_COMPONENT_BUILTIN_TYPE;
-	  p->u.s_builtin.type = &cplus_demangle_builtin_types[i];
-	  return 1;
-	}
-    }
-  return 0;
-}
-
-/* Fill in a DEMANGLE_COMPONENT_OPERATOR.  */
-
-int
-cplus_demangle_fill_operator (struct demangle_component *p,
-                              const char *opname, int args)
-{
-  int len;
-  unsigned int i;
-
-  if (p == NULL || opname == NULL)
-    return 0;
-  len = strlen (opname);
-  for (i = 0; cplus_demangle_operators[i].name != NULL; ++i)
-    {
-      if (len == cplus_demangle_operators[i].len
-	  && args == cplus_demangle_operators[i].args
-	  && strcmp (opname, cplus_demangle_operators[i].name) == 0)
-	{
-	  p->type = DEMANGLE_COMPONENT_OPERATOR;
-	  p->u.s_operator.op = &cplus_demangle_operators[i];
-	  return 1;
-	}
-    }
-  return 0;
-}
-
-/* Translate a mangled name into components.  */
-
-struct demangle_component *
-cplus_demangle_v3_components (const char *mangled, int options, void **mem)
-{
-  size_t len;
-  int type;
-  struct d_info di;
-  struct demangle_component *dc;
-
-  len = strlen (mangled);
-
-  if (mangled[0] == '_' && mangled[1] == 'Z')
-    type = 0;
-  else
-    {
-      if ((options & DMGL_TYPES) == 0)
-	return NULL;
-      type = 1;
-    }
-
-  cplus_demangle_init_info (mangled, options, len, &di);
-
-  di.comps = ((struct demangle_component *)
-	      malloc (di.num_comps * sizeof (struct demangle_component)));
-  di.subs = ((struct demangle_component **)
-	     malloc (di.num_subs * sizeof (struct demangle_component *)));
-  if (di.comps == NULL || di.subs == NULL)
-    {
-      if (di.comps != NULL)
-	free (di.comps);
-      if (di.subs != NULL)
-	free (di.subs);
-      return NULL;
-    }
-
-  if (! type)
-    dc = cplus_demangle_mangled_name (&di, 1);
-  else
-    dc = cplus_demangle_type (&di);
-
-  /* If DMGL_PARAMS is set, then if we didn't consume the entire
-     mangled string, then we didn't successfully demangle it.  */
-  if ((options & DMGL_PARAMS) != 0 && d_peek_char (&di) != '\0')
-    dc = NULL;
-
-  free (di.subs);
-
-  if (dc != NULL)
-    *mem = di.comps;
-  else
-    free (di.comps);
-
-  return dc;
-}
diff --git a/libiberty/cplus-dem.c b/libiberty/cplus-dem.c
deleted file mode 100644
index 1f8b1fc..0000000
--- a/libiberty/cplus-dem.c
+++ /dev/null
@@ -1,4717 +0,0 @@
-/* Demangler for GNU C++
-   Copyright 1989, 1991, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-   Written by James Clark (jjc@jclark.uucp)
-   Rewritten by Fred Fish (fnf@cygnus.com) for ARM and Lucid demangling
-   Modified by Satish Pai (pai@apollo.hp.com) for HP demangling
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-In addition to the permissions in the GNU Library General Public
-License, the Free Software Foundation gives you unlimited permission
-to link the compiled version of this file into combinations with other
-programs, and to distribute those combinations without any restriction
-coming from the use of this file.  (The Library Public License
-restrictions do apply in other respects; for example, they cover
-modification of the file, and distribution when not linked into a
-combined executable.)
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-/* This file exports two functions; cplus_mangle_opname and cplus_demangle.
-
-   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.  */
-
-/* This file lives in both GCC and libiberty.  When making changes, please
-   try not to break either.  */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "safe-ctype.h"
-
-#include <sys/types.h>
-#include <string.h>
-#include <stdio.h>
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#else
-char * malloc ();
-char * realloc ();
-#endif
-
-#include <demangle.h>
-#undef CURRENT_DEMANGLING_STYLE
-#define CURRENT_DEMANGLING_STYLE work->options
-
-#include "libiberty.h"
-
-static char *ada_demangle (const char *, int);
-
-#define min(X,Y) (((X) < (Y)) ? (X) : (Y))
-
-/* A value at least one greater than the maximum number of characters
-   that will be output when using the `%d' format with `printf'.  */
-#define INTBUF_SIZE 32
-
-extern void fancy_abort (void) ATTRIBUTE_NORETURN;
-
-/* In order to allow a single demangler executable to demangle strings
-   using various common values of CPLUS_MARKER, as well as any specific
-   one set at compile time, we maintain a string containing all the
-   commonly used ones, and check to see if the marker we are looking for
-   is in that string.  CPLUS_MARKER is usually '$' on systems where the
-   assembler can deal with that.  Where the assembler can't, it's usually
-   '.' (but on many systems '.' is used for other things).  We put the
-   current defined CPLUS_MARKER first (which defaults to '$'), followed
-   by the next most common value, followed by an explicit '$' in case
-   the value of CPLUS_MARKER is not '$'.
-
-   We could avoid this if we could just get g++ to tell us what the actual
-   cplus marker character is as part of the debug information, perhaps by
-   ensuring that it is the character that terminates the gcc<n>_compiled
-   marker symbol (FIXME).  */
-
-#if !defined (CPLUS_MARKER)
-#define CPLUS_MARKER '$'
-#endif
-
-enum demangling_styles current_demangling_style = auto_demangling;
-
-static char cplus_markers[] = { CPLUS_MARKER, '.', '$', '\0' };
-
-static char char_str[2] = { '\000', '\000' };
-
-void
-set_cplus_marker_for_demangling (int ch)
-{
-  cplus_markers[0] = ch;
-}
-
-typedef struct string		/* Beware: these aren't required to be */
-{				/*  '\0' terminated.  */
-  char *b;			/* pointer to start of string */
-  char *p;			/* pointer after last character */
-  char *e;			/* pointer after end of allocated space */
-} string;
-
-/* Stuff that is shared between sub-routines.
-   Using a shared structure allows cplus_demangle to be reentrant.  */
-
-struct work_stuff
-{
-  int options;
-  char **typevec;
-  char **ktypevec;
-  char **btypevec;
-  int numk;
-  int numb;
-  int ksize;
-  int bsize;
-  int ntypes;
-  int typevec_size;
-  int constructor;
-  int destructor;
-  int static_type;	/* A static member function */
-  int temp_start;       /* index in demangled to start of template args */
-  int type_quals;       /* The type qualifiers.  */
-  int dllimported;	/* Symbol imported from a PE DLL */
-  char **tmpl_argvec;   /* Template function arguments. */
-  int ntmpl_args;       /* The number of template function arguments. */
-  int forgetting_types; /* Nonzero if we are not remembering the types
-			   we see.  */
-  string* previous_argument; /* The last function argument demangled.  */
-  int nrepeats;         /* The number of times to repeat the previous
-			   argument.  */
-};
-
-#define PRINT_ANSI_QUALIFIERS (work -> options & DMGL_ANSI)
-#define PRINT_ARG_TYPES       (work -> options & DMGL_PARAMS)
-
-static const struct optable
-{
-  const char *const in;
-  const char *const out;
-  const int flags;
-} optable[] = {
-  {"nw",	  " new",	DMGL_ANSI},	/* new (1.92,	 ansi) */
-  {"dl",	  " delete",	DMGL_ANSI},	/* new (1.92,	 ansi) */
-  {"new",	  " new",	0},		/* old (1.91,	 and 1.x) */
-  {"delete",	  " delete",	0},		/* old (1.91,	 and 1.x) */
-  {"vn",	  " new []",	DMGL_ANSI},	/* GNU, pending ansi */
-  {"vd",	  " delete []",	DMGL_ANSI},	/* GNU, pending ansi */
-  {"as",	  "=",		DMGL_ANSI},	/* ansi */
-  {"ne",	  "!=",		DMGL_ANSI},	/* old, ansi */
-  {"eq",	  "==",		DMGL_ANSI},	/* old,	ansi */
-  {"ge",	  ">=",		DMGL_ANSI},	/* old,	ansi */
-  {"gt",	  ">",		DMGL_ANSI},	/* old,	ansi */
-  {"le",	  "<=",		DMGL_ANSI},	/* old,	ansi */
-  {"lt",	  "<",		DMGL_ANSI},	/* old,	ansi */
-  {"plus",	  "+",		0},		/* old */
-  {"pl",	  "+",		DMGL_ANSI},	/* ansi */
-  {"apl",	  "+=",		DMGL_ANSI},	/* ansi */
-  {"minus",	  "-",		0},		/* old */
-  {"mi",	  "-",		DMGL_ANSI},	/* ansi */
-  {"ami",	  "-=",		DMGL_ANSI},	/* ansi */
-  {"mult",	  "*",		0},		/* old */
-  {"ml",	  "*",		DMGL_ANSI},	/* ansi */
-  {"amu",	  "*=",		DMGL_ANSI},	/* ansi (ARM/Lucid) */
-  {"aml",	  "*=",		DMGL_ANSI},	/* ansi (GNU/g++) */
-  {"convert",	  "+",		0},		/* old (unary +) */
-  {"negate",	  "-",		0},		/* old (unary -) */
-  {"trunc_mod",	  "%",		0},		/* old */
-  {"md",	  "%",		DMGL_ANSI},	/* ansi */
-  {"amd",	  "%=",		DMGL_ANSI},	/* ansi */
-  {"trunc_div",	  "/",		0},		/* old */
-  {"dv",	  "/",		DMGL_ANSI},	/* ansi */
-  {"adv",	  "/=",		DMGL_ANSI},	/* ansi */
-  {"truth_andif", "&&",		0},		/* old */
-  {"aa",	  "&&",		DMGL_ANSI},	/* ansi */
-  {"truth_orif",  "||",		0},		/* old */
-  {"oo",	  "||",		DMGL_ANSI},	/* ansi */
-  {"truth_not",	  "!",		0},		/* old */
-  {"nt",	  "!",		DMGL_ANSI},	/* ansi */
-  {"postincrement","++",	0},		/* old */
-  {"pp",	  "++",		DMGL_ANSI},	/* ansi */
-  {"postdecrement","--",	0},		/* old */
-  {"mm",	  "--",		DMGL_ANSI},	/* ansi */
-  {"bit_ior",	  "|",		0},		/* old */
-  {"or",	  "|",		DMGL_ANSI},	/* ansi */
-  {"aor",	  "|=",		DMGL_ANSI},	/* ansi */
-  {"bit_xor",	  "^",		0},		/* old */
-  {"er",	  "^",		DMGL_ANSI},	/* ansi */
-  {"aer",	  "^=",		DMGL_ANSI},	/* ansi */
-  {"bit_and",	  "&",		0},		/* old */
-  {"ad",	  "&",		DMGL_ANSI},	/* ansi */
-  {"aad",	  "&=",		DMGL_ANSI},	/* ansi */
-  {"bit_not",	  "~",		0},		/* old */
-  {"co",	  "~",		DMGL_ANSI},	/* ansi */
-  {"call",	  "()",		0},		/* old */
-  {"cl",	  "()",		DMGL_ANSI},	/* ansi */
-  {"alshift",	  "<<",		0},		/* old */
-  {"ls",	  "<<",		DMGL_ANSI},	/* ansi */
-  {"als",	  "<<=",	DMGL_ANSI},	/* ansi */
-  {"arshift",	  ">>",		0},		/* old */
-  {"rs",	  ">>",		DMGL_ANSI},	/* ansi */
-  {"ars",	  ">>=",	DMGL_ANSI},	/* ansi */
-  {"component",	  "->",		0},		/* old */
-  {"pt",	  "->",		DMGL_ANSI},	/* ansi; Lucid C++ form */
-  {"rf",	  "->",		DMGL_ANSI},	/* ansi; ARM/GNU form */
-  {"indirect",	  "*",		0},		/* old */
-  {"method_call",  "->()",	0},		/* old */
-  {"addr",	  "&",		0},		/* old (unary &) */
-  {"array",	  "[]",		0},		/* old */
-  {"vc",	  "[]",		DMGL_ANSI},	/* ansi */
-  {"compound",	  ", ",		0},		/* old */
-  {"cm",	  ", ",		DMGL_ANSI},	/* ansi */
-  {"cond",	  "?:",		0},		/* old */
-  {"cn",	  "?:",		DMGL_ANSI},	/* pseudo-ansi */
-  {"max",	  ">?",		0},		/* old */
-  {"mx",	  ">?",		DMGL_ANSI},	/* pseudo-ansi */
-  {"min",	  "<?",		0},		/* old */
-  {"mn",	  "<?",		DMGL_ANSI},	/* pseudo-ansi */
-  {"nop",	  "",		0},		/* old (for operator=) */
-  {"rm",	  "->*",	DMGL_ANSI},	/* ansi */
-  {"sz",          "sizeof ",    DMGL_ANSI}      /* pseudo-ansi */
-};
-
-/* These values are used to indicate the various type varieties.
-   They are all non-zero so that they can be used as `success'
-   values.  */
-typedef enum type_kind_t
-{
-  tk_none,
-  tk_pointer,
-  tk_reference,
-  tk_integral,
-  tk_bool,
-  tk_char,
-  tk_real
-} type_kind_t;
-
-const struct demangler_engine libiberty_demanglers[] =
-{
-  {
-    NO_DEMANGLING_STYLE_STRING,
-    no_demangling,
-    "Demangling disabled"
-  }
-  ,
-  {
-    AUTO_DEMANGLING_STYLE_STRING,
-      auto_demangling,
-      "Automatic selection based on executable"
-  }
-  ,
-  {
-    GNU_DEMANGLING_STYLE_STRING,
-      gnu_demangling,
-      "GNU (g++) style demangling"
-  }
-  ,
-  {
-    LUCID_DEMANGLING_STYLE_STRING,
-      lucid_demangling,
-      "Lucid (lcc) style demangling"
-  }
-  ,
-  {
-    ARM_DEMANGLING_STYLE_STRING,
-      arm_demangling,
-      "ARM style demangling"
-  }
-  ,
-  {
-    HP_DEMANGLING_STYLE_STRING,
-      hp_demangling,
-      "HP (aCC) style demangling"
-  }
-  ,
-  {
-    EDG_DEMANGLING_STYLE_STRING,
-      edg_demangling,
-      "EDG style demangling"
-  }
-  ,
-  {
-    GNU_V3_DEMANGLING_STYLE_STRING,
-    gnu_v3_demangling,
-    "GNU (g++) V3 ABI-style demangling"
-  }
-  ,
-  {
-    JAVA_DEMANGLING_STYLE_STRING,
-    java_demangling,
-    "Java style demangling"
-  }
-  ,
-  {
-    GNAT_DEMANGLING_STYLE_STRING,
-    gnat_demangling,
-    "GNAT style demangling"
-  }
-  ,
-  {
-    NULL, unknown_demangling, NULL
-  }
-};
-
-#define STRING_EMPTY(str)	((str) -> b == (str) -> p)
-#define APPEND_BLANK(str)	{if (!STRING_EMPTY(str)) \
-    string_append(str, " ");}
-#define LEN_STRING(str)         ( (STRING_EMPTY(str))?0:((str)->p - (str)->b))
-
-/* The scope separator appropriate for the language being demangled.  */
-
-#define SCOPE_STRING(work) ((work->options & DMGL_JAVA) ? "." : "::")
-
-#define ARM_VTABLE_STRING "__vtbl__"	/* Lucid/ARM virtual table prefix */
-#define ARM_VTABLE_STRLEN 8		/* strlen (ARM_VTABLE_STRING) */
-
-/* Prototypes for local functions */
-
-static void delete_work_stuff (struct work_stuff *);
-
-static void delete_non_B_K_work_stuff (struct work_stuff *);
-
-static char *mop_up (struct work_stuff *, string *, int);
-
-static void squangle_mop_up (struct work_stuff *);
-
-static void work_stuff_copy_to_from (struct work_stuff *, struct work_stuff *);
-
-#if 0
-static int
-demangle_method_args (struct work_stuff *, const char **, string *);
-#endif
-
-static char *
-internal_cplus_demangle (struct work_stuff *, const char *);
-
-static int
-demangle_template_template_parm (struct work_stuff *work,
-                                 const char **, string *);
-
-static int
-demangle_template (struct work_stuff *work, const char **, string *,
-                   string *, int, int);
-
-static int
-arm_pt (struct work_stuff *, const char *, int, const char **,
-        const char **);
-
-static int
-demangle_class_name (struct work_stuff *, const char **, string *);
-
-static int
-demangle_qualified (struct work_stuff *, const char **, string *,
-                    int, int);
-
-static int demangle_class (struct work_stuff *, const char **, string *);
-
-static int demangle_fund_type (struct work_stuff *, const char **, string *);
-
-static int demangle_signature (struct work_stuff *, const char **, string *);
-
-static int demangle_prefix (struct work_stuff *, const char **, string *);
-
-static int gnu_special (struct work_stuff *, const char **, string *);
-
-static int arm_special (const char **, string *);
-
-static void string_need (string *, int);
-
-static void string_delete (string *);
-
-static void
-string_init (string *);
-
-static void string_clear (string *);
-
-#if 0
-static int string_empty (string *);
-#endif
-
-static void string_append (string *, const char *);
-
-static void string_appends (string *, string *);
-
-static void string_appendn (string *, const char *, int);
-
-static void string_prepend (string *, const char *);
-
-static void string_prependn (string *, const char *, int);
-
-static void string_append_template_idx (string *, int);
-
-static int get_count (const char **, int *);
-
-static int consume_count (const char **);
-
-static int consume_count_with_underscores (const char**);
-
-static int demangle_args (struct work_stuff *, const char **, string *);
-
-static int demangle_nested_args (struct work_stuff*, const char**, string*);
-
-static int do_type (struct work_stuff *, const char **, string *);
-
-static int do_arg (struct work_stuff *, const char **, string *);
-
-static void
-demangle_function_name (struct work_stuff *, const char **, string *,
-                        const char *);
-
-static int
-iterate_demangle_function (struct work_stuff *,
-                           const char **, string *, const char *);
-
-static void remember_type (struct work_stuff *, const char *, int);
-
-static void remember_Btype (struct work_stuff *, const char *, int, int);
-
-static int register_Btype (struct work_stuff *);
-
-static void remember_Ktype (struct work_stuff *, const char *, int);
-
-static void forget_types (struct work_stuff *);
-
-static void forget_B_and_K_types (struct work_stuff *);
-
-static void string_prepends (string *, string *);
-
-static int
-demangle_template_value_parm (struct work_stuff*, const char**,
-                              string*, type_kind_t);
-
-static int
-do_hpacc_template_const_value (struct work_stuff *, const char **, string *);
-
-static int
-do_hpacc_template_literal (struct work_stuff *, const char **, string *);
-
-static int snarf_numeric_literal (const char **, string *);
-
-/* There is a TYPE_QUAL value for each type qualifier.  They can be
-   combined by bitwise-or to form the complete set of qualifiers for a
-   type.  */
-
-#define TYPE_UNQUALIFIED   0x0
-#define TYPE_QUAL_CONST    0x1
-#define TYPE_QUAL_VOLATILE 0x2
-#define TYPE_QUAL_RESTRICT 0x4
-
-static int code_for_qualifier (int);
-
-static const char* qualifier_string (int);
-
-static const char* demangle_qualifier (int);
-
-static int demangle_expression (struct work_stuff *, const char **, string *, 
-                                type_kind_t);
-
-static int
-demangle_integral_value (struct work_stuff *, const char **, string *);
-
-static int
-demangle_real_value (struct work_stuff *, const char **, string *);
-
-static void
-demangle_arm_hp_template (struct work_stuff *, const char **, int, string *);
-
-static void
-recursively_demangle (struct work_stuff *, const char **, string *, int);
-
-static void grow_vect (char **, size_t *, size_t, int);
-
-/* Translate count to integer, consuming tokens in the process.
-   Conversion terminates on the first non-digit character.
-
-   Trying to consume something that isn't a count results in no
-   consumption of input and a return of -1.
-
-   Overflow consumes the rest of the digits, and returns -1.  */
-
-static int
-consume_count (const char **type)
-{
-  int count = 0;
-
-  if (! ISDIGIT ((unsigned char)**type))
-    return -1;
-
-  while (ISDIGIT ((unsigned char)**type))
-    {
-      count *= 10;
-
-      /* Check for overflow.
-	 We assume that count is represented using two's-complement;
-	 no power of two is divisible by ten, so if an overflow occurs
-	 when multiplying by ten, the result will not be a multiple of
-	 ten.  */
-      if ((count % 10) != 0)
-	{
-	  while (ISDIGIT ((unsigned char) **type))
-	    (*type)++;
-	  return -1;
-	}
-
-      count += **type - '0';
-      (*type)++;
-    }
-
-  if (count < 0)
-    count = -1;
-
-  return (count);
-}
-
-
-/* Like consume_count, but for counts that are preceded and followed
-   by '_' if they are greater than 10.  Also, -1 is returned for
-   failure, since 0 can be a valid value.  */
-
-static int
-consume_count_with_underscores (const char **mangled)
-{
-  int idx;
-
-  if (**mangled == '_')
-    {
-      (*mangled)++;
-      if (!ISDIGIT ((unsigned char)**mangled))
-	return -1;
-
-      idx = consume_count (mangled);
-      if (**mangled != '_')
-	/* The trailing underscore was missing. */
-	return -1;
-
-      (*mangled)++;
-    }
-  else
-    {
-      if (**mangled < '0' || **mangled > '9')
-	return -1;
-
-      idx = **mangled - '0';
-      (*mangled)++;
-    }
-
-  return idx;
-}
-
-/* C is the code for a type-qualifier.  Return the TYPE_QUAL
-   corresponding to this qualifier.  */
-
-static int
-code_for_qualifier (int c)
-{
-  switch (c)
-    {
-    case 'C':
-      return TYPE_QUAL_CONST;
-
-    case 'V':
-      return TYPE_QUAL_VOLATILE;
-
-    case 'u':
-      return TYPE_QUAL_RESTRICT;
-
-    default:
-      break;
-    }
-
-  /* C was an invalid qualifier.  */
-  abort ();
-}
-
-/* Return the string corresponding to the qualifiers given by
-   TYPE_QUALS.  */
-
-static const char*
-qualifier_string (int type_quals)
-{
-  switch (type_quals)
-    {
-    case TYPE_UNQUALIFIED:
-      return "";
-
-    case TYPE_QUAL_CONST:
-      return "const";
-
-    case TYPE_QUAL_VOLATILE:
-      return "volatile";
-
-    case TYPE_QUAL_RESTRICT:
-      return "__restrict";
-
-    case TYPE_QUAL_CONST | TYPE_QUAL_VOLATILE:
-      return "const volatile";
-
-    case TYPE_QUAL_CONST | TYPE_QUAL_RESTRICT:
-      return "const __restrict";
-
-    case TYPE_QUAL_VOLATILE | TYPE_QUAL_RESTRICT:
-      return "volatile __restrict";
-
-    case TYPE_QUAL_CONST | TYPE_QUAL_VOLATILE | TYPE_QUAL_RESTRICT:
-      return "const volatile __restrict";
-
-    default:
-      break;
-    }
-
-  /* TYPE_QUALS was an invalid qualifier set.  */
-  abort ();
-}
-
-/* C is the code for a type-qualifier.  Return the string
-   corresponding to this qualifier.  This function should only be
-   called with a valid qualifier code.  */
-
-static const char*
-demangle_qualifier (int c)
-{
-  return qualifier_string (code_for_qualifier (c));
-}
-
-int
-cplus_demangle_opname (const char *opname, char *result, int options)
-{
-  int len, len1, ret;
-  string type;
-  struct work_stuff work[1];
-  const char *tem;
-
-  len = strlen(opname);
-  result[0] = '\0';
-  ret = 0;
-  memset ((char *) work, 0, sizeof (work));
-  work->options = options;
-
-  if (opname[0] == '_' && opname[1] == '_'
-      && opname[2] == 'o' && opname[3] == 'p')
-    {
-      /* ANSI.  */
-      /* type conversion operator.  */
-      tem = opname + 4;
-      if (do_type (work, &tem, &type))
-	{
-	  strcat (result, "operator ");
-	  strncat (result, type.b, type.p - type.b);
-	  string_delete (&type);
-	  ret = 1;
-	}
-    }
-  else if (opname[0] == '_' && opname[1] == '_'
-	   && ISLOWER((unsigned char)opname[2])
-	   && ISLOWER((unsigned char)opname[3]))
-    {
-      if (opname[4] == '\0')
-	{
-	  /* Operator.  */
-	  size_t i;
-	  for (i = 0; i < ARRAY_SIZE (optable); i++)
-	    {
-	      if (strlen (optable[i].in) == 2
-		  && memcmp (optable[i].in, opname + 2, 2) == 0)
-		{
-		  strcat (result, "operator");
-		  strcat (result, optable[i].out);
-		  ret = 1;
-		  break;
-		}
-	    }
-	}
-      else
-	{
-	  if (opname[2] == 'a' && opname[5] == '\0')
-	    {
-	      /* Assignment.  */
-	      size_t i;
-	      for (i = 0; i < ARRAY_SIZE (optable); i++)
-		{
-		  if (strlen (optable[i].in) == 3
-		      && memcmp (optable[i].in, opname + 2, 3) == 0)
-		    {
-		      strcat (result, "operator");
-		      strcat (result, optable[i].out);
-		      ret = 1;
-		      break;
-		    }
-		}
-	    }
-	}
-    }
-  else if (len >= 3
-	   && opname[0] == 'o'
-	   && opname[1] == 'p'
-	   && strchr (cplus_markers, opname[2]) != NULL)
-    {
-      /* see if it's an assignment expression */
-      if (len >= 10 /* op$assign_ */
-	  && memcmp (opname + 3, "assign_", 7) == 0)
-	{
-	  size_t i;
-	  for (i = 0; i < ARRAY_SIZE (optable); i++)
-	    {
-	      len1 = len - 10;
-	      if ((int) strlen (optable[i].in) == len1
-		  && memcmp (optable[i].in, opname + 10, len1) == 0)
-		{
-		  strcat (result, "operator");
-		  strcat (result, optable[i].out);
-		  strcat (result, "=");
-		  ret = 1;
-		  break;
-		}
-	    }
-	}
-      else
-	{
-	  size_t i;
-	  for (i = 0; i < ARRAY_SIZE (optable); i++)
-	    {
-	      len1 = len - 3;
-	      if ((int) strlen (optable[i].in) == len1
-		  && memcmp (optable[i].in, opname + 3, len1) == 0)
-		{
-		  strcat (result, "operator");
-		  strcat (result, optable[i].out);
-		  ret = 1;
-		  break;
-		}
-	    }
-	}
-    }
-  else if (len >= 5 && memcmp (opname, "type", 4) == 0
-	   && strchr (cplus_markers, opname[4]) != NULL)
-    {
-      /* type conversion operator */
-      tem = opname + 5;
-      if (do_type (work, &tem, &type))
-	{
-	  strcat (result, "operator ");
-	  strncat (result, type.b, type.p - type.b);
-	  string_delete (&type);
-	  ret = 1;
-	}
-    }
-  squangle_mop_up (work);
-  return ret;
-
-}
-
-/* Takes operator name as e.g. "++" and returns mangled
-   operator name (e.g. "postincrement_expr"), or NULL if not found.
-
-   If OPTIONS & DMGL_ANSI == 1, return the ANSI name;
-   if OPTIONS & DMGL_ANSI == 0, return the old GNU name.  */
-
-const char *
-cplus_mangle_opname (const char *opname, int options)
-{
-  size_t i;
-  int len;
-
-  len = strlen (opname);
-  for (i = 0; i < ARRAY_SIZE (optable); i++)
-    {
-      if ((int) strlen (optable[i].out) == len
-	  && (options & DMGL_ANSI) == (optable[i].flags & DMGL_ANSI)
-	  && memcmp (optable[i].out, opname, len) == 0)
-	return optable[i].in;
-    }
-  return (0);
-}
-
-/* Add a routine to set the demangling style to be sure it is valid and
-   allow for any demangler initialization that maybe necessary. */
-
-enum demangling_styles
-cplus_demangle_set_style (enum demangling_styles style)
-{
-  const struct demangler_engine *demangler = libiberty_demanglers; 
-
-  for (; demangler->demangling_style != unknown_demangling; ++demangler)
-    if (style == demangler->demangling_style)
-      {
-	current_demangling_style = style;
-	return current_demangling_style;
-      }
-
-  return unknown_demangling;
-}
-
-/* Do string name to style translation */
-
-enum demangling_styles
-cplus_demangle_name_to_style (const char *name)
-{
-  const struct demangler_engine *demangler = libiberty_demanglers; 
-
-  for (; demangler->demangling_style != unknown_demangling; ++demangler)
-    if (strcmp (name, demangler->demangling_style_name) == 0)
-      return demangler->demangling_style;
-
-  return unknown_demangling;
-}
-
-/* char *cplus_demangle (const char *mangled, int options)
-
-   If MANGLED is a mangled function name produced by GNU C++, then
-   a pointer to a @code{malloc}ed 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.
-
-   The OPTIONS arg may contain one or more of the following bits:
-
-   	DMGL_ANSI	ANSI qualifiers such as `const' and `void' are
-			included.
-	DMGL_PARAMS	Function parameters are included.
-
-   For example,
-
-   cplus_demangle ("foo__1Ai", DMGL_PARAMS)		=> "A::foo(int)"
-   cplus_demangle ("foo__1Ai", DMGL_PARAMS | DMGL_ANSI)	=> "A::foo(int)"
-   cplus_demangle ("foo__1Ai", 0)			=> "A::foo"
-
-   cplus_demangle ("foo__1Afe", DMGL_PARAMS)		=> "A::foo(float,...)"
-   cplus_demangle ("foo__1Afe", DMGL_PARAMS | DMGL_ANSI)=> "A::foo(float,...)"
-   cplus_demangle ("foo__1Afe", 0)			=> "A::foo"
-
-   Note that any leading underscores, or other such characters prepended by
-   the compilation system, are presumed to have already been stripped from
-   MANGLED.  */
-
-char *
-cplus_demangle (const char *mangled, int options)
-{
-  char *ret;
-  struct work_stuff work[1];
-
-  if (current_demangling_style == no_demangling)
-    return xstrdup (mangled);
-
-  memset ((char *) work, 0, sizeof (work));
-  work->options = options;
-  if ((work->options & DMGL_STYLE_MASK) == 0)
-    work->options |= (int) current_demangling_style & DMGL_STYLE_MASK;
-
-  /* The V3 ABI demangling is implemented elsewhere.  */
-  if (GNU_V3_DEMANGLING || AUTO_DEMANGLING)
-    {
-      ret = cplus_demangle_v3 (mangled, work->options);
-      if (ret || GNU_V3_DEMANGLING)
-	return ret;
-    }
-
-  if (JAVA_DEMANGLING)
-    {
-      ret = java_demangle_v3 (mangled);
-      if (ret)
-        return ret;
-    }
-
-  if (GNAT_DEMANGLING)
-    return ada_demangle(mangled,options);
-
-  ret = internal_cplus_demangle (work, mangled);
-  squangle_mop_up (work);
-  return (ret);
-}
-
-
-/* Assuming *OLD_VECT points to an array of *SIZE objects of size
-   ELEMENT_SIZE, grow it to contain at least MIN_SIZE objects,
-   updating *OLD_VECT and *SIZE as necessary.  */
-
-static void
-grow_vect (char **old_vect, size_t *size, size_t min_size, int element_size)
-{
-  if (*size < min_size)
-    {
-      *size *= 2;
-      if (*size < min_size)
-	*size = min_size;
-      *old_vect = XRESIZEVAR (char, *old_vect, *size * element_size);
-    }
-}
-
-/* Demangle ada names:
-   1. Discard final __{DIGIT}+ or ${DIGIT}+
-   2. Convert other instances of embedded "__" to `.'.
-   3. Discard leading _ada_.
-   4. Remove everything after first ___ if it is followed by 'X'.
-   5. Put symbols that should be suppressed in <...> brackets.
-   The resulting string is valid until the next call of ada_demangle.  */
-
-static char *
-ada_demangle (const char *mangled, int option ATTRIBUTE_UNUSED)
-{
-  int i, j;
-  int len0;
-  const char* p;
-  char *demangled = NULL;
-  int changed;
-  size_t demangled_size = 0;
-  
-  changed = 0;
-
-  if (strncmp (mangled, "_ada_", 5) == 0)
-    {
-      mangled += 5;
-      changed = 1;
-    }
-  
-  if (mangled[0] == '_' || mangled[0] == '<')
-    goto Suppress;
-  
-  p = strstr (mangled, "___");
-  if (p == NULL)
-    len0 = strlen (mangled);
-  else
-    {
-      if (p[3] == 'X')
-	{
-	  len0 = p - mangled;
-	  changed = 1;
-	}
-      else
-	goto Suppress;
-    }
-  
-  /* Make demangled big enough for possible expansion by operator name.  */
-  grow_vect (&demangled,
-	     &demangled_size,  2 * len0 + 1,
-	     sizeof (char));
-  
-  if (ISDIGIT ((unsigned char) mangled[len0 - 1])) {
-    for (i = len0 - 2; i >= 0 && ISDIGIT ((unsigned char) mangled[i]); i -= 1)
-      ;
-    if (i > 1 && mangled[i] == '_' && mangled[i - 1] == '_')
-      {
-	len0 = i - 1;
-	changed = 1;
-      }
-    else if (mangled[i] == '$')
-      {
-	len0 = i;
-	changed = 1;
-      }
-  }
-  
-  for (i = 0, j = 0; i < len0 && ! ISALPHA ((unsigned char)mangled[i]);
-       i += 1, j += 1)
-    demangled[j] = mangled[i];
-  
-  while (i < len0)
-    {
-      if (i < len0 - 2 && mangled[i] == '_' && mangled[i + 1] == '_')
-	{
-	  demangled[j] = '.';
-	  changed = 1;
-	  i += 2; j += 1;
-	}
-      else
-	{
-	  demangled[j] = mangled[i];
-	  i += 1;  j += 1;
-	}
-    }
-  demangled[j] = '\000';
-  
-  for (i = 0; demangled[i] != '\0'; i += 1)
-    if (ISUPPER ((unsigned char)demangled[i]) || demangled[i] == ' ')
-      goto Suppress;
-
-  if (! changed)
-    return NULL;
-  else
-    return demangled;
-  
- Suppress:
-  grow_vect (&demangled,
-	     &demangled_size,  strlen (mangled) + 3,
-	     sizeof (char));
-
-  if (mangled[0] == '<')
-     strcpy (demangled, mangled);
-  else
-    sprintf (demangled, "<%s>", mangled);
-
-  return demangled;
-}
-
-/* This function performs most of what cplus_demangle use to do, but
-   to be able to demangle a name with a B, K or n code, we need to
-   have a longer term memory of what types have been seen. The original
-   now initializes and cleans up the squangle code info, while internal
-   calls go directly to this routine to avoid resetting that info. */
-
-static char *
-internal_cplus_demangle (struct work_stuff *work, const char *mangled)
-{
-
-  string decl;
-  int success = 0;
-  char *demangled = NULL;
-  int s1, s2, s3, s4;
-  s1 = work->constructor;
-  s2 = work->destructor;
-  s3 = work->static_type;
-  s4 = work->type_quals;
-  work->constructor = work->destructor = 0;
-  work->type_quals = TYPE_UNQUALIFIED;
-  work->dllimported = 0;
-
-  if ((mangled != NULL) && (*mangled != '\0'))
-    {
-      string_init (&decl);
-
-      /* First check to see if gnu style demangling is active and if the
-	 string to be demangled contains a CPLUS_MARKER.  If so, attempt to
-	 recognize one of the gnu special forms rather than looking for a
-	 standard prefix.  In particular, don't worry about whether there
-	 is a "__" string in the mangled string.  Consider "_$_5__foo" for
-	 example.  */
-
-      if ((AUTO_DEMANGLING || GNU_DEMANGLING))
-	{
-	  success = gnu_special (work, &mangled, &decl);
-	}
-      if (!success)
-	{
-	  success = demangle_prefix (work, &mangled, &decl);
-	}
-      if (success && (*mangled != '\0'))
-	{
-	  success = demangle_signature (work, &mangled, &decl);
-	}
-      if (work->constructor == 2)
-        {
-          string_prepend (&decl, "global constructors keyed to ");
-          work->constructor = 0;
-        }
-      else if (work->destructor == 2)
-        {
-          string_prepend (&decl, "global destructors keyed to ");
-          work->destructor = 0;
-        }
-      else if (work->dllimported == 1)
-        {
-          string_prepend (&decl, "import stub for ");
-          work->dllimported = 0;
-        }
-      demangled = mop_up (work, &decl, success);
-    }
-  work->constructor = s1;
-  work->destructor = s2;
-  work->static_type = s3;
-  work->type_quals = s4;
-  return demangled;
-}
-
-
-/* Clear out and squangling related storage */
-static void
-squangle_mop_up (struct work_stuff *work)
-{
-  /* clean up the B and K type mangling types. */
-  forget_B_and_K_types (work);
-  if (work -> btypevec != NULL)
-    {
-      free ((char *) work -> btypevec);
-    }
-  if (work -> ktypevec != NULL)
-    {
-      free ((char *) work -> ktypevec);
-    }
-}
-
-
-/* Copy the work state and storage.  */
-
-static void
-work_stuff_copy_to_from (struct work_stuff *to, struct work_stuff *from)
-{
-  int i;
-
-  delete_work_stuff (to);
-
-  /* Shallow-copy scalars.  */
-  memcpy (to, from, sizeof (*to));
-
-  /* Deep-copy dynamic storage.  */
-  if (from->typevec_size)
-    to->typevec = XNEWVEC (char *, from->typevec_size);
-
-  for (i = 0; i < from->ntypes; i++)
-    {
-      int len = strlen (from->typevec[i]) + 1;
-
-      to->typevec[i] = XNEWVEC (char, len);
-      memcpy (to->typevec[i], from->typevec[i], len);
-    }
-
-  if (from->ksize)
-    to->ktypevec = XNEWVEC (char *, from->ksize);
-
-  for (i = 0; i < from->numk; i++)
-    {
-      int len = strlen (from->ktypevec[i]) + 1;
-
-      to->ktypevec[i] = XNEWVEC (char, len);
-      memcpy (to->ktypevec[i], from->ktypevec[i], len);
-    }
-
-  if (from->bsize)
-    to->btypevec = XNEWVEC (char *, from->bsize);
-
-  for (i = 0; i < from->numb; i++)
-    {
-      int len = strlen (from->btypevec[i]) + 1;
-
-      to->btypevec[i] = XNEWVEC (char , len);
-      memcpy (to->btypevec[i], from->btypevec[i], len);
-    }
-
-  if (from->ntmpl_args)
-    to->tmpl_argvec = XNEWVEC (char *, from->ntmpl_args);
-
-  for (i = 0; i < from->ntmpl_args; i++)
-    {
-      int len = strlen (from->tmpl_argvec[i]) + 1;
-
-      to->tmpl_argvec[i] = XNEWVEC (char, len);
-      memcpy (to->tmpl_argvec[i], from->tmpl_argvec[i], len);
-    }
-
-  if (from->previous_argument)
-    {
-      to->previous_argument = XNEW (string);
-      string_init (to->previous_argument);
-      string_appends (to->previous_argument, from->previous_argument);
-    }
-}
-
-
-/* Delete dynamic stuff in work_stuff that is not to be re-used.  */
-
-static void
-delete_non_B_K_work_stuff (struct work_stuff *work)
-{
-  /* Discard the remembered types, if any.  */
-
-  forget_types (work);
-  if (work -> typevec != NULL)
-    {
-      free ((char *) work -> typevec);
-      work -> typevec = NULL;
-      work -> typevec_size = 0;
-    }
-  if (work->tmpl_argvec)
-    {
-      int i;
-
-      for (i = 0; i < work->ntmpl_args; i++)
-	if (work->tmpl_argvec[i])
-	  free ((char*) work->tmpl_argvec[i]);
-
-      free ((char*) work->tmpl_argvec);
-      work->tmpl_argvec = NULL;
-    }
-  if (work->previous_argument)
-    {
-      string_delete (work->previous_argument);
-      free ((char*) work->previous_argument);
-      work->previous_argument = NULL;
-    }
-}
-
-
-/* Delete all dynamic storage in work_stuff.  */
-static void
-delete_work_stuff (struct work_stuff *work)
-{
-  delete_non_B_K_work_stuff (work);
-  squangle_mop_up (work);
-}
-
-
-/* Clear out any mangled storage */
-
-static char *
-mop_up (struct work_stuff *work, string *declp, int success)
-{
-  char *demangled = NULL;
-
-  delete_non_B_K_work_stuff (work);
-
-  /* If demangling was successful, ensure that the demangled string is null
-     terminated and return it.  Otherwise, free the demangling decl.  */
-
-  if (!success)
-    {
-      string_delete (declp);
-    }
-  else
-    {
-      string_appendn (declp, "", 1);
-      demangled = declp->b;
-    }
-  return (demangled);
-}
-
-/*
-
-LOCAL FUNCTION
-
-	demangle_signature -- demangle the signature part of a mangled name
-
-SYNOPSIS
-
-	static int
-	demangle_signature (struct work_stuff *work, const char **mangled,
-			    string *declp);
-
-DESCRIPTION
-
-	Consume and demangle the signature portion of the mangled name.
-
-	DECLP is the string where demangled output is being built.  At
-	entry it contains the demangled root name from the mangled name
-	prefix.  I.E. either a demangled operator name or the root function
-	name.  In some special cases, it may contain nothing.
-
-	*MANGLED points to the current unconsumed location in the mangled
-	name.  As tokens are consumed and demangling is performed, the
-	pointer is updated to continuously point at the next token to
-	be consumed.
-
-	Demangling GNU style mangled names is nasty because there is no
-	explicit token that marks the start of the outermost function
-	argument list.  */
-
-static int
-demangle_signature (struct work_stuff *work,
-                    const char **mangled, string *declp)
-{
-  int success = 1;
-  int func_done = 0;
-  int expect_func = 0;
-  int expect_return_type = 0;
-  const char *oldmangled = NULL;
-  string trawname;
-  string tname;
-
-  while (success && (**mangled != '\0'))
-    {
-      switch (**mangled)
-	{
-	case 'Q':
-	  oldmangled = *mangled;
-	  success = demangle_qualified (work, mangled, declp, 1, 0);
-	  if (success)
-	    remember_type (work, oldmangled, *mangled - oldmangled);
-	  if (AUTO_DEMANGLING || GNU_DEMANGLING)
-	    expect_func = 1;
-	  oldmangled = NULL;
-	  break;
-
-        case 'K':
-	  oldmangled = *mangled;
-	  success = demangle_qualified (work, mangled, declp, 1, 0);
-	  if (AUTO_DEMANGLING || GNU_DEMANGLING)
-	    {
-	      expect_func = 1;
-	    }
-	  oldmangled = NULL;
-	  break;
-
-	case 'S':
-	  /* Static member function */
-	  if (oldmangled == NULL)
-	    {
-	      oldmangled = *mangled;
-	    }
-	  (*mangled)++;
-	  work -> static_type = 1;
-	  break;
-
-	case 'C':
-	case 'V':
-	case 'u':
-	  work->type_quals |= code_for_qualifier (**mangled);
-
-	  /* a qualified member function */
-	  if (oldmangled == NULL)
-	    oldmangled = *mangled;
-	  (*mangled)++;
-	  break;
-
-	case 'L':
-	  /* Local class name follows after "Lnnn_" */
-	  if (HP_DEMANGLING)
-	    {
-	      while (**mangled && (**mangled != '_'))
-		(*mangled)++;
-	      if (!**mangled)
-		success = 0;
-	      else
-		(*mangled)++;
-	    }
-	  else
-	    success = 0;
-	  break;
-
-	case '0': case '1': case '2': case '3': case '4':
-	case '5': case '6': case '7': case '8': case '9':
-	  if (oldmangled == NULL)
-	    {
-	      oldmangled = *mangled;
-	    }
-          work->temp_start = -1; /* uppermost call to demangle_class */
-	  success = demangle_class (work, mangled, declp);
-	  if (success)
-	    {
-	      remember_type (work, oldmangled, *mangled - oldmangled);
-	    }
-	  if (AUTO_DEMANGLING || GNU_DEMANGLING || EDG_DEMANGLING)
-	    {
-              /* EDG and others will have the "F", so we let the loop cycle
-                 if we are looking at one. */
-              if (**mangled != 'F')
-                 expect_func = 1;
-	    }
-	  oldmangled = NULL;
-	  break;
-
-	case 'B':
-	  {
-	    string s;
-	    success = do_type (work, mangled, &s);
-	    if (success)
-	      {
-		string_append (&s, SCOPE_STRING (work));
-		string_prepends (declp, &s);
-		string_delete (&s);
-	      }
-	    oldmangled = NULL;
-	    expect_func = 1;
-	  }
-	  break;
-
-	case 'F':
-	  /* Function */
-	  /* ARM/HP style demangling includes a specific 'F' character after
-	     the class name.  For GNU style, it is just implied.  So we can
-	     safely just consume any 'F' at this point and be compatible
-	     with either style.  */
-
-	  oldmangled = NULL;
-	  func_done = 1;
-	  (*mangled)++;
-
-	  /* For lucid/ARM/HP style we have to forget any types we might
-	     have remembered up to this point, since they were not argument
-	     types.  GNU style considers all types seen as available for
-	     back references.  See comment in demangle_args() */
-
-	  if (LUCID_DEMANGLING || ARM_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING)
-	    {
-	      forget_types (work);
-	    }
-	  success = demangle_args (work, mangled, declp);
-	  /* After picking off the function args, we expect to either
-	     find the function return type (preceded by an '_') or the
-	     end of the string. */
-	  if (success && (AUTO_DEMANGLING || EDG_DEMANGLING) && **mangled == '_')
-	    {
-	      ++(*mangled);
-              /* At this level, we do not care about the return type. */
-              success = do_type (work, mangled, &tname);
-              string_delete (&tname);
-            }
-
-	  break;
-
-	case 't':
-	  /* G++ Template */
-	  string_init(&trawname);
-	  string_init(&tname);
-	  if (oldmangled == NULL)
-	    {
-	      oldmangled = *mangled;
-	    }
-	  success = demangle_template (work, mangled, &tname,
-				       &trawname, 1, 1);
-	  if (success)
-	    {
-	      remember_type (work, oldmangled, *mangled - oldmangled);
-	    }
-	  string_append (&tname, SCOPE_STRING (work));
-
-	  string_prepends(declp, &tname);
-	  if (work -> destructor & 1)
-	    {
-	      string_prepend (&trawname, "~");
-	      string_appends (declp, &trawname);
-	      work->destructor -= 1;
-	    }
-	  if ((work->constructor & 1) || (work->destructor & 1))
-	    {
-	      string_appends (declp, &trawname);
-	      work->constructor -= 1;
-	    }
-	  string_delete(&trawname);
-	  string_delete(&tname);
-	  oldmangled = NULL;
-	  expect_func = 1;
-	  break;
-
-	case '_':
-	  if ((AUTO_DEMANGLING || GNU_DEMANGLING) && expect_return_type)
-	    {
-	      /* Read the return type. */
-	      string return_type;
-
-	      (*mangled)++;
-	      success = do_type (work, mangled, &return_type);
-	      APPEND_BLANK (&return_type);
-
-	      string_prepends (declp, &return_type);
-	      string_delete (&return_type);
-	      break;
-	    }
-	  else
-	    /* At the outermost level, we cannot have a return type specified,
-	       so if we run into another '_' at this point we are dealing with
-	       a mangled name that is either bogus, or has been mangled by
-	       some algorithm we don't know how to deal with.  So just
-	       reject the entire demangling.  */
-            /* However, "_nnn" is an expected suffix for alternate entry point
-               numbered nnn for a function, with HP aCC, so skip over that
-               without reporting failure. pai/1997-09-04 */
-            if (HP_DEMANGLING)
-              {
-                (*mangled)++;
-                while (**mangled && ISDIGIT ((unsigned char)**mangled))
-                  (*mangled)++;
-              }
-            else
-	      success = 0;
-	  break;
-
-	case 'H':
-	  if (AUTO_DEMANGLING || GNU_DEMANGLING)
-	    {
-	      /* A G++ template function.  Read the template arguments. */
-	      success = demangle_template (work, mangled, declp, 0, 0,
-					   0);
-	      if (!(work->constructor & 1))
-		expect_return_type = 1;
-	      (*mangled)++;
-	      break;
-	    }
-	  else
-	    /* fall through */
-	    {;}
-
-	default:
-	  if (AUTO_DEMANGLING || GNU_DEMANGLING)
-	    {
-	      /* Assume we have stumbled onto the first outermost function
-		 argument token, and start processing args.  */
-	      func_done = 1;
-	      success = demangle_args (work, mangled, declp);
-	    }
-	  else
-	    {
-	      /* Non-GNU demanglers use a specific token to mark the start
-		 of the outermost function argument tokens.  Typically 'F',
-		 for ARM/HP-demangling, for example.  So if we find something
-		 we are not prepared for, it must be an error.  */
-	      success = 0;
-	    }
-	  break;
-	}
-      /*
-	if (AUTO_DEMANGLING || GNU_DEMANGLING)
-	*/
-      {
-	if (success && expect_func)
-	  {
-	    func_done = 1;
-              if (LUCID_DEMANGLING || ARM_DEMANGLING || EDG_DEMANGLING)
-                {
-                  forget_types (work);
-                }
-	    success = demangle_args (work, mangled, declp);
-	    /* Since template include the mangling of their return types,
-	       we must set expect_func to 0 so that we don't try do
-	       demangle more arguments the next time we get here.  */
-	    expect_func = 0;
-	  }
-      }
-    }
-  if (success && !func_done)
-    {
-      if (AUTO_DEMANGLING || GNU_DEMANGLING)
-	{
-	  /* With GNU style demangling, bar__3foo is 'foo::bar(void)', and
-	     bar__3fooi is 'foo::bar(int)'.  We get here when we find the
-	     first case, and need to ensure that the '(void)' gets added to
-	     the current declp.  Note that with ARM/HP, the first case
-	     represents the name of a static data member 'foo::bar',
-	     which is in the current declp, so we leave it alone.  */
-	  success = demangle_args (work, mangled, declp);
-	}
-    }
-  if (success && PRINT_ARG_TYPES)
-    {
-      if (work->static_type)
-	string_append (declp, " static");
-      if (work->type_quals != TYPE_UNQUALIFIED)
-	{
-	  APPEND_BLANK (declp);
-	  string_append (declp, qualifier_string (work->type_quals));
-	}
-    }
-
-  return (success);
-}
-
-#if 0
-
-static int
-demangle_method_args (struct work_stuff *work, const char **mangled,
-                      string *declp)
-{
-  int success = 0;
-
-  if (work -> static_type)
-    {
-      string_append (declp, *mangled + 1);
-      *mangled += strlen (*mangled);
-      success = 1;
-    }
-  else
-    {
-      success = demangle_args (work, mangled, declp);
-    }
-  return (success);
-}
-
-#endif
-
-static int
-demangle_template_template_parm (struct work_stuff *work,
-                                 const char **mangled, string *tname)
-{
-  int i;
-  int r;
-  int need_comma = 0;
-  int success = 1;
-  string temp;
-
-  string_append (tname, "template <");
-  /* get size of template parameter list */
-  if (get_count (mangled, &r))
-    {
-      for (i = 0; i < r; i++)
-	{
-	  if (need_comma)
-	    {
-	      string_append (tname, ", ");
-	    }
-
-	    /* Z for type parameters */
-	    if (**mangled == 'Z')
-	      {
-		(*mangled)++;
-		string_append (tname, "class");
-	      }
-	      /* z for template parameters */
-	    else if (**mangled == 'z')
-	      {
-		(*mangled)++;
-		success =
-		  demangle_template_template_parm (work, mangled, tname);
-		if (!success)
-		  {
-		    break;
-		  }
-	      }
-	    else
-	      {
-		/* temp is initialized in do_type */
-		success = do_type (work, mangled, &temp);
-		if (success)
-		  {
-		    string_appends (tname, &temp);
-		  }
-		string_delete(&temp);
-		if (!success)
-		  {
-		    break;
-		  }
-	      }
-	  need_comma = 1;
-	}
-
-    }
-  if (tname->p[-1] == '>')
-    string_append (tname, " ");
-  string_append (tname, "> class");
-  return (success);
-}
-
-static int
-demangle_expression (struct work_stuff *work, const char **mangled,
-                     string *s, type_kind_t tk)
-{
-  int need_operator = 0;
-  int success;
-
-  success = 1;
-  string_appendn (s, "(", 1);
-  (*mangled)++;
-  while (success && **mangled != 'W' && **mangled != '\0')
-    {
-      if (need_operator)
-	{
-	  size_t i;
-	  size_t len;
-
-	  success = 0;
-
-	  len = strlen (*mangled);
-
-	  for (i = 0; i < ARRAY_SIZE (optable); ++i)
-	    {
-	      size_t l = strlen (optable[i].in);
-
-	      if (l <= len
-		  && memcmp (optable[i].in, *mangled, l) == 0)
-		{
-		  string_appendn (s, " ", 1);
-		  string_append (s, optable[i].out);
-		  string_appendn (s, " ", 1);
-		  success = 1;
-		  (*mangled) += l;
-		  break;
-		}
-	    }
-
-	  if (!success)
-	    break;
-	}
-      else
-	need_operator = 1;
-
-      success = demangle_template_value_parm (work, mangled, s, tk);
-    }
-
-  if (**mangled != 'W')
-    success = 0;
-  else
-    {
-      string_appendn (s, ")", 1);
-      (*mangled)++;
-    }
-
-  return success;
-}
-
-static int
-demangle_integral_value (struct work_stuff *work,
-                         const char **mangled, string *s)
-{
-  int success;
-
-  if (**mangled == 'E')
-    success = demangle_expression (work, mangled, s, tk_integral);
-  else if (**mangled == 'Q' || **mangled == 'K')
-    success = demangle_qualified (work, mangled, s, 0, 1);
-  else
-    {
-      int value;
-
-      /* By default, we let the number decide whether we shall consume an
-	 underscore.  */
-      int multidigit_without_leading_underscore = 0;
-      int leave_following_underscore = 0;
-
-      success = 0;
-
-      if (**mangled == '_')
-        {
-	  if (mangled[0][1] == 'm')
-	    {
-	      /* Since consume_count_with_underscores does not handle the
-		 `m'-prefix we must do it here, using consume_count and
-		 adjusting underscores: we have to consume the underscore
-		 matching the prepended one.  */
-	      multidigit_without_leading_underscore = 1;
-	      string_appendn (s, "-", 1);
-	      (*mangled) += 2;
-	    }
-	  else
-	    {
-	      /* Do not consume a following underscore;
-	         consume_count_with_underscores will consume what
-	         should be consumed.  */
-	      leave_following_underscore = 1;
-	    }
-	}
-      else
-	{
-	  /* Negative numbers are indicated with a leading `m'.  */
-	  if (**mangled == 'm')
-	  {
-	    string_appendn (s, "-", 1);
-	    (*mangled)++;
-	  }
-	  /* Since consume_count_with_underscores does not handle
-	     multi-digit numbers that do not start with an underscore,
-	     and this number can be an integer template parameter,
-	     we have to call consume_count. */
-	  multidigit_without_leading_underscore = 1;
-	  /* These multi-digit numbers never end on an underscore,
-	     so if there is one then don't eat it. */
-	  leave_following_underscore = 1;
-	}
-
-      /* We must call consume_count if we expect to remove a trailing
-	 underscore, since consume_count_with_underscores expects
-	 the leading underscore (that we consumed) if it is to handle
-	 multi-digit numbers.  */
-      if (multidigit_without_leading_underscore)
-	value = consume_count (mangled);
-      else
-	value = consume_count_with_underscores (mangled);
-
-      if (value != -1)
-	{
-	  char buf[INTBUF_SIZE];
-	  sprintf (buf, "%d", value);
-	  string_append (s, buf);
-
-	  /* Numbers not otherwise delimited, might have an underscore
-	     appended as a delimeter, which we should skip.
-
-	     ??? This used to always remove a following underscore, which
-	     is wrong.  If other (arbitrary) cases are followed by an
-	     underscore, we need to do something more radical.  */
-
-	  if ((value > 9 || multidigit_without_leading_underscore)
-	      && ! leave_following_underscore
-	      && **mangled == '_')
-	    (*mangled)++;
-
-	  /* All is well.  */
-	  success = 1;
-	}
-      }
-
-  return success;
-}
-
-/* Demangle the real value in MANGLED.  */
-
-static int
-demangle_real_value (struct work_stuff *work,
-                     const char **mangled, string *s)
-{
-  if (**mangled == 'E')
-    return demangle_expression (work, mangled, s, tk_real);
-
-  if (**mangled == 'm')
-    {
-      string_appendn (s, "-", 1);
-      (*mangled)++;
-    }
-  while (ISDIGIT ((unsigned char)**mangled))
-    {
-      string_appendn (s, *mangled, 1);
-      (*mangled)++;
-    }
-  if (**mangled == '.') /* fraction */
-    {
-      string_appendn (s, ".", 1);
-      (*mangled)++;
-      while (ISDIGIT ((unsigned char)**mangled))
-	{
-	  string_appendn (s, *mangled, 1);
-	  (*mangled)++;
-	}
-    }
-  if (**mangled == 'e') /* exponent */
-    {
-      string_appendn (s, "e", 1);
-      (*mangled)++;
-      while (ISDIGIT ((unsigned char)**mangled))
-	{
-	  string_appendn (s, *mangled, 1);
-	  (*mangled)++;
-	}
-    }
-
-  return 1;
-}
-
-static int
-demangle_template_value_parm (struct work_stuff *work, const char **mangled,
-                              string *s, type_kind_t tk)
-{
-  int success = 1;
-
-  if (**mangled == 'Y')
-    {
-      /* The next argument is a template parameter. */
-      int idx;
-
-      (*mangled)++;
-      idx = consume_count_with_underscores (mangled);
-      if (idx == -1
-	  || (work->tmpl_argvec && idx >= work->ntmpl_args)
-	  || consume_count_with_underscores (mangled) == -1)
-	return -1;
-      if (work->tmpl_argvec)
-	string_append (s, work->tmpl_argvec[idx]);
-      else
-	string_append_template_idx (s, idx);
-    }
-  else if (tk == tk_integral)
-    success = demangle_integral_value (work, mangled, s);
-  else if (tk == tk_char)
-    {
-      char tmp[2];
-      int val;
-      if (**mangled == 'm')
-	{
-	  string_appendn (s, "-", 1);
-	  (*mangled)++;
-	}
-      string_appendn (s, "'", 1);
-      val = consume_count(mangled);
-      if (val <= 0)
-	success = 0;
-      else
-	{
-	  tmp[0] = (char)val;
-	  tmp[1] = '\0';
-	  string_appendn (s, &tmp[0], 1);
-	  string_appendn (s, "'", 1);
-	}
-    }
-  else if (tk == tk_bool)
-    {
-      int val = consume_count (mangled);
-      if (val == 0)
-	string_appendn (s, "false", 5);
-      else if (val == 1)
-	string_appendn (s, "true", 4);
-      else
-	success = 0;
-    }
-  else if (tk == tk_real)
-    success = demangle_real_value (work, mangled, s);
-  else if (tk == tk_pointer || tk == tk_reference)
-    {
-      if (**mangled == 'Q')
-	success = demangle_qualified (work, mangled, s,
-				      /*isfuncname=*/0, 
-				      /*append=*/1);
-      else
-	{
-	  int symbol_len  = consume_count (mangled);
-	  if (symbol_len == -1)
-	    return -1;
-	  if (symbol_len == 0)
-	    string_appendn (s, "0", 1);
-	  else
-	    {
-	      char *p = XNEWVEC (char, symbol_len + 1), *q;
-	      strncpy (p, *mangled, symbol_len);
-	      p [symbol_len] = '\0';
-	      /* We use cplus_demangle here, rather than
-		 internal_cplus_demangle, because the name of the entity
-		 mangled here does not make use of any of the squangling
-		 or type-code information we have built up thus far; it is
-		 mangled independently.  */
-	      q = cplus_demangle (p, work->options);
-	      if (tk == tk_pointer)
-		string_appendn (s, "&", 1);
-	      /* FIXME: Pointer-to-member constants should get a
-		 qualifying class name here.  */
-	      if (q)
-		{
-		  string_append (s, q);
-		  free (q);
-		}
-	      else
-		string_append (s, p);
-	      free (p);
-	    }
-	  *mangled += symbol_len;
-	}
-    }
-
-  return success;
-}
-
-/* Demangle the template name in MANGLED.  The full name of the
-   template (e.g., S<int>) is placed in TNAME.  The name without the
-   template parameters (e.g. S) is placed in TRAWNAME if TRAWNAME is
-   non-NULL.  If IS_TYPE is nonzero, this template is a type template,
-   not a function template.  If both IS_TYPE and REMEMBER are nonzero,
-   the template is remembered in the list of back-referenceable
-   types.  */
-
-static int
-demangle_template (struct work_stuff *work, const char **mangled,
-                   string *tname, string *trawname,
-                   int is_type, int remember)
-{
-  int i;
-  int r;
-  int need_comma = 0;
-  int success = 0;
-  int is_java_array = 0;
-  string temp;
-
-  (*mangled)++;
-  if (is_type)
-    {
-      /* get template name */
-      if (**mangled == 'z')
-	{
-	  int idx;
-	  (*mangled)++;
-	  (*mangled)++;
-
-	  idx = consume_count_with_underscores (mangled);
-	  if (idx == -1
-	      || (work->tmpl_argvec && idx >= work->ntmpl_args)
-	      || consume_count_with_underscores (mangled) == -1)
-	    return (0);
-
-	  if (work->tmpl_argvec)
-	    {
-	      string_append (tname, work->tmpl_argvec[idx]);
-	      if (trawname)
-		string_append (trawname, work->tmpl_argvec[idx]);
-	    }
-	  else
-	    {
-	      string_append_template_idx (tname, idx);
-	      if (trawname)
-		string_append_template_idx (trawname, idx);
-	    }
-	}
-      else
-	{
-	  if ((r = consume_count (mangled)) <= 0
-	      || (int) strlen (*mangled) < r)
-	    {
-	      return (0);
-	    }
-	  is_java_array = (work -> options & DMGL_JAVA)
-	    && strncmp (*mangled, "JArray1Z", 8) == 0;
-	  if (! is_java_array)
-	    {
-	      string_appendn (tname, *mangled, r);
-	    }
-	  if (trawname)
-	    string_appendn (trawname, *mangled, r);
-	  *mangled += r;
-	}
-    }
-  if (!is_java_array)
-    string_append (tname, "<");
-  /* get size of template parameter list */
-  if (!get_count (mangled, &r))
-    {
-      return (0);
-    }
-  if (!is_type)
-    {
-      /* Create an array for saving the template argument values. */
-      work->tmpl_argvec = XNEWVEC (char *, r);
-      work->ntmpl_args = r;
-      for (i = 0; i < r; i++)
-	work->tmpl_argvec[i] = 0;
-    }
-  for (i = 0; i < r; i++)
-    {
-      if (need_comma)
-	{
-	  string_append (tname, ", ");
-	}
-      /* Z for type parameters */
-      if (**mangled == 'Z')
-	{
-	  (*mangled)++;
-	  /* temp is initialized in do_type */
-	  success = do_type (work, mangled, &temp);
-	  if (success)
-	    {
-	      string_appends (tname, &temp);
-
-	      if (!is_type)
-		{
-		  /* Save the template argument. */
-		  int len = temp.p - temp.b;
-		  work->tmpl_argvec[i] = XNEWVEC (char, len + 1);
-		  memcpy (work->tmpl_argvec[i], temp.b, len);
-		  work->tmpl_argvec[i][len] = '\0';
-		}
-	    }
-	  string_delete(&temp);
-	  if (!success)
-	    {
-	      break;
-	    }
-	}
-      /* z for template parameters */
-      else if (**mangled == 'z')
-	{
-	  int r2;
-	  (*mangled)++;
-	  success = demangle_template_template_parm (work, mangled, tname);
-
-	  if (success
-	      && (r2 = consume_count (mangled)) > 0
-	      && (int) strlen (*mangled) >= r2)
-	    {
-	      string_append (tname, " ");
-	      string_appendn (tname, *mangled, r2);
-	      if (!is_type)
-		{
-		  /* Save the template argument. */
-		  int len = r2;
-		  work->tmpl_argvec[i] = XNEWVEC (char, len + 1);
-		  memcpy (work->tmpl_argvec[i], *mangled, len);
-		  work->tmpl_argvec[i][len] = '\0';
-		}
-	      *mangled += r2;
-	    }
-	  if (!success)
-	    {
-	      break;
-	    }
-	}
-      else
-	{
-	  string  param;
-	  string* s;
-
-	  /* otherwise, value parameter */
-
-	  /* temp is initialized in do_type */
-	  success = do_type (work, mangled, &temp);
-	  string_delete(&temp);
-	  if (!success)
-	    break;
-
-	  if (!is_type)
-	    {
-	      s = &param;
-	      string_init (s);
-	    }
-	  else
-	    s = tname;
-
-	  success = demangle_template_value_parm (work, mangled, s,
-						  (type_kind_t) success);
-
-	  if (!success)
-	    {
-	      if (!is_type)
-		string_delete (s);
-	      success = 0;
-	      break;
-	    }
-
-	  if (!is_type)
-	    {
-	      int len = s->p - s->b;
-	      work->tmpl_argvec[i] = XNEWVEC (char, len + 1);
-	      memcpy (work->tmpl_argvec[i], s->b, len);
-	      work->tmpl_argvec[i][len] = '\0';
-
-	      string_appends (tname, s);
-	      string_delete (s);
-	    }
-	}
-      need_comma = 1;
-    }
-  if (is_java_array)
-    {
-      string_append (tname, "[]");
-    }
-  else
-    {
-      if (tname->p[-1] == '>')
-	string_append (tname, " ");
-      string_append (tname, ">");
-    }
-
-  if (is_type && remember)
-    {
-      const int bindex = register_Btype (work);
-      remember_Btype (work, tname->b, LEN_STRING (tname), bindex);
-    }
-
-  /*
-    if (work -> static_type)
-    {
-    string_append (declp, *mangled + 1);
-    *mangled += strlen (*mangled);
-    success = 1;
-    }
-    else
-    {
-    success = demangle_args (work, mangled, declp);
-    }
-    }
-    */
-  return (success);
-}
-
-static int
-arm_pt (struct work_stuff *work, const char *mangled,
-        int n, const char **anchor, const char **args)
-{
-  /* Check if ARM template with "__pt__" in it ("parameterized type") */
-  /* Allow HP also here, because HP's cfront compiler follows ARM to some extent */
-  if ((ARM_DEMANGLING || HP_DEMANGLING) && (*anchor = strstr (mangled, "__pt__")))
-    {
-      int len;
-      *args = *anchor + 6;
-      len = consume_count (args);
-      if (len == -1)
-	return 0;
-      if (*args + len == mangled + n && **args == '_')
-	{
-	  ++*args;
-	  return 1;
-	}
-    }
-  if (AUTO_DEMANGLING || EDG_DEMANGLING)
-    {
-      if ((*anchor = strstr (mangled, "__tm__"))
-          || (*anchor = strstr (mangled, "__ps__"))
-          || (*anchor = strstr (mangled, "__pt__")))
-        {
-          int len;
-          *args = *anchor + 6;
-          len = consume_count (args);
-	  if (len == -1)
-	    return 0;
-          if (*args + len == mangled + n && **args == '_')
-            {
-              ++*args;
-              return 1;
-            }
-        }
-      else if ((*anchor = strstr (mangled, "__S")))
-        {
- 	  int len;
- 	  *args = *anchor + 3;
- 	  len = consume_count (args);
-	  if (len == -1)
-	    return 0;
- 	  if (*args + len == mangled + n && **args == '_')
-            {
-              ++*args;
- 	      return 1;
-            }
-        }
-    }
-
-  return 0;
-}
-
-static void
-demangle_arm_hp_template (struct work_stuff *work, const char **mangled,
-                          int n, string *declp)
-{
-  const char *p;
-  const char *args;
-  const char *e = *mangled + n;
-  string arg;
-
-  /* Check for HP aCC template spec: classXt1t2 where t1, t2 are
-     template args */
-  if (HP_DEMANGLING && ((*mangled)[n] == 'X'))
-    {
-      char *start_spec_args = NULL;
-      int hold_options;
-
-      /* First check for and omit template specialization pseudo-arguments,
-         such as in "Spec<#1,#1.*>" */
-      start_spec_args = strchr (*mangled, '<');
-      if (start_spec_args && (start_spec_args - *mangled < n))
-        string_appendn (declp, *mangled, start_spec_args - *mangled);
-      else
-        string_appendn (declp, *mangled, n);
-      (*mangled) += n + 1;
-      string_init (&arg);
-      if (work->temp_start == -1) /* non-recursive call */
-        work->temp_start = declp->p - declp->b;
-
-      /* We want to unconditionally demangle parameter types in
-	 template parameters.  */
-      hold_options = work->options;
-      work->options |= DMGL_PARAMS;
-
-      string_append (declp, "<");
-      while (1)
-        {
-          string_delete (&arg);
-          switch (**mangled)
-            {
-              case 'T':
-                /* 'T' signals a type parameter */
-                (*mangled)++;
-                if (!do_type (work, mangled, &arg))
-                  goto hpacc_template_args_done;
-                break;
-
-              case 'U':
-              case 'S':
-                /* 'U' or 'S' signals an integral value */
-                if (!do_hpacc_template_const_value (work, mangled, &arg))
-                  goto hpacc_template_args_done;
-                break;
-
-              case 'A':
-                /* 'A' signals a named constant expression (literal) */
-                if (!do_hpacc_template_literal (work, mangled, &arg))
-                  goto hpacc_template_args_done;
-                break;
-
-              default:
-                /* Today, 1997-09-03, we have only the above types
-                   of template parameters */
-                /* FIXME: maybe this should fail and return null */
-                goto hpacc_template_args_done;
-            }
-          string_appends (declp, &arg);
-         /* Check if we're at the end of template args.
-             0 if at end of static member of template class,
-             _ if done with template args for a function */
-          if ((**mangled == '\000') || (**mangled == '_'))
-            break;
-          else
-            string_append (declp, ",");
-        }
-    hpacc_template_args_done:
-      string_append (declp, ">");
-      string_delete (&arg);
-      if (**mangled == '_')
-        (*mangled)++;
-      work->options = hold_options;
-      return;
-    }
-  /* ARM template? (Also handles HP cfront extensions) */
-  else if (arm_pt (work, *mangled, n, &p, &args))
-    {
-      int hold_options;
-      string type_str;
-
-      string_init (&arg);
-      string_appendn (declp, *mangled, p - *mangled);
-      if (work->temp_start == -1)  /* non-recursive call */
-	work->temp_start = declp->p - declp->b;
-
-      /* We want to unconditionally demangle parameter types in
-	 template parameters.  */
-      hold_options = work->options;
-      work->options |= DMGL_PARAMS;
-
-      string_append (declp, "<");
-      /* should do error checking here */
-      while (args < e) {
-	string_delete (&arg);
-
-	/* Check for type or literal here */
-	switch (*args)
-	  {
-	    /* HP cfront extensions to ARM for template args */
-	    /* spec: Xt1Lv1 where t1 is a type, v1 is a literal value */
-	    /* FIXME: We handle only numeric literals for HP cfront */
-          case 'X':
-            /* A typed constant value follows */
-            args++;
-            if (!do_type (work, &args, &type_str))
-	      goto cfront_template_args_done;
-            string_append (&arg, "(");
-            string_appends (&arg, &type_str);
-            string_delete (&type_str);
-            string_append (&arg, ")");
-            if (*args != 'L')
-              goto cfront_template_args_done;
-            args++;
-            /* Now snarf a literal value following 'L' */
-            if (!snarf_numeric_literal (&args, &arg))
-	      goto cfront_template_args_done;
-            break;
-
-          case 'L':
-            /* Snarf a literal following 'L' */
-            args++;
-            if (!snarf_numeric_literal (&args, &arg))
-	      goto cfront_template_args_done;
-            break;
-          default:
-            /* Not handling other HP cfront stuff */
-            {
-              const char* old_args = args;
-              if (!do_type (work, &args, &arg))
-                goto cfront_template_args_done;
-
-              /* Fail if we didn't make any progress: prevent infinite loop. */
-              if (args == old_args)
-		{
-		  work->options = hold_options;
-		  return;
-		}
-            }
-	  }
-	string_appends (declp, &arg);
-	string_append (declp, ",");
-      }
-    cfront_template_args_done:
-      string_delete (&arg);
-      if (args >= e)
-	--declp->p; /* remove extra comma */
-      string_append (declp, ">");
-      work->options = hold_options;
-    }
-  else if (n>10 && strncmp (*mangled, "_GLOBAL_", 8) == 0
-	   && (*mangled)[9] == 'N'
-	   && (*mangled)[8] == (*mangled)[10]
-	   && strchr (cplus_markers, (*mangled)[8]))
-    {
-      /* A member of the anonymous namespace.  */
-      string_append (declp, "{anonymous}");
-    }
-  else
-    {
-      if (work->temp_start == -1) /* non-recursive call only */
-	work->temp_start = 0;     /* disable in recursive calls */
-      string_appendn (declp, *mangled, n);
-    }
-  *mangled += n;
-}
-
-/* Extract a class name, possibly a template with arguments, from the
-   mangled string; qualifiers, local class indicators, etc. have
-   already been dealt with */
-
-static int
-demangle_class_name (struct work_stuff *work, const char **mangled,
-                     string *declp)
-{
-  int n;
-  int success = 0;
-
-  n = consume_count (mangled);
-  if (n == -1)
-    return 0;
-  if ((int) strlen (*mangled) >= n)
-    {
-      demangle_arm_hp_template (work, mangled, n, declp);
-      success = 1;
-    }
-
-  return (success);
-}
-
-/*
-
-LOCAL FUNCTION
-
-	demangle_class -- demangle a mangled class sequence
-
-SYNOPSIS
-
-	static int
-	demangle_class (struct work_stuff *work, const char **mangled,
-			strint *declp)
-
-DESCRIPTION
-
-	DECLP points to the buffer into which demangling is being done.
-
-	*MANGLED points to the current token to be demangled.  On input,
-	it points to a mangled class (I.E. "3foo", "13verylongclass", etc.)
-	On exit, it points to the next token after the mangled class on
-	success, or the first unconsumed token on failure.
-
-	If the CONSTRUCTOR or DESTRUCTOR flags are set in WORK, then
-	we are demangling a constructor or destructor.  In this case
-	we prepend "class::class" or "class::~class" to DECLP.
-
-	Otherwise, we prepend "class::" to the current DECLP.
-
-	Reset the constructor/destructor flags once they have been
-	"consumed".  This allows demangle_class to be called later during
-	the same demangling, to do normal class demangling.
-
-	Returns 1 if demangling is successful, 0 otherwise.
-
-*/
-
-static int
-demangle_class (struct work_stuff *work, const char **mangled, string *declp)
-{
-  int success = 0;
-  int btype;
-  string class_name;
-  char *save_class_name_end = 0;
-
-  string_init (&class_name);
-  btype = register_Btype (work);
-  if (demangle_class_name (work, mangled, &class_name))
-    {
-      save_class_name_end = class_name.p;
-      if ((work->constructor & 1) || (work->destructor & 1))
-	{
-          /* adjust so we don't include template args */
-          if (work->temp_start && (work->temp_start != -1))
-            {
-              class_name.p = class_name.b + work->temp_start;
-            }
-	  string_prepends (declp, &class_name);
-	  if (work -> destructor & 1)
-	    {
-	      string_prepend (declp, "~");
-              work -> destructor -= 1;
-	    }
-	  else
-	    {
-	      work -> constructor -= 1;
-	    }
-	}
-      class_name.p = save_class_name_end;
-      remember_Ktype (work, class_name.b, LEN_STRING(&class_name));
-      remember_Btype (work, class_name.b, LEN_STRING(&class_name), btype);
-      string_prepend (declp, SCOPE_STRING (work));
-      string_prepends (declp, &class_name);
-      success = 1;
-    }
-  string_delete (&class_name);
-  return (success);
-}
-
-
-/* Called when there's a "__" in the mangled name, with `scan' pointing to
-   the rightmost guess.
-
-   Find the correct "__"-sequence where the function name ends and the
-   signature starts, which is ambiguous with GNU mangling.
-   Call demangle_signature here, so we can make sure we found the right
-   one; *mangled will be consumed so caller will not make further calls to
-   demangle_signature.  */
-
-static int
-iterate_demangle_function (struct work_stuff *work, const char **mangled,
-                           string *declp, const char *scan)
-{
-  const char *mangle_init = *mangled;
-  int success = 0;
-  string decl_init;
-  struct work_stuff work_init;
-
-  if (*(scan + 2) == '\0')
-    return 0;
-
-  /* Do not iterate for some demangling modes, or if there's only one
-     "__"-sequence.  This is the normal case.  */
-  if (ARM_DEMANGLING || LUCID_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING
-      || strstr (scan + 2, "__") == NULL)
-    {
-      demangle_function_name (work, mangled, declp, scan);
-      return 1;
-    }
-
-  /* Save state so we can restart if the guess at the correct "__" was
-     wrong.  */
-  string_init (&decl_init);
-  string_appends (&decl_init, declp);
-  memset (&work_init, 0, sizeof work_init);
-  work_stuff_copy_to_from (&work_init, work);
-
-  /* Iterate over occurrences of __, allowing names and types to have a
-     "__" sequence in them.  We must start with the first (not the last)
-     occurrence, since "__" most often occur between independent mangled
-     parts, hence starting at the last occurence inside a signature
-     might get us a "successful" demangling of the signature.  */
-
-  while (scan[2])
-    {
-      demangle_function_name (work, mangled, declp, scan);
-      success = demangle_signature (work, mangled, declp);
-      if (success)
-	break;
-
-      /* Reset demangle state for the next round.  */
-      *mangled = mangle_init;
-      string_clear (declp);
-      string_appends (declp, &decl_init);
-      work_stuff_copy_to_from (work, &work_init);
-
-      /* Leave this underscore-sequence.  */
-      scan += 2;
-
-      /* Scan for the next "__" sequence.  */
-      while (*scan && (scan[0] != '_' || scan[1] != '_'))
-	scan++;
-
-      /* Move to last "__" in this sequence.  */
-      while (*scan && *scan == '_')
-	scan++;
-      scan -= 2;
-    }
-
-  /* Delete saved state.  */
-  delete_work_stuff (&work_init);
-  string_delete (&decl_init);
-
-  return success;
-}
-
-/*
-
-LOCAL FUNCTION
-
-	demangle_prefix -- consume the mangled name prefix and find signature
-
-SYNOPSIS
-
-	static int
-	demangle_prefix (struct work_stuff *work, const char **mangled,
-			 string *declp);
-
-DESCRIPTION
-
-	Consume and demangle the prefix of the mangled name.
-	While processing the function name root, arrange to call
-	demangle_signature if the root is ambiguous.
-
-	DECLP points to the string buffer into which demangled output is
-	placed.  On entry, the buffer is empty.  On exit it contains
-	the root function name, the demangled operator name, or in some
-	special cases either nothing or the completely demangled result.
-
-	MANGLED points to the current pointer into the mangled name.  As each
-	token of the mangled name is consumed, it is updated.  Upon entry
-	the current mangled name pointer points to the first character of
-	the mangled name.  Upon exit, it should point to the first character
-	of the signature if demangling was successful, or to the first
-	unconsumed character if demangling of the prefix was unsuccessful.
-
-	Returns 1 on success, 0 otherwise.
- */
-
-static int
-demangle_prefix (struct work_stuff *work, const char **mangled,
-                 string *declp)
-{
-  int success = 1;
-  const char *scan;
-  int i;
-
-  if (strlen(*mangled) > 6
-      && (strncmp(*mangled, "_imp__", 6) == 0
-          || strncmp(*mangled, "__imp_", 6) == 0))
-    {
-      /* it's a symbol imported from a PE dynamic library. Check for both
-         new style prefix _imp__ and legacy __imp_ used by older versions
-	 of dlltool. */
-      (*mangled) += 6;
-      work->dllimported = 1;
-    }
-  else if (strlen(*mangled) >= 11 && strncmp(*mangled, "_GLOBAL_", 8) == 0)
-    {
-      char *marker = strchr (cplus_markers, (*mangled)[8]);
-      if (marker != NULL && *marker == (*mangled)[10])
-	{
-	  if ((*mangled)[9] == 'D')
-	    {
-	      /* it's a GNU global destructor to be executed at program exit */
-	      (*mangled) += 11;
-	      work->destructor = 2;
-	      if (gnu_special (work, mangled, declp))
-		return success;
-	    }
-	  else if ((*mangled)[9] == 'I')
-	    {
-	      /* it's a GNU global constructor to be executed at program init */
-	      (*mangled) += 11;
-	      work->constructor = 2;
-	      if (gnu_special (work, mangled, declp))
-		return success;
-	    }
-	}
-    }
-  else if ((ARM_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING) && strncmp(*mangled, "__std__", 7) == 0)
-    {
-      /* it's a ARM global destructor to be executed at program exit */
-      (*mangled) += 7;
-      work->destructor = 2;
-    }
-  else if ((ARM_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING) && strncmp(*mangled, "__sti__", 7) == 0)
-    {
-      /* it's a ARM global constructor to be executed at program initial */
-      (*mangled) += 7;
-      work->constructor = 2;
-    }
-
-  /*  This block of code is a reduction in strength time optimization
-      of:
-      scan = strstr (*mangled, "__"); */
-
-  {
-    scan = *mangled;
-
-    do {
-      scan = strchr (scan, '_');
-    } while (scan != NULL && *++scan != '_');
-
-    if (scan != NULL) --scan;
-  }
-
-  if (scan != NULL)
-    {
-      /* We found a sequence of two or more '_', ensure that we start at
-	 the last pair in the sequence.  */
-      i = strspn (scan, "_");
-      if (i > 2)
-	{
-	  scan += (i - 2);
-	}
-    }
-
-  if (scan == NULL)
-    {
-      success = 0;
-    }
-  else if (work -> static_type)
-    {
-      if (!ISDIGIT ((unsigned char)scan[0]) && (scan[0] != 't'))
-	{
-	  success = 0;
-	}
-    }
-  else if ((scan == *mangled)
-	   && (ISDIGIT ((unsigned char)scan[2]) || (scan[2] == 'Q')
-	       || (scan[2] == 't') || (scan[2] == 'K') || (scan[2] == 'H')))
-    {
-      /* The ARM says nothing about the mangling of local variables.
-	 But cfront mangles local variables by prepending __<nesting_level>
-	 to them. As an extension to ARM demangling we handle this case.  */
-      if ((LUCID_DEMANGLING || ARM_DEMANGLING || HP_DEMANGLING)
-	  && ISDIGIT ((unsigned char)scan[2]))
-	{
-	  *mangled = scan + 2;
-	  consume_count (mangled);
-	  string_append (declp, *mangled);
-	  *mangled += strlen (*mangled);
-	  success = 1;
-	}
-      else
-	{
-	  /* A GNU style constructor starts with __[0-9Qt].  But cfront uses
-	     names like __Q2_3foo3bar for nested type names.  So don't accept
-	     this style of constructor for cfront demangling.  A GNU
-	     style member-template constructor starts with 'H'. */
-	  if (!(LUCID_DEMANGLING || ARM_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING))
-	    work -> constructor += 1;
-	  *mangled = scan + 2;
-	}
-    }
-  else if (ARM_DEMANGLING && scan[2] == 'p' && scan[3] == 't')
-    {
-      /* Cfront-style parameterized type.  Handled later as a signature. */
-      success = 1;
-
-      /* ARM template? */
-      demangle_arm_hp_template (work, mangled, strlen (*mangled), declp);
-    }
-  else if (EDG_DEMANGLING && ((scan[2] == 't' && scan[3] == 'm')
-                              || (scan[2] == 'p' && scan[3] == 's')
-                              || (scan[2] == 'p' && scan[3] == 't')))
-    {
-      /* EDG-style parameterized type.  Handled later as a signature. */
-      success = 1;
-
-      /* EDG template? */
-      demangle_arm_hp_template (work, mangled, strlen (*mangled), declp);
-    }
-  else if ((scan == *mangled) && !ISDIGIT ((unsigned char)scan[2])
-	   && (scan[2] != 't'))
-    {
-      /* Mangled name starts with "__".  Skip over any leading '_' characters,
-	 then find the next "__" that separates the prefix from the signature.
-	 */
-      if (!(ARM_DEMANGLING || LUCID_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING)
-	  || (arm_special (mangled, declp) == 0))
-	{
-	  while (*scan == '_')
-	    {
-	      scan++;
-	    }
-	  if ((scan = strstr (scan, "__")) == NULL || (*(scan + 2) == '\0'))
-	    {
-	      /* No separator (I.E. "__not_mangled"), or empty signature
-		 (I.E. "__not_mangled_either__") */
-	      success = 0;
-	    }
-	  else
-	    return iterate_demangle_function (work, mangled, declp, scan);
-	}
-    }
-  else if (*(scan + 2) != '\0')
-    {
-      /* Mangled name does not start with "__" but does have one somewhere
-	 in there with non empty stuff after it.  Looks like a global
-	 function name.  Iterate over all "__":s until the right
-	 one is found.  */
-      return iterate_demangle_function (work, mangled, declp, scan);
-    }
-  else
-    {
-      /* Doesn't look like a mangled name */
-      success = 0;
-    }
-
-  if (!success && (work->constructor == 2 || work->destructor == 2))
-    {
-      string_append (declp, *mangled);
-      *mangled += strlen (*mangled);
-      success = 1;
-    }
-  return (success);
-}
-
-/*
-
-LOCAL FUNCTION
-
-	gnu_special -- special handling of gnu mangled strings
-
-SYNOPSIS
-
-	static int
-	gnu_special (struct work_stuff *work, const char **mangled,
-		     string *declp);
-
-
-DESCRIPTION
-
-	Process some special GNU style mangling forms that don't fit
-	the normal pattern.  For example:
-
-		_$_3foo		(destructor for class foo)
-		_vt$foo		(foo virtual table)
-		_vt$foo$bar	(foo::bar virtual table)
-		__vt_foo	(foo virtual table, new style with thunks)
-		_3foo$varname	(static data member)
-		_Q22rs2tu$vw	(static data member)
-		__t6vector1Zii	(constructor with template)
-		__thunk_4__$_7ostream (virtual function thunk)
- */
-
-static int
-gnu_special (struct work_stuff *work, const char **mangled, string *declp)
-{
-  int n;
-  int success = 1;
-  const char *p;
-
-  if ((*mangled)[0] == '_'
-      && strchr (cplus_markers, (*mangled)[1]) != NULL
-      && (*mangled)[2] == '_')
-    {
-      /* Found a GNU style destructor, get past "_<CPLUS_MARKER>_" */
-      (*mangled) += 3;
-      work -> destructor += 1;
-    }
-  else if ((*mangled)[0] == '_'
-	   && (((*mangled)[1] == '_'
-		&& (*mangled)[2] == 'v'
-		&& (*mangled)[3] == 't'
-		&& (*mangled)[4] == '_')
-	       || ((*mangled)[1] == 'v'
-		   && (*mangled)[2] == 't'
-		   && strchr (cplus_markers, (*mangled)[3]) != NULL)))
-    {
-      /* Found a GNU style virtual table, get past "_vt<CPLUS_MARKER>"
-         and create the decl.  Note that we consume the entire mangled
-	 input string, which means that demangle_signature has no work
-	 to do.  */
-      if ((*mangled)[2] == 'v')
-	(*mangled) += 5; /* New style, with thunks: "__vt_" */
-      else
-	(*mangled) += 4; /* Old style, no thunks: "_vt<CPLUS_MARKER>" */
-      while (**mangled != '\0')
-	{
-	  switch (**mangled)
-	    {
-	    case 'Q':
-	    case 'K':
-	      success = demangle_qualified (work, mangled, declp, 0, 1);
-	      break;
-	    case 't':
-	      success = demangle_template (work, mangled, declp, 0, 1,
-					   1);
-	      break;
-	    default:
-	      if (ISDIGIT((unsigned char)*mangled[0]))
-		{
-		  n = consume_count(mangled);
-		  /* We may be seeing a too-large size, or else a
-		     ".<digits>" indicating a static local symbol.  In
-		     any case, declare victory and move on; *don't* try
-		     to use n to allocate.  */
-		  if (n > (int) strlen (*mangled))
-		    {
-		      success = 1;
-		      break;
-		    }
-		}
-	      else
-		{
-		  n = strcspn (*mangled, cplus_markers);
-		}
-	      string_appendn (declp, *mangled, n);
-	      (*mangled) += n;
-	    }
-
-	  p = strpbrk (*mangled, cplus_markers);
-	  if (success && ((p == NULL) || (p == *mangled)))
-	    {
-	      if (p != NULL)
-		{
-		  string_append (declp, SCOPE_STRING (work));
-		  (*mangled)++;
-		}
-	    }
-	  else
-	    {
-	      success = 0;
-	      break;
-	    }
-	}
-      if (success)
-	string_append (declp, " virtual table");
-    }
-  else if ((*mangled)[0] == '_'
-	   && (strchr("0123456789Qt", (*mangled)[1]) != NULL)
-	   && (p = strpbrk (*mangled, cplus_markers)) != NULL)
-    {
-      /* static data member, "_3foo$varname" for example */
-      (*mangled)++;
-      switch (**mangled)
-	{
-	case 'Q':
-	case 'K':
-	  success = demangle_qualified (work, mangled, declp, 0, 1);
-	  break;
-	case 't':
-	  success = demangle_template (work, mangled, declp, 0, 1, 1);
-	  break;
-	default:
-	  n = consume_count (mangled);
-	  if (n < 0 || n > (long) strlen (*mangled))
-	    {
-	      success = 0;
-	      break;
-	    }
-
-	  if (n > 10 && strncmp (*mangled, "_GLOBAL_", 8) == 0
-	      && (*mangled)[9] == 'N'
-	      && (*mangled)[8] == (*mangled)[10]
-	      && strchr (cplus_markers, (*mangled)[8]))
-	    {
-	      /* A member of the anonymous namespace.  There's information
-		 about what identifier or filename it was keyed to, but
-		 it's just there to make the mangled name unique; we just
-		 step over it.  */
-	      string_append (declp, "{anonymous}");
-	      (*mangled) += n;
-
-	      /* Now p points to the marker before the N, so we need to
-		 update it to the first marker after what we consumed.  */
-	      p = strpbrk (*mangled, cplus_markers);
-	      break;
-	    }
-
-	  string_appendn (declp, *mangled, n);
-	  (*mangled) += n;
-	}
-      if (success && (p == *mangled))
-	{
-	  /* Consumed everything up to the cplus_marker, append the
-	     variable name.  */
-	  (*mangled)++;
-	  string_append (declp, SCOPE_STRING (work));
-	  n = strlen (*mangled);
-	  string_appendn (declp, *mangled, n);
-	  (*mangled) += n;
-	}
-      else
-	{
-	  success = 0;
-	}
-    }
-  else if (strncmp (*mangled, "__thunk_", 8) == 0)
-    {
-      int delta;
-
-      (*mangled) += 8;
-      delta = consume_count (mangled);
-      if (delta == -1)
-	success = 0;
-      else
-	{
-	  char *method = internal_cplus_demangle (work, ++*mangled);
-
-	  if (method)
-	    {
-	      char buf[50];
-	      sprintf (buf, "virtual function thunk (delta:%d) for ", -delta);
-	      string_append (declp, buf);
-	      string_append (declp, method);
-	      free (method);
-	      n = strlen (*mangled);
-	      (*mangled) += n;
-	    }
-	  else
-	    {
-	      success = 0;
-	    }
-	}
-    }
-  else if (strncmp (*mangled, "__t", 3) == 0
-	   && ((*mangled)[3] == 'i' || (*mangled)[3] == 'f'))
-    {
-      p = (*mangled)[3] == 'i' ? " type_info node" : " type_info function";
-      (*mangled) += 4;
-      switch (**mangled)
-	{
-	case 'Q':
-	case 'K':
-	  success = demangle_qualified (work, mangled, declp, 0, 1);
-	  break;
-	case 't':
-	  success = demangle_template (work, mangled, declp, 0, 1, 1);
-	  break;
-	default:
-	  success = do_type (work, mangled, declp);
-	  break;
-	}
-      if (success && **mangled != '\0')
-	success = 0;
-      if (success)
-	string_append (declp, p);
-    }
-  else
-    {
-      success = 0;
-    }
-  return (success);
-}
-
-static void
-recursively_demangle(struct work_stuff *work, const char **mangled,
-                     string *result, int namelength)
-{
-  char * recurse = (char *)NULL;
-  char * recurse_dem = (char *)NULL;
-
-  recurse = XNEWVEC (char, namelength + 1);
-  memcpy (recurse, *mangled, namelength);
-  recurse[namelength] = '\000';
-
-  recurse_dem = cplus_demangle (recurse, work->options);
-
-  if (recurse_dem)
-    {
-      string_append (result, recurse_dem);
-      free (recurse_dem);
-    }
-  else
-    {
-      string_appendn (result, *mangled, namelength);
-    }
-  free (recurse);
-  *mangled += namelength;
-}
-
-/*
-
-LOCAL FUNCTION
-
-	arm_special -- special handling of ARM/lucid mangled strings
-
-SYNOPSIS
-
-	static int
-	arm_special (const char **mangled,
-		     string *declp);
-
-
-DESCRIPTION
-
-	Process some special ARM style mangling forms that don't fit
-	the normal pattern.  For example:
-
-		__vtbl__3foo		(foo virtual table)
-		__vtbl__3foo__3bar	(bar::foo virtual table)
-
- */
-
-static int
-arm_special (const char **mangled, string *declp)
-{
-  int n;
-  int success = 1;
-  const char *scan;
-
-  if (strncmp (*mangled, ARM_VTABLE_STRING, ARM_VTABLE_STRLEN) == 0)
-    {
-      /* Found a ARM style virtual table, get past ARM_VTABLE_STRING
-         and create the decl.  Note that we consume the entire mangled
-	 input string, which means that demangle_signature has no work
-	 to do.  */
-      scan = *mangled + ARM_VTABLE_STRLEN;
-      while (*scan != '\0')        /* first check it can be demangled */
-        {
-          n = consume_count (&scan);
-          if (n == -1)
-	    {
-	      return (0);           /* no good */
-	    }
-          scan += n;
-          if (scan[0] == '_' && scan[1] == '_')
-	    {
-	      scan += 2;
-	    }
-        }
-      (*mangled) += ARM_VTABLE_STRLEN;
-      while (**mangled != '\0')
-	{
-	  n = consume_count (mangled);
-          if (n == -1
-	      || n > (long) strlen (*mangled))
-	    return 0;
-	  string_prependn (declp, *mangled, n);
-	  (*mangled) += n;
-	  if ((*mangled)[0] == '_' && (*mangled)[1] == '_')
-	    {
-	      string_prepend (declp, "::");
-	      (*mangled) += 2;
-	    }
-	}
-      string_append (declp, " virtual table");
-    }
-  else
-    {
-      success = 0;
-    }
-  return (success);
-}
-
-/*
-
-LOCAL FUNCTION
-
-	demangle_qualified -- demangle 'Q' qualified name strings
-
-SYNOPSIS
-
-	static int
-	demangle_qualified (struct work_stuff *, const char *mangled,
-			    string *result, int isfuncname, int append);
-
-DESCRIPTION
-
-	Demangle a qualified name, such as "Q25Outer5Inner" which is
-	the mangled form of "Outer::Inner".  The demangled output is
-	prepended or appended to the result string according to the
-	state of the append flag.
-
-	If isfuncname is nonzero, then the qualified name we are building
-	is going to be used as a member function name, so if it is a
-	constructor or destructor function, append an appropriate
-	constructor or destructor name.  I.E. for the above example,
-	the result for use as a constructor is "Outer::Inner::Inner"
-	and the result for use as a destructor is "Outer::Inner::~Inner".
-
-BUGS
-
-	Numeric conversion is ASCII dependent (FIXME).
-
- */
-
-static int
-demangle_qualified (struct work_stuff *work, const char **mangled,
-                    string *result, int isfuncname, int append)
-{
-  int qualifiers = 0;
-  int success = 1;
-  char num[2];
-  string temp;
-  string last_name;
-  int bindex = register_Btype (work);
-
-  /* We only make use of ISFUNCNAME if the entity is a constructor or
-     destructor.  */
-  isfuncname = (isfuncname
-		&& ((work->constructor & 1) || (work->destructor & 1)));
-
-  string_init (&temp);
-  string_init (&last_name);
-
-  if ((*mangled)[0] == 'K')
-    {
-    /* Squangling qualified name reuse */
-      int idx;
-      (*mangled)++;
-      idx = consume_count_with_underscores (mangled);
-      if (idx == -1 || idx >= work -> numk)
-        success = 0;
-      else
-        string_append (&temp, work -> ktypevec[idx]);
-    }
-  else
-    switch ((*mangled)[1])
-    {
-    case '_':
-      /* GNU mangled name with more than 9 classes.  The count is preceded
-	 by an underscore (to distinguish it from the <= 9 case) and followed
-	 by an underscore.  */
-      (*mangled)++;
-      qualifiers = consume_count_with_underscores (mangled);
-      if (qualifiers == -1)
-	success = 0;
-      break;
-
-    case '1':
-    case '2':
-    case '3':
-    case '4':
-    case '5':
-    case '6':
-    case '7':
-    case '8':
-    case '9':
-      /* The count is in a single digit.  */
-      num[0] = (*mangled)[1];
-      num[1] = '\0';
-      qualifiers = atoi (num);
-
-      /* If there is an underscore after the digit, skip it.  This is
-	 said to be for ARM-qualified names, but the ARM makes no
-	 mention of such an underscore.  Perhaps cfront uses one.  */
-      if ((*mangled)[2] == '_')
-	{
-	  (*mangled)++;
-	}
-      (*mangled) += 2;
-      break;
-
-    case '0':
-    default:
-      success = 0;
-    }
-
-  if (!success)
-    return success;
-
-  /* Pick off the names and collect them in the temp buffer in the order
-     in which they are found, separated by '::'.  */
-
-  while (qualifiers-- > 0)
-    {
-      int remember_K = 1;
-      string_clear (&last_name);
-
-      if (*mangled[0] == '_')
-	(*mangled)++;
-
-      if (*mangled[0] == 't')
-	{
-	  /* Here we always append to TEMP since we will want to use
-	     the template name without the template parameters as a
-	     constructor or destructor name.  The appropriate
-	     (parameter-less) value is returned by demangle_template
-	     in LAST_NAME.  We do not remember the template type here,
-	     in order to match the G++ mangling algorithm.  */
-	  success = demangle_template(work, mangled, &temp,
-				      &last_name, 1, 0);
-	  if (!success)
-	    break;
-	}
-      else if (*mangled[0] == 'K')
-	{
-          int idx;
-          (*mangled)++;
-          idx = consume_count_with_underscores (mangled);
-          if (idx == -1 || idx >= work->numk)
-            success = 0;
-          else
-            string_append (&temp, work->ktypevec[idx]);
-          remember_K = 0;
-
-	  if (!success) break;
-	}
-      else
-	{
-	  if (EDG_DEMANGLING)
-            {
-	      int namelength;
- 	      /* Now recursively demangle the qualifier
- 	       * This is necessary to deal with templates in
- 	       * mangling styles like EDG */
-	      namelength = consume_count (mangled);
-	      if (namelength == -1)
-		{
-		  success = 0;
-		  break;
-		}
- 	      recursively_demangle(work, mangled, &temp, namelength);
-            }
-          else
-            {
-              string_delete (&last_name);
-              success = do_type (work, mangled, &last_name);
-              if (!success)
-                break;
-              string_appends (&temp, &last_name);
-            }
-	}
-
-      if (remember_K)
-	remember_Ktype (work, temp.b, LEN_STRING (&temp));
-
-      if (qualifiers > 0)
-	string_append (&temp, SCOPE_STRING (work));
-    }
-
-  remember_Btype (work, temp.b, LEN_STRING (&temp), bindex);
-
-  /* If we are using the result as a function name, we need to append
-     the appropriate '::' separated constructor or destructor name.
-     We do this here because this is the most convenient place, where
-     we already have a pointer to the name and the length of the name.  */
-
-  if (isfuncname)
-    {
-      string_append (&temp, SCOPE_STRING (work));
-      if (work -> destructor & 1)
-	string_append (&temp, "~");
-      string_appends (&temp, &last_name);
-    }
-
-  /* Now either prepend the temp buffer to the result, or append it,
-     depending upon the state of the append flag.  */
-
-  if (append)
-    string_appends (result, &temp);
-  else
-    {
-      if (!STRING_EMPTY (result))
-	string_append (&temp, SCOPE_STRING (work));
-      string_prepends (result, &temp);
-    }
-
-  string_delete (&last_name);
-  string_delete (&temp);
-  return (success);
-}
-
-/*
-
-LOCAL FUNCTION
-
-	get_count -- convert an ascii count to integer, consuming tokens
-
-SYNOPSIS
-
-	static int
-	get_count (const char **type, int *count)
-
-DESCRIPTION
-
-	Assume that *type points at a count in a mangled name; set
-	*count to its value, and set *type to the next character after
-	the count.  There are some weird rules in effect here.
-
-	If *type does not point at a string of digits, return zero.
-
-	If *type points at a string of digits followed by an
-	underscore, set *count to their value as an integer, advance
-	*type to point *after the underscore, and return 1.
-
-	If *type points at a string of digits not followed by an
-	underscore, consume only the first digit.  Set *count to its
-	value as an integer, leave *type pointing after that digit,
-	and return 1.
-
-        The excuse for this odd behavior: in the ARM and HP demangling
-        styles, a type can be followed by a repeat count of the form
-        `Nxy', where:
-
-        `x' is a single digit specifying how many additional copies
-            of the type to append to the argument list, and
-
-        `y' is one or more digits, specifying the zero-based index of
-            the first repeated argument in the list.  Yes, as you're
-            unmangling the name you can figure this out yourself, but
-            it's there anyway.
-
-        So, for example, in `bar__3fooFPiN51', the first argument is a
-        pointer to an integer (`Pi'), and then the next five arguments
-        are the same (`N5'), and the first repeat is the function's
-        second argument (`1').
-*/
-
-static int
-get_count (const char **type, int *count)
-{
-  const char *p;
-  int n;
-
-  if (!ISDIGIT ((unsigned char)**type))
-    return (0);
-  else
-    {
-      *count = **type - '0';
-      (*type)++;
-      if (ISDIGIT ((unsigned char)**type))
-	{
-	  p = *type;
-	  n = *count;
-	  do
-	    {
-	      n *= 10;
-	      n += *p - '0';
-	      p++;
-	    }
-	  while (ISDIGIT ((unsigned char)*p));
-	  if (*p == '_')
-	    {
-	      *type = p + 1;
-	      *count = n;
-	    }
-	}
-    }
-  return (1);
-}
-
-/* RESULT will be initialised here; it will be freed on failure.  The
-   value returned is really a type_kind_t.  */
-
-static int
-do_type (struct work_stuff *work, const char **mangled, string *result)
-{
-  int n;
-  int done;
-  int success;
-  string decl;
-  const char *remembered_type;
-  int type_quals;
-  type_kind_t tk = tk_none;
-
-  string_init (&decl);
-  string_init (result);
-
-  done = 0;
-  success = 1;
-  while (success && !done)
-    {
-      int member;
-      switch (**mangled)
-	{
-
-	  /* A pointer type */
-	case 'P':
-	case 'p':
-	  (*mangled)++;
-	  if (! (work -> options & DMGL_JAVA))
-	    string_prepend (&decl, "*");
-	  if (tk == tk_none)
-	    tk = tk_pointer;
-	  break;
-
-	  /* A reference type */
-	case 'R':
-	  (*mangled)++;
-	  string_prepend (&decl, "&");
-	  if (tk == tk_none)
-	    tk = tk_reference;
-	  break;
-
-	  /* An array */
-	case 'A':
-	  {
-	    ++(*mangled);
-	    if (!STRING_EMPTY (&decl)
-		&& (decl.b[0] == '*' || decl.b[0] == '&'))
-	      {
-		string_prepend (&decl, "(");
-		string_append (&decl, ")");
-	      }
-	    string_append (&decl, "[");
-	    if (**mangled != '_')
-	      success = demangle_template_value_parm (work, mangled, &decl,
-						      tk_integral);
-	    if (**mangled == '_')
-	      ++(*mangled);
-	    string_append (&decl, "]");
-	    break;
-	  }
-
-	/* A back reference to a previously seen type */
-	case 'T':
-	  (*mangled)++;
-	  if (!get_count (mangled, &n) || n >= work -> ntypes)
-	    {
-	      success = 0;
-	    }
-	  else
-	    {
-	      remembered_type = work -> typevec[n];
-	      mangled = &remembered_type;
-	    }
-	  break;
-
-	  /* A function */
-	case 'F':
-	  (*mangled)++;
-	    if (!STRING_EMPTY (&decl)
-		&& (decl.b[0] == '*' || decl.b[0] == '&'))
-	    {
-	      string_prepend (&decl, "(");
-	      string_append (&decl, ")");
-	    }
-	  /* After picking off the function args, we expect to either find the
-	     function return type (preceded by an '_') or the end of the
-	     string.  */
-	  if (!demangle_nested_args (work, mangled, &decl)
-	      || (**mangled != '_' && **mangled != '\0'))
-	    {
-	      success = 0;
-	      break;
-	    }
-	  if (success && (**mangled == '_'))
-	    (*mangled)++;
-	  break;
-
-	case 'M':
-	case 'O':
-	  {
-	    type_quals = TYPE_UNQUALIFIED;
-
-	    member = **mangled == 'M';
-	    (*mangled)++;
-
-	    string_append (&decl, ")");
-
-	    /* We don't need to prepend `::' for a qualified name;
-	       demangle_qualified will do that for us.  */
-	    if (**mangled != 'Q')
-	      string_prepend (&decl, SCOPE_STRING (work));
-
-	    if (ISDIGIT ((unsigned char)**mangled))
-	      {
-		n = consume_count (mangled);
-		if (n == -1
-		    || (int) strlen (*mangled) < n)
-		  {
-		    success = 0;
-		    break;
-		  }
-		string_prependn (&decl, *mangled, n);
-		*mangled += n;
-	      }
-	    else if (**mangled == 'X' || **mangled == 'Y')
-	      {
-		string temp;
-		do_type (work, mangled, &temp);
-		string_prepends (&decl, &temp);
-		string_delete (&temp);
-	      }
-	    else if (**mangled == 't')
-	      {
-		string temp;
-		string_init (&temp);
-		success = demangle_template (work, mangled, &temp,
-					     NULL, 1, 1);
-		if (success)
-		  {
-		    string_prependn (&decl, temp.b, temp.p - temp.b);
-		    string_delete (&temp);
-		  }
-		else
-		  break;
-	      }
-	    else if (**mangled == 'Q')
-	      {
-		success = demangle_qualified (work, mangled, &decl,
-					      /*isfuncnam=*/0, 
-					      /*append=*/0);
-		if (!success)
-		  break;
-	      }
-	    else
-	      {
-		success = 0;
-		break;
-	      }
-
-	    string_prepend (&decl, "(");
-	    if (member)
-	      {
-		switch (**mangled)
-		  {
-		  case 'C':
-		  case 'V':
-		  case 'u':
-		    type_quals |= code_for_qualifier (**mangled);
-		    (*mangled)++;
-		    break;
-
-		  default:
-		    break;
-		  }
-
-		if (*(*mangled)++ != 'F')
-		  {
-		    success = 0;
-		    break;
-		  }
-	      }
-	    if ((member && !demangle_nested_args (work, mangled, &decl))
-		|| **mangled != '_')
-	      {
-		success = 0;
-		break;
-	      }
-	    (*mangled)++;
-	    if (! PRINT_ANSI_QUALIFIERS)
-	      {
-		break;
-	      }
-	    if (type_quals != TYPE_UNQUALIFIED)
-	      {
-		APPEND_BLANK (&decl);
-		string_append (&decl, qualifier_string (type_quals));
-	      }
-	    break;
-	  }
-        case 'G':
-	  (*mangled)++;
-	  break;
-
-	case 'C':
-	case 'V':
-	case 'u':
-	  if (PRINT_ANSI_QUALIFIERS)
-	    {
-	      if (!STRING_EMPTY (&decl))
-		string_prepend (&decl, " ");
-
-	      string_prepend (&decl, demangle_qualifier (**mangled));
-	    }
-	  (*mangled)++;
-	  break;
-	  /*
-	    }
-	    */
-
-	  /* fall through */
-	default:
-	  done = 1;
-	  break;
-	}
-    }
-
-  if (success) switch (**mangled)
-    {
-      /* A qualified name, such as "Outer::Inner".  */
-    case 'Q':
-    case 'K':
-      {
-        success = demangle_qualified (work, mangled, result, 0, 1);
-        break;
-      }
-
-    /* A back reference to a previously seen squangled type */
-    case 'B':
-      (*mangled)++;
-      if (!get_count (mangled, &n) || n >= work -> numb)
-	success = 0;
-      else
-	string_append (result, work->btypevec[n]);
-      break;
-
-    case 'X':
-    case 'Y':
-      /* A template parm.  We substitute the corresponding argument. */
-      {
-	int idx;
-
-	(*mangled)++;
-	idx = consume_count_with_underscores (mangled);
-
-	if (idx == -1
-	    || (work->tmpl_argvec && idx >= work->ntmpl_args)
-	    || consume_count_with_underscores (mangled) == -1)
-	  {
-	    success = 0;
-	    break;
-	  }
-
-	if (work->tmpl_argvec)
-	  string_append (result, work->tmpl_argvec[idx]);
-	else
-	  string_append_template_idx (result, idx);
-
-	success = 1;
-      }
-    break;
-
-    default:
-      success = demangle_fund_type (work, mangled, result);
-      if (tk == tk_none)
-	tk = (type_kind_t) success;
-      break;
-    }
-
-  if (success)
-    {
-      if (!STRING_EMPTY (&decl))
-	{
-	  string_append (result, " ");
-	  string_appends (result, &decl);
-	}
-    }
-  else
-    string_delete (result);
-  string_delete (&decl);
-
-  if (success)
-    /* Assume an integral type, if we're not sure.  */
-    return (int) ((tk == tk_none) ? tk_integral : tk);
-  else
-    return 0;
-}
-
-/* Given a pointer to a type string that represents a fundamental type
-   argument (int, long, unsigned int, etc) in TYPE, a pointer to the
-   string in which the demangled output is being built in RESULT, and
-   the WORK structure, decode the types and add them to the result.
-
-   For example:
-
-   	"Ci"	=>	"const int"
-	"Sl"	=>	"signed long"
-	"CUs"	=>	"const unsigned short"
-
-   The value returned is really a type_kind_t.  */
-
-static int
-demangle_fund_type (struct work_stuff *work,
-                    const char **mangled, string *result)
-{
-  int done = 0;
-  int success = 1;
-  char buf[INTBUF_SIZE + 5 /* 'int%u_t' */];
-  unsigned int dec = 0;
-  type_kind_t tk = tk_integral;
-
-  /* First pick off any type qualifiers.  There can be more than one.  */
-
-  while (!done)
-    {
-      switch (**mangled)
-	{
-	case 'C':
-	case 'V':
-	case 'u':
-	  if (PRINT_ANSI_QUALIFIERS)
-	    {
-              if (!STRING_EMPTY (result))
-                string_prepend (result, " ");
-	      string_prepend (result, demangle_qualifier (**mangled));
-	    }
-	  (*mangled)++;
-	  break;
-	case 'U':
-	  (*mangled)++;
-	  APPEND_BLANK (result);
-	  string_append (result, "unsigned");
-	  break;
-	case 'S': /* signed char only */
-	  (*mangled)++;
-	  APPEND_BLANK (result);
-	  string_append (result, "signed");
-	  break;
-	case 'J':
-	  (*mangled)++;
-	  APPEND_BLANK (result);
-	  string_append (result, "__complex");
-	  break;
-	default:
-	  done = 1;
-	  break;
-	}
-    }
-
-  /* Now pick off the fundamental type.  There can be only one.  */
-
-  switch (**mangled)
-    {
-    case '\0':
-    case '_':
-      break;
-    case 'v':
-      (*mangled)++;
-      APPEND_BLANK (result);
-      string_append (result, "void");
-      break;
-    case 'x':
-      (*mangled)++;
-      APPEND_BLANK (result);
-      string_append (result, "long long");
-      break;
-    case 'l':
-      (*mangled)++;
-      APPEND_BLANK (result);
-      string_append (result, "long");
-      break;
-    case 'i':
-      (*mangled)++;
-      APPEND_BLANK (result);
-      string_append (result, "int");
-      break;
-    case 's':
-      (*mangled)++;
-      APPEND_BLANK (result);
-      string_append (result, "short");
-      break;
-    case 'b':
-      (*mangled)++;
-      APPEND_BLANK (result);
-      string_append (result, "bool");
-      tk = tk_bool;
-      break;
-    case 'c':
-      (*mangled)++;
-      APPEND_BLANK (result);
-      string_append (result, "char");
-      tk = tk_char;
-      break;
-    case 'w':
-      (*mangled)++;
-      APPEND_BLANK (result);
-      string_append (result, "wchar_t");
-      tk = tk_char;
-      break;
-    case 'r':
-      (*mangled)++;
-      APPEND_BLANK (result);
-      string_append (result, "long double");
-      tk = tk_real;
-      break;
-    case 'd':
-      (*mangled)++;
-      APPEND_BLANK (result);
-      string_append (result, "double");
-      tk = tk_real;
-      break;
-    case 'f':
-      (*mangled)++;
-      APPEND_BLANK (result);
-      string_append (result, "float");
-      tk = tk_real;
-      break;
-    case 'G':
-      (*mangled)++;
-      if (!ISDIGIT ((unsigned char)**mangled))
-	{
-	  success = 0;
-	  break;
-	}
-    case 'I':
-      (*mangled)++;
-      if (**mangled == '_')
-	{
-	  int i;
-	  (*mangled)++;
-	  for (i = 0;
-	       i < (long) sizeof (buf) - 1 && **mangled && **mangled != '_';
-	       (*mangled)++, i++)
-	    buf[i] = **mangled;
-	  if (**mangled != '_')
-	    {
-	      success = 0;
-	      break;
-	    }
-	  buf[i] = '\0';
-	  (*mangled)++;
-	}
-      else
-	{
-	  strncpy (buf, *mangled, 2);
-	  buf[2] = '\0';
-	  *mangled += min (strlen (*mangled), 2);
-	}
-      sscanf (buf, "%x", &dec);
-      sprintf (buf, "int%u_t", dec);
-      APPEND_BLANK (result);
-      string_append (result, buf);
-      break;
-
-      /* fall through */
-      /* An explicit type, such as "6mytype" or "7integer" */
-    case '0':
-    case '1':
-    case '2':
-    case '3':
-    case '4':
-    case '5':
-    case '6':
-    case '7':
-    case '8':
-    case '9':
-      {
-        int bindex = register_Btype (work);
-        string btype;
-        string_init (&btype);
-        if (demangle_class_name (work, mangled, &btype)) {
-          remember_Btype (work, btype.b, LEN_STRING (&btype), bindex);
-          APPEND_BLANK (result);
-          string_appends (result, &btype);
-        }
-        else
-          success = 0;
-        string_delete (&btype);
-        break;
-      }
-    case 't':
-      {
-        string btype;
-        string_init (&btype);
-        success = demangle_template (work, mangled, &btype, 0, 1, 1);
-        string_appends (result, &btype);
-        string_delete (&btype);
-        break;
-      }
-    default:
-      success = 0;
-      break;
-    }
-
-  return success ? ((int) tk) : 0;
-}
-
-
-/* Handle a template's value parameter for HP aCC (extension from ARM)
-   **mangled points to 'S' or 'U' */
-
-static int
-do_hpacc_template_const_value (struct work_stuff *work ATTRIBUTE_UNUSED,
-                               const char **mangled, string *result)
-{
-  int unsigned_const;
-
-  if (**mangled != 'U' && **mangled != 'S')
-    return 0;
-
-  unsigned_const = (**mangled == 'U');
-
-  (*mangled)++;
-
-  switch (**mangled)
-    {
-      case 'N':
-        string_append (result, "-");
-        /* fall through */
-      case 'P':
-        (*mangled)++;
-        break;
-      case 'M':
-        /* special case for -2^31 */
-        string_append (result, "-2147483648");
-        (*mangled)++;
-        return 1;
-      default:
-        return 0;
-    }
-
-  /* We have to be looking at an integer now */
-  if (!(ISDIGIT ((unsigned char)**mangled)))
-    return 0;
-
-  /* We only deal with integral values for template
-     parameters -- so it's OK to look only for digits */
-  while (ISDIGIT ((unsigned char)**mangled))
-    {
-      char_str[0] = **mangled;
-      string_append (result, char_str);
-      (*mangled)++;
-    }
-
-  if (unsigned_const)
-    string_append (result, "U");
-
-  /* FIXME? Some day we may have 64-bit (or larger :-) ) constants
-     with L or LL suffixes. pai/1997-09-03 */
-
-  return 1; /* success */
-}
-
-/* Handle a template's literal parameter for HP aCC (extension from ARM)
-   **mangled is pointing to the 'A' */
-
-static int
-do_hpacc_template_literal (struct work_stuff *work, const char **mangled,
-                           string *result)
-{
-  int literal_len = 0;
-  char * recurse;
-  char * recurse_dem;
-
-  if (**mangled != 'A')
-    return 0;
-
-  (*mangled)++;
-
-  literal_len = consume_count (mangled);
-
-  if (literal_len <= 0)
-    return 0;
-
-  /* Literal parameters are names of arrays, functions, etc.  and the
-     canonical representation uses the address operator */
-  string_append (result, "&");
-
-  /* Now recursively demangle the literal name */
-  recurse = XNEWVEC (char, literal_len + 1);
-  memcpy (recurse, *mangled, literal_len);
-  recurse[literal_len] = '\000';
-
-  recurse_dem = cplus_demangle (recurse, work->options);
-
-  if (recurse_dem)
-    {
-      string_append (result, recurse_dem);
-      free (recurse_dem);
-    }
-  else
-    {
-      string_appendn (result, *mangled, literal_len);
-    }
-  (*mangled) += literal_len;
-  free (recurse);
-
-  return 1;
-}
-
-static int
-snarf_numeric_literal (const char **args, string *arg)
-{
-  if (**args == '-')
-    {
-      char_str[0] = '-';
-      string_append (arg, char_str);
-      (*args)++;
-    }
-  else if (**args == '+')
-    (*args)++;
-
-  if (!ISDIGIT ((unsigned char)**args))
-    return 0;
-
-  while (ISDIGIT ((unsigned char)**args))
-    {
-      char_str[0] = **args;
-      string_append (arg, char_str);
-      (*args)++;
-    }
-
-  return 1;
-}
-
-/* Demangle the next argument, given by MANGLED into RESULT, which
-   *should be an uninitialized* string.  It will be initialized here,
-   and free'd should anything go wrong.  */
-
-static int
-do_arg (struct work_stuff *work, const char **mangled, string *result)
-{
-  /* Remember where we started so that we can record the type, for
-     non-squangling type remembering.  */
-  const char *start = *mangled;
-
-  string_init (result);
-
-  if (work->nrepeats > 0)
-    {
-      --work->nrepeats;
-
-      if (work->previous_argument == 0)
-	return 0;
-
-      /* We want to reissue the previous type in this argument list.  */
-      string_appends (result, work->previous_argument);
-      return 1;
-    }
-
-  if (**mangled == 'n')
-    {
-      /* A squangling-style repeat.  */
-      (*mangled)++;
-      work->nrepeats = consume_count(mangled);
-
-      if (work->nrepeats <= 0)
-	/* This was not a repeat count after all.  */
-	return 0;
-
-      if (work->nrepeats > 9)
-	{
-	  if (**mangled != '_')
-	    /* The repeat count should be followed by an '_' in this
-	       case.  */
-	    return 0;
-	  else
-	    (*mangled)++;
-	}
-
-      /* Now, the repeat is all set up.  */
-      return do_arg (work, mangled, result);
-    }
-
-  /* Save the result in WORK->previous_argument so that we can find it
-     if it's repeated.  Note that saving START is not good enough: we
-     do not want to add additional types to the back-referenceable
-     type vector when processing a repeated type.  */
-  if (work->previous_argument)
-    string_delete (work->previous_argument);
-  else
-    work->previous_argument = XNEW (string);
-
-  if (!do_type (work, mangled, work->previous_argument))
-    return 0;
-
-  string_appends (result, work->previous_argument);
-
-  remember_type (work, start, *mangled - start);
-  return 1;
-}
-
-static void
-remember_type (struct work_stuff *work, const char *start, int len)
-{
-  char *tem;
-
-  if (work->forgetting_types)
-    return;
-
-  if (work -> ntypes >= work -> typevec_size)
-    {
-      if (work -> typevec_size == 0)
-	{
-	  work -> typevec_size = 3;
-	  work -> typevec = XNEWVEC (char *, work->typevec_size);
-	}
-      else
-	{
-	  work -> typevec_size *= 2;
-	  work -> typevec
-	    = XRESIZEVEC (char *, work->typevec, work->typevec_size);
-	}
-    }
-  tem = XNEWVEC (char, len + 1);
-  memcpy (tem, start, len);
-  tem[len] = '\0';
-  work -> typevec[work -> ntypes++] = tem;
-}
-
-
-/* Remember a K type class qualifier. */
-static void
-remember_Ktype (struct work_stuff *work, const char *start, int len)
-{
-  char *tem;
-
-  if (work -> numk >= work -> ksize)
-    {
-      if (work -> ksize == 0)
-	{
-	  work -> ksize = 5;
-	  work -> ktypevec = XNEWVEC (char *, work->ksize);
-	}
-      else
-	{
-	  work -> ksize *= 2;
-	  work -> ktypevec
-	    = XRESIZEVEC (char *, work->ktypevec, work->ksize);
-	}
-    }
-  tem = XNEWVEC (char, len + 1);
-  memcpy (tem, start, len);
-  tem[len] = '\0';
-  work -> ktypevec[work -> numk++] = tem;
-}
-
-/* Register a B code, and get an index for it. B codes are registered
-   as they are seen, rather than as they are completed, so map<temp<char> >
-   registers map<temp<char> > as B0, and temp<char> as B1 */
-
-static int
-register_Btype (struct work_stuff *work)
-{
-  int ret;
-
-  if (work -> numb >= work -> bsize)
-    {
-      if (work -> bsize == 0)
-	{
-	  work -> bsize = 5;
-	  work -> btypevec = XNEWVEC (char *, work->bsize);
-	}
-      else
-	{
-	  work -> bsize *= 2;
-	  work -> btypevec
-	    = XRESIZEVEC (char *, work->btypevec, work->bsize);
-	}
-    }
-  ret = work -> numb++;
-  work -> btypevec[ret] = NULL;
-  return(ret);
-}
-
-/* Store a value into a previously registered B code type. */
-
-static void
-remember_Btype (struct work_stuff *work, const char *start,
-                int len, int index)
-{
-  char *tem;
-
-  tem = XNEWVEC (char, len + 1);
-  memcpy (tem, start, len);
-  tem[len] = '\0';
-  work -> btypevec[index] = tem;
-}
-
-/* Lose all the info related to B and K type codes. */
-static void
-forget_B_and_K_types (struct work_stuff *work)
-{
-  int i;
-
-  while (work -> numk > 0)
-    {
-      i = --(work -> numk);
-      if (work -> ktypevec[i] != NULL)
-	{
-	  free (work -> ktypevec[i]);
-	  work -> ktypevec[i] = NULL;
-	}
-    }
-
-  while (work -> numb > 0)
-    {
-      i = --(work -> numb);
-      if (work -> btypevec[i] != NULL)
-	{
-	  free (work -> btypevec[i]);
-	  work -> btypevec[i] = NULL;
-	}
-    }
-}
-/* Forget the remembered types, but not the type vector itself.  */
-
-static void
-forget_types (struct work_stuff *work)
-{
-  int i;
-
-  while (work -> ntypes > 0)
-    {
-      i = --(work -> ntypes);
-      if (work -> typevec[i] != NULL)
-	{
-	  free (work -> typevec[i]);
-	  work -> typevec[i] = NULL;
-	}
-    }
-}
-
-/* Process the argument list part of the signature, after any class spec
-   has been consumed, as well as the first 'F' character (if any).  For
-   example:
-
-   "__als__3fooRT0"		=>	process "RT0"
-   "complexfunc5__FPFPc_PFl_i"	=>	process "PFPc_PFl_i"
-
-   DECLP must be already initialised, usually non-empty.  It won't be freed
-   on failure.
-
-   Note that g++ differs significantly from ARM and lucid style mangling
-   with regards to references to previously seen types.  For example, given
-   the source fragment:
-
-     class foo {
-       public:
-       foo::foo (int, foo &ia, int, foo &ib, int, foo &ic);
-     };
-
-     foo::foo (int, foo &ia, int, foo &ib, int, foo &ic) { ia = ib = ic; }
-     void foo (int, foo &ia, int, foo &ib, int, foo &ic) { ia = ib = ic; }
-
-   g++ produces the names:
-
-     __3fooiRT0iT2iT2
-     foo__FiR3fooiT1iT1
-
-   while lcc (and presumably other ARM style compilers as well) produces:
-
-     foo__FiR3fooT1T2T1T2
-     __ct__3fooFiR3fooT1T2T1T2
-
-   Note that g++ bases its type numbers starting at zero and counts all
-   previously seen types, while lucid/ARM bases its type numbers starting
-   at one and only considers types after it has seen the 'F' character
-   indicating the start of the function args.  For lucid/ARM style, we
-   account for this difference by discarding any previously seen types when
-   we see the 'F' character, and subtracting one from the type number
-   reference.
-
- */
-
-static int
-demangle_args (struct work_stuff *work, const char **mangled,
-               string *declp)
-{
-  string arg;
-  int need_comma = 0;
-  int r;
-  int t;
-  const char *tem;
-  char temptype;
-
-  if (PRINT_ARG_TYPES)
-    {
-      string_append (declp, "(");
-      if (**mangled == '\0')
-	{
-	  string_append (declp, "void");
-	}
-    }
-
-  while ((**mangled != '_' && **mangled != '\0' && **mangled != 'e')
-	 || work->nrepeats > 0)
-    {
-      if ((**mangled == 'N') || (**mangled == 'T'))
-	{
-	  temptype = *(*mangled)++;
-
-	  if (temptype == 'N')
-	    {
-	      if (!get_count (mangled, &r))
-		{
-		  return (0);
-		}
-	    }
-	  else
-	    {
-	      r = 1;
-	    }
-          if ((HP_DEMANGLING || ARM_DEMANGLING || EDG_DEMANGLING) && work -> ntypes >= 10)
-            {
-              /* If we have 10 or more types we might have more than a 1 digit
-                 index so we'll have to consume the whole count here. This
-                 will lose if the next thing is a type name preceded by a
-                 count but it's impossible to demangle that case properly
-                 anyway. Eg if we already have 12 types is T12Pc "(..., type1,
-                 Pc, ...)"  or "(..., type12, char *, ...)" */
-              if ((t = consume_count(mangled)) <= 0)
-                {
-                  return (0);
-                }
-            }
-          else
-	    {
-	      if (!get_count (mangled, &t))
-	    	{
-	          return (0);
-	    	}
-	    }
-	  if (LUCID_DEMANGLING || ARM_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING)
-	    {
-	      t--;
-	    }
-	  /* Validate the type index.  Protect against illegal indices from
-	     malformed type strings.  */
-	  if ((t < 0) || (t >= work -> ntypes))
-	    {
-	      return (0);
-	    }
-	  while (work->nrepeats > 0 || --r >= 0)
-	    {
-	      tem = work -> typevec[t];
-	      if (need_comma && PRINT_ARG_TYPES)
-		{
-		  string_append (declp, ", ");
-		}
-	      if (!do_arg (work, &tem, &arg))
-		{
-		  return (0);
-		}
-	      if (PRINT_ARG_TYPES)
-		{
-		  string_appends (declp, &arg);
-		}
-	      string_delete (&arg);
-	      need_comma = 1;
-	    }
-	}
-      else
-	{
-	  if (need_comma && PRINT_ARG_TYPES)
-	    string_append (declp, ", ");
-	  if (!do_arg (work, mangled, &arg))
-	    return (0);
-	  if (PRINT_ARG_TYPES)
-	    string_appends (declp, &arg);
-	  string_delete (&arg);
-	  need_comma = 1;
-	}
-    }
-
-  if (**mangled == 'e')
-    {
-      (*mangled)++;
-      if (PRINT_ARG_TYPES)
-	{
-	  if (need_comma)
-	    {
-	      string_append (declp, ",");
-	    }
-	  string_append (declp, "...");
-	}
-    }
-
-  if (PRINT_ARG_TYPES)
-    {
-      string_append (declp, ")");
-    }
-  return (1);
-}
-
-/* Like demangle_args, but for demangling the argument lists of function
-   and method pointers or references, not top-level declarations.  */
-
-static int
-demangle_nested_args (struct work_stuff *work, const char **mangled,
-                      string *declp)
-{
-  string* saved_previous_argument;
-  int result;
-  int saved_nrepeats;
-
-  /* The G++ name-mangling algorithm does not remember types on nested
-     argument lists, unless -fsquangling is used, and in that case the
-     type vector updated by remember_type is not used.  So, we turn
-     off remembering of types here.  */
-  ++work->forgetting_types;
-
-  /* For the repeat codes used with -fsquangling, we must keep track of
-     the last argument.  */
-  saved_previous_argument = work->previous_argument;
-  saved_nrepeats = work->nrepeats;
-  work->previous_argument = 0;
-  work->nrepeats = 0;
-
-  /* Actually demangle the arguments.  */
-  result = demangle_args (work, mangled, declp);
-
-  /* Restore the previous_argument field.  */
-  if (work->previous_argument)
-    {
-      string_delete (work->previous_argument);
-      free ((char *) work->previous_argument);
-    }
-  work->previous_argument = saved_previous_argument;
-  --work->forgetting_types;
-  work->nrepeats = saved_nrepeats;
-
-  return result;
-}
-
-static void
-demangle_function_name (struct work_stuff *work, const char **mangled,
-                        string *declp, const char *scan)
-{
-  size_t i;
-  string type;
-  const char *tem;
-
-  string_appendn (declp, (*mangled), scan - (*mangled));
-  string_need (declp, 1);
-  *(declp -> p) = '\0';
-
-  /* Consume the function name, including the "__" separating the name
-     from the signature.  We are guaranteed that SCAN points to the
-     separator.  */
-
-  (*mangled) = scan + 2;
-  /* We may be looking at an instantiation of a template function:
-     foo__Xt1t2_Ft3t4, where t1, t2, ... are template arguments and a
-     following _F marks the start of the function arguments.  Handle
-     the template arguments first. */
-
-  if (HP_DEMANGLING && (**mangled == 'X'))
-    {
-      demangle_arm_hp_template (work, mangled, 0, declp);
-      /* This leaves MANGLED pointing to the 'F' marking func args */
-    }
-
-  if (LUCID_DEMANGLING || ARM_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING)
-    {
-
-      /* See if we have an ARM style constructor or destructor operator.
-	 If so, then just record it, clear the decl, and return.
-	 We can't build the actual constructor/destructor decl until later,
-	 when we recover the class name from the signature.  */
-
-      if (strcmp (declp -> b, "__ct") == 0)
-	{
-	  work -> constructor += 1;
-	  string_clear (declp);
-	  return;
-	}
-      else if (strcmp (declp -> b, "__dt") == 0)
-	{
-	  work -> destructor += 1;
-	  string_clear (declp);
-	  return;
-	}
-    }
-
-  if (declp->p - declp->b >= 3
-      && declp->b[0] == 'o'
-      && declp->b[1] == 'p'
-      && strchr (cplus_markers, declp->b[2]) != NULL)
-    {
-      /* see if it's an assignment expression */
-      if (declp->p - declp->b >= 10 /* op$assign_ */
-	  && memcmp (declp->b + 3, "assign_", 7) == 0)
-	{
-	  for (i = 0; i < ARRAY_SIZE (optable); i++)
-	    {
-	      int len = declp->p - declp->b - 10;
-	      if ((int) strlen (optable[i].in) == len
-		  && memcmp (optable[i].in, declp->b + 10, len) == 0)
-		{
-		  string_clear (declp);
-		  string_append (declp, "operator");
-		  string_append (declp, optable[i].out);
-		  string_append (declp, "=");
-		  break;
-		}
-	    }
-	}
-      else
-	{
-	  for (i = 0; i < ARRAY_SIZE (optable); i++)
-	    {
-	      int len = declp->p - declp->b - 3;
-	      if ((int) strlen (optable[i].in) == len
-		  && memcmp (optable[i].in, declp->b + 3, len) == 0)
-		{
-		  string_clear (declp);
-		  string_append (declp, "operator");
-		  string_append (declp, optable[i].out);
-		  break;
-		}
-	    }
-	}
-    }
-  else if (declp->p - declp->b >= 5 && memcmp (declp->b, "type", 4) == 0
-	   && strchr (cplus_markers, declp->b[4]) != NULL)
-    {
-      /* type conversion operator */
-      tem = declp->b + 5;
-      if (do_type (work, &tem, &type))
-	{
-	  string_clear (declp);
-	  string_append (declp, "operator ");
-	  string_appends (declp, &type);
-	  string_delete (&type);
-	}
-    }
-  else if (declp->b[0] == '_' && declp->b[1] == '_'
-	   && declp->b[2] == 'o' && declp->b[3] == 'p')
-    {
-      /* ANSI.  */
-      /* type conversion operator.  */
-      tem = declp->b + 4;
-      if (do_type (work, &tem, &type))
-	{
-	  string_clear (declp);
-	  string_append (declp, "operator ");
-	  string_appends (declp, &type);
-	  string_delete (&type);
-	}
-    }
-  else if (declp->b[0] == '_' && declp->b[1] == '_'
-	   && ISLOWER((unsigned char)declp->b[2])
-	   && ISLOWER((unsigned char)declp->b[3]))
-    {
-      if (declp->b[4] == '\0')
-	{
-	  /* Operator.  */
-	  for (i = 0; i < ARRAY_SIZE (optable); i++)
-	    {
-	      if (strlen (optable[i].in) == 2
-		  && memcmp (optable[i].in, declp->b + 2, 2) == 0)
-		{
-		  string_clear (declp);
-		  string_append (declp, "operator");
-		  string_append (declp, optable[i].out);
-		  break;
-		}
-	    }
-	}
-      else
-	{
-	  if (declp->b[2] == 'a' && declp->b[5] == '\0')
-	    {
-	      /* Assignment.  */
-	      for (i = 0; i < ARRAY_SIZE (optable); i++)
-		{
-		  if (strlen (optable[i].in) == 3
-		      && memcmp (optable[i].in, declp->b + 2, 3) == 0)
-		    {
-		      string_clear (declp);
-		      string_append (declp, "operator");
-		      string_append (declp, optable[i].out);
-		      break;
-		    }
-		}
-	    }
-	}
-    }
-}
-
-/* a mini string-handling package */
-
-static void
-string_need (string *s, int n)
-{
-  int tem;
-
-  if (s->b == NULL)
-    {
-      if (n < 32)
-	{
-	  n = 32;
-	}
-      s->p = s->b = XNEWVEC (char, n);
-      s->e = s->b + n;
-    }
-  else if (s->e - s->p < n)
-    {
-      tem = s->p - s->b;
-      n += tem;
-      n *= 2;
-      s->b = XRESIZEVEC (char, s->b, n);
-      s->p = s->b + tem;
-      s->e = s->b + n;
-    }
-}
-
-static void
-string_delete (string *s)
-{
-  if (s->b != NULL)
-    {
-      free (s->b);
-      s->b = s->e = s->p = NULL;
-    }
-}
-
-static void
-string_init (string *s)
-{
-  s->b = s->p = s->e = NULL;
-}
-
-static void
-string_clear (string *s)
-{
-  s->p = s->b;
-}
-
-#if 0
-
-static int
-string_empty (string *s)
-{
-  return (s->b == s->p);
-}
-
-#endif
-
-static void
-string_append (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 (string *p, string *s)
-{
-  int n;
-
-  if (s->b != s->p)
-    {
-      n = s->p - s->b;
-      string_need (p, n);
-      memcpy (p->p, s->b, n);
-      p->p += n;
-    }
-}
-
-static void
-string_appendn (string *p, const char *s, int n)
-{
-  if (n != 0)
-    {
-      string_need (p, n);
-      memcpy (p->p, s, n);
-      p->p += n;
-    }
-}
-
-static void
-string_prepend (string *p, const char *s)
-{
-  if (s != NULL && *s != '\0')
-    {
-      string_prependn (p, s, strlen (s));
-    }
-}
-
-static void
-string_prepends (string *p, string *s)
-{
-  if (s->b != s->p)
-    {
-      string_prependn (p, s->b, s->p - s->b);
-    }
-}
-
-static void
-string_prependn (string *p, const char *s, int n)
-{
-  char *q;
-
-  if (n != 0)
-    {
-      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;
-    }
-}
-
-static void
-string_append_template_idx (string *s, int idx)
-{
-  char buf[INTBUF_SIZE + 1 /* 'T' */];
-  sprintf(buf, "T%d", idx);
-  string_append (s, buf);
-}
diff --git a/libiberty/dyn-string.c b/libiberty/dyn-string.c
deleted file mode 100644
index 9de50ed..0000000
--- a/libiberty/dyn-string.c
+++ /dev/null
@@ -1,397 +0,0 @@
-/* An abstract string datatype.
-   Copyright (C) 1998, 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
-   Contributed by Mark Mitchell (mark@markmitchell.com).
-
-This file is part of GNU CC.
-   
-GNU CC 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.
-
-In addition to the permissions in the GNU General Public License, the
-Free Software Foundation gives you unlimited permission to link the
-compiled version of this file into combinations with other programs,
-and to distribute those combinations without any restriction coming
-from the use of this file.  (The General Public License restrictions
-do apply in other respects; for example, they cover modification of
-the file, and distribution when not linked into a combined
-executable.)
-
-GNU CC 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 GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdio.h>
-
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-#include "libiberty.h"
-#include "dyn-string.h"
-
-/* Performs in-place initialization of a dyn_string struct.  This
-   function can be used with a dyn_string struct on the stack or
-   embedded in another object.  The contents of of the string itself
-   are still dynamically allocated.  The string initially is capable
-   of holding at least SPACE characeters, including the terminating
-   NUL.  If SPACE is 0, it will silently be increated to 1.  
-
-   If RETURN_ON_ALLOCATION_FAILURE is defined and memory allocation
-   fails, returns 0.  Otherwise returns 1.  */
-
-int
-dyn_string_init (struct dyn_string *ds_struct_ptr, int space)
-{
-  /* We need at least one byte in which to store the terminating NUL.  */
-  if (space == 0)
-    space = 1;
-
-#ifdef RETURN_ON_ALLOCATION_FAILURE
-  ds_struct_ptr->s = (char *) malloc (space);
-  if (ds_struct_ptr->s == NULL)
-    return 0;
-#else
-  ds_struct_ptr->s = XNEWVEC (char, space);
-#endif
-  ds_struct_ptr->allocated = space;
-  ds_struct_ptr->length = 0;
-  ds_struct_ptr->s[0] = '\0';
-
-  return 1;
-}
-
-/* Create a new dynamic string capable of holding at least SPACE
-   characters, including the terminating NUL.  If SPACE is 0, it will
-   be silently increased to 1.  If RETURN_ON_ALLOCATION_FAILURE is
-   defined and memory allocation fails, returns NULL.  Otherwise
-   returns the newly allocated string.  */
-
-dyn_string_t 
-dyn_string_new (int space)
-{
-  dyn_string_t result;
-#ifdef RETURN_ON_ALLOCATION_FAILURE
-  result = (dyn_string_t) malloc (sizeof (struct dyn_string));
-  if (result == NULL)
-    return NULL;
-  if (!dyn_string_init (result, space))
-    {
-      free (result);
-      return NULL;
-    }
-#else
-  result = XNEW (struct dyn_string);
-  dyn_string_init (result, space);
-#endif
-  return result;
-}
-
-/* Free the memory used by DS.  */
-
-void 
-dyn_string_delete (dyn_string_t ds)
-{
-  free (ds->s);
-  free (ds);
-}
-
-/* Returns the contents of DS in a buffer allocated with malloc.  It
-   is the caller's responsibility to deallocate the buffer using free.
-   DS is then set to the empty string.  Deletes DS itself.  */
-
-char*
-dyn_string_release (dyn_string_t ds)
-{
-  /* Store the old buffer.  */
-  char* result = ds->s;
-  /* The buffer is no longer owned by DS.  */
-  ds->s = NULL;
-  /* Delete DS.  */
-  free (ds);
-  /* Return the old buffer.  */
-  return result;
-}
-
-/* Increase the capacity of DS so it can hold at least SPACE
-   characters, plus the terminating NUL.  This function will not (at
-   present) reduce the capacity of DS.  Returns DS on success. 
-
-   If RETURN_ON_ALLOCATION_FAILURE is defined and a memory allocation
-   operation fails, deletes DS and returns NULL.  */
-
-dyn_string_t 
-dyn_string_resize (dyn_string_t ds, int space)
-{
-  int new_allocated = ds->allocated;
-
-  /* Increase SPACE to hold the NUL termination.  */
-  ++space;
-
-  /* Increase allocation by factors of two.  */
-  while (space > new_allocated)
-    new_allocated *= 2;
-    
-  if (new_allocated != ds->allocated)
-    {
-      ds->allocated = new_allocated;
-      /* We actually need more space.  */
-#ifdef RETURN_ON_ALLOCATION_FAILURE
-      ds->s = (char *) realloc (ds->s, ds->allocated);
-      if (ds->s == NULL)
-	{
-	  free (ds);
-	  return NULL;
-	}
-#else
-      ds->s = XRESIZEVEC (char, ds->s, ds->allocated);
-#endif
-    }
-
-  return ds;
-}
-
-/* Sets the contents of DS to the empty string.  */
-
-void
-dyn_string_clear (dyn_string_t ds)
-{
-  /* A dyn_string always has room for at least the NUL terminator.  */
-  ds->s[0] = '\0';
-  ds->length = 0;
-}
-
-/* Makes the contents of DEST the same as the contents of SRC.  DEST
-   and SRC must be distinct.  Returns 1 on success.  On failure, if
-   RETURN_ON_ALLOCATION_FAILURE, deletes DEST and returns 0.  */
-
-int
-dyn_string_copy (dyn_string_t dest, dyn_string_t src)
-{
-  if (dest == src)
-    abort ();
-
-  /* Make room in DEST.  */
-  if (dyn_string_resize (dest, src->length) == NULL)
-    return 0;
-  /* Copy DEST into SRC.  */
-  strcpy (dest->s, src->s);
-  /* Update the size of DEST.  */
-  dest->length = src->length;
-  return 1;
-}
-
-/* Copies SRC, a NUL-terminated string, into DEST.  Returns 1 on
-   success.  On failure, if RETURN_ON_ALLOCATION_FAILURE, deletes DEST
-   and returns 0.  */
-
-int
-dyn_string_copy_cstr (dyn_string_t dest, const char *src)
-{
-  int length = strlen (src);
-  /* Make room in DEST.  */
-  if (dyn_string_resize (dest, length) == NULL)
-    return 0;
-  /* Copy DEST into SRC.  */
-  strcpy (dest->s, src);
-  /* Update the size of DEST.  */
-  dest->length = length;
-  return 1;
-}
-
-/* Inserts SRC at the beginning of DEST.  DEST is expanded as
-   necessary.  SRC and DEST must be distinct.  Returns 1 on success.
-   On failure, if RETURN_ON_ALLOCATION_FAILURE, deletes DEST and
-   returns 0.  */
-
-int
-dyn_string_prepend (dyn_string_t dest, dyn_string_t src)
-{
-  return dyn_string_insert (dest, 0, src);
-}
-
-/* Inserts SRC, a NUL-terminated string, at the beginning of DEST.
-   DEST is expanded as necessary.  Returns 1 on success.  On failure,
-   if RETURN_ON_ALLOCATION_FAILURE, deletes DEST and returns 0. */
-
-int
-dyn_string_prepend_cstr (dyn_string_t dest, const char *src)
-{
-  return dyn_string_insert_cstr (dest, 0, src);
-}
-
-/* Inserts SRC into DEST starting at position POS.  DEST is expanded
-   as necessary.  SRC and DEST must be distinct.  Returns 1 on
-   success.  On failure, if RETURN_ON_ALLOCATION_FAILURE, deletes DEST
-   and returns 0.  */
-
-int
-dyn_string_insert (dyn_string_t dest, int pos, dyn_string_t src)
-{
-  int i;
-
-  if (src == dest)
-    abort ();
-
-  if (dyn_string_resize (dest, dest->length + src->length) == NULL)
-    return 0;
-  /* Make room for the insertion.  Be sure to copy the NUL.  */
-  for (i = dest->length; i >= pos; --i)
-    dest->s[i + src->length] = dest->s[i];
-  /* Splice in the new stuff.  */
-  strncpy (dest->s + pos, src->s, src->length);
-  /* Compute the new length.  */
-  dest->length += src->length;
-  return 1;
-}
-
-/* Inserts SRC, a NUL-terminated string, into DEST starting at
-   position POS.  DEST is expanded as necessary.  Returns 1 on
-   success.  On failure, RETURN_ON_ALLOCATION_FAILURE, deletes DEST
-   and returns 0.  */
-
-int
-dyn_string_insert_cstr (dyn_string_t dest, int pos, const char *src)
-{
-  int i;
-  int length = strlen (src);
-
-  if (dyn_string_resize (dest, dest->length + length) == NULL)
-    return 0;
-  /* Make room for the insertion.  Be sure to copy the NUL.  */
-  for (i = dest->length; i >= pos; --i)
-    dest->s[i + length] = dest->s[i];
-  /* Splice in the new stuff.  */
-  strncpy (dest->s + pos, src, length);
-  /* Compute the new length.  */
-  dest->length += length;
-  return 1;
-}
-
-/* Inserts character C into DEST starting at position POS.  DEST is
-   expanded as necessary.  Returns 1 on success.  On failure,
-   RETURN_ON_ALLOCATION_FAILURE, deletes DEST and returns 0.  */
-
-int
-dyn_string_insert_char (dyn_string_t dest, int pos, int c)
-{
-  int i;
-
-  if (dyn_string_resize (dest, dest->length + 1) == NULL)
-    return 0;
-  /* Make room for the insertion.  Be sure to copy the NUL.  */
-  for (i = dest->length; i >= pos; --i)
-    dest->s[i + 1] = dest->s[i];
-  /* Add the new character.  */
-  dest->s[pos] = c;
-  /* Compute the new length.  */
-  ++dest->length;
-  return 1;
-}
-     
-/* Append S to DS, resizing DS if necessary.  Returns 1 on success.
-   On failure, if RETURN_ON_ALLOCATION_FAILURE, deletes DEST and
-   returns 0.  */
-
-int
-dyn_string_append (dyn_string_t dest, dyn_string_t s)
-{
-  if (dyn_string_resize (dest, dest->length + s->length) == 0)
-    return 0;
-  strcpy (dest->s + dest->length, s->s);
-  dest->length += s->length;
-  return 1;
-}
-
-/* Append the NUL-terminated string S to DS, resizing DS if necessary.
-   Returns 1 on success.  On failure, if RETURN_ON_ALLOCATION_FAILURE,
-   deletes DEST and returns 0.  */
-
-int
-dyn_string_append_cstr (dyn_string_t dest, const char *s)
-{
-  int len = strlen (s);
-
-  /* The new length is the old length plus the size of our string, plus
-     one for the null at the end.  */
-  if (dyn_string_resize (dest, dest->length + len) == NULL)
-    return 0;
-  strcpy (dest->s + dest->length, s);
-  dest->length += len;
-  return 1;
-}
-
-/* Appends C to the end of DEST.  Returns 1 on success.  On failiure,
-   if RETURN_ON_ALLOCATION_FAILURE, deletes DEST and returns 0.  */
-
-int
-dyn_string_append_char (dyn_string_t dest, int c)
-{
-  /* Make room for the extra character.  */
-  if (dyn_string_resize (dest, dest->length + 1) == NULL)
-    return 0;
-  /* Append the character; it will overwrite the old NUL.  */
-  dest->s[dest->length] = c;
-  /* Add a new NUL at the end.  */
-  dest->s[dest->length + 1] = '\0';
-  /* Update the length.  */
-  ++(dest->length);
-  return 1;
-}
-
-/* Sets the contents of DEST to the substring of SRC starting at START
-   and ending before END.  START must be less than or equal to END,
-   and both must be between zero and the length of SRC, inclusive.
-   Returns 1 on success.  On failure, if RETURN_ON_ALLOCATION_FAILURE,
-   deletes DEST and returns 0.  */
-
-int
-dyn_string_substring (dyn_string_t dest, dyn_string_t src,
-                      int start, int end)
-{
-  int i;
-  int length = end - start;
-
-  if (start > end || start > src->length || end > src->length)
-    abort ();
-
-  /* Make room for the substring.  */
-  if (dyn_string_resize (dest, length) == NULL)
-    return 0;
-  /* Copy the characters in the substring,  */
-  for (i = length; --i >= 0; )
-    dest->s[i] = src->s[start + i];
-  /* NUL-terimate the result.  */
-  dest->s[length] = '\0';
-  /* Record the length of the substring.  */
-  dest->length = length;
-
-  return 1;
-}
-
-/* Returns non-zero if DS1 and DS2 have the same contents.  */
-
-int
-dyn_string_eq (dyn_string_t ds1, dyn_string_t ds2)
-{
-  /* If DS1 and DS2 have different lengths, they must not be the same.  */
-  if (ds1->length != ds2->length)
-    return 0;
-  else
-    return !strcmp (ds1->s, ds2->s);
-}
diff --git a/libiberty/fdmatch.c b/libiberty/fdmatch.c
deleted file mode 100644
index f613cb3..0000000
--- a/libiberty/fdmatch.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Compare two open file descriptors to see if they refer to the same file.
-   Copyright (C) 1991 Free Software Foundation, Inc.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-
-/*
-
-@deftypefn Extension int fdmatch (int @var{fd1}, int @var{fd2})
-
-Check to see if two open file descriptors refer to the same file.
-This is useful, for example, when we have an open file descriptor for
-an unnamed file, and the name of a file that we believe to correspond
-to that fd.  This can happen when we are exec'd with an already open
-file (@code{stdout} for example) or from the SVR4 @file{/proc} calls
-that return open file descriptors for mapped address spaces.  All we
-have to do is open the file by name and check the two file descriptors
-for a match, which is done by comparing major and minor device numbers
-and inode numbers.
-
-@end deftypefn
-
-BUGS
-
-	(FIXME: does this work for networks?)
-	It works for NFS, which assigns a device number to each mount.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include "ansidecl.h"
-#include "libiberty.h"
-#include <sys/types.h>
-#include <sys/stat.h>
-
-int fdmatch (int fd1, int fd2)
-{
-  struct stat sbuf1;
-  struct stat sbuf2;
-
-  if ((fstat (fd1, &sbuf1) == 0) &&
-      (fstat (fd2, &sbuf2) == 0) &&
-      (sbuf1.st_dev == sbuf2.st_dev) &&
-      (sbuf1.st_ino == sbuf2.st_ino))
-    {
-      return (1);
-    }
-  else
-    {
-      return (0);
-    }
-}
diff --git a/libiberty/ffs.c b/libiberty/ffs.c
deleted file mode 100644
index 603cbe8..0000000
--- a/libiberty/ffs.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* ffs -- Find the first bit set in the parameter
-
-@deftypefn Supplemental int ffs (int @var{valu})
-
-Find the first (least significant) bit set in @var{valu}.  Bits are
-numbered from right to left, starting with bit 1 (corresponding to the
-value 1).  If @var{valu} is zero, zero is returned.
-
-@end deftypefn
-
-*/
-
-int
-ffs (register int valu)
-{
-  register int bit;
-
-  if (valu == 0)
-    return 0;
-
-  for (bit = 1; !(valu & 1); bit++)
-  	valu >>= 1;
-
-  return bit;
-}
-
diff --git a/libiberty/fibheap.c b/libiberty/fibheap.c
deleted file mode 100644
index c032149..0000000
--- a/libiberty/fibheap.c
+++ /dev/null
@@ -1,478 +0,0 @@
-/* A Fibonacci heap datatype.
-   Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
-   Contributed by Daniel Berlin (dan@cgsoftware.com).
-   
-This file is part of GNU CC.
-   
-GNU CC 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.
-
-GNU CC 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 GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#ifdef HAVE_LIMITS_H
-#include <limits.h>
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-#include "libiberty.h"
-#include "fibheap.h"
-
-
-#define FIBHEAPKEY_MIN	LONG_MIN
-
-static void fibheap_ins_root (fibheap_t, fibnode_t);
-static void fibheap_rem_root (fibheap_t, fibnode_t);
-static void fibheap_consolidate (fibheap_t);
-static void fibheap_link (fibheap_t, fibnode_t, fibnode_t);
-static void fibheap_cut (fibheap_t, fibnode_t, fibnode_t);
-static void fibheap_cascading_cut (fibheap_t, fibnode_t);
-static fibnode_t fibheap_extr_min_node (fibheap_t);
-static int fibheap_compare (fibheap_t, fibnode_t, fibnode_t);
-static int fibheap_comp_data (fibheap_t, fibheapkey_t, void *, fibnode_t);
-static fibnode_t fibnode_new (void);
-static void fibnode_insert_after (fibnode_t, fibnode_t);
-#define fibnode_insert_before(a, b) fibnode_insert_after (a->left, b)
-static fibnode_t fibnode_remove (fibnode_t);
-
-
-/* Create a new fibonacci heap.  */
-fibheap_t
-fibheap_new (void)
-{
-  return (fibheap_t) xcalloc (1, sizeof (struct fibheap));
-}
-
-/* Create a new fibonacci heap node.  */
-static fibnode_t
-fibnode_new (void)
-{
-  fibnode_t node;
-
-  node = (fibnode_t) xcalloc (1, sizeof *node);
-  node->left = node;
-  node->right = node;
-
-  return node;
-}
-
-static inline int
-fibheap_compare (fibheap_t heap ATTRIBUTE_UNUSED, fibnode_t a, fibnode_t b)
-{
-  if (a->key < b->key)
-    return -1;
-  if (a->key > b->key)
-    return 1;
-  return 0;
-}
-
-static inline int
-fibheap_comp_data (fibheap_t heap, fibheapkey_t key, void *data, fibnode_t b)
-{
-  struct fibnode a;
-
-  a.key = key;
-  a.data = data;
-
-  return fibheap_compare (heap, &a, b);
-}
-
-/* Insert DATA, with priority KEY, into HEAP.  */
-fibnode_t
-fibheap_insert (fibheap_t heap, fibheapkey_t key, void *data)
-{
-  fibnode_t node;
-
-  /* Create the new node.  */
-  node = fibnode_new ();
-
-  /* Set the node's data.  */
-  node->data = data;
-  node->key = key;
-
-  /* Insert it into the root list.  */
-  fibheap_ins_root (heap, node);
-
-  /* If their was no minimum, or this key is less than the min,
-     it's the new min.  */
-  if (heap->min == NULL || node->key < heap->min->key)
-    heap->min = node;
-
-  heap->nodes++;
-
-  return node;
-}
-
-/* Return the data of the minimum node (if we know it).  */
-void *
-fibheap_min (fibheap_t heap)
-{
-  /* If there is no min, we can't easily return it.  */
-  if (heap->min == NULL)
-    return NULL;
-  return heap->min->data;
-}
-
-/* Return the key of the minimum node (if we know it).  */
-fibheapkey_t
-fibheap_min_key (fibheap_t heap)
-{
-  /* If there is no min, we can't easily return it.  */
-  if (heap->min == NULL)
-    return 0;
-  return heap->min->key;
-}
-
-/* Union HEAPA and HEAPB into a new heap.  */
-fibheap_t
-fibheap_union (fibheap_t heapa, fibheap_t heapb)
-{
-  fibnode_t a_root, b_root, temp;
-
-  /* If one of the heaps is empty, the union is just the other heap.  */
-  if ((a_root = heapa->root) == NULL)
-    {
-      free (heapa);
-      return heapb;
-    }
-  if ((b_root = heapb->root) == NULL)
-    {
-      free (heapb);
-      return heapa;
-    }
-
-  /* Merge them to the next nodes on the opposite chain.  */
-  a_root->left->right = b_root;
-  b_root->left->right = a_root;
-  temp = a_root->left;
-  a_root->left = b_root->left;
-  b_root->left = temp;
-  heapa->nodes += heapb->nodes;
-
-  /* And set the new minimum, if it's changed.  */
-  if (fibheap_compare (heapa, heapb->min, heapa->min) < 0)
-    heapa->min = heapb->min;
-
-  free (heapb);
-  return heapa;
-}
-
-/* Extract the data of the minimum node from HEAP.  */
-void *
-fibheap_extract_min (fibheap_t heap)
-{
-  fibnode_t z;
-  void *ret = NULL;
-
-  /* If we don't have a min set, it means we have no nodes.  */
-  if (heap->min != NULL)
-    {
-      /* Otherwise, extract the min node, free the node, and return the
-         node's data.  */
-      z = fibheap_extr_min_node (heap);
-      ret = z->data;
-      free (z);
-    }
-
-  return ret;
-}
-
-/* Replace both the KEY and the DATA associated with NODE.  */
-void *
-fibheap_replace_key_data (fibheap_t heap, fibnode_t node,
-                          fibheapkey_t key, void *data)
-{
-  void *odata;
-  fibheapkey_t okey;
-  fibnode_t y;
-
-  /* If we wanted to, we could actually do a real increase by redeleting and
-     inserting. However, this would require O (log n) time. So just bail out
-     for now.  */
-  if (fibheap_comp_data (heap, key, data, node) > 0)
-    return NULL;
-
-  odata = node->data;
-  okey = node->key;
-  node->data = data;
-  node->key = key;
-  y = node->parent;
-
-  if (okey == key)
-    return odata;
-
-  /* These two compares are specifically <= 0 to make sure that in the case
-     of equality, a node we replaced the data on, becomes the new min.  This
-     is needed so that delete's call to extractmin gets the right node.  */
-  if (y != NULL && fibheap_compare (heap, node, y) <= 0)
-    {
-      fibheap_cut (heap, node, y);
-      fibheap_cascading_cut (heap, y);
-    }
-
-  if (fibheap_compare (heap, node, heap->min) <= 0)
-    heap->min = node;
-
-  return odata;
-}
-
-/* Replace the DATA associated with NODE.  */
-void *
-fibheap_replace_data (fibheap_t heap, fibnode_t node, void *data)
-{
-  return fibheap_replace_key_data (heap, node, node->key, data);
-}
-
-/* Replace the KEY associated with NODE.  */
-fibheapkey_t
-fibheap_replace_key (fibheap_t heap, fibnode_t node, fibheapkey_t key)
-{
-  int okey = node->key;
-  fibheap_replace_key_data (heap, node, key, node->data);
-  return okey;
-}
-
-/* Delete NODE from HEAP.  */
-void *
-fibheap_delete_node (fibheap_t heap, fibnode_t node)
-{
-  void *ret = node->data;
-
-  /* To perform delete, we just make it the min key, and extract.  */
-  fibheap_replace_key (heap, node, FIBHEAPKEY_MIN);
-  fibheap_extract_min (heap);
-
-  return ret;
-}
-
-/* Delete HEAP.  */
-void
-fibheap_delete (fibheap_t heap)
-{
-  while (heap->min != NULL)
-    free (fibheap_extr_min_node (heap));
-
-  free (heap);
-}
-
-/* Determine if HEAP is empty.  */
-int
-fibheap_empty (fibheap_t heap)
-{
-  return heap->nodes == 0;
-}
-
-/* Extract the minimum node of the heap.  */
-static fibnode_t
-fibheap_extr_min_node (fibheap_t heap)
-{
-  fibnode_t ret = heap->min;
-  fibnode_t x, y, orig;
-
-  /* Attach the child list of the minimum node to the root list of the heap.
-     If there is no child list, we don't do squat.  */
-  for (x = ret->child, orig = NULL; x != orig && x != NULL; x = y)
-    {
-      if (orig == NULL)
-	orig = x;
-      y = x->right;
-      x->parent = NULL;
-      fibheap_ins_root (heap, x);
-    }
-
-  /* Remove the old root.  */
-  fibheap_rem_root (heap, ret);
-  heap->nodes--;
-
-  /* If we are left with no nodes, then the min is NULL.  */
-  if (heap->nodes == 0)
-    heap->min = NULL;
-  else
-    {
-      /* Otherwise, consolidate to find new minimum, as well as do the reorg
-         work that needs to be done.  */
-      heap->min = ret->right;
-      fibheap_consolidate (heap);
-    }
-
-  return ret;
-}
-
-/* Insert NODE into the root list of HEAP.  */
-static void
-fibheap_ins_root (fibheap_t heap, fibnode_t node)
-{
-  /* If the heap is currently empty, the new node becomes the singleton
-     circular root list.  */
-  if (heap->root == NULL)
-    {
-      heap->root = node;
-      node->left = node;
-      node->right = node;
-      return;
-    }
-
-  /* Otherwise, insert it in the circular root list between the root
-     and it's right node.  */
-  fibnode_insert_after (heap->root, node);
-}
-
-/* Remove NODE from the rootlist of HEAP.  */
-static void
-fibheap_rem_root (fibheap_t heap, fibnode_t node)
-{
-  if (node->left == node)
-    heap->root = NULL;
-  else
-    heap->root = fibnode_remove (node);
-}
-
-/* Consolidate the heap.  */
-static void
-fibheap_consolidate (fibheap_t heap)
-{
-  fibnode_t a[1 + 8 * sizeof (long)];
-  fibnode_t w;
-  fibnode_t y;
-  fibnode_t x;
-  int i;
-  int d;
-  int D;
-
-  D = 1 + 8 * sizeof (long);
-
-  memset (a, 0, sizeof (fibnode_t) * D);
-
-  while ((w = heap->root) != NULL)
-    {
-      x = w;
-      fibheap_rem_root (heap, w);
-      d = x->degree;
-      while (a[d] != NULL)
-	{
-	  y = a[d];
-	  if (fibheap_compare (heap, x, y) > 0)
-	    {
-	      fibnode_t temp;
-	      temp = x;
-	      x = y;
-	      y = temp;
-	    }
-	  fibheap_link (heap, y, x);
-	  a[d] = NULL;
-	  d++;
-	}
-      a[d] = x;
-    }
-  heap->min = NULL;
-  for (i = 0; i < D; i++)
-    if (a[i] != NULL)
-      {
-	fibheap_ins_root (heap, a[i]);
-	if (heap->min == NULL || fibheap_compare (heap, a[i], heap->min) < 0)
-	  heap->min = a[i];
-      }
-}
-
-/* Make NODE a child of PARENT.  */
-static void
-fibheap_link (fibheap_t heap ATTRIBUTE_UNUSED,
-              fibnode_t node, fibnode_t parent)
-{
-  if (parent->child == NULL)
-    parent->child = node;
-  else
-    fibnode_insert_before (parent->child, node);
-  node->parent = parent;
-  parent->degree++;
-  node->mark = 0;
-}
-
-/* Remove NODE from PARENT's child list.  */
-static void
-fibheap_cut (fibheap_t heap, fibnode_t node, fibnode_t parent)
-{
-  fibnode_remove (node);
-  parent->degree--;
-  fibheap_ins_root (heap, node);
-  node->parent = NULL;
-  node->mark = 0;
-}
-
-static void
-fibheap_cascading_cut (fibheap_t heap, fibnode_t y)
-{
-  fibnode_t z;
-
-  while ((z = y->parent) != NULL)
-    {
-      if (y->mark == 0)
-	{
-	  y->mark = 1;
-	  return;
-	}
-      else
-	{
-	  fibheap_cut (heap, y, z);
-	  y = z;
-	}
-    }
-}
-
-static void
-fibnode_insert_after (fibnode_t a, fibnode_t b)
-{
-  if (a == a->right)
-    {
-      a->right = b;
-      a->left = b;
-      b->right = a;
-      b->left = a;
-    }
-  else
-    {
-      b->right = a->right;
-      a->right->left = b;
-      a->right = b;
-      b->left = a;
-    }
-}
-
-static fibnode_t
-fibnode_remove (fibnode_t node)
-{
-  fibnode_t ret;
-
-  if (node == node->left)
-    ret = NULL;
-  else
-    ret = node->left;
-
-  if (node->parent != NULL && node->parent->child == node)
-    node->parent->child = ret;
-
-  node->right->left = node->left;
-  node->left->right = node->right;
-
-  node->parent = NULL;
-  node->left = node;
-  node->right = node;
-
-  return ret;
-}
diff --git a/libiberty/floatformat.c b/libiberty/floatformat.c
deleted file mode 100644
index 0bbb8ed..0000000
--- a/libiberty/floatformat.c
+++ /dev/null
@@ -1,642 +0,0 @@
-/* IEEE floating point support routines, for GDB, the GNU Debugger.
-   Copyright 1991, 1994, 1999, 2000, 2003, 2005, 2006
-   Free Software Foundation, Inc.
-
-This file is part of GDB.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* This is needed to pick up the NAN macro on some systems.  */
-#define _GNU_SOURCE
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <math.h>
-
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-
-/* On some platforms, <float.h> provides DBL_QNAN.  */
-#ifdef STDC_HEADERS
-#include <float.h>
-#endif
-
-#include "ansidecl.h"
-#include "libiberty.h"
-#include "floatformat.h"
-
-#ifndef INFINITY
-#ifdef HUGE_VAL
-#define INFINITY HUGE_VAL
-#else
-#define INFINITY (1.0 / 0.0)
-#endif
-#endif
-
-#ifndef NAN
-#ifdef DBL_QNAN
-#define NAN DBL_QNAN
-#else
-#define NAN (0.0 / 0.0)
-#endif
-#endif
-
-static unsigned long get_field (const unsigned char *,
-                                enum floatformat_byteorders,
-                                unsigned int,
-                                unsigned int,
-                                unsigned int);
-static int floatformat_always_valid (const struct floatformat *fmt,
-                                     const void *from);
-
-static int
-floatformat_always_valid (const struct floatformat *fmt ATTRIBUTE_UNUSED,
-                          const void *from ATTRIBUTE_UNUSED)
-{
-  return 1;
-}
-
-/* The odds that CHAR_BIT will be anything but 8 are low enough that I'm not
-   going to bother with trying to muck around with whether it is defined in
-   a system header, what we do if not, etc.  */
-#define FLOATFORMAT_CHAR_BIT 8
-
-/* floatformats for IEEE single and double, big and little endian.  */
-const struct floatformat floatformat_ieee_single_big =
-{
-  floatformat_big, 32, 0, 1, 8, 127, 255, 9, 23,
-  floatformat_intbit_no,
-  "floatformat_ieee_single_big",
-  floatformat_always_valid
-};
-const struct floatformat floatformat_ieee_single_little =
-{
-  floatformat_little, 32, 0, 1, 8, 127, 255, 9, 23,
-  floatformat_intbit_no,
-  "floatformat_ieee_single_little",
-  floatformat_always_valid
-};
-const struct floatformat floatformat_ieee_double_big =
-{
-  floatformat_big, 64, 0, 1, 11, 1023, 2047, 12, 52,
-  floatformat_intbit_no,
-  "floatformat_ieee_double_big",
-  floatformat_always_valid
-};
-const struct floatformat floatformat_ieee_double_little =
-{
-  floatformat_little, 64, 0, 1, 11, 1023, 2047, 12, 52,
-  floatformat_intbit_no,
-  "floatformat_ieee_double_little",
-  floatformat_always_valid
-};
-
-/* floatformat for IEEE double, little endian byte order, with big endian word
-   ordering, as on the ARM.  */
-
-const struct floatformat floatformat_ieee_double_littlebyte_bigword =
-{
-  floatformat_littlebyte_bigword, 64, 0, 1, 11, 1023, 2047, 12, 52,
-  floatformat_intbit_no,
-  "floatformat_ieee_double_littlebyte_bigword",
-  floatformat_always_valid
-};
-
-/* floatformat for VAX.  Not quite IEEE, but close enough.  */
-
-const struct floatformat floatformat_vax_f =
-{
-  floatformat_vax, 32, 0, 1, 8, 129, 0, 9, 23,
-  floatformat_intbit_no,
-  "floatformat_vax_f",
-  floatformat_always_valid
-};
-const struct floatformat floatformat_vax_d =
-{
-  floatformat_vax, 64, 0, 1, 8, 129, 0, 9, 55,
-  floatformat_intbit_no,
-  "floatformat_vax_d",
-  floatformat_always_valid
-};
-const struct floatformat floatformat_vax_g =
-{
-  floatformat_vax, 64, 0, 1, 11, 1025, 0, 12, 52,
-  floatformat_intbit_no,
-  "floatformat_vax_g",
-  floatformat_always_valid
-};
-
-static int floatformat_i387_ext_is_valid (const struct floatformat *fmt,
-					  const void *from);
-
-static int
-floatformat_i387_ext_is_valid (const struct floatformat *fmt, const void *from)
-{
-  /* In the i387 double-extended format, if the exponent is all ones,
-     then the integer bit must be set.  If the exponent is neither 0
-     nor ~0, the intbit must also be set.  Only if the exponent is
-     zero can it be zero, and then it must be zero.  */
-  unsigned long exponent, int_bit;
-  const unsigned char *ufrom = (const unsigned char *) from;
-
-  exponent = get_field (ufrom, fmt->byteorder, fmt->totalsize,
-			fmt->exp_start, fmt->exp_len);
-  int_bit = get_field (ufrom, fmt->byteorder, fmt->totalsize,
-		       fmt->man_start, 1);
-
-  if ((exponent == 0) != (int_bit == 0))
-    return 0;
-  else
-    return 1;
-}
-
-const struct floatformat floatformat_i387_ext =
-{
-  floatformat_little, 80, 0, 1, 15, 0x3fff, 0x7fff, 16, 64,
-  floatformat_intbit_yes,
-  "floatformat_i387_ext",
-  floatformat_i387_ext_is_valid
-};
-const struct floatformat floatformat_m68881_ext =
-{
-  /* Note that the bits from 16 to 31 are unused.  */
-  floatformat_big, 96, 0, 1, 15, 0x3fff, 0x7fff, 32, 64,
-  floatformat_intbit_yes,
-  "floatformat_m68881_ext",
-  floatformat_always_valid
-};
-const struct floatformat floatformat_i960_ext =
-{
-  /* Note that the bits from 0 to 15 are unused.  */
-  floatformat_little, 96, 16, 17, 15, 0x3fff, 0x7fff, 32, 64,
-  floatformat_intbit_yes,
-  "floatformat_i960_ext",
-  floatformat_always_valid
-};
-const struct floatformat floatformat_m88110_ext =
-{
-  floatformat_big, 80, 0, 1, 15, 0x3fff, 0x7fff, 16, 64,
-  floatformat_intbit_yes,
-  "floatformat_m88110_ext",
-  floatformat_always_valid
-};
-const struct floatformat floatformat_m88110_harris_ext =
-{
-  /* Harris uses raw format 128 bytes long, but the number is just an ieee
-     double, and the last 64 bits are wasted. */
-  floatformat_big,128, 0, 1, 11,  0x3ff,  0x7ff, 12, 52,
-  floatformat_intbit_no,
-  "floatformat_m88110_ext_harris",
-  floatformat_always_valid
-};
-const struct floatformat floatformat_arm_ext_big =
-{
-  /* Bits 1 to 16 are unused.  */
-  floatformat_big, 96, 0, 17, 15, 0x3fff, 0x7fff, 32, 64,
-  floatformat_intbit_yes,
-  "floatformat_arm_ext_big",
-  floatformat_always_valid
-};
-const struct floatformat floatformat_arm_ext_littlebyte_bigword =
-{
-  /* Bits 1 to 16 are unused.  */
-  floatformat_littlebyte_bigword, 96, 0, 17, 15, 0x3fff, 0x7fff, 32, 64,
-  floatformat_intbit_yes,
-  "floatformat_arm_ext_littlebyte_bigword",
-  floatformat_always_valid
-};
-const struct floatformat floatformat_ia64_spill_big =
-{
-  floatformat_big, 128, 0, 1, 17, 65535, 0x1ffff, 18, 64,
-  floatformat_intbit_yes,
-  "floatformat_ia64_spill_big",
-  floatformat_always_valid
-};
-const struct floatformat floatformat_ia64_spill_little =
-{
-  floatformat_little, 128, 0, 1, 17, 65535, 0x1ffff, 18, 64,
-  floatformat_intbit_yes,
-  "floatformat_ia64_spill_little",
-  floatformat_always_valid
-};
-const struct floatformat floatformat_ia64_quad_big =
-{
-  floatformat_big, 128, 0, 1, 15, 16383, 0x7fff, 16, 112,
-  floatformat_intbit_no,
-  "floatformat_ia64_quad_big",
-  floatformat_always_valid
-};
-const struct floatformat floatformat_ia64_quad_little =
-{
-  floatformat_little, 128, 0, 1, 15, 16383, 0x7fff, 16, 112,
-  floatformat_intbit_no,
-  "floatformat_ia64_quad_little",
-  floatformat_always_valid
-};
-
-/* Extract a field which starts at START and is LEN bits long.  DATA and
-   TOTAL_LEN are the thing we are extracting it from, in byteorder ORDER.  */
-static unsigned long
-get_field (const unsigned char *data, enum floatformat_byteorders order,
-           unsigned int total_len, unsigned int start, unsigned int len)
-{
-  unsigned long result;
-  unsigned int cur_byte;
-  int cur_bitshift;
-
-  /* Start at the least significant part of the field.  */
-  cur_byte = (start + len) / FLOATFORMAT_CHAR_BIT;
-  if (order == floatformat_little)
-    cur_byte = (total_len / FLOATFORMAT_CHAR_BIT) - cur_byte - 1;
-  cur_bitshift =
-    ((start + len) % FLOATFORMAT_CHAR_BIT) - FLOATFORMAT_CHAR_BIT;
-  result = *(data + cur_byte) >> (-cur_bitshift);
-  cur_bitshift += FLOATFORMAT_CHAR_BIT;
-  if (order == floatformat_little)
-    ++cur_byte;
-  else
-    --cur_byte;
-
-  /* Move towards the most significant part of the field.  */
-  while ((unsigned int) cur_bitshift < len)
-    {
-      if (len - cur_bitshift < FLOATFORMAT_CHAR_BIT)
-	/* This is the last byte; zero out the bits which are not part of
-	   this field.  */
-	result |=
-	  (*(data + cur_byte) & ((1 << (len - cur_bitshift)) - 1))
-	    << cur_bitshift;
-      else
-	result |= *(data + cur_byte) << cur_bitshift;
-      cur_bitshift += FLOATFORMAT_CHAR_BIT;
-      if (order == floatformat_little)
-	++cur_byte;
-      else
-	--cur_byte;
-    }
-  return result;
-}
-  
-#ifndef min
-#define min(a, b) ((a) < (b) ? (a) : (b))
-#endif
-
-/* Convert from FMT to a double.
-   FROM is the address of the extended float.
-   Store the double in *TO.  */
-
-void
-floatformat_to_double (const struct floatformat *fmt,
-                       const void *from, double *to)
-{
-  const unsigned char *ufrom = (const unsigned char *) from;
-  double dto;
-  long exponent;
-  unsigned long mant;
-  unsigned int mant_bits, mant_off;
-  int mant_bits_left;
-  int special_exponent;		/* It's a NaN, denorm or zero */
-
-  exponent = get_field (ufrom, fmt->byteorder, fmt->totalsize,
-			fmt->exp_start, fmt->exp_len);
-
-  /* If the exponent indicates a NaN, we don't have information to
-     decide what to do.  So we handle it like IEEE, except that we
-     don't try to preserve the type of NaN.  FIXME.  */
-  if ((unsigned long) exponent == fmt->exp_nan)
-    {
-      int nan;
-
-      mant_off = fmt->man_start;
-      mant_bits_left = fmt->man_len;
-      nan = 0;
-      while (mant_bits_left > 0)
-	{
-	  mant_bits = min (mant_bits_left, 32);
-
-	  if (get_field (ufrom, fmt->byteorder, fmt->totalsize,
-			 mant_off, mant_bits) != 0)
-	    {
-	      /* This is a NaN.  */
-	      nan = 1;
-	      break;
-	    }
-
-	  mant_off += mant_bits;
-	  mant_bits_left -= mant_bits;
-	}
-
-      /* On certain systems (such as GNU/Linux), the use of the
-	 INFINITY macro below may generate a warning that can not be
-	 silenced due to a bug in GCC (PR preprocessor/11931).  The
-	 preprocessor fails to recognise the __extension__ keyword in
-	 conjunction with the GNU/C99 extension for hexadecimal
-	 floating point constants and will issue a warning when
-	 compiling with -pedantic.  */
-      if (nan)
-	dto = NAN;
-      else
-	dto = INFINITY;
-
-      if (get_field (ufrom, fmt->byteorder, fmt->totalsize, fmt->sign_start, 1))
-	dto = -dto;
-
-      *to = dto;
-
-      return;
-    }
-
-  mant_bits_left = fmt->man_len;
-  mant_off = fmt->man_start;
-  dto = 0.0;
-
-  special_exponent = exponent == 0 || (unsigned long) exponent == fmt->exp_nan;
-
-  /* Don't bias zero's, denorms or NaNs.  */
-  if (!special_exponent)
-    exponent -= fmt->exp_bias;
-
-  /* Build the result algebraically.  Might go infinite, underflow, etc;
-     who cares. */
-
-  /* If this format uses a hidden bit, explicitly add it in now.  Otherwise,
-     increment the exponent by one to account for the integer bit.  */
-
-  if (!special_exponent)
-    {
-      if (fmt->intbit == floatformat_intbit_no)
-	dto = ldexp (1.0, exponent);
-      else
-	exponent++;
-    }
-
-  while (mant_bits_left > 0)
-    {
-      mant_bits = min (mant_bits_left, 32);
-
-      mant = get_field (ufrom, fmt->byteorder, fmt->totalsize,
-			 mant_off, mant_bits);
-
-      /* Handle denormalized numbers.  FIXME: What should we do for
-	 non-IEEE formats?  */
-      if (special_exponent && exponent == 0 && mant != 0)
-	dto += ldexp ((double)mant,
-		      (- fmt->exp_bias
-		       - mant_bits
-		       - (mant_off - fmt->man_start)
-		       + 1));
-      else
-	dto += ldexp ((double)mant, exponent - mant_bits);
-      if (exponent != 0)
-	exponent -= mant_bits;
-      mant_off += mant_bits;
-      mant_bits_left -= mant_bits;
-    }
-
-  /* Negate it if negative.  */
-  if (get_field (ufrom, fmt->byteorder, fmt->totalsize, fmt->sign_start, 1))
-    dto = -dto;
-  *to = dto;
-}
-
-static void put_field (unsigned char *, enum floatformat_byteorders,
-                       unsigned int,
-                       unsigned int,
-                       unsigned int,
-                       unsigned long);
-
-/* Set a field which starts at START and is LEN bits long.  DATA and
-   TOTAL_LEN are the thing we are extracting it from, in byteorder ORDER.  */
-static void
-put_field (unsigned char *data, enum floatformat_byteorders order,
-           unsigned int total_len, unsigned int start, unsigned int len,
-           unsigned long stuff_to_put)
-{
-  unsigned int cur_byte;
-  int cur_bitshift;
-
-  /* Start at the least significant part of the field.  */
-  cur_byte = (start + len) / FLOATFORMAT_CHAR_BIT;
-  if (order == floatformat_little)
-    cur_byte = (total_len / FLOATFORMAT_CHAR_BIT) - cur_byte - 1;
-  cur_bitshift =
-    ((start + len) % FLOATFORMAT_CHAR_BIT) - FLOATFORMAT_CHAR_BIT;
-  *(data + cur_byte) &=
-    ~(((1 << ((start + len) % FLOATFORMAT_CHAR_BIT)) - 1) << (-cur_bitshift));
-  *(data + cur_byte) |=
-    (stuff_to_put & ((1 << FLOATFORMAT_CHAR_BIT) - 1)) << (-cur_bitshift);
-  cur_bitshift += FLOATFORMAT_CHAR_BIT;
-  if (order == floatformat_little)
-    ++cur_byte;
-  else
-    --cur_byte;
-
-  /* Move towards the most significant part of the field.  */
-  while ((unsigned int) cur_bitshift < len)
-    {
-      if (len - cur_bitshift < FLOATFORMAT_CHAR_BIT)
-	{
-	  /* This is the last byte.  */
-	  *(data + cur_byte) &=
-	    ~((1 << (len - cur_bitshift)) - 1);
-	  *(data + cur_byte) |= (stuff_to_put >> cur_bitshift);
-	}
-      else
-	*(data + cur_byte) = ((stuff_to_put >> cur_bitshift)
-			      & ((1 << FLOATFORMAT_CHAR_BIT) - 1));
-      cur_bitshift += FLOATFORMAT_CHAR_BIT;
-      if (order == floatformat_little)
-	++cur_byte;
-      else
-	--cur_byte;
-    }
-}
-
-/* The converse: convert the double *FROM to an extended float
-   and store where TO points.  Neither FROM nor TO have any alignment
-   restrictions.  */
-
-void
-floatformat_from_double (const struct floatformat *fmt,
-                         const double *from, void *to)
-{
-  double dfrom;
-  int exponent;
-  double mant;
-  unsigned int mant_bits, mant_off;
-  int mant_bits_left;
-  unsigned char *uto = (unsigned char *) to;
-
-  dfrom = *from;
-  memset (uto, 0, fmt->totalsize / FLOATFORMAT_CHAR_BIT);
-
-  /* If negative, set the sign bit.  */
-  if (dfrom < 0)
-    {
-      put_field (uto, fmt->byteorder, fmt->totalsize, fmt->sign_start, 1, 1);
-      dfrom = -dfrom;
-    }
-
-  if (dfrom == 0)
-    {
-      /* 0.0.  */
-      return;
-    }
-
-  if (dfrom != dfrom)
-    {
-      /* NaN.  */
-      put_field (uto, fmt->byteorder, fmt->totalsize, fmt->exp_start,
-		 fmt->exp_len, fmt->exp_nan);
-      /* Be sure it's not infinity, but NaN value is irrelevant.  */
-      put_field (uto, fmt->byteorder, fmt->totalsize, fmt->man_start,
-		 32, 1);
-      return;
-    }
-
-  if (dfrom + dfrom == dfrom)
-    {
-      /* This can only happen for an infinite value (or zero, which we
-	 already handled above).  */
-      put_field (uto, fmt->byteorder, fmt->totalsize, fmt->exp_start,
-		 fmt->exp_len, fmt->exp_nan);
-      return;
-    }
-
-  mant = frexp (dfrom, &exponent);
-  if (exponent + fmt->exp_bias - 1 > 0)
-    put_field (uto, fmt->byteorder, fmt->totalsize, fmt->exp_start,
-	       fmt->exp_len, exponent + fmt->exp_bias - 1);
-  else
-    {
-      /* Handle a denormalized number.  FIXME: What should we do for
-	 non-IEEE formats?  */
-      put_field (uto, fmt->byteorder, fmt->totalsize, fmt->exp_start,
-		 fmt->exp_len, 0);
-      mant = ldexp (mant, exponent + fmt->exp_bias - 1);
-    }
-
-  mant_bits_left = fmt->man_len;
-  mant_off = fmt->man_start;
-  while (mant_bits_left > 0)
-    {
-      unsigned long mant_long;
-      mant_bits = mant_bits_left < 32 ? mant_bits_left : 32;
-
-      mant *= 4294967296.0;
-      mant_long = (unsigned long)mant;
-      mant -= mant_long;
-
-      /* If the integer bit is implicit, and we are not creating a
-	 denormalized number, then we need to discard it.  */
-      if ((unsigned int) mant_bits_left == fmt->man_len
-	  && fmt->intbit == floatformat_intbit_no
-	  && exponent + fmt->exp_bias - 1 > 0)
-	{
-	  mant_long &= 0x7fffffff;
-	  mant_bits -= 1;
-	}
-      else if (mant_bits < 32)
-	{
-	  /* The bits we want are in the most significant MANT_BITS bits of
-	     mant_long.  Move them to the least significant.  */
-	  mant_long >>= 32 - mant_bits;
-	}
-
-      put_field (uto, fmt->byteorder, fmt->totalsize,
-		 mant_off, mant_bits, mant_long);
-      mant_off += mant_bits;
-      mant_bits_left -= mant_bits;
-    }
-}
-
-/* Return non-zero iff the data at FROM is a valid number in format FMT.  */
-
-int
-floatformat_is_valid (const struct floatformat *fmt, const void *from)
-{
-  return fmt->is_valid (fmt, from);
-}
-
-
-#ifdef IEEE_DEBUG
-
-#include <stdio.h>
-
-/* This is to be run on a host which uses IEEE floating point.  */
-
-void
-ieee_test (double n)
-{
-  double result;
-
-  floatformat_to_double (&floatformat_ieee_double_little, &n, &result);
-  if ((n != result && (! isnan (n) || ! isnan (result)))
-      || (n < 0 && result >= 0)
-      || (n >= 0 && result < 0))
-    printf ("Differ(to): %.20g -> %.20g\n", n, result);
-
-  floatformat_from_double (&floatformat_ieee_double_little, &n, &result);
-  if ((n != result && (! isnan (n) || ! isnan (result)))
-      || (n < 0 && result >= 0)
-      || (n >= 0 && result < 0))
-    printf ("Differ(from): %.20g -> %.20g\n", n, result);
-
-#if 0
-  {
-    char exten[16];
-
-    floatformat_from_double (&floatformat_m68881_ext, &n, exten);
-    floatformat_to_double (&floatformat_m68881_ext, exten, &result);
-    if (n != result)
-      printf ("Differ(to+from): %.20g -> %.20g\n", n, result);
-  }
-#endif
-
-#if IEEE_DEBUG > 1
-  /* This is to be run on a host which uses 68881 format.  */
-  {
-    long double ex = *(long double *)exten;
-    if (ex != n)
-      printf ("Differ(from vs. extended): %.20g\n", n);
-  }
-#endif
-}
-
-int
-main (void)
-{
-  ieee_test (0.0);
-  ieee_test (0.5);
-  ieee_test (256.0);
-  ieee_test (0.12345);
-  ieee_test (234235.78907234);
-  ieee_test (-512.0);
-  ieee_test (-0.004321);
-  ieee_test (1.2E-70);
-  ieee_test (1.2E-316);
-  ieee_test (4.9406564584124654E-324);
-  ieee_test (- 4.9406564584124654E-324);
-  ieee_test (- 0.0);
-  ieee_test (- INFINITY);
-  ieee_test (- NAN);
-  ieee_test (INFINITY);
-  ieee_test (NAN);
-  return 0;
-}
-#endif
diff --git a/libiberty/fnmatch.c b/libiberty/fnmatch.c
deleted file mode 100644
index fc897be..0000000
--- a/libiberty/fnmatch.c
+++ /dev/null
@@ -1,220 +0,0 @@
-/* Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
-
-NOTE: This source is derived from an old version taken from the GNU C
-Library (glibc).
-
-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, 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, 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#ifdef HAVE_CONFIG_H
-#if defined (CONFIG_BROKETS)
-/* We use <config.h> instead of "config.h" so that a compilation
-   using -I. -I$srcdir will use ./config.h rather than $srcdir/config.h
-   (which it would do because it found this file in $srcdir).  */
-#include <config.h>
-#else
-#include "config.h"
-#endif
-#endif
-
-
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE
-#endif
-
-/* This code to undef const added in libiberty.  */
-#ifndef __STDC__
-/* This is a separate conditional since some stdc systems
-   reject `defined (const)'.  */
-#ifndef const
-#define const
-#endif
-#endif
-
-#include <errno.h>
-#include <fnmatch.h>
-#include <safe-ctype.h>
-
-/* Comment out all this code if we are using the GNU C Library, and are not
-   actually compiling the library itself.  This code is part of the GNU C
-   Library, but also included in many other GNU distributions.  Compiling
-   and linking in this code is a waste when using the GNU C library
-   (especially if it is a shared library).  Rather than having every GNU
-   program understand `configure --with-gnu-libc' and omit the object files,
-   it is simpler to just do this in the source for each such file.  */
-
-#if defined (_LIBC) || !defined (__GNU_LIBRARY__)
-
-
-#if !defined(__GNU_LIBRARY__) && !defined(STDC_HEADERS)
-extern int errno;
-#endif
-
-/* Match STRING against the filename pattern PATTERN, returning zero if
-   it matches, nonzero if not.  */
-int
-fnmatch (const char *pattern, const char *string, int flags)
-{
-  register const char *p = pattern, *n = string;
-  register unsigned char c;
-
-#define FOLD(c)	((flags & FNM_CASEFOLD) ? TOLOWER (c) : (c))
-
-  while ((c = *p++) != '\0')
-    {
-      c = FOLD (c);
-
-      switch (c)
-	{
-	case '?':
-	  if (*n == '\0')
-	    return FNM_NOMATCH;
-	  else if ((flags & FNM_FILE_NAME) && *n == '/')
-	    return FNM_NOMATCH;
-	  else if ((flags & FNM_PERIOD) && *n == '.' &&
-		   (n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/')))
-	    return FNM_NOMATCH;
-	  break;
-
-	case '\\':
-	  if (!(flags & FNM_NOESCAPE))
-	    {
-	      c = *p++;
-	      c = FOLD (c);
-	    }
-	  if (FOLD ((unsigned char)*n) != c)
-	    return FNM_NOMATCH;
-	  break;
-
-	case '*':
-	  if ((flags & FNM_PERIOD) && *n == '.' &&
-	      (n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/')))
-	    return FNM_NOMATCH;
-
-	  for (c = *p++; c == '?' || c == '*'; c = *p++, ++n)
-	    if (((flags & FNM_FILE_NAME) && *n == '/') ||
-		(c == '?' && *n == '\0'))
-	      return FNM_NOMATCH;
-
-	  if (c == '\0')
-	    return 0;
-
-	  {
-	    unsigned char c1 = (!(flags & FNM_NOESCAPE) && c == '\\') ? *p : c;
-	    c1 = FOLD (c1);
-	    for (--p; *n != '\0'; ++n)
-	      if ((c == '[' || FOLD ((unsigned char)*n) == c1) &&
-		  fnmatch (p, n, flags & ~FNM_PERIOD) == 0)
-		return 0;
-	    return FNM_NOMATCH;
-	  }
-
-	case '[':
-	  {
-	    /* Nonzero if the sense of the character class is inverted.  */
-	    register int negate;
-
-	    if (*n == '\0')
-	      return FNM_NOMATCH;
-
-	    if ((flags & FNM_PERIOD) && *n == '.' &&
-		(n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/')))
-	      return FNM_NOMATCH;
-
-	    negate = (*p == '!' || *p == '^');
-	    if (negate)
-	      ++p;
-
-	    c = *p++;
-	    for (;;)
-	      {
-		register unsigned char cstart = c, cend = c;
-
-		if (!(flags & FNM_NOESCAPE) && c == '\\')
-		  cstart = cend = *p++;
-
-		cstart = cend = FOLD (cstart);
-
-		if (c == '\0')
-		  /* [ (unterminated) loses.  */
-		  return FNM_NOMATCH;
-
-		c = *p++;
-		c = FOLD (c);
-
-		if ((flags & FNM_FILE_NAME) && c == '/')
-		  /* [/] can never match.  */
-		  return FNM_NOMATCH;
-
-		if (c == '-' && *p != ']')
-		  {
-		    cend = *p++;
-		    if (!(flags & FNM_NOESCAPE) && cend == '\\')
-		      cend = *p++;
-		    if (cend == '\0')
-		      return FNM_NOMATCH;
-		    cend = FOLD (cend);
-
-		    c = *p++;
-		  }
-
-		if (FOLD ((unsigned char)*n) >= cstart
-		    && FOLD ((unsigned char)*n) <= cend)
-		  goto matched;
-
-		if (c == ']')
-		  break;
-	      }
-	    if (!negate)
-	      return FNM_NOMATCH;
-	    break;
-
-	  matched:;
-	    /* Skip the rest of the [...] that already matched.  */
-	    while (c != ']')
-	      {
-		if (c == '\0')
-		  /* [... (unterminated) loses.  */
-		  return FNM_NOMATCH;
-
-		c = *p++;
-		if (!(flags & FNM_NOESCAPE) && c == '\\')
-		  /* XXX 1003.2d11 is unclear if this is right.  */
-		  ++p;
-	      }
-	    if (negate)
-	      return FNM_NOMATCH;
-	  }
-	  break;
-
-	default:
-	  if (c != FOLD ((unsigned char)*n))
-	    return FNM_NOMATCH;
-	}
-
-      ++n;
-    }
-
-  if (*n == '\0')
-    return 0;
-
-  if ((flags & FNM_LEADING_DIR) && *n == '/')
-    /* The FNM_LEADING_DIR flag says that "foo*" matches "foobar/frobozz".  */
-    return 0;
-
-  return FNM_NOMATCH;
-}
-
-#endif	/* _LIBC or not __GNU_LIBRARY__.  */
diff --git a/libiberty/fnmatch.txh b/libiberty/fnmatch.txh
deleted file mode 100644
index 92e11bc..0000000
--- a/libiberty/fnmatch.txh
+++ /dev/null
@@ -1,48 +0,0 @@
-@deftypefn Replacement int fnmatch (const char *@var{pattern}, const char *@var{string}, int @var{flags})
-
-Matches @var{string} against @var{pattern}, returning zero if it
-matches, @code{FNM_NOMATCH} if not.  @var{pattern} may contain the
-wildcards @code{?} to match any one character, @code{*} to match any
-zero or more characters, or a set of alternate characters in square
-brackets, like @samp{[a-gt8]}, which match one character (@code{a}
-through @code{g}, or @code{t}, or @code{8}, in this example) if that one
-character is in the set.  A set may be inverted (i.e., match anything
-except what's in the set) by giving @code{^} or @code{!} as the first
-character in the set.  To include those characters in the set, list them
-as anything other than the first character of the set.  To include a
-dash in the set, list it last in the set.  A backslash character makes
-the following character not special, so for example you could match
-against a literal asterisk with @samp{\*}.  To match a literal
-backslash, use @samp{\\}.
-
-@code{flags} controls various aspects of the matching process, and is a
-boolean OR of zero or more of the following values (defined in
-@code{<fnmatch.h>}):
-
-@table @code
-
-@item FNM_PATHNAME
-@itemx FNM_FILE_NAME
-@var{string} is assumed to be a path name.  No wildcard will ever match
-@code{/}.
-
-@item FNM_NOESCAPE
-Do not interpret backslashes as quoting the following special character.
-
-@item FNM_PERIOD
-A leading period (at the beginning of @var{string}, or if
-@code{FNM_PATHNAME} after a slash) is not matched by @code{*} or
-@code{?} but must be matched explicitly.
-
-@item FNM_LEADING_DIR
-Means that @var{string} also matches @var{pattern} if some initial part
-of @var{string} matches, and is followed by @code{/} and zero or more
-characters.  For example, @samp{foo*} would match either @samp{foobar}
-or @samp{foobar/grill}.
-
-@item FNM_CASEFOLD
-Ignores case when performing the comparison.
-
-@end table
-
-@end deftypefn
diff --git a/libiberty/fopen_unlocked.c b/libiberty/fopen_unlocked.c
deleted file mode 100644
index 3c3cefe..0000000
--- a/libiberty/fopen_unlocked.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/* Implement fopen_unlocked and related functions.
-   Copyright (C) 2005 Free Software Foundation, Inc.
-   Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-/*
-
-@deftypefn Extension void unlock_stream (FILE * @var{stream})
-
-If the OS supports it, ensure that the supplied stream is setup to
-avoid any multi-threaded locking.  Otherwise leave the @code{FILE}
-pointer unchanged.  If the @var{stream} is @code{NULL} do nothing.
-
-@end deftypefn
-
-@deftypefn Extension void unlock_std_streams (void)
-
-If the OS supports it, ensure that the standard I/O streams,
-@code{stdin}, @code{stdout} and @code{stderr} are setup to avoid any
-multi-threaded locking.  Otherwise do nothing.
-
-@end deftypefn
-
-@deftypefn Extension {FILE *} fopen_unlocked (const char *@var{path}, const char * @var{mode})
-
-Opens and returns a @code{FILE} pointer via @code{fopen}.  If the
-operating system supports it, ensure that the stream is setup to avoid
-any multi-threaded locking.  Otherwise return the @code{FILE} pointer
-unchanged.
-
-@end deftypefn
-
-@deftypefn Extension {FILE *} fdopen_unlocked (int @var{fildes}, const char * @var{mode})
-
-Opens and returns a @code{FILE} pointer via @code{fdopen}.  If the
-operating system supports it, ensure that the stream is setup to avoid
-any multi-threaded locking.  Otherwise return the @code{FILE} pointer
-unchanged.
-
-@end deftypefn
-
-@deftypefn Extension {FILE *} freopen_unlocked (const char * @var{path}, const char * @var{mode}, FILE * @var{stream})
-
-Opens and returns a @code{FILE} pointer via @code{freopen}.  If the
-operating system supports it, ensure that the stream is setup to avoid
-any multi-threaded locking.  Otherwise return the @code{FILE} pointer
-unchanged.
-
-@end deftypefn
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <stdio.h>
-#ifdef HAVE_STDIO_EXT_H
-#include <stdio_ext.h>
-#endif
-
-#include "libiberty.h"
-
-/* This is an inline helper function to consolidate attempts to unlock
-   a stream.  */
-
-static inline void
-unlock_1 (FILE *const fp ATTRIBUTE_UNUSED)
-{
-#if defined(HAVE___FSETLOCKING) && defined(FSETLOCKING_BYCALLER)
-  if (fp)
-    __fsetlocking (fp, FSETLOCKING_BYCALLER);
-#endif
-}
-
-void
-unlock_stream (FILE *fp)
-{
-  unlock_1 (fp);
-}
-
-void
-unlock_std_streams (void)
-{
-  unlock_1 (stdin);
-  unlock_1 (stdout);
-  unlock_1 (stderr);
-}
-
-FILE *
-fopen_unlocked (const char *path, const char *mode)		
-{
-  FILE *const fp = fopen (path, mode);
-  unlock_1 (fp);
-  return fp;
-}
-
-FILE *
-fdopen_unlocked (int fildes, const char *mode)
-{
-  FILE *const fp = fdopen (fildes, mode);
-  unlock_1 (fp);
-  return fp;
-}
-
-FILE *
-freopen_unlocked (const char *path, const char *mode, FILE *stream)
-{
-  FILE *const fp = freopen (path, mode, stream);
-  unlock_1 (fp);
-  return fp;
-}
diff --git a/libiberty/functions.texi b/libiberty/functions.texi
deleted file mode 100644
index 68c0648..0000000
--- a/libiberty/functions.texi
+++ /dev/null
@@ -1,1534 +0,0 @@
-@c Automatically generated from *.c and others (the comments before
-@c each entry tell you which file and where in that file).  DO NOT EDIT!
-@c Edit the *.c files, configure with --enable-maintainer-mode,
-@c and let gather-docs build you a new copy.
-
-@c safe-ctype.c:25
-@defvr Extension HOST_CHARSET
-This macro indicates the basic character set and encoding used by the
-host: more precisely, the encoding used for character constants in
-preprocessor @samp{#if} statements (the C "execution character set").
-It is defined by @file{safe-ctype.h}, and will be an integer constant
-with one of the following values:
-
-@ftable @code
-@item HOST_CHARSET_UNKNOWN
-The host character set is unknown - that is, not one of the next two
-possibilities.
-
-@item HOST_CHARSET_ASCII
-The host character set is ASCII.
-
-@item HOST_CHARSET_EBCDIC
-The host character set is some variant of EBCDIC.  (Only one of the
-nineteen EBCDIC varying characters is tested; exercise caution.)
-@end ftable
-@end defvr
-
-@c alloca.c:26
-@deftypefn Replacement void* alloca (size_t @var{size})
-
-This function allocates memory which will be automatically reclaimed
-after the procedure exits.  The @libib{} implementation does not free
-the memory immediately but will do so eventually during subsequent
-calls to this function.  Memory is allocated using @code{xmalloc} under
-normal circumstances.
-
-The header file @file{alloca-conf.h} can be used in conjunction with the
-GNU Autoconf test @code{AC_FUNC_ALLOCA} to test for and properly make
-available this function.  The @code{AC_FUNC_ALLOCA} test requires that
-client code use a block of preprocessor code to be safe (see the Autoconf
-manual for more); this header incorporates that logic and more, including
-the possibility of a GCC built-in function.
-
-@end deftypefn
-
-@c asprintf.c:32
-@deftypefn Extension int asprintf (char **@var{resptr}, const char *@var{format}, ...)
-
-Like @code{sprintf}, but instead of passing a pointer to a buffer, you
-pass a pointer to a pointer.  This function will compute the size of
-the buffer needed, allocate memory with @code{malloc}, and store a
-pointer to the allocated memory in @code{*@var{resptr}}.  The value
-returned is the same as @code{sprintf} would return.  If memory could
-not be allocated, minus one is returned and @code{NULL} is stored in
-@code{*@var{resptr}}.
-
-@end deftypefn
-
-@c atexit.c:6
-@deftypefn Supplemental int atexit (void (*@var{f})())
-
-Causes function @var{f} to be called at exit.  Returns 0.
-
-@end deftypefn
-
-@c basename.c:6
-@deftypefn Supplemental char* basename (const char *@var{name})
-
-Returns a pointer to the last component of pathname @var{name}.
-Behavior is undefined if the pathname ends in a directory separator.
-
-@end deftypefn
-
-@c bcmp.c:6
-@deftypefn Supplemental int bcmp (char *@var{x}, char *@var{y}, int @var{count})
-
-Compares the first @var{count} bytes of two areas of memory.  Returns
-zero if they are the same, nonzero otherwise.  Returns zero if
-@var{count} is zero.  A nonzero result only indicates a difference,
-it does not indicate any sorting order (say, by having a positive
-result mean @var{x} sorts before @var{y}).
-
-@end deftypefn
-
-@c bcopy.c:3
-@deftypefn Supplemental void bcopy (char *@var{in}, char *@var{out}, int @var{length})
-
-Copies @var{length} bytes from memory region @var{in} to region
-@var{out}.  The use of @code{bcopy} is deprecated in new programs.
-
-@end deftypefn
-
-@c bsearch.c:33
-@deftypefn Supplemental void* bsearch (const void *@var{key}, const void *@var{base}, size_t @var{nmemb}, size_t @var{size}, int (*@var{compar})(const void *, const void *))
-
-Performs a search over an array of @var{nmemb} elements pointed to by
-@var{base} for a member that matches the object pointed to by @var{key}.
-The size of each member is specified by @var{size}.  The array contents
-should be sorted in ascending order according to the @var{compar}
-comparison function.  This routine should take two arguments pointing to
-the @var{key} and to an array member, in that order, and should return an
-integer less than, equal to, or greater than zero if the @var{key} object
-is respectively less than, matching, or greater than the array member.
-
-@end deftypefn
-
-@c argv.c:124
-@deftypefn Extension char** buildargv (char *@var{sp})
-
-Given a pointer to a string, parse the string extracting fields
-separated by whitespace and optionally enclosed within either single
-or double quotes (which are stripped off), and build a vector of
-pointers to copies of the string for each field.  The input string
-remains unchanged.  The last element of the vector is followed by a
-@code{NULL} element.
-
-All of the memory for the pointer array and copies of the string
-is obtained from @code{malloc}.  All of the memory can be returned to the
-system with the single function call @code{freeargv}, which takes the
-returned result of @code{buildargv}, as it's argument.
-
-Returns a pointer to the argument vector if successful.  Returns
-@code{NULL} if @var{sp} is @code{NULL} or if there is insufficient
-memory to complete building the argument vector.
-
-If the input is a null string (as opposed to a @code{NULL} pointer),
-then buildarg returns an argument vector that has one arg, a null
-string.
-
-@end deftypefn
-
-@c bzero.c:6
-@deftypefn Supplemental void bzero (char *@var{mem}, int @var{count})
-
-Zeros @var{count} bytes starting at @var{mem}.  Use of this function
-is deprecated in favor of @code{memset}.
-
-@end deftypefn
-
-@c calloc.c:6
-@deftypefn Supplemental void* calloc (size_t @var{nelem}, size_t @var{elsize})
-
-Uses @code{malloc} to allocate storage for @var{nelem} objects of
-@var{elsize} bytes each, then zeros the memory.
-
-@end deftypefn
-
-@c choose-temp.c:42
-@deftypefn Extension char* choose_temp_base (void)
-
-Return a prefix for temporary file names or @code{NULL} if unable to
-find one.  The current directory is chosen if all else fails so the
-program is exited if a temporary directory can't be found (@code{mktemp}
-fails).  The buffer for the result is obtained with @code{xmalloc}.
-
-This function is provided for backwards compatability only.  Its use is
-not recommended.
-
-@end deftypefn
-
-@c make-temp-file.c:87
-@deftypefn Replacement char* choose_tmpdir ()
-
-Returns a pointer to a directory path suitable for creating temporary
-files in.
-
-@end deftypefn
-
-@c clock.c:27
-@deftypefn Supplemental long clock (void)
-
-Returns an approximation of the CPU time used by the process as a
-@code{clock_t}; divide this number by @samp{CLOCKS_PER_SEC} to get the
-number of seconds used.
-
-@end deftypefn
-
-@c concat.c:24
-@deftypefn Extension char* concat (const char *@var{s1}, const char *@var{s2}, @dots{}, @code{NULL})
-
-Concatenate zero or more of strings and return the result in freshly
-@code{xmalloc}ed memory.  Returns @code{NULL} if insufficient memory is
-available.  The argument list is terminated by the first @code{NULL}
-pointer encountered.  Pointers to empty strings are ignored.
-
-@end deftypefn
-
-@c argv.c:52
-@deftypefn Extension char** dupargv (char **@var{vector})
-
-Duplicate an argument vector.  Simply scans through @var{vector},
-duplicating each argument until the terminating @code{NULL} is found.
-Returns a pointer to the argument vector if successful.  Returns
-@code{NULL} if there is insufficient memory to complete building the
-argument vector.
-
-@end deftypefn
-
-@c strerror.c:567
-@deftypefn Extension int errno_max (void)
-
-Returns the maximum @code{errno} value for which a corresponding
-symbolic name or message is available.  Note that in the case where we
-use the @code{sys_errlist} supplied by the system, it is possible for
-there to be more symbolic names than messages, or vice versa.  In
-fact, the manual page for @code{perror(3C)} explicitly warns that one
-should check the size of the table (@code{sys_nerr}) before indexing
-it, since new error codes may be added to the system before they are
-added to the table.  Thus @code{sys_nerr} might be smaller than value
-implied by the largest @code{errno} value defined in @code{<errno.h>}.
-
-We return the maximum value that can be used to obtain a meaningful
-symbolic name or message.
-
-@end deftypefn
-
-@c argv.c:293
-@deftypefn Extension void expandargv (int *@var{argcp}, char ***@var{argvp})
-
-The @var{argcp} and @code{argvp} arguments are pointers to the usual
-@code{argc} and @code{argv} arguments to @code{main}.  This function
-looks for arguments that begin with the character @samp{@@}.  Any such
-arguments are interpreted as ``response files''.  The contents of the
-response file are interpreted as additional command line options.  In
-particular, the file is separated into whitespace-separated strings;
-each such string is taken as a command-line option.  The new options
-are inserted in place of the option naming the response file, and
-@code{*argcp} and @code{*argvp} will be updated.  If the value of
-@code{*argvp} is modified by this function, then the new value has
-been dynamically allocated and can be deallocated by the caller with
-@code{freeargv}.  However, most callers will simply call
-@code{expandargv} near the beginning of @code{main} and allow the
-operating system to free the memory when the program exits.
-
-@end deftypefn
-
-@c fdmatch.c:23
-@deftypefn Extension int fdmatch (int @var{fd1}, int @var{fd2})
-
-Check to see if two open file descriptors refer to the same file.
-This is useful, for example, when we have an open file descriptor for
-an unnamed file, and the name of a file that we believe to correspond
-to that fd.  This can happen when we are exec'd with an already open
-file (@code{stdout} for example) or from the SVR4 @file{/proc} calls
-that return open file descriptors for mapped address spaces.  All we
-have to do is open the file by name and check the two file descriptors
-for a match, which is done by comparing major and minor device numbers
-and inode numbers.
-
-@end deftypefn
-
-@c fopen_unlocked.c:48
-@deftypefn Extension {FILE *} fdopen_unlocked (int @var{fildes}, const char * @var{mode})
-
-Opens and returns a @code{FILE} pointer via @code{fdopen}.  If the
-operating system supports it, ensure that the stream is setup to avoid
-any multi-threaded locking.  Otherwise return the @code{FILE} pointer
-unchanged.
-
-@end deftypefn
-
-@c ffs.c:3
-@deftypefn Supplemental int ffs (int @var{valu})
-
-Find the first (least significant) bit set in @var{valu}.  Bits are
-numbered from right to left, starting with bit 1 (corresponding to the
-value 1).  If @var{valu} is zero, zero is returned.
-
-@end deftypefn
-
-@c fnmatch.txh:1
-@deftypefn Replacement int fnmatch (const char *@var{pattern}, const char *@var{string}, int @var{flags})
-
-Matches @var{string} against @var{pattern}, returning zero if it
-matches, @code{FNM_NOMATCH} if not.  @var{pattern} may contain the
-wildcards @code{?} to match any one character, @code{*} to match any
-zero or more characters, or a set of alternate characters in square
-brackets, like @samp{[a-gt8]}, which match one character (@code{a}
-through @code{g}, or @code{t}, or @code{8}, in this example) if that one
-character is in the set.  A set may be inverted (i.e., match anything
-except what's in the set) by giving @code{^} or @code{!} as the first
-character in the set.  To include those characters in the set, list them
-as anything other than the first character of the set.  To include a
-dash in the set, list it last in the set.  A backslash character makes
-the following character not special, so for example you could match
-against a literal asterisk with @samp{\*}.  To match a literal
-backslash, use @samp{\\}.
-
-@code{flags} controls various aspects of the matching process, and is a
-boolean OR of zero or more of the following values (defined in
-@code{<fnmatch.h>}):
-
-@table @code
-
-@item FNM_PATHNAME
-@itemx FNM_FILE_NAME
-@var{string} is assumed to be a path name.  No wildcard will ever match
-@code{/}.
-
-@item FNM_NOESCAPE
-Do not interpret backslashes as quoting the following special character.
-
-@item FNM_PERIOD
-A leading period (at the beginning of @var{string}, or if
-@code{FNM_PATHNAME} after a slash) is not matched by @code{*} or
-@code{?} but must be matched explicitly.
-
-@item FNM_LEADING_DIR
-Means that @var{string} also matches @var{pattern} if some initial part
-of @var{string} matches, and is followed by @code{/} and zero or more
-characters.  For example, @samp{foo*} would match either @samp{foobar}
-or @samp{foobar/grill}.
-
-@item FNM_CASEFOLD
-Ignores case when performing the comparison.
-
-@end table
-
-@end deftypefn
-
-@c fopen_unlocked.c:39
-@deftypefn Extension {FILE *} fopen_unlocked (const char *@var{path}, const char * @var{mode})
-
-Opens and returns a @code{FILE} pointer via @code{fopen}.  If the
-operating system supports it, ensure that the stream is setup to avoid
-any multi-threaded locking.  Otherwise return the @code{FILE} pointer
-unchanged.
-
-@end deftypefn
-
-@c argv.c:97
-@deftypefn Extension void freeargv (char **@var{vector})
-
-Free an argument vector that was built using @code{buildargv}.  Simply
-scans through @var{vector}, freeing the memory for each argument until
-the terminating @code{NULL} is found, and then frees @var{vector}
-itself.
-
-@end deftypefn
-
-@c fopen_unlocked.c:57
-@deftypefn Extension {FILE *} freopen_unlocked (const char * @var{path}, const char * @var{mode}, FILE * @var{stream})
-
-Opens and returns a @code{FILE} pointer via @code{freopen}.  If the
-operating system supports it, ensure that the stream is setup to avoid
-any multi-threaded locking.  Otherwise return the @code{FILE} pointer
-unchanged.
-
-@end deftypefn
-
-@c getruntime.c:82
-@deftypefn Replacement long get_run_time (void)
-
-Returns the time used so far, in microseconds.  If possible, this is
-the time used by this process, else it is the elapsed time since the
-process started.
-
-@end deftypefn
-
-@c getcwd.c:6
-@deftypefn Supplemental char* getcwd (char *@var{pathname}, int @var{len})
-
-Copy the absolute pathname for the current working directory into
-@var{pathname}, which is assumed to point to a buffer of at least
-@var{len} bytes, and return a pointer to the buffer.  If the current
-directory's path doesn't fit in @var{len} characters, the result is
-@code{NULL} and @code{errno} is set.  If @var{pathname} is a null pointer,
-@code{getcwd} will obtain @var{len} bytes of space using
-@code{malloc}.
-
-@end deftypefn
-
-@c getpagesize.c:5
-@deftypefn Supplemental int getpagesize (void)
-
-Returns the number of bytes in a page of memory.  This is the
-granularity of many of the system memory management routines.  No
-guarantee is made as to whether or not it is the same as the basic
-memory management hardware page size.
-
-@end deftypefn
-
-@c getpwd.c:5
-@deftypefn Supplemental char* getpwd (void)
-
-Returns the current working directory.  This implementation caches the
-result on the assumption that the process will not call @code{chdir}
-between calls to @code{getpwd}.
-
-@end deftypefn
-
-@c gettimeofday.c:12
-@deftypefn Supplemental int gettimeofday (struct timeval *@var{tp}, void *@var{tz})
-
-Writes the current time to @var{tp}.  This implementation requires
-that @var{tz} be NULL.  Returns 0 on success, -1 on failure.
-
-@end deftypefn
-
-@c hex.c:33
-@deftypefn Extension void hex_init (void)
-
-Initializes the array mapping the current character set to
-corresponding hex values.  This function must be called before any
-call to @code{hex_p} or @code{hex_value}.  If you fail to call it, a
-default ASCII-based table will normally be used on ASCII systems.
-
-@end deftypefn
-
-@c hex.c:42
-@deftypefn Extension int hex_p (int @var{c})
-
-Evaluates to non-zero if the given character is a valid hex character,
-or zero if it is not.  Note that the value you pass will be cast to
-@code{unsigned char} within the macro.
-
-@end deftypefn
-
-@c hex.c:50
-@deftypefn Extension {unsigned int} hex_value (int @var{c})
-
-Returns the numeric equivalent of the given character when interpreted
-as a hexidecimal digit.  The result is undefined if you pass an
-invalid hex digit.  Note that the value you pass will be cast to
-@code{unsigned char} within the macro.
-
-The @code{hex_value} macro returns @code{unsigned int}, rather than
-signed @code{int}, to make it easier to use in parsing addresses from
-hex dump files: a signed @code{int} would be sign-extended when
-converted to a wider unsigned type --- like @code{bfd_vma}, on some
-systems.
-
-@end deftypefn
-
-@c index.c:5
-@deftypefn Supplemental char* index (char *@var{s}, int @var{c})
-
-Returns a pointer to the first occurrence of the character @var{c} in
-the string @var{s}, or @code{NULL} if not found.  The use of @code{index} is
-deprecated in new programs in favor of @code{strchr}.
-
-@end deftypefn
-
-@c insque.c:6
-@deftypefn Supplemental void insque (struct qelem *@var{elem}, struct qelem *@var{pred})
-@deftypefnx Supplemental void remque (struct qelem *@var{elem})
-
-Routines to manipulate queues built from doubly linked lists.  The
-@code{insque} routine inserts @var{elem} in the queue immediately
-after @var{pred}.  The @code{remque} routine removes @var{elem} from
-its containing queue.  These routines expect to be passed pointers to
-structures which have as their first members a forward pointer and a
-back pointer, like this prototype (although no prototype is provided):
-
-@example
-struct qelem @{
-  struct qelem *q_forw;
-  struct qelem *q_back;
-  char q_data[];
-@};
-@end example
-
-@end deftypefn
-
-@c safe-ctype.c:46
-@deffn  Extension ISALPHA  (@var{c})
-@deffnx Extension ISALNUM  (@var{c})
-@deffnx Extension ISBLANK  (@var{c})
-@deffnx Extension ISCNTRL  (@var{c})
-@deffnx Extension ISDIGIT  (@var{c})
-@deffnx Extension ISGRAPH  (@var{c})
-@deffnx Extension ISLOWER  (@var{c})
-@deffnx Extension ISPRINT  (@var{c})
-@deffnx Extension ISPUNCT  (@var{c})
-@deffnx Extension ISSPACE  (@var{c})
-@deffnx Extension ISUPPER  (@var{c})
-@deffnx Extension ISXDIGIT (@var{c})
-
-These twelve macros are defined by @file{safe-ctype.h}.  Each has the
-same meaning as the corresponding macro (with name in lowercase)
-defined by the standard header @file{ctype.h}.  For example,
-@code{ISALPHA} returns true for alphabetic characters and false for
-others.  However, there are two differences between these macros and
-those provided by @file{ctype.h}:
-
-@itemize @bullet
-@item These macros are guaranteed to have well-defined behavior for all 
-values representable by @code{signed char} and @code{unsigned char}, and
-for @code{EOF}.
-
-@item These macros ignore the current locale; they are true for these
-fixed sets of characters:
-@multitable {@code{XDIGIT}} {yada yada yada yada yada yada yada yada}
-@item @code{ALPHA}  @tab @kbd{A-Za-z}
-@item @code{ALNUM}  @tab @kbd{A-Za-z0-9}
-@item @code{BLANK}  @tab @kbd{space tab}
-@item @code{CNTRL}  @tab @code{!PRINT}
-@item @code{DIGIT}  @tab @kbd{0-9}
-@item @code{GRAPH}  @tab @code{ALNUM || PUNCT}
-@item @code{LOWER}  @tab @kbd{a-z}
-@item @code{PRINT}  @tab @code{GRAPH ||} @kbd{space}
-@item @code{PUNCT}  @tab @kbd{`~!@@#$%^&*()_-=+[@{]@}\|;:'",<.>/?}
-@item @code{SPACE}  @tab @kbd{space tab \n \r \f \v}
-@item @code{UPPER}  @tab @kbd{A-Z}
-@item @code{XDIGIT} @tab @kbd{0-9A-Fa-f}
-@end multitable
-
-Note that, if the host character set is ASCII or a superset thereof,
-all these macros will return false for all values of @code{char} outside
-the range of 7-bit ASCII.  In particular, both ISPRINT and ISCNTRL return
-false for characters with numeric values from 128 to 255.
-@end itemize
-@end deffn
-
-@c safe-ctype.c:95
-@deffn  Extension ISIDNUM         (@var{c})
-@deffnx Extension ISIDST          (@var{c})
-@deffnx Extension IS_VSPACE       (@var{c})
-@deffnx Extension IS_NVSPACE      (@var{c})
-@deffnx Extension IS_SPACE_OR_NUL (@var{c})
-@deffnx Extension IS_ISOBASIC     (@var{c})
-These six macros are defined by @file{safe-ctype.h} and provide
-additional character classes which are useful when doing lexical
-analysis of C or similar languages.  They are true for the following
-sets of characters:
-
-@multitable {@code{SPACE_OR_NUL}} {yada yada yada yada yada yada yada yada}
-@item @code{IDNUM}        @tab @kbd{A-Za-z0-9_}
-@item @code{IDST}         @tab @kbd{A-Za-z_}
-@item @code{VSPACE}       @tab @kbd{\r \n}
-@item @code{NVSPACE}      @tab @kbd{space tab \f \v \0}
-@item @code{SPACE_OR_NUL} @tab @code{VSPACE || NVSPACE}
-@item @code{ISOBASIC}     @tab @code{VSPACE || NVSPACE || PRINT}
-@end multitable
-@end deffn
-
-@c lbasename.c:23
-@deftypefn Replacement {const char*} lbasename (const char *@var{name})
-
-Given a pointer to a string containing a typical pathname
-(@samp{/usr/src/cmd/ls/ls.c} for example), returns a pointer to the
-last component of the pathname (@samp{ls.c} in this case).  The
-returned pointer is guaranteed to lie within the original
-string.  This latter fact is not true of many vendor C
-libraries, which return special strings or modify the passed
-strings for particular input.
-
-In particular, the empty string returns the same empty string,
-and a path ending in @code{/} returns the empty string after it.
-
-@end deftypefn
-
-@c lrealpath.c:25
-@deftypefn Replacement {const char*} lrealpath (const char *@var{name})
-
-Given a pointer to a string containing a pathname, returns a canonical
-version of the filename.  Symlinks will be resolved, and ``.'' and ``..''
-components will be simplified.  The returned value will be allocated using
-@code{malloc}, or @code{NULL} will be returned on a memory allocation error.
-
-@end deftypefn
-
-@c make-relative-prefix.c:24
-@deftypefn Extension {const char*} make_relative_prefix (const char *@var{progname}, const char *@var{bin_prefix}, const char *@var{prefix})
-
-Given three paths @var{progname}, @var{bin_prefix}, @var{prefix},
-return the path that is in the same position relative to
-@var{progname}'s directory as @var{prefix} is relative to
-@var{bin_prefix}.  That is, a string starting with the directory
-portion of @var{progname}, followed by a relative pathname of the
-difference between @var{bin_prefix} and @var{prefix}.
-
-If @var{progname} does not contain any directory separators,
-@code{make_relative_prefix} will search @env{PATH} to find a program
-named @var{progname}.  Also, if @var{progname} is a symbolic link,
-the symbolic link will be resolved.
-
-For example, if @var{bin_prefix} is @code{/alpha/beta/gamma/gcc/delta},
-@var{prefix} is @code{/alpha/beta/gamma/omega/}, and @var{progname} is
-@code{/red/green/blue/gcc}, then this function will return
-@code{/red/green/blue/../../omega/}.
-
-The return value is normally allocated via @code{malloc}.  If no
-relative prefix can be found, return @code{NULL}.
-
-@end deftypefn
-
-@c make-temp-file.c:137
-@deftypefn Replacement char* make_temp_file (const char *@var{suffix})
-
-Return a temporary file name (as a string) or @code{NULL} if unable to
-create one.  @var{suffix} is a suffix to append to the file name.  The
-string is @code{malloc}ed, and the temporary file has been created.
-
-@end deftypefn
-
-@c memchr.c:3
-@deftypefn Supplemental void* memchr (const void *@var{s}, int @var{c}, size_t @var{n})
-
-This function searches memory starting at @code{*@var{s}} for the
-character @var{c}.  The search only ends with the first occurrence of
-@var{c}, or after @var{length} characters; in particular, a null
-character does not terminate the search.  If the character @var{c} is
-found within @var{length} characters of @code{*@var{s}}, a pointer
-to the character is returned.  If @var{c} is not found, then @code{NULL} is
-returned.
-
-@end deftypefn
-
-@c memcmp.c:6
-@deftypefn Supplemental int memcmp (const void *@var{x}, const void *@var{y}, size_t @var{count})
-
-Compares the first @var{count} bytes of two areas of memory.  Returns
-zero if they are the same, a value less than zero if @var{x} is
-lexically less than @var{y}, or a value greater than zero if @var{x}
-is lexically greater than @var{y}.  Note that lexical order is determined
-as if comparing unsigned char arrays.
-
-@end deftypefn
-
-@c memcpy.c:6
-@deftypefn Supplemental void* memcpy (void *@var{out}, const void *@var{in}, size_t @var{length})
-
-Copies @var{length} bytes from memory region @var{in} to region
-@var{out}.  Returns a pointer to @var{out}.
-
-@end deftypefn
-
-@c memmove.c:6
-@deftypefn Supplemental void* memmove (void *@var{from}, const void *@var{to}, size_t @var{count})
-
-Copies @var{count} bytes from memory area @var{from} to memory area
-@var{to}, returning a pointer to @var{to}.
-
-@end deftypefn
-
-@c mempcpy.c:23
-@deftypefn Supplemental void* mempcpy (void *@var{out}, const void *@var{in}, size_t @var{length})
-
-Copies @var{length} bytes from memory region @var{in} to region
-@var{out}.  Returns a pointer to @var{out} + @var{length}.
-
-@end deftypefn
-
-@c memset.c:6
-@deftypefn Supplemental void* memset (void *@var{s}, int @var{c}, size_t @var{count})
-
-Sets the first @var{count} bytes of @var{s} to the constant byte
-@var{c}, returning a pointer to @var{s}.
-
-@end deftypefn
-
-@c mkstemps.c:54
-@deftypefn Replacement int mkstemps (char *@var{pattern}, int @var{suffix_len})
-
-Generate a unique temporary file name from @var{pattern}.
-@var{pattern} has the form:
-
-@example
-   @var{path}/ccXXXXXX@var{suffix}
-@end example
-
-@var{suffix_len} tells us how long @var{suffix} is (it can be zero
-length).  The last six characters of @var{pattern} before @var{suffix}
-must be @samp{XXXXXX}; they are replaced with a string that makes the
-filename unique.  Returns a file descriptor open on the file for
-reading and writing.
-
-@end deftypefn
-
-@c pexecute.txh:244
-@deftypefn Extension void pex_free (struct pex_obj @var{obj})
-
-Clean up and free all data associated with @var{obj}.
-
-@end deftypefn
-
-@c pexecute.txh:219
-@deftypefn Extension int pex_get_status (struct pex_obj *@var{obj}, int @var{count}, int *@var{vector})
-
-Returns the exit status of all programs run using @var{obj}.
-@var{count} is the number of results expected.  The results will be
-placed into @var{vector}.  The results are in the order of the calls
-to @code{pex_run}.  Returns 0 on error, 1 on success.
-
-@end deftypefn
-
-@c pexecute.txh:228
-@deftypefn Extension int pex_get_times (struct pex_obj *@var{obj}, int @var{count}, struct pex_time *@var{vector})
-
-Returns the process execution times of all programs run using
-@var{obj}.  @var{count} is the number of results expected.  The
-results will be placed into @var{vector}.  The results are in the
-order of the calls to @code{pex_run}.  Returns 0 on error, 1 on
-success.
-
-@code{struct pex_time} has the following fields of the type
-@code{unsigned long}: @code{user_seconds},
-@code{user_microseconds}, @code{system_seconds},
-@code{system_microseconds}.  On systems which do not support reporting
-process times, all the fields will be set to @code{0}.
-
-@end deftypefn
-
-@c pexecute.txh:2
-@deftypefn Extension {struct pex_obj *} pex_init (int @var{flags}, const char *@var{pname}, const char *@var{tempbase})
-
-Prepare to execute one or more programs, with standard output of each
-program fed to standard input of the next.  This is a system
-independent interface to execute a pipeline.
-
-@var{flags} is a bitwise combination of the following:
-
-@table @code
-
-@vindex PEX_RECORD_TIMES
-@item PEX_RECORD_TIMES
-Record subprocess times if possible.
-
-@vindex PEX_USE_PIPES
-@item PEX_USE_PIPES
-Use pipes for communication between processes, if possible.
-
-@vindex PEX_SAVE_TEMPS
-@item PEX_SAVE_TEMPS
-Don't delete temporary files used for communication between
-processes.
-
-@end table
-
-@var{pname} is the name of program to be executed, used in error
-messages.  @var{tempbase} is a base name to use for any required
-temporary files; it may be @code{NULL} to use a randomly chosen name.
-
-@end deftypefn
-
-@c pexecute.txh:146
-@deftypefn Extension {FILE *} pex_input_file (struct pex_obj *@var{obj}, int @var{flags}, const char *@var{in_name})
-
-Return a stream for a temporary file to pass to the first program in
-the pipeline as input.
-
-The name of the input file is chosen according to the same rules
-@code{pex_run} uses to choose output file names, based on
-@var{in_name}, @var{obj} and the @code{PEX_SUFFIX} bit in @var{flags}.
-
-Don't call @code{fclose} on the returned stream; the first call to
-@code{pex_run} closes it automatically.
-
-If @var{flags} includes @code{PEX_BINARY_OUTPUT}, open the stream in
-binary mode; otherwise, open it in the default mode.  Including
-@code{PEX_BINARY_OUTPUT} in @var{flags} has no effect on Unix.
-@end deftypefn
-
-@c pexecute.txh:163
-@deftypefn Extension {FILE *} pex_input_pipe (struct pex_obj *@var{obj}, int @var{binary})
-
-Return a stream @var{fp} for a pipe connected to the standard input of
-the first program in the pipeline; @var{fp} is opened for writing.
-You must have passed @code{PEX_USE_PIPES} to the @code{pex_init} call
-that returned @var{obj}.
-
-You must close @var{fp} using @code{fclose} yourself when you have
-finished writing data to the pipeline.
-
-The file descriptor underlying @var{fp} is marked not to be inherited
-by child processes.
-
-On systems that do not support pipes, this function returns
-@code{NULL}, and sets @code{errno} to @code{EINVAL}.  If you would
-like to write code that is portable to all systems the @code{pex}
-functions support, consider using @code{pex_input_file} instead.
-
-There are two opportunities for deadlock using
-@code{pex_input_pipe}:
-
-@itemize @bullet
-@item
-Most systems' pipes can buffer only a fixed amount of data; a process
-that writes to a full pipe blocks.  Thus, if you write to @file{fp}
-before starting the first process, you run the risk of blocking when
-there is no child process yet to read the data and allow you to
-continue.  @code{pex_input_pipe} makes no promises about the
-size of the pipe's buffer, so if you need to write any data at all
-before starting the first process in the pipeline, consider using
-@code{pex_input_file} instead.
-
-@item
-Using @code{pex_input_pipe} and @code{pex_read_output} together
-may also cause deadlock.  If the output pipe fills up, so that each
-program in the pipeline is waiting for the next to read more data, and
-you fill the input pipe by writing more data to @var{fp}, then there
-is no way to make progress: the only process that could read data from
-the output pipe is you, but you are blocked on the input pipe.
-
-@end itemize
-
-@end deftypefn
-
-@c pexecute.txh:250
-@deftypefn Extension {const char *} pex_one (int @var{flags}, const char *@var{executable}, char * const *@var{argv}, const char *@var{pname}, const char *@var{outname}, const char *@var{errname}, int *@var{status}, int *@var{err})
-
-An interface to permit the easy execution of a
-single program.  The return value and most of the parameters are as
-for a call to @code{pex_run}.  @var{flags} is restricted to a
-combination of @code{PEX_SEARCH}, @code{PEX_STDERR_TO_STDOUT}, and
-@code{PEX_BINARY_OUTPUT}.  @var{outname} is interpreted as if
-@code{PEX_LAST} were set.  On a successful return, @code{*@var{status}} will
-be set to the exit status of the program.
-
-@end deftypefn
-
-@c pexecute.txh:207
-@deftypefn Extension {FILE *} pex_read_output (struct pex_obj *@var{obj}, int @var{binary})
-
-Returns a @code{FILE} pointer which may be used to read the standard
-output of the last program in the pipeline.  When this is used,
-@code{PEX_LAST} should not be used in a call to @code{pex_run}.  After
-this is called, @code{pex_run} may no longer be called with the same
-@var{obj}.  @var{binary} should be non-zero if the file should be
-opened in binary mode.  Don't call @code{fclose} on the returned file;
-it will be closed by @code{pex_free}.
-
-@end deftypefn
-
-@c pexecute.txh:33
-@deftypefn Extension {const char *} pex_run (struct pex_obj *@var{obj}, int @var{flags}, const char *@var{executable}, char * const *@var{argv}, const char *@var{outname}, const char *@var{errname}, int *@var{err})
-
-Execute one program in a pipeline.  On success this returns
-@code{NULL}.  On failure it returns an error message, a statically
-allocated string.
-
-@var{obj} is returned by a previous call to @code{pex_init}.
-
-@var{flags} is a bitwise combination of the following:
-
-@table @code
-
-@vindex PEX_LAST
-@item PEX_LAST
-This must be set on the last program in the pipeline.  In particular,
-it should be set when executing a single program.  The standard output
-of the program will be sent to @var{outname}, or, if @var{outname} is
-@code{NULL}, to the standard output of the calling program.  Do @emph{not}
-set this bit if you want to call @code{pex_read_output}
-(described below).  After a call to @code{pex_run} with this bit set,
-@var{pex_run} may no longer be called with the same @var{obj}.
-
-@vindex PEX_SEARCH
-@item PEX_SEARCH
-Search for the program using the user's executable search path.
-
-@vindex PEX_SUFFIX
-@item PEX_SUFFIX
-@var{outname} is a suffix.  See the description of @var{outname},
-below.
-
-@vindex PEX_STDERR_TO_STDOUT
-@item PEX_STDERR_TO_STDOUT
-Send the program's standard error to standard output, if possible.
-
-@vindex PEX_BINARY_INPUT
-@vindex PEX_BINARY_OUTPUT
-@item PEX_BINARY_INPUT
-@itemx PEX_BINARY_OUTPUT
-The standard input (output) of the program should be read (written) in
-binary mode rather than text mode.  These flags are ignored on systems
-which do not distinguish binary mode and text mode, such as Unix.  For
-proper behavior these flags should match appropriately---a call to
-@code{pex_run} using @code{PEX_BINARY_OUTPUT} should be followed by a
-call using @code{PEX_BINARY_INPUT}.
-@end table
-
-@var{executable} is the program to execute.  @var{argv} is the set of
-arguments to pass to the program; normally @code{@var{argv}[0]} will
-be a copy of @var{executable}.
-
-@var{outname} is used to set the name of the file to use for standard
-output.  There are two cases in which no output file will be used:
-
-@enumerate
-@item
-if @code{PEX_LAST} is not set in @var{flags}, and @code{PEX_USE_PIPES}
-was set in the call to @code{pex_init}, and the system supports pipes
-
-@item
-if @code{PEX_LAST} is set in @var{flags}, and @var{outname} is
-@code{NULL}
-@end enumerate
-
-@noindent
-Otherwise the code will use a file to hold standard
-output.  If @code{PEX_LAST} is not set, this file is considered to be
-a temporary file, and it will be removed when no longer needed, unless
-@code{PEX_SAVE_TEMPS} was set in the call to @code{pex_init}.
-
-There are two cases to consider when setting the name of the file to
-hold standard output.
-
-@enumerate
-@item
-@code{PEX_SUFFIX} is set in @var{flags}.  In this case
-@var{outname} may not be @code{NULL}.  If the @var{tempbase} parameter
-to @code{pex_init} was not @code{NULL}, then the output file name is
-the concatenation of @var{tempbase} and @var{outname}.  If
-@var{tempbase} was @code{NULL}, then the output file name is a random
-file name ending in @var{outname}.
-
-@item
-@code{PEX_SUFFIX} was not set in @var{flags}.  In this
-case, if @var{outname} is not @code{NULL}, it is used as the output
-file name.  If @var{outname} is @code{NULL}, and @var{tempbase} was
-not NULL, the output file name is randomly chosen using
-@var{tempbase}.  Otherwise the output file name is chosen completely
-at random.
-@end enumerate
-
-@var{errname} is the file name to use for standard error output.  If
-it is @code{NULL}, standard error is the same as the caller's.
-Otherwise, standard error is written to the named file.
-
-On an error return, the code sets @code{*@var{err}} to an @code{errno}
-value, or to 0 if there is no relevant @code{errno}.
-
-@end deftypefn
-
-@c pexecute.txh:133
-@deftypefn Extension {const char *} pex_run_in_environment (struct pex_obj *@var{obj}, int @var{flags}, const char *@var{executable}, char * const *@var{argv}, char * const *@var{env}, int @var{env_size}, const char *@var{outname}, const char *@var{errname}, int *@var{err})
-
-Execute one program in a pipeline, permitting the environment for the
-program to be specified.  Behaviour and parameters not listed below are
-as for @code{pex_run}.
-
-@var{env} is the environment for the child process, specified as an array of
-character pointers.  Each element of the array should point to a string of the
-form @code{VAR=VALUE}, with the exception of the last element that must be
-@code{NULL}.
-
-@end deftypefn
-
-@c pexecute.txh:262
-@deftypefn Extension int pexecute (const char *@var{program}, char * const *@var{argv}, const char *@var{this_pname}, const char *@var{temp_base}, char **@var{errmsg_fmt}, char **@var{errmsg_arg}, int flags)
-
-This is the old interface to execute one or more programs.  It is
-still supported for compatibility purposes, but is no longer
-documented.
-
-@end deftypefn
-
-@c strsignal.c:539
-@deftypefn Supplemental void psignal (unsigned @var{signo}, char *@var{message})
-
-Print @var{message} to the standard error, followed by a colon,
-followed by the description of the signal specified by @var{signo},
-followed by a newline.
-
-@end deftypefn
-
-@c putenv.c:21
-@deftypefn Supplemental int putenv (const char *@var{string})
-
-Uses @code{setenv} or @code{unsetenv} to put @var{string} into
-the environment or remove it.  If @var{string} is of the form
-@samp{name=value} the string is added; if no @samp{=} is present the
-name is unset/removed.
-
-@end deftypefn
-
-@c pexecute.txh:270
-@deftypefn Extension int pwait (int @var{pid}, int *@var{status}, int @var{flags})
-
-Another part of the old execution interface.
-
-@end deftypefn
-
-@c random.c:39
-@deftypefn Supplement {long int} random (void)
-@deftypefnx Supplement void srandom (unsigned int @var{seed})
-@deftypefnx Supplement void* initstate (unsigned int @var{seed}, void *@var{arg_state}, unsigned long @var{n})
-@deftypefnx Supplement void* setstate (void *@var{arg_state})
-
-Random number functions.  @code{random} returns a random number in the
-range 0 to @code{LONG_MAX}.  @code{srandom} initializes the random
-number generator to some starting point determined by @var{seed}
-(else, the values returned by @code{random} are always the same for each
-run of the program).  @code{initstate} and @code{setstate} allow fine-grained
-control over the state of the random number generator.
-
-@end deftypefn
-
-@c concat.c:173
-@deftypefn Extension char* reconcat (char *@var{optr}, const char *@var{s1}, @dots{}, @code{NULL})
-
-Same as @code{concat}, except that if @var{optr} is not @code{NULL} it
-is freed after the string is created.  This is intended to be useful
-when you're extending an existing string or building up a string in a
-loop:
-
-@example
-  str = reconcat (str, "pre-", str, NULL);
-@end example
-
-@end deftypefn
-
-@c rename.c:6
-@deftypefn Supplemental int rename (const char *@var{old}, const char *@var{new})
-
-Renames a file from @var{old} to @var{new}.  If @var{new} already
-exists, it is removed.
-
-@end deftypefn
-
-@c rindex.c:5
-@deftypefn Supplemental char* rindex (const char *@var{s}, int @var{c})
-
-Returns a pointer to the last occurrence of the character @var{c} in
-the string @var{s}, or @code{NULL} if not found.  The use of @code{rindex} is
-deprecated in new programs in favor of @code{strrchr}.
-
-@end deftypefn
-
-@c setenv.c:22
-@deftypefn Supplemental int setenv (const char *@var{name}, const char *@var{value}, int @var{overwrite})
-@deftypefnx Supplemental void unsetenv (const char *@var{name})
-
-@code{setenv} adds @var{name} to the environment with value
-@var{value}.  If the name was already present in the environment,
-the new value will be stored only if @var{overwrite} is nonzero.
-The companion @code{unsetenv} function removes @var{name} from the
-environment.  This implementation is not safe for multithreaded code.
-
-@end deftypefn
-
-@c strsignal.c:348
-@deftypefn Extension int signo_max (void)
-
-Returns the maximum signal value for which a corresponding symbolic
-name or message is available.  Note that in the case where we use the
-@code{sys_siglist} supplied by the system, it is possible for there to
-be more symbolic names than messages, or vice versa.  In fact, the
-manual page for @code{psignal(3b)} explicitly warns that one should
-check the size of the table (@code{NSIG}) before indexing it, since
-new signal codes may be added to the system before they are added to
-the table.  Thus @code{NSIG} might be smaller than value implied by
-the largest signo value defined in @code{<signal.h>}.
-
-We return the maximum value that can be used to obtain a meaningful
-symbolic name or message.
-
-@end deftypefn
-
-@c sigsetmask.c:8
-@deftypefn Supplemental int sigsetmask (int @var{set})
-
-Sets the signal mask to the one provided in @var{set} and returns
-the old mask (which, for libiberty's implementation, will always
-be the value @code{1}).
-
-@end deftypefn
-
-@c snprintf.c:28
-@deftypefn Supplemental int snprintf (char *@var{buf}, size_t @var{n}, const char *@var{format}, ...)
-
-This function is similar to sprintf, but it will print at most @var{n}
-characters.  On error the return value is -1, otherwise it returns the
-number of characters that would have been printed had @var{n} been
-sufficiently large, regardless of the actual value of @var{n}.  Note
-some pre-C99 system libraries do not implement this correctly so users
-cannot generally rely on the return value if the system version of
-this function is used.
-
-@end deftypefn
-
-@c spaces.c:22
-@deftypefn Extension char* spaces (int @var{count})
-
-Returns a pointer to a memory region filled with the specified
-number of spaces and null terminated.  The returned pointer is
-valid until at least the next call.
-
-@end deftypefn
-
-@c stpcpy.c:23
-@deftypefn Supplemental char* stpcpy (char *@var{dst}, const char *@var{src})
-
-Copies the string @var{src} into @var{dst}.  Returns a pointer to
-@var{dst} + strlen(@var{src}).
-
-@end deftypefn
-
-@c stpncpy.c:23
-@deftypefn Supplemental char* stpncpy (char *@var{dst}, const char *@var{src}, size_t @var{len})
-
-Copies the string @var{src} into @var{dst}, copying exactly @var{len}
-and padding with zeros if necessary.  If @var{len} < strlen(@var{src})
-then return @var{dst} + @var{len}, otherwise returns @var{dst} +
-strlen(@var{src}).
-
-@end deftypefn
-
-@c strcasecmp.c:15
-@deftypefn Supplemental int strcasecmp (const char *@var{s1}, const char *@var{s2})
-
-A case-insensitive @code{strcmp}.
-
-@end deftypefn
-
-@c strchr.c:6
-@deftypefn Supplemental char* strchr (const char *@var{s}, int @var{c})
-
-Returns a pointer to the first occurrence of the character @var{c} in
-the string @var{s}, or @code{NULL} if not found.  If @var{c} is itself the
-null character, the results are undefined.
-
-@end deftypefn
-
-@c strdup.c:3
-@deftypefn Supplemental char* strdup (const char *@var{s})
-
-Returns a pointer to a copy of @var{s} in memory obtained from
-@code{malloc}, or @code{NULL} if insufficient memory was available.
-
-@end deftypefn
-
-@c strerror.c:670
-@deftypefn Replacement {const char*} strerrno (int @var{errnum})
-
-Given an error number returned from a system call (typically returned
-in @code{errno}), returns a pointer to a string containing the
-symbolic name of that error number, as found in @code{<errno.h>}.
-
-If the supplied error number is within the valid range of indices for
-symbolic names, but no name is available for the particular error
-number, then returns the string @samp{Error @var{num}}, where @var{num}
-is the error number.
-
-If the supplied error number is not within the range of valid
-indices, then returns @code{NULL}.
-
-The contents of the location pointed to are only guaranteed to be
-valid until the next call to @code{strerrno}.
-
-@end deftypefn
-
-@c strerror.c:603
-@deftypefn Supplemental char* strerror (int @var{errnoval})
-
-Maps an @code{errno} number to an error message string, the contents
-of which are implementation defined.  On systems which have the
-external variables @code{sys_nerr} and @code{sys_errlist}, these
-strings will be the same as the ones used by @code{perror}.
-
-If the supplied error number is within the valid range of indices for
-the @code{sys_errlist}, but no message is available for the particular
-error number, then returns the string @samp{Error @var{num}}, where
-@var{num} is the error number.
-
-If the supplied error number is not a valid index into
-@code{sys_errlist}, returns @code{NULL}.
-
-The returned string is only guaranteed to be valid only until the
-next call to @code{strerror}.
-
-@end deftypefn
-
-@c strncasecmp.c:15
-@deftypefn Supplemental int strncasecmp (const char *@var{s1}, const char *@var{s2})
-
-A case-insensitive @code{strncmp}.
-
-@end deftypefn
-
-@c strncmp.c:6
-@deftypefn Supplemental int strncmp (const char *@var{s1}, const char *@var{s2}, size_t @var{n})
-
-Compares the first @var{n} bytes of two strings, returning a value as
-@code{strcmp}.
-
-@end deftypefn
-
-@c strndup.c:23
-@deftypefn Extension char* strndup (const char *@var{s}, size_t @var{n})
-
-Returns a pointer to a copy of @var{s} with at most @var{n} characters
-in memory obtained from @code{malloc}, or @code{NULL} if insufficient
-memory was available.  The result is always NUL terminated.
-
-@end deftypefn
-
-@c strrchr.c:6
-@deftypefn Supplemental char* strrchr (const char *@var{s}, int @var{c})
-
-Returns a pointer to the last occurrence of the character @var{c} in
-the string @var{s}, or @code{NULL} if not found.  If @var{c} is itself the
-null character, the results are undefined.
-
-@end deftypefn
-
-@c strsignal.c:383
-@deftypefn Supplemental {const char *} strsignal (int @var{signo})
-
-Maps an signal number to an signal message string, the contents of
-which are implementation defined.  On systems which have the external
-variable @code{sys_siglist}, these strings will be the same as the
-ones used by @code{psignal()}.
-
-If the supplied signal number is within the valid range of indices for
-the @code{sys_siglist}, but no message is available for the particular
-signal number, then returns the string @samp{Signal @var{num}}, where
-@var{num} is the signal number.
-
-If the supplied signal number is not a valid index into
-@code{sys_siglist}, returns @code{NULL}.
-
-The returned string is only guaranteed to be valid only until the next
-call to @code{strsignal}.
-
-@end deftypefn
-
-@c strsignal.c:446
-@deftypefn Extension {const char*} strsigno (int @var{signo})
-
-Given an signal number, returns a pointer to a string containing the
-symbolic name of that signal number, as found in @code{<signal.h>}.
-
-If the supplied signal number is within the valid range of indices for
-symbolic names, but no name is available for the particular signal
-number, then returns the string @samp{Signal @var{num}}, where
-@var{num} is the signal number.
-
-If the supplied signal number is not within the range of valid
-indices, then returns @code{NULL}.
-
-The contents of the location pointed to are only guaranteed to be
-valid until the next call to @code{strsigno}.
-
-@end deftypefn
-
-@c strstr.c:6
-@deftypefn Supplemental char* strstr (const char *@var{string}, const char *@var{sub})
-
-This function searches for the substring @var{sub} in the string
-@var{string}, not including the terminating null characters.  A pointer
-to the first occurrence of @var{sub} is returned, or @code{NULL} if the
-substring is absent.  If @var{sub} points to a string with zero
-length, the function returns @var{string}.
-
-@end deftypefn
-
-@c strtod.c:27
-@deftypefn Supplemental double strtod (const char *@var{string}, char **@var{endptr})
-
-This ISO C function converts the initial portion of @var{string} to a
-@code{double}.  If @var{endptr} is not @code{NULL}, a pointer to the
-character after the last character used in the conversion is stored in
-the location referenced by @var{endptr}.  If no conversion is
-performed, zero is returned and the value of @var{string} is stored in
-the location referenced by @var{endptr}.
-
-@end deftypefn
-
-@c strerror.c:729
-@deftypefn Extension int strtoerrno (const char *@var{name})
-
-Given the symbolic name of a error number (e.g., @code{EACCES}), map it
-to an errno value.  If no translation is found, returns 0.
-
-@end deftypefn
-
-@c strtol.c:33
-@deftypefn Supplemental {long int} strtol (const char *@var{string}, char **@var{endptr}, int @var{base})
-@deftypefnx Supplemental {unsigned long int} strtoul (const char *@var{string}, char **@var{endptr}, int @var{base})
-
-The @code{strtol} function converts the string in @var{string} to a
-long integer value according to the given @var{base}, which must be
-between 2 and 36 inclusive, or be the special value 0.  If @var{base}
-is 0, @code{strtol} will look for the prefixes @code{0} and @code{0x}
-to indicate bases 8 and 16, respectively, else default to base 10.
-When the base is 16 (either explicitly or implicitly), a prefix of
-@code{0x} is allowed.  The handling of @var{endptr} is as that of
-@code{strtod} above.  The @code{strtoul} function is the same, except
-that the converted value is unsigned.
-
-@end deftypefn
-
-@c strsignal.c:500
-@deftypefn Extension int strtosigno (const char *@var{name})
-
-Given the symbolic name of a signal, map it to a signal number.  If no
-translation is found, returns 0.
-
-@end deftypefn
-
-@c strverscmp.c:25
-@deftypefun int strverscmp (const char *@var{s1}, const char *@var{s2})
-The @code{strverscmp} function compares the string @var{s1} against
-@var{s2}, considering them as holding indices/version numbers.  Return
-value follows the same conventions as found in the @code{strverscmp}
-function.  In fact, if @var{s1} and @var{s2} contain no digits,
-@code{strverscmp} behaves like @code{strcmp}.
-
-Basically, we compare strings normally (character by character), until
-we find a digit in each string - then we enter a special comparison
-mode, where each sequence of digits is taken as a whole.  If we reach the
-end of these two parts without noticing a difference, we return to the
-standard comparison mode.  There are two types of numeric parts:
-"integral" and "fractional" (those  begin with a '0'). The types
-of the numeric parts affect the way we sort them:
-
-@itemize @bullet
-@item
-integral/integral: we compare values as you would expect.
-
-@item
-fractional/integral: the fractional part is less than the integral one.
-Again, no surprise.
-
-@item
-fractional/fractional: the things become a bit more complex.
-If the common prefix contains only leading zeroes, the longest part is less
-than the other one; else the comparison behaves normally.
-@end itemize
-
-@smallexample
-strverscmp ("no digit", "no digit")
-    @result{} 0    // @r{same behavior as strcmp.}
-strverscmp ("item#99", "item#100")
-    @result{} <0   // @r{same prefix, but 99 < 100.}
-strverscmp ("alpha1", "alpha001")
-    @result{} >0   // @r{fractional part inferior to integral one.}
-strverscmp ("part1_f012", "part1_f01")
-    @result{} >0   // @r{two fractional parts.}
-strverscmp ("foo.009", "foo.0")
-    @result{} <0   // @r{idem, but with leading zeroes only.}
-@end smallexample
-
-This function is especially useful when dealing with filename sorting,
-because filenames frequently hold indices/version numbers.
-@end deftypefun
-
-@c tmpnam.c:3
-@deftypefn Supplemental char* tmpnam (char *@var{s})
-
-This function attempts to create a name for a temporary file, which
-will be a valid file name yet not exist when @code{tmpnam} checks for
-it.  @var{s} must point to a buffer of at least @code{L_tmpnam} bytes,
-or be @code{NULL}.  Use of this function creates a security risk, and it must
-not be used in new projects.  Use @code{mkstemp} instead.
-
-@end deftypefn
-
-@c unlink-if-ordinary.c:27
-@deftypefn Supplemental int unlink_if_ordinary (const char*)
-
-Unlinks the named file, unless it is special (e.g. a device file).
-Returns 0 when the file was unlinked, a negative value (and errno set) when
-there was an error deleting the file, and a positive value if no attempt
-was made to unlink the file because it is special.
-
-@end deftypefn
-
-@c fopen_unlocked.c:31
-@deftypefn Extension void unlock_std_streams (void)
-
-If the OS supports it, ensure that the standard I/O streams,
-@code{stdin}, @code{stdout} and @code{stderr} are setup to avoid any
-multi-threaded locking.  Otherwise do nothing.
-
-@end deftypefn
-
-@c fopen_unlocked.c:23
-@deftypefn Extension void unlock_stream (FILE * @var{stream})
-
-If the OS supports it, ensure that the supplied stream is setup to
-avoid any multi-threaded locking.  Otherwise leave the @code{FILE}
-pointer unchanged.  If the @var{stream} is @code{NULL} do nothing.
-
-@end deftypefn
-
-@c vasprintf.c:47
-@deftypefn Extension int vasprintf (char **@var{resptr}, const char *@var{format}, va_list @var{args})
-
-Like @code{vsprintf}, but instead of passing a pointer to a buffer,
-you pass a pointer to a pointer.  This function will compute the size
-of the buffer needed, allocate memory with @code{malloc}, and store a
-pointer to the allocated memory in @code{*@var{resptr}}.  The value
-returned is the same as @code{vsprintf} would return.  If memory could
-not be allocated, minus one is returned and @code{NULL} is stored in
-@code{*@var{resptr}}.
-
-@end deftypefn
-
-@c vfork.c:6
-@deftypefn Supplemental int vfork (void)
-
-Emulates @code{vfork} by calling @code{fork} and returning its value.
-
-@end deftypefn
-
-@c vprintf.c:3
-@deftypefn Supplemental int vprintf (const char *@var{format}, va_list @var{ap})
-@deftypefnx Supplemental int vfprintf (FILE *@var{stream}, const char *@var{format}, va_list @var{ap})
-@deftypefnx Supplemental int vsprintf (char *@var{str}, const char *@var{format}, va_list @var{ap})
-
-These functions are the same as @code{printf}, @code{fprintf}, and
-@code{sprintf}, respectively, except that they are called with a
-@code{va_list} instead of a variable number of arguments.  Note that
-they do not call @code{va_end}; this is the application's
-responsibility.  In @libib{} they are implemented in terms of the
-nonstandard but common function @code{_doprnt}.
-
-@end deftypefn
-
-@c vsnprintf.c:28
-@deftypefn Supplemental int vsnprintf (char *@var{buf}, size_t @var{n}, const char *@var{format}, va_list @var{ap})
-
-This function is similar to vsprintf, but it will print at most
-@var{n} characters.  On error the return value is -1, otherwise it
-returns the number of characters that would have been printed had
-@var{n} been sufficiently large, regardless of the actual value of
-@var{n}.  Note some pre-C99 system libraries do not implement this
-correctly so users cannot generally rely on the return value if the
-system version of this function is used.
-
-@end deftypefn
-
-@c waitpid.c:3
-@deftypefn Supplemental int waitpid (int @var{pid}, int *@var{status}, int)
-
-This is a wrapper around the @code{wait} function.  Any ``special''
-values of @var{pid} depend on your implementation of @code{wait}, as
-does the return value.  The third argument is unused in @libib{}.
-
-@end deftypefn
-
-@c xatexit.c:11
-@deftypefun int xatexit (void (*@var{fn}) (void))
-
-Behaves as the standard @code{atexit} function, but with no limit on
-the number of registered functions.  Returns 0 on success, or @minus{}1 on
-failure.  If you use @code{xatexit} to register functions, you must use
-@code{xexit} to terminate your program.
-
-@end deftypefun
-
-@c xmalloc.c:38
-@deftypefn Replacement void* xcalloc (size_t @var{nelem}, size_t @var{elsize})
-
-Allocate memory without fail, and set it to zero.  This routine functions
-like @code{calloc}, but will behave the same as @code{xmalloc} if memory
-cannot be found.
-
-@end deftypefn
-
-@c xexit.c:22
-@deftypefn Replacement void xexit (int @var{code})
-
-Terminates the program.  If any functions have been registered with
-the @code{xatexit} replacement function, they will be called first.
-Termination is handled via the system's normal @code{exit} call.
-
-@end deftypefn
-
-@c xmalloc.c:22
-@deftypefn Replacement void* xmalloc (size_t)
-
-Allocate memory without fail.  If @code{malloc} fails, this will print
-a message to @code{stderr} (using the name set by
-@code{xmalloc_set_program_name},
-if any) and then call @code{xexit}.  Note that it is therefore safe for
-a program to contain @code{#define malloc xmalloc} in its source.
-
-@end deftypefn
-
-@c xmalloc.c:53
-@deftypefn Replacement void xmalloc_failed (size_t)
-
-This function is not meant to be called by client code, and is listed
-here for completeness only.  If any of the allocation routines fail, this
-function will be called to print an error message and terminate execution.
-
-@end deftypefn
-
-@c xmalloc.c:46
-@deftypefn Replacement void xmalloc_set_program_name (const char *@var{name})
-
-You can use this to set the name of the program used by
-@code{xmalloc_failed} when printing a failure message.
-
-@end deftypefn
-
-@c xmemdup.c:7
-@deftypefn Replacement void* xmemdup (void *@var{input}, size_t @var{copy_size}, size_t @var{alloc_size})
-
-Duplicates a region of memory without fail.  First, @var{alloc_size} bytes
-are allocated, then @var{copy_size} bytes from @var{input} are copied into
-it, and the new memory is returned.  If fewer bytes are copied than were
-allocated, the remaining memory is zeroed.
-
-@end deftypefn
-
-@c xmalloc.c:32
-@deftypefn Replacement void* xrealloc (void *@var{ptr}, size_t @var{size})
-Reallocate memory without fail.  This routine functions like @code{realloc},
-but will behave the same as @code{xmalloc} if memory cannot be found.
-
-@end deftypefn
-
-@c xstrdup.c:7
-@deftypefn Replacement char* xstrdup (const char *@var{s})
-
-Duplicates a character string without fail, using @code{xmalloc} to
-obtain memory.
-
-@end deftypefn
-
-@c xstrerror.c:7
-@deftypefn Replacement char* xstrerror (int @var{errnum})
-
-Behaves exactly like the standard @code{strerror} function, but
-will never return a @code{NULL} pointer.
-
-@end deftypefn
-
-@c xstrndup.c:23
-@deftypefn Replacement char* xstrndup (const char *@var{s}, size_t @var{n})
-
-Returns a pointer to a copy of @var{s} with at most @var{n} characters
-without fail, using @code{xmalloc} to obtain memory.  The result is
-always NUL terminated.
-
-@end deftypefn
-
-
diff --git a/libiberty/gather-docs b/libiberty/gather-docs
deleted file mode 100644
index be4dbbf..0000000
--- a/libiberty/gather-docs
+++ /dev/null
@@ -1,128 +0,0 @@
-#!/usr/bin/perl
-# -*- perl -*-
-
-#   Copyright (C) 2001
-#   Free Software Foundation
-#
-# This file is part of the libiberty library.
-# Libiberty is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# Libiberty 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
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with libiberty; see the file COPYING.LIB.  If not,
-# write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-# Boston, MA 02110-1301, USA.
-#
-# Originally written by DJ Delorie <dj@redhat.com>
-
-
-
-# This program looks for texinfo snippets in source files and other
-# files, and builds per-category files with entries sorted in
-# alphabetical order.
-
-# The syntax it looks for is lines starting with '@def' in *.c and
-# other files (see TEXIFILES in Makefile.in).  Entries are terminated
-# at the next @def* (which begins a new entry) or, for C files, a line
-# that begins with '*/' without leading spaces (this assumes that the
-# texinfo snippet is within a C-style /* */ comment).
-
-# 
-
-
-
-if ($ARGV[0] eq "-v") {
-    $verbose = 1;
-    shift;
-}
-
-$srcdir = shift;
-$outfile = shift;
-
-if ($outfile !~ /\S/ || ! -f "$srcdir/Makefile.in" ) {
-    print STDERR "Usage: gather-docs [-v] srcdir outfile.txi [files with snippets in them ...]\n";
-    exit 1;
-}
-
-$errors = 0;
-
-for $in (@ARGV) {
-
-    if (!open(IN, "$srcdir/$in")) {
-	print STDERR "Cannot open $srcdir/$in for reading: $!\n";
-	$errors ++;
-
-    } else {
-	$first = 1;
-	$pertinent = 0;
-	$man_mode = 0;
-	$line = 0;
-
-	while (<IN>) {
-	    $line ++;
-	    $pertinent = 1 if /^\@def[a-z]*[a-wyz] /;
-	    $pertinent = 0 if /^\*\//;
-	    next unless $pertinent;
-
-	    if (/^\@def[a-z]*[a-wyz] /) {
-		
-		($name) = m/[^\(]* ([^\( \t\r\n]+) *\(/;
-		$name =~ s/[ 	]*$//;
-		$key = $name;
-		$key =~ tr/A-Z/a-z/;
-		$key =~ s/[^a-z0-9]+/ /g;
-		$name{$key} = $node;
-		$lines{$key} = '';
-		$src_file{$key} = $in;
-		$src_line{$key} = $line;
-		print "\nReading $in :" if $verbose && $first;
-		$first = 0;
-		print " $name" if $verbose;
-		$node_lines{$key} .= $_;
-
-	    } else {
-		$node_lines{$key} .= $_;
-	    }
-
-	    $pertinent = 0 if /^\@end def/;
-	}
-	close (IN);
-    }
-}
-
-print "\n" if $verbose;
-exit $errors if $errors;
-
-if (!open (OUT, "> $outfile")) {
-    print STDERR "Cannot open $outfile for writing: $!\n";
-    $errors ++;
-    next;
-}
-print "Writing $outfile\n" if $verbose;
-
-print OUT "\@c Automatically generated from *.c and others (the comments before\n";
-print OUT "\@c each entry tell you which file and where in that file).  DO NOT EDIT!\n";
-print OUT "\@c Edit the *.c files, configure with --enable-maintainer-mode,\n";
-print OUT "\@c and let gather-docs build you a new copy.\n\n";
-
-for $key (sort keys %name) {
-    print OUT "\@c $src_file{$key}:$src_line{$key}\n";
-    print OUT $node_lines{$key};
-    print OUT "\n";
-}
-
-if (! print OUT "\n") {
-    print STDERR "Disk full writing $srcdir/$cat.texi\n";
-    $errors ++;
-}
-
-close (OUT);
-
-exit $errors;
diff --git a/libiberty/getcwd.c b/libiberty/getcwd.c
deleted file mode 100644
index 28f26eb..0000000
--- a/libiberty/getcwd.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Emulate getcwd using getwd.
-   This function is in the public domain. */
-
-/*
-
-@deftypefn Supplemental char* getcwd (char *@var{pathname}, int @var{len})
-
-Copy the absolute pathname for the current working directory into
-@var{pathname}, which is assumed to point to a buffer of at least
-@var{len} bytes, and return a pointer to the buffer.  If the current
-directory's path doesn't fit in @var{len} characters, the result is
-@code{NULL} and @code{errno} is set.  If @var{pathname} is a null pointer,
-@code{getcwd} will obtain @var{len} bytes of space using
-@code{malloc}.
-
-@end deftypefn
-
-*/
-
-#include "config.h"
-
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#include <errno.h>
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-extern char *getwd ();
-extern int errno;
-
-#ifndef MAXPATHLEN
-#define MAXPATHLEN 1024
-#endif
-
-char *
-getcwd (char *buf, size_t len)
-{
-  char ourbuf[MAXPATHLEN];
-  char *result;
-
-  result = getwd (ourbuf);
-  if (result) {
-    if (strlen (ourbuf) >= len) {
-      errno = ERANGE;
-      return 0;
-    }
-    if (!buf) {
-       buf = (char*)malloc(len);
-       if (!buf) {
-           errno = ENOMEM;
-	   return 0;
-       }
-    }
-    strcpy (buf, ourbuf);
-  }
-  return buf;
-}
diff --git a/libiberty/getopt.c b/libiberty/getopt.c
deleted file mode 100644
index d9c3532..0000000
--- a/libiberty/getopt.c
+++ /dev/null
@@ -1,1052 +0,0 @@
-/* Getopt for GNU.
-   NOTE: getopt is now part of the C library, so if you don't know what
-   "Keep this file name-space clean" means, talk to drepper@gnu.org
-   before changing it!
-
-   Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
-   1996, 1997, 1998, 2005 Free Software Foundation, Inc.
-
-   NOTE: This source is derived from an old version taken from the GNU C
-   Library (glibc).
-
-   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, 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301,
-   USA.  */
-
-/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
-   Ditto for AIX 3.2 and <stdlib.h>.  */
-#ifndef _NO_PROTO
-# define _NO_PROTO
-#endif
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#if !defined __STDC__ || !__STDC__
-/* This is a separate conditional since some stdc systems
-   reject `defined (const)'.  */
-# ifndef const
-#  define const
-# endif
-#endif
-
-#include "ansidecl.h"
-#include <stdio.h>
-
-/* Comment out all this code if we are using the GNU C Library, and are not
-   actually compiling the library itself.  This code is part of the GNU C
-   Library, but also included in many other GNU distributions.  Compiling
-   and linking in this code is a waste when using the GNU C library
-   (especially if it is a shared library).  Rather than having every GNU
-   program understand `configure --with-gnu-libc' and omit the object files,
-   it is simpler to just do this in the source for each such file.  */
-
-#define GETOPT_INTERFACE_VERSION 2
-#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2
-# include <gnu-versions.h>
-# if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
-#  define ELIDE_CODE
-# endif
-#endif
-
-#ifndef ELIDE_CODE
-
-
-/* This needs to come after some library #include
-   to get __GNU_LIBRARY__ defined.  */
-#ifdef	__GNU_LIBRARY__
-/* Don't include stdlib.h for non-GNU C libraries because some of them
-   contain conflicting prototypes for getopt.  */
-# include <stdlib.h>
-# include <unistd.h>
-#endif	/* GNU C library.  */
-
-#ifdef VMS
-# include <unixlib.h>
-# if HAVE_STRING_H - 0
-#  include <string.h>
-# endif
-#endif
-
-#ifndef _
-/* This is for other GNU distributions with internationalized messages.
-   When compiling libc, the _ macro is predefined.  */
-# if (HAVE_LIBINTL_H && ENABLE_NLS) || defined _LIBC
-#  include <libintl.h>
-#  define _(msgid)	gettext (msgid)
-# else
-#  define _(msgid)	(msgid)
-# endif
-#endif
-
-/* This version of `getopt' appears to the caller like standard Unix `getopt'
-   but it behaves differently for the user, since it allows the user
-   to intersperse the options with the other arguments.
-
-   As `getopt' works, it permutes the elements of ARGV so that,
-   when it is done, all the options precede everything else.  Thus
-   all application programs are extended to handle flexible argument order.
-
-   Setting the environment variable POSIXLY_CORRECT disables permutation.
-   Then the behavior is completely standard.
-
-   GNU application programs can use a third alternative mode in which
-   they can distinguish the relative order of options and other arguments.  */
-
-#include "getopt.h"
-
-/* For communication from `getopt' to the caller.
-   When `getopt' finds an option that takes an argument,
-   the argument value is returned here.
-   Also, when `ordering' is RETURN_IN_ORDER,
-   each non-option ARGV-element is returned here.  */
-
-char *optarg = NULL;
-
-/* Index in ARGV of the next element to be scanned.
-   This is used for communication to and from the caller
-   and for communication between successive calls to `getopt'.
-
-   On entry to `getopt', zero means this is the first call; initialize.
-
-   When `getopt' returns -1, this is the index of the first of the
-   non-option elements that the caller should itself scan.
-
-   Otherwise, `optind' communicates from one call to the next
-   how much of ARGV has been scanned so far.  */
-
-/* 1003.2 says this must be 1 before any call.  */
-int optind = 1;
-
-/* Formerly, initialization of getopt depended on optind==0, which
-   causes problems with re-calling getopt as programs generally don't
-   know that. */
-
-int __getopt_initialized = 0;
-
-/* The next char to be scanned in the option-element
-   in which the last option character we returned was found.
-   This allows us to pick up the scan where we left off.
-
-   If this is zero, or a null string, it means resume the scan
-   by advancing to the next ARGV-element.  */
-
-static char *nextchar;
-
-/* Callers store zero here to inhibit the error message
-   for unrecognized options.  */
-
-int opterr = 1;
-
-/* Set to an option character which was unrecognized.
-   This must be initialized on some systems to avoid linking in the
-   system's own getopt implementation.  */
-
-int optopt = '?';
-
-/* Describe how to deal with options that follow non-option ARGV-elements.
-
-   If the caller did not specify anything,
-   the default is REQUIRE_ORDER if the environment variable
-   POSIXLY_CORRECT is defined, PERMUTE otherwise.
-
-   REQUIRE_ORDER means don't recognize them as options;
-   stop option processing when the first non-option is seen.
-   This is what Unix does.
-   This mode of operation is selected by either setting the environment
-   variable POSIXLY_CORRECT, or using `+' as the first character
-   of the list of option characters.
-
-   PERMUTE is the default.  We permute the contents of ARGV as we scan,
-   so that eventually all the non-options are at the end.  This allows options
-   to be given in any order, even with programs that were not written to
-   expect this.
-
-   RETURN_IN_ORDER is an option available to programs that were written
-   to expect options and other ARGV-elements in any order and that care about
-   the ordering of the two.  We describe each non-option ARGV-element
-   as if it were the argument of an option with character code 1.
-   Using `-' as the first character of the list of option characters
-   selects this mode of operation.
-
-   The special argument `--' forces an end of option-scanning regardless
-   of the value of `ordering'.  In the case of RETURN_IN_ORDER, only
-   `--' can cause `getopt' to return -1 with `optind' != ARGC.  */
-
-static enum
-{
-  REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
-} ordering;
-
-/* Value of POSIXLY_CORRECT environment variable.  */
-static char *posixly_correct;
-
-#ifdef	__GNU_LIBRARY__
-/* We want to avoid inclusion of string.h with non-GNU libraries
-   because there are many ways it can cause trouble.
-   On some systems, it contains special magic macros that don't work
-   in GCC.  */
-# include <string.h>
-# define my_index	strchr
-#else
-
-# if HAVE_STRING_H
-#  include <string.h>
-# else
-#  if HAVE_STRINGS_H
-#   include <strings.h>
-#  endif
-# endif
-
-/* Avoid depending on library functions or files
-   whose names are inconsistent.  */
-
-#if HAVE_STDLIB_H && HAVE_DECL_GETENV
-#  include <stdlib.h>
-#elif !defined(getenv)
-#  ifdef __cplusplus
-extern "C" {
-#  endif /* __cplusplus */
-extern char *getenv (const char *);
-#  ifdef __cplusplus
-}
-#  endif /* __cplusplus */
-#endif
-
-static char *
-my_index (const char *str, int chr)
-{
-  while (*str)
-    {
-      if (*str == chr)
-	return (char *) str;
-      str++;
-    }
-  return 0;
-}
-
-/* If using GCC, we can safely declare strlen this way.
-   If not using GCC, it is ok not to declare it.  */
-#ifdef __GNUC__
-/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h.
-   That was relevant to code that was here before.  */
-# if (!defined __STDC__ || !__STDC__) && !defined strlen
-/* gcc with -traditional declares the built-in strlen to return int,
-   and has done so at least since version 2.4.5. -- rms.  */
-extern int strlen (const char *);
-# endif /* not __STDC__ */
-#endif /* __GNUC__ */
-
-#endif /* not __GNU_LIBRARY__ */
-
-/* Handle permutation of arguments.  */
-
-/* Describe the part of ARGV that contains non-options that have
-   been skipped.  `first_nonopt' is the index in ARGV of the first of them;
-   `last_nonopt' is the index after the last of them.  */
-
-static int first_nonopt;
-static int last_nonopt;
-
-#ifdef _LIBC
-/* Bash 2.0 gives us an environment variable containing flags
-   indicating ARGV elements that should not be considered arguments.  */
-
-/* Defined in getopt_init.c  */
-extern char *__getopt_nonoption_flags;
-
-static int nonoption_flags_max_len;
-static int nonoption_flags_len;
-
-static int original_argc;
-static char *const *original_argv;
-
-/* Make sure the environment variable bash 2.0 puts in the environment
-   is valid for the getopt call we must make sure that the ARGV passed
-   to getopt is that one passed to the process.  */
-static void
-__attribute__ ((unused))
-store_args_and_env (int argc, char *const *argv)
-{
-  /* XXX This is no good solution.  We should rather copy the args so
-     that we can compare them later.  But we must not use malloc(3).  */
-  original_argc = argc;
-  original_argv = argv;
-}
-# ifdef text_set_element
-text_set_element (__libc_subinit, store_args_and_env);
-# endif /* text_set_element */
-
-# define SWAP_FLAGS(ch1, ch2) \
-  if (nonoption_flags_len > 0)						      \
-    {									      \
-      char __tmp = __getopt_nonoption_flags[ch1];			      \
-      __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2];	      \
-      __getopt_nonoption_flags[ch2] = __tmp;				      \
-    }
-#else	/* !_LIBC */
-# define SWAP_FLAGS(ch1, ch2)
-#endif	/* _LIBC */
-
-/* Exchange two adjacent subsequences of ARGV.
-   One subsequence is elements [first_nonopt,last_nonopt)
-   which contains all the non-options that have been skipped so far.
-   The other is elements [last_nonopt,optind), which contains all
-   the options processed since those non-options were skipped.
-
-   `first_nonopt' and `last_nonopt' are relocated so that they describe
-   the new indices of the non-options in ARGV after they are moved.  */
-
-#if defined __STDC__ && __STDC__
-static void exchange (char **);
-#endif
-
-static void
-exchange (char **argv)
-{
-  int bottom = first_nonopt;
-  int middle = last_nonopt;
-  int top = optind;
-  char *tem;
-
-  /* Exchange the shorter segment with the far end of the longer segment.
-     That puts the shorter segment into the right place.
-     It leaves the longer segment in the right place overall,
-     but it consists of two parts that need to be swapped next.  */
-
-#ifdef _LIBC
-  /* First make sure the handling of the `__getopt_nonoption_flags'
-     string can work normally.  Our top argument must be in the range
-     of the string.  */
-  if (nonoption_flags_len > 0 && top >= nonoption_flags_max_len)
-    {
-      /* We must extend the array.  The user plays games with us and
-	 presents new arguments.  */
-      char *new_str = (char *) malloc (top + 1);
-      if (new_str == NULL)
-	nonoption_flags_len = nonoption_flags_max_len = 0;
-      else
-	{
-	  memset (mempcpy (new_str, __getopt_nonoption_flags,
-			   nonoption_flags_max_len),
-		  '\0', top + 1 - nonoption_flags_max_len);
-	  nonoption_flags_max_len = top + 1;
-	  __getopt_nonoption_flags = new_str;
-	}
-    }
-#endif
-
-  while (top > middle && middle > bottom)
-    {
-      if (top - middle > middle - bottom)
-	{
-	  /* Bottom segment is the short one.  */
-	  int len = middle - bottom;
-	  register int i;
-
-	  /* Swap it with the top part of the top segment.  */
-	  for (i = 0; i < len; i++)
-	    {
-	      tem = argv[bottom + i];
-	      argv[bottom + i] = argv[top - (middle - bottom) + i];
-	      argv[top - (middle - bottom) + i] = tem;
-	      SWAP_FLAGS (bottom + i, top - (middle - bottom) + i);
-	    }
-	  /* Exclude the moved bottom segment from further swapping.  */
-	  top -= len;
-	}
-      else
-	{
-	  /* Top segment is the short one.  */
-	  int len = top - middle;
-	  register int i;
-
-	  /* Swap it with the bottom part of the bottom segment.  */
-	  for (i = 0; i < len; i++)
-	    {
-	      tem = argv[bottom + i];
-	      argv[bottom + i] = argv[middle + i];
-	      argv[middle + i] = tem;
-	      SWAP_FLAGS (bottom + i, middle + i);
-	    }
-	  /* Exclude the moved top segment from further swapping.  */
-	  bottom += len;
-	}
-    }
-
-  /* Update records for the slots the non-options now occupy.  */
-
-  first_nonopt += (optind - last_nonopt);
-  last_nonopt = optind;
-}
-
-/* Initialize the internal data when the first call is made.  */
-
-#if defined __STDC__ && __STDC__
-static const char *_getopt_initialize (int, char *const *, const char *);
-#endif
-static const char *
-_getopt_initialize (int argc ATTRIBUTE_UNUSED,
-		    char *const *argv ATTRIBUTE_UNUSED,
-		    const char *optstring)
-{
-  /* Start processing options with ARGV-element 1 (since ARGV-element 0
-     is the program name); the sequence of previously skipped
-     non-option ARGV-elements is empty.  */
-
-  first_nonopt = last_nonopt = optind;
-
-  nextchar = NULL;
-
-  posixly_correct = getenv ("POSIXLY_CORRECT");
-
-  /* Determine how to handle the ordering of options and nonoptions.  */
-
-  if (optstring[0] == '-')
-    {
-      ordering = RETURN_IN_ORDER;
-      ++optstring;
-    }
-  else if (optstring[0] == '+')
-    {
-      ordering = REQUIRE_ORDER;
-      ++optstring;
-    }
-  else if (posixly_correct != NULL)
-    ordering = REQUIRE_ORDER;
-  else
-    ordering = PERMUTE;
-
-#ifdef _LIBC
-  if (posixly_correct == NULL
-      && argc == original_argc && argv == original_argv)
-    {
-      if (nonoption_flags_max_len == 0)
-	{
-	  if (__getopt_nonoption_flags == NULL
-	      || __getopt_nonoption_flags[0] == '\0')
-	    nonoption_flags_max_len = -1;
-	  else
-	    {
-	      const char *orig_str = __getopt_nonoption_flags;
-	      int len = nonoption_flags_max_len = strlen (orig_str);
-	      if (nonoption_flags_max_len < argc)
-		nonoption_flags_max_len = argc;
-	      __getopt_nonoption_flags =
-		(char *) malloc (nonoption_flags_max_len);
-	      if (__getopt_nonoption_flags == NULL)
-		nonoption_flags_max_len = -1;
-	      else
-		memset (mempcpy (__getopt_nonoption_flags, orig_str, len),
-			'\0', nonoption_flags_max_len - len);
-	    }
-	}
-      nonoption_flags_len = nonoption_flags_max_len;
-    }
-  else
-    nonoption_flags_len = 0;
-#endif
-
-  return optstring;
-}
-
-/* Scan elements of ARGV (whose length is ARGC) for option characters
-   given in OPTSTRING.
-
-   If an element of ARGV starts with '-', and is not exactly "-" or "--",
-   then it is an option element.  The characters of this element
-   (aside from the initial '-') are option characters.  If `getopt'
-   is called repeatedly, it returns successively each of the option characters
-   from each of the option elements.
-
-   If `getopt' finds another option character, it returns that character,
-   updating `optind' and `nextchar' so that the next call to `getopt' can
-   resume the scan with the following option character or ARGV-element.
-
-   If there are no more option characters, `getopt' returns -1.
-   Then `optind' is the index in ARGV of the first ARGV-element
-   that is not an option.  (The ARGV-elements have been permuted
-   so that those that are not options now come last.)
-
-   OPTSTRING is a string containing the legitimate option characters.
-   If an option character is seen that is not listed in OPTSTRING,
-   return '?' after printing an error message.  If you set `opterr' to
-   zero, the error message is suppressed but we still return '?'.
-
-   If a char in OPTSTRING is followed by a colon, that means it wants an arg,
-   so the following text in the same ARGV-element, or the text of the following
-   ARGV-element, is returned in `optarg'.  Two colons mean an option that
-   wants an optional arg; if there is text in the current ARGV-element,
-   it is returned in `optarg', otherwise `optarg' is set to zero.
-
-   If OPTSTRING starts with `-' or `+', it requests different methods of
-   handling the non-option ARGV-elements.
-   See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above.
-
-   Long-named options begin with `--' instead of `-'.
-   Their names may be abbreviated as long as the abbreviation is unique
-   or is an exact match for some defined option.  If they have an
-   argument, it follows the option name in the same ARGV-element, separated
-   from the option name by a `=', or else the in next ARGV-element.
-   When `getopt' finds a long-named option, it returns 0 if that option's
-   `flag' field is nonzero, the value of the option's `val' field
-   if the `flag' field is zero.
-
-   The elements of ARGV aren't really const, because we permute them.
-   But we pretend they're const in the prototype to be compatible
-   with other systems.
-
-   LONGOPTS is a vector of `struct option' terminated by an
-   element containing a name which is zero.
-
-   LONGIND returns the index in LONGOPT of the long-named option found.
-   It is only valid when a long-named option has been found by the most
-   recent call.
-
-   If LONG_ONLY is nonzero, '-' as well as '--' can introduce
-   long-named options.  */
-
-int
-_getopt_internal (int argc, char *const *argv, const char *optstring,
-                  const struct option *longopts,
-                  int *longind, int long_only)
-{
-  optarg = NULL;
-
-  if (optind == 0 || !__getopt_initialized)
-    {
-      if (optind == 0)
-	optind = 1;	/* Don't scan ARGV[0], the program name.  */
-      optstring = _getopt_initialize (argc, argv, optstring);
-      __getopt_initialized = 1;
-    }
-
-  /* Test whether ARGV[optind] points to a non-option argument.
-     Either it does not have option syntax, or there is an environment flag
-     from the shell indicating it is not an option.  The later information
-     is only used when the used in the GNU libc.  */
-#ifdef _LIBC
-# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0'	      \
-		      || (optind < nonoption_flags_len			      \
-			  && __getopt_nonoption_flags[optind] == '1'))
-#else
-# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0')
-#endif
-
-  if (nextchar == NULL || *nextchar == '\0')
-    {
-      /* Advance to the next ARGV-element.  */
-
-      /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been
-	 moved back by the user (who may also have changed the arguments).  */
-      if (last_nonopt > optind)
-	last_nonopt = optind;
-      if (first_nonopt > optind)
-	first_nonopt = optind;
-
-      if (ordering == PERMUTE)
-	{
-	  /* If we have just processed some options following some non-options,
-	     exchange them so that the options come first.  */
-
-	  if (first_nonopt != last_nonopt && last_nonopt != optind)
-	    exchange ((char **) argv);
-	  else if (last_nonopt != optind)
-	    first_nonopt = optind;
-
-	  /* Skip any additional non-options
-	     and extend the range of non-options previously skipped.  */
-
-	  while (optind < argc && NONOPTION_P)
-	    optind++;
-	  last_nonopt = optind;
-	}
-
-      /* The special ARGV-element `--' means premature end of options.
-	 Skip it like a null option,
-	 then exchange with previous non-options as if it were an option,
-	 then skip everything else like a non-option.  */
-
-      if (optind != argc && !strcmp (argv[optind], "--"))
-	{
-	  optind++;
-
-	  if (first_nonopt != last_nonopt && last_nonopt != optind)
-	    exchange ((char **) argv);
-	  else if (first_nonopt == last_nonopt)
-	    first_nonopt = optind;
-	  last_nonopt = argc;
-
-	  optind = argc;
-	}
-
-      /* If we have done all the ARGV-elements, stop the scan
-	 and back over any non-options that we skipped and permuted.  */
-
-      if (optind == argc)
-	{
-	  /* Set the next-arg-index to point at the non-options
-	     that we previously skipped, so the caller will digest them.  */
-	  if (first_nonopt != last_nonopt)
-	    optind = first_nonopt;
-	  return -1;
-	}
-
-      /* If we have come to a non-option and did not permute it,
-	 either stop the scan or describe it to the caller and pass it by.  */
-
-      if (NONOPTION_P)
-	{
-	  if (ordering == REQUIRE_ORDER)
-	    return -1;
-	  optarg = argv[optind++];
-	  return 1;
-	}
-
-      /* We have found another option-ARGV-element.
-	 Skip the initial punctuation.  */
-
-      nextchar = (argv[optind] + 1
-		  + (longopts != NULL && argv[optind][1] == '-'));
-    }
-
-  /* Decode the current option-ARGV-element.  */
-
-  /* Check whether the ARGV-element is a long option.
-
-     If long_only and the ARGV-element has the form "-f", where f is
-     a valid short option, don't consider it an abbreviated form of
-     a long option that starts with f.  Otherwise there would be no
-     way to give the -f short option.
-
-     On the other hand, if there's a long option "fubar" and
-     the ARGV-element is "-fu", do consider that an abbreviation of
-     the long option, just like "--fu", and not "-f" with arg "u".
-
-     This distinction seems to be the most useful approach.  */
-
-  if (longopts != NULL
-      && (argv[optind][1] == '-'
-	  || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1])))))
-    {
-      char *nameend;
-      const struct option *p;
-      const struct option *pfound = NULL;
-      int exact = 0;
-      int ambig = 0;
-      int indfound = -1;
-      int option_index;
-
-      for (nameend = nextchar; *nameend && *nameend != '='; nameend++)
-	/* Do nothing.  */ ;
-
-      /* Test all long options for either exact match
-	 or abbreviated matches.  */
-      for (p = longopts, option_index = 0; p->name; p++, option_index++)
-	if (!strncmp (p->name, nextchar, nameend - nextchar))
-	  {
-	    if ((unsigned int) (nameend - nextchar)
-		== (unsigned int) strlen (p->name))
-	      {
-		/* Exact match found.  */
-		pfound = p;
-		indfound = option_index;
-		exact = 1;
-		break;
-	      }
-	    else if (pfound == NULL)
-	      {
-		/* First nonexact match found.  */
-		pfound = p;
-		indfound = option_index;
-	      }
-	    else
-	      /* Second or later nonexact match found.  */
-	      ambig = 1;
-	  }
-
-      if (ambig && !exact)
-	{
-	  if (opterr)
-	    fprintf (stderr, _("%s: option `%s' is ambiguous\n"),
-		     argv[0], argv[optind]);
-	  nextchar += strlen (nextchar);
-	  optind++;
-	  optopt = 0;
-	  return '?';
-	}
-
-      if (pfound != NULL)
-	{
-	  option_index = indfound;
-	  optind++;
-	  if (*nameend)
-	    {
-	      /* Don't test has_arg with >, because some C compilers don't
-		 allow it to be used on enums.  */
-	      if (pfound->has_arg)
-		optarg = nameend + 1;
-	      else
-		{
-		  if (opterr)
-		    {
-		      if (argv[optind - 1][1] == '-')
-			/* --option */
-			fprintf (stderr,
-				 _("%s: option `--%s' doesn't allow an argument\n"),
-				 argv[0], pfound->name);
-		      else
-			/* +option or -option */
-			fprintf (stderr,
-				 _("%s: option `%c%s' doesn't allow an argument\n"),
-				 argv[0], argv[optind - 1][0], pfound->name);
-
-		      nextchar += strlen (nextchar);
-
-		      optopt = pfound->val;
-		      return '?';
-		    }
-		}
-	    }
-	  else if (pfound->has_arg == 1)
-	    {
-	      if (optind < argc)
-		optarg = argv[optind++];
-	      else
-		{
-		  if (opterr)
-		    fprintf (stderr,
-			   _("%s: option `%s' requires an argument\n"),
-			   argv[0], argv[optind - 1]);
-		  nextchar += strlen (nextchar);
-		  optopt = pfound->val;
-		  return optstring[0] == ':' ? ':' : '?';
-		}
-	    }
-	  nextchar += strlen (nextchar);
-	  if (longind != NULL)
-	    *longind = option_index;
-	  if (pfound->flag)
-	    {
-	      *(pfound->flag) = pfound->val;
-	      return 0;
-	    }
-	  return pfound->val;
-	}
-
-      /* Can't find it as a long option.  If this is not getopt_long_only,
-	 or the option starts with '--' or is not a valid short
-	 option, then it's an error.
-	 Otherwise interpret it as a short option.  */
-      if (!long_only || argv[optind][1] == '-'
-	  || my_index (optstring, *nextchar) == NULL)
-	{
-	  if (opterr)
-	    {
-	      if (argv[optind][1] == '-')
-		/* --option */
-		fprintf (stderr, _("%s: unrecognized option `--%s'\n"),
-			 argv[0], nextchar);
-	      else
-		/* +option or -option */
-		fprintf (stderr, _("%s: unrecognized option `%c%s'\n"),
-			 argv[0], argv[optind][0], nextchar);
-	    }
-	  nextchar = (char *) "";
-	  optind++;
-	  optopt = 0;
-	  return '?';
-	}
-    }
-
-  /* Look at and handle the next short option-character.  */
-
-  {
-    char c = *nextchar++;
-    char *temp = my_index (optstring, c);
-
-    /* Increment `optind' when we start to process its last character.  */
-    if (*nextchar == '\0')
-      ++optind;
-
-    if (temp == NULL || c == ':')
-      {
-	if (opterr)
-	  {
-	    if (posixly_correct)
-	      /* 1003.2 specifies the format of this message.  */
-	      fprintf (stderr, _("%s: illegal option -- %c\n"),
-		       argv[0], c);
-	    else
-	      fprintf (stderr, _("%s: invalid option -- %c\n"),
-		       argv[0], c);
-	  }
-	optopt = c;
-	return '?';
-      }
-    /* Convenience. Treat POSIX -W foo same as long option --foo */
-    if (temp[0] == 'W' && temp[1] == ';')
-      {
-	char *nameend;
-	const struct option *p;
-	const struct option *pfound = NULL;
-	int exact = 0;
-	int ambig = 0;
-	int indfound = 0;
-	int option_index;
-
-	/* This is an option that requires an argument.  */
-	if (*nextchar != '\0')
-	  {
-	    optarg = nextchar;
-	    /* If we end this ARGV-element by taking the rest as an arg,
-	       we must advance to the next element now.  */
-	    optind++;
-	  }
-	else if (optind == argc)
-	  {
-	    if (opterr)
-	      {
-		/* 1003.2 specifies the format of this message.  */
-		fprintf (stderr, _("%s: option requires an argument -- %c\n"),
-			 argv[0], c);
-	      }
-	    optopt = c;
-	    if (optstring[0] == ':')
-	      c = ':';
-	    else
-	      c = '?';
-	    return c;
-	  }
-	else
-	  /* We already incremented `optind' once;
-	     increment it again when taking next ARGV-elt as argument.  */
-	  optarg = argv[optind++];
-
-	/* optarg is now the argument, see if it's in the
-	   table of longopts.  */
-
-	for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++)
-	  /* Do nothing.  */ ;
-
-	/* Test all long options for either exact match
-	   or abbreviated matches.  */
-	for (p = longopts, option_index = 0; p->name; p++, option_index++)
-	  if (!strncmp (p->name, nextchar, nameend - nextchar))
-	    {
-	      if ((unsigned int) (nameend - nextchar) == strlen (p->name))
-		{
-		  /* Exact match found.  */
-		  pfound = p;
-		  indfound = option_index;
-		  exact = 1;
-		  break;
-		}
-	      else if (pfound == NULL)
-		{
-		  /* First nonexact match found.  */
-		  pfound = p;
-		  indfound = option_index;
-		}
-	      else
-		/* Second or later nonexact match found.  */
-		ambig = 1;
-	    }
-	if (ambig && !exact)
-	  {
-	    if (opterr)
-	      fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"),
-		       argv[0], argv[optind]);
-	    nextchar += strlen (nextchar);
-	    optind++;
-	    return '?';
-	  }
-	if (pfound != NULL)
-	  {
-	    option_index = indfound;
-	    if (*nameend)
-	      {
-		/* Don't test has_arg with >, because some C compilers don't
-		   allow it to be used on enums.  */
-		if (pfound->has_arg)
-		  optarg = nameend + 1;
-		else
-		  {
-		    if (opterr)
-		      fprintf (stderr, _("\
-%s: option `-W %s' doesn't allow an argument\n"),
-			       argv[0], pfound->name);
-
-		    nextchar += strlen (nextchar);
-		    return '?';
-		  }
-	      }
-	    else if (pfound->has_arg == 1)
-	      {
-		if (optind < argc)
-		  optarg = argv[optind++];
-		else
-		  {
-		    if (opterr)
-		      fprintf (stderr,
-			       _("%s: option `%s' requires an argument\n"),
-			       argv[0], argv[optind - 1]);
-		    nextchar += strlen (nextchar);
-		    return optstring[0] == ':' ? ':' : '?';
-		  }
-	      }
-	    nextchar += strlen (nextchar);
-	    if (longind != NULL)
-	      *longind = option_index;
-	    if (pfound->flag)
-	      {
-		*(pfound->flag) = pfound->val;
-		return 0;
-	      }
-	    return pfound->val;
-	  }
-	  nextchar = NULL;
-	  return 'W';	/* Let the application handle it.   */
-      }
-    if (temp[1] == ':')
-      {
-	if (temp[2] == ':')
-	  {
-	    /* This is an option that accepts an argument optionally.  */
-	    if (*nextchar != '\0')
-	      {
-		optarg = nextchar;
-		optind++;
-	      }
-	    else
-	      optarg = NULL;
-	    nextchar = NULL;
-	  }
-	else
-	  {
-	    /* This is an option that requires an argument.  */
-	    if (*nextchar != '\0')
-	      {
-		optarg = nextchar;
-		/* If we end this ARGV-element by taking the rest as an arg,
-		   we must advance to the next element now.  */
-		optind++;
-	      }
-	    else if (optind == argc)
-	      {
-		if (opterr)
-		  {
-		    /* 1003.2 specifies the format of this message.  */
-		    fprintf (stderr,
-			   _("%s: option requires an argument -- %c\n"),
-			   argv[0], c);
-		  }
-		optopt = c;
-		if (optstring[0] == ':')
-		  c = ':';
-		else
-		  c = '?';
-	      }
-	    else
-	      /* We already incremented `optind' once;
-		 increment it again when taking next ARGV-elt as argument.  */
-	      optarg = argv[optind++];
-	    nextchar = NULL;
-	  }
-      }
-    return c;
-  }
-}
-
-int
-getopt (int argc, char *const *argv, const char *optstring)
-{
-  return _getopt_internal (argc, argv, optstring,
-			   (const struct option *) 0,
-			   (int *) 0,
-			   0);
-}
-
-#endif	/* Not ELIDE_CODE.  */
-
-#ifdef TEST
-
-/* Compile with -DTEST to make an executable for use in testing
-   the above definition of `getopt'.  */
-
-int
-main (int argc, char **argv)
-{
-  int c;
-  int digit_optind = 0;
-
-  while (1)
-    {
-      int this_option_optind = optind ? optind : 1;
-
-      c = getopt (argc, argv, "abc:d:0123456789");
-      if (c == -1)
-	break;
-
-      switch (c)
-	{
-	case '0':
-	case '1':
-	case '2':
-	case '3':
-	case '4':
-	case '5':
-	case '6':
-	case '7':
-	case '8':
-	case '9':
-	  if (digit_optind != 0 && digit_optind != this_option_optind)
-	    printf ("digits occur in two different argv-elements.\n");
-	  digit_optind = this_option_optind;
-	  printf ("option %c\n", c);
-	  break;
-
-	case 'a':
-	  printf ("option a\n");
-	  break;
-
-	case 'b':
-	  printf ("option b\n");
-	  break;
-
-	case 'c':
-	  printf ("option c with value `%s'\n", optarg);
-	  break;
-
-	case '?':
-	  break;
-
-	default:
-	  printf ("?? getopt returned character code 0%o ??\n", c);
-	}
-    }
-
-  if (optind < argc)
-    {
-      printf ("non-option ARGV-elements: ");
-      while (optind < argc)
-	printf ("%s ", argv[optind++]);
-      printf ("\n");
-    }
-
-  exit (0);
-}
-
-#endif /* TEST */
diff --git a/libiberty/getopt1.c b/libiberty/getopt1.c
deleted file mode 100644
index 255b144..0000000
--- a/libiberty/getopt1.c
+++ /dev/null
@@ -1,180 +0,0 @@
-/* getopt_long and getopt_long_only entry points for GNU getopt.
-   Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98,2005
-     Free Software Foundation, Inc.
-
-   NOTE: This source is derived from an old version taken from the GNU C
-   Library (glibc).
-
-   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, 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301,
-   USA.  */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#if !defined __STDC__ || !__STDC__
-/* This is a separate conditional since some stdc systems
-   reject `defined (const)'.  */
-#ifndef const
-#define const
-#endif
-#endif
-
-#include <stdio.h>
-
-#include "getopt.h"
-
-/* Comment out all this code if we are using the GNU C Library, and are not
-   actually compiling the library itself.  This code is part of the GNU C
-   Library, but also included in many other GNU distributions.  Compiling
-   and linking in this code is a waste when using the GNU C library
-   (especially if it is a shared library).  Rather than having every GNU
-   program understand `configure --with-gnu-libc' and omit the object files,
-   it is simpler to just do this in the source for each such file.  */
-
-#define GETOPT_INTERFACE_VERSION 2
-#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2
-#include <gnu-versions.h>
-#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
-#define ELIDE_CODE
-#endif
-#endif
-
-#ifndef ELIDE_CODE
-
-
-/* This needs to come after some library #include
-   to get __GNU_LIBRARY__ defined.  */
-#ifdef __GNU_LIBRARY__
-#include <stdlib.h>
-#endif
-
-#ifndef	NULL
-#define NULL 0
-#endif
-
-int
-getopt_long (int argc,  char *const *argv,  const char *options,
-             const struct option *long_options, int *opt_index)
-{
-  return _getopt_internal (argc, argv, options, long_options, opt_index, 0);
-}
-
-/* Like getopt_long, but '-' as well as '--' can indicate a long option.
-   If an option that starts with '-' (not '--') doesn't match a long option,
-   but does match a short option, it is parsed as a short option
-   instead.  */
-
-int
-getopt_long_only (int argc, char *const *argv, const char *options,
-                  const struct option *long_options, int *opt_index)
-{
-  return _getopt_internal (argc, argv, options, long_options, opt_index, 1);
-}
-
-
-#endif	/* Not ELIDE_CODE.  */
-
-#ifdef TEST
-
-#include <stdio.h>
-
-int
-main (int argc, char **argv)
-{
-  int c;
-  int digit_optind = 0;
-
-  while (1)
-    {
-      int this_option_optind = optind ? optind : 1;
-      int option_index = 0;
-      static struct option long_options[] =
-      {
-	{"add", 1, 0, 0},
-	{"append", 0, 0, 0},
-	{"delete", 1, 0, 0},
-	{"verbose", 0, 0, 0},
-	{"create", 0, 0, 0},
-	{"file", 1, 0, 0},
-	{0, 0, 0, 0}
-      };
-
-      c = getopt_long (argc, argv, "abc:d:0123456789",
-		       long_options, &option_index);
-      if (c == -1)
-	break;
-
-      switch (c)
-	{
-	case 0:
-	  printf ("option %s", long_options[option_index].name);
-	  if (optarg)
-	    printf (" with arg %s", optarg);
-	  printf ("\n");
-	  break;
-
-	case '0':
-	case '1':
-	case '2':
-	case '3':
-	case '4':
-	case '5':
-	case '6':
-	case '7':
-	case '8':
-	case '9':
-	  if (digit_optind != 0 && digit_optind != this_option_optind)
-	    printf ("digits occur in two different argv-elements.\n");
-	  digit_optind = this_option_optind;
-	  printf ("option %c\n", c);
-	  break;
-
-	case 'a':
-	  printf ("option a\n");
-	  break;
-
-	case 'b':
-	  printf ("option b\n");
-	  break;
-
-	case 'c':
-	  printf ("option c with value `%s'\n", optarg);
-	  break;
-
-	case 'd':
-	  printf ("option d with value `%s'\n", optarg);
-	  break;
-
-	case '?':
-	  break;
-
-	default:
-	  printf ("?? getopt returned character code 0%o ??\n", c);
-	}
-    }
-
-  if (optind < argc)
-    {
-      printf ("non-option ARGV-elements: ");
-      while (optind < argc)
-	printf ("%s ", argv[optind++]);
-      printf ("\n");
-    }
-
-  exit (0);
-}
-
-#endif /* TEST */
diff --git a/libiberty/getpagesize.c b/libiberty/getpagesize.c
deleted file mode 100644
index 1c3a263..0000000
--- a/libiberty/getpagesize.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/* Emulation of getpagesize() for systems that need it. */
-
-/*
-
-@deftypefn Supplemental int getpagesize (void)
-
-Returns the number of bytes in a page of memory.  This is the
-granularity of many of the system memory management routines.  No
-guarantee is made as to whether or not it is the same as the basic
-memory management hardware page size.
-
-@end deftypefn
-
-BUGS
-
-	Is intended as a reasonable replacement for systems where this
-	is not provided as a system call.  The value of 4096 may or may
-	not be correct for the systems where it is returned as the default
-	value.
-
-*/
-
-#ifndef VMS
-
-#include "config.h"
-
-#include <sys/types.h>
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-
-#undef GNU_OUR_PAGESIZE
-#if defined (HAVE_SYSCONF) && defined (HAVE_UNISTD_H)
-#include <unistd.h>
-#ifdef _SC_PAGESIZE
-#define GNU_OUR_PAGESIZE sysconf(_SC_PAGESIZE)
-#endif
-#endif
-
-#ifndef GNU_OUR_PAGESIZE
-# ifdef	PAGESIZE
-#  define	GNU_OUR_PAGESIZE PAGESIZE
-# else	/* no PAGESIZE */
-#  ifdef	EXEC_PAGESIZE
-#   define	GNU_OUR_PAGESIZE EXEC_PAGESIZE
-#  else	/* no EXEC_PAGESIZE */
-#   ifdef	NBPG
-#    define	GNU_OUR_PAGESIZE (NBPG * CLSIZE)
-#    ifndef	CLSIZE
-#     define	CLSIZE 1
-#    endif	/* CLSIZE */
-#   else	/* no NBPG */
-#    ifdef	NBPC
-#     define	GNU_OUR_PAGESIZE NBPC
-#    else	/* no NBPC */
-#     define	GNU_OUR_PAGESIZE 4096	/* Just punt and use reasonable value */
-#    endif /* NBPC */
-#   endif /* NBPG */
-#  endif /* EXEC_PAGESIZE */
-# endif /* PAGESIZE */
-#endif /* GNU_OUR_PAGESIZE */
-
-int
-getpagesize (void)
-{
-  return (GNU_OUR_PAGESIZE);
-}
-
-#else /* VMS */
-
-#if 0	/* older distributions of gcc-vms are missing <syidef.h> */
-#include <syidef.h>
-#endif
-#ifndef SYI$_PAGE_SIZE	/* VMS V5.4 and earlier didn't have this yet */
-#define SYI$_PAGE_SIZE 4452
-#endif
-extern unsigned long lib$getsyi(const unsigned short *,...);
-
-int getpagesize (void)
-{
-  long pagsiz = 0L;
-  unsigned short itmcod = SYI$_PAGE_SIZE;
-
-  (void) lib$getsyi (&itmcod, (void *) &pagsiz);
-  if (pagsiz == 0L)
-    pagsiz = 512L;	/* VAX default */
-  return (int) pagsiz;
-}
-
-#endif /* VMS */
diff --git a/libiberty/getpwd.c b/libiberty/getpwd.c
deleted file mode 100644
index fa5c132..0000000
--- a/libiberty/getpwd.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/* getpwd.c - get the working directory */
-
-/*
-
-@deftypefn Supplemental char* getpwd (void)
-
-Returns the current working directory.  This implementation caches the
-result on the assumption that the process will not call @code{chdir}
-between calls to @code{getpwd}.
-
-@end deftypefn
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <sys/types.h>
-
-#include <errno.h>
-#ifndef errno
-extern int errno;
-#endif
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#if HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-#if HAVE_LIMITS_H
-#include <limits.h>
-#endif
-
-#include "libiberty.h"
-
-/* Virtually every UN*X system now in common use (except for pre-4.3-tahoe
-   BSD systems) now provides getcwd as called for by POSIX.  Allow for
-   the few exceptions to the general rule here.  */
-
-#if !defined(HAVE_GETCWD) && defined(HAVE_GETWD)
-/* Prototype in case the system headers doesn't provide it. */
-extern char *getwd ();
-#define getcwd(buf,len) getwd(buf)
-#endif
-
-#ifdef MAXPATHLEN
-#define GUESSPATHLEN (MAXPATHLEN + 1)
-#else
-#define GUESSPATHLEN 100
-#endif
-
-#if !(defined (VMS) || (defined(_WIN32) && !defined(__CYGWIN__)))
-
-/* Get the working directory.  Use the PWD environment variable if it's
-   set correctly, since this is faster and gives more uniform answers
-   to the user.  Yield the working directory if successful; otherwise,
-   yield 0 and set errno.  */
-
-char *
-getpwd (void)
-{
-  static char *pwd;
-  static int failure_errno;
-
-  char *p = pwd;
-  size_t s;
-  struct stat dotstat, pwdstat;
-
-  if (!p && !(errno = failure_errno))
-    {
-      if (! ((p = getenv ("PWD")) != 0
-	     && *p == '/'
-	     && stat (p, &pwdstat) == 0
-	     && stat (".", &dotstat) == 0
-	     && dotstat.st_ino == pwdstat.st_ino
-	     && dotstat.st_dev == pwdstat.st_dev))
-
-	/* The shortcut didn't work.  Try the slow, ``sure'' way.  */
-	for (s = GUESSPATHLEN;  !getcwd (p = XNEWVEC (char, s), s);  s *= 2)
-	  {
-	    int e = errno;
-	    free (p);
-#ifdef ERANGE
-	    if (e != ERANGE)
-#endif
-	      {
-		errno = failure_errno = e;
-		p = 0;
-		break;
-	      }
-	  }
-
-      /* Cache the result.  This assumes that the program does
-	 not invoke chdir between calls to getpwd.  */
-      pwd = p;
-    }
-  return p;
-}
-
-#else	/* VMS || _WIN32 && !__CYGWIN__ */
-
-#ifndef MAXPATHLEN
-#define MAXPATHLEN 255
-#endif
-
-char *
-getpwd (void)
-{
-  static char *pwd = 0;
-
-  if (!pwd)
-    pwd = getcwd (XNEWVEC (char, MAXPATHLEN + 1), MAXPATHLEN + 1
-#ifdef VMS
-		  , 0
-#endif
-		  );
-  return pwd;
-}
-
-#endif	/* VMS || _WIN32 && !__CYGWIN__ */
diff --git a/libiberty/getruntime.c b/libiberty/getruntime.c
deleted file mode 100644
index 82f3d2e..0000000
--- a/libiberty/getruntime.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/* Return time used so far, in microseconds.
-   Copyright (C) 1994, 1999, 2002 Free Software Foundation, Inc.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#include "config.h"
-
-#include "ansidecl.h"
-#include "libiberty.h"
-
-/* On some systems (such as WindISS), you must include <sys/types.h>
-   to get the definition of "time_t" before you include <time.h>.  */
-#include <sys/types.h>
-
-/* There are several ways to get elapsed execution time; unfortunately no
-   single way is available for all host systems, nor are there reliable
-   ways to find out which way is correct for a given host. */
-
-#ifdef TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-#  include <sys/time.h>
-# else
-#  ifdef HAVE_TIME_H
-#   include <time.h>
-#  endif
-# endif
-#endif
-
-#if defined (HAVE_GETRUSAGE) && defined (HAVE_SYS_RESOURCE_H)
-#include <sys/resource.h>
-#endif
-
-#ifdef HAVE_TIMES
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#include <sys/times.h>
-#endif
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-/* This is a fallback; if wrong, it will likely make obviously wrong
-   results. */
-
-#ifndef CLOCKS_PER_SEC
-#define CLOCKS_PER_SEC 1
-#endif
-
-#ifdef _SC_CLK_TCK
-#define GNU_HZ  sysconf(_SC_CLK_TCK)
-#else
-#ifdef HZ
-#define GNU_HZ  HZ
-#else
-#ifdef CLOCKS_PER_SEC
-#define GNU_HZ  CLOCKS_PER_SEC
-#endif
-#endif
-#endif
-
-/*
-
-@deftypefn Replacement long get_run_time (void)
-
-Returns the time used so far, in microseconds.  If possible, this is
-the time used by this process, else it is the elapsed time since the
-process started.
-
-@end deftypefn
-
-*/
-
-long
-get_run_time (void)
-{
-#if defined (HAVE_GETRUSAGE) && defined (HAVE_SYS_RESOURCE_H)
-  struct rusage rusage;
-
-  getrusage (0, &rusage);
-  return (rusage.ru_utime.tv_sec * 1000000 + rusage.ru_utime.tv_usec
-	  + rusage.ru_stime.tv_sec * 1000000 + rusage.ru_stime.tv_usec);
-#else /* ! HAVE_GETRUSAGE */
-#ifdef HAVE_TIMES
-  struct tms tms;
-
-  times (&tms);
-  return (tms.tms_utime + tms.tms_stime) * (1000000 / GNU_HZ);
-#else /* ! HAVE_TIMES */
-  /* Fall back on clock and hope it's correctly implemented. */
-  const long clocks_per_sec = CLOCKS_PER_SEC;
-  if (clocks_per_sec <= 1000000)
-    return clock () * (1000000 / clocks_per_sec);
-  else
-    return clock () / clocks_per_sec;
-#endif  /* HAVE_TIMES */
-#endif  /* HAVE_GETRUSAGE */
-}
diff --git a/libiberty/gettimeofday.c b/libiberty/gettimeofday.c
deleted file mode 100644
index fca1679..0000000
--- a/libiberty/gettimeofday.c
+++ /dev/null
@@ -1,30 +0,0 @@
-#include "config.h"
-#include "libiberty.h"
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-
-/* 
-
-@deftypefn Supplemental int gettimeofday (struct timeval *@var{tp}, void *@var{tz})
-
-Writes the current time to @var{tp}.  This implementation requires
-that @var{tz} be NULL.  Returns 0 on success, -1 on failure.
-
-@end deftypefn
-
-*/ 
-
-int
-gettimeofday (struct timeval *tp, void *tz)
-{
-  if (tz)
-    abort ();
-  tp->tv_usec = 0;
-  if (time (&tp->tv_sec) == (time_t) -1)
-    return -1;
-  return 0;
-}
diff --git a/libiberty/hashtab.c b/libiberty/hashtab.c
deleted file mode 100644
index a5671a0..0000000
--- a/libiberty/hashtab.c
+++ /dev/null
@@ -1,934 +0,0 @@
-/* An expandable hash tables datatype.  
-   Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
-   Free Software Foundation, Inc.
-   Contributed by Vladimir Makarov (vmakarov@cygnus.com).
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-/* This package implements basic hash table functionality.  It is possible
-   to search for an entry, create an entry and destroy an entry.
-
-   Elements in the table are generic pointers.
-
-   The size of the table is not fixed; if the occupancy of the table
-   grows too high the hash table will be expanded.
-
-   The abstract data implementation is based on generalized Algorithm D
-   from Knuth's book "The art of computer programming".  Hash table is
-   expanded by creation of new hash table and transferring elements from
-   the old table to the new table. */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <sys/types.h>
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-#ifdef HAVE_MALLOC_H
-#include <malloc.h>
-#endif
-#ifdef HAVE_LIMITS_H
-#include <limits.h>
-#endif
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
-
-#include <stdio.h>
-
-#include "libiberty.h"
-#include "ansidecl.h"
-#include "hashtab.h"
-
-#ifndef CHAR_BIT
-#define CHAR_BIT 8
-#endif
-
-static unsigned int higher_prime_index (unsigned long);
-static hashval_t htab_mod_1 (hashval_t, hashval_t, hashval_t, int);
-static hashval_t htab_mod (hashval_t, htab_t);
-static hashval_t htab_mod_m2 (hashval_t, htab_t);
-static hashval_t hash_pointer (const void *);
-static int eq_pointer (const void *, const void *);
-static int htab_expand (htab_t);
-static PTR *find_empty_slot_for_expand (htab_t, hashval_t);
-
-/* At some point, we could make these be NULL, and modify the
-   hash-table routines to handle NULL specially; that would avoid
-   function-call overhead for the common case of hashing pointers.  */
-htab_hash htab_hash_pointer = hash_pointer;
-htab_eq htab_eq_pointer = eq_pointer;
-
-/* Table of primes and multiplicative inverses.
-
-   Note that these are not minimally reduced inverses.  Unlike when generating
-   code to divide by a constant, we want to be able to use the same algorithm
-   all the time.  All of these inverses (are implied to) have bit 32 set.
-
-   For the record, here's the function that computed the table; it's a 
-   vastly simplified version of the function of the same name from gcc.  */
-
-#if 0
-unsigned int
-ceil_log2 (unsigned int x)
-{
-  int i;
-  for (i = 31; i >= 0 ; --i)
-    if (x > (1u << i))
-      return i+1;
-  abort ();
-}
-
-unsigned int
-choose_multiplier (unsigned int d, unsigned int *mlp, unsigned char *shiftp)
-{
-  unsigned long long mhigh;
-  double nx;
-  int lgup, post_shift;
-  int pow, pow2;
-  int n = 32, precision = 32;
-
-  lgup = ceil_log2 (d);
-  pow = n + lgup;
-  pow2 = n + lgup - precision;
-
-  nx = ldexp (1.0, pow) + ldexp (1.0, pow2);
-  mhigh = nx / d;
-
-  *shiftp = lgup - 1;
-  *mlp = mhigh;
-  return mhigh >> 32;
-}
-#endif
-
-struct prime_ent
-{
-  hashval_t prime;
-  hashval_t inv;
-  hashval_t inv_m2;	/* inverse of prime-2 */
-  hashval_t shift;
-};
-
-static struct prime_ent const prime_tab[] = {
-  {          7, 0x24924925, 0x9999999b, 2 },
-  {         13, 0x3b13b13c, 0x745d1747, 3 },
-  {         31, 0x08421085, 0x1a7b9612, 4 },
-  {         61, 0x0c9714fc, 0x15b1e5f8, 5 },
-  {        127, 0x02040811, 0x0624dd30, 6 },
-  {        251, 0x05197f7e, 0x073260a5, 7 },
-  {        509, 0x01824366, 0x02864fc8, 8 },
-  {       1021, 0x00c0906d, 0x014191f7, 9 },
-  {       2039, 0x0121456f, 0x0161e69e, 10 },
-  {       4093, 0x00300902, 0x00501908, 11 },
-  {       8191, 0x00080041, 0x00180241, 12 },
-  {      16381, 0x000c0091, 0x00140191, 13 },
-  {      32749, 0x002605a5, 0x002a06e6, 14 },
-  {      65521, 0x000f00e2, 0x00110122, 15 },
-  {     131071, 0x00008001, 0x00018003, 16 },
-  {     262139, 0x00014002, 0x0001c004, 17 },
-  {     524287, 0x00002001, 0x00006001, 18 },
-  {    1048573, 0x00003001, 0x00005001, 19 },
-  {    2097143, 0x00004801, 0x00005801, 20 },
-  {    4194301, 0x00000c01, 0x00001401, 21 },
-  {    8388593, 0x00001e01, 0x00002201, 22 },
-  {   16777213, 0x00000301, 0x00000501, 23 },
-  {   33554393, 0x00001381, 0x00001481, 24 },
-  {   67108859, 0x00000141, 0x000001c1, 25 },
-  {  134217689, 0x000004e1, 0x00000521, 26 },
-  {  268435399, 0x00000391, 0x000003b1, 27 },
-  {  536870909, 0x00000019, 0x00000029, 28 },
-  { 1073741789, 0x0000008d, 0x00000095, 29 },
-  { 2147483647, 0x00000003, 0x00000007, 30 },
-  /* Avoid "decimal constant so large it is unsigned" for 4294967291.  */
-  { 0xfffffffb, 0x00000006, 0x00000008, 31 }
-};
-
-/* The following function returns an index into the above table of the
-   nearest prime number which is greater than N, and near a power of two. */
-
-static unsigned int
-higher_prime_index (unsigned long n)
-{
-  unsigned int low = 0;
-  unsigned int high = sizeof(prime_tab) / sizeof(prime_tab[0]);
-
-  while (low != high)
-    {
-      unsigned int mid = low + (high - low) / 2;
-      if (n > prime_tab[mid].prime)
-	low = mid + 1;
-      else
-	high = mid;
-    }
-
-  /* If we've run out of primes, abort.  */
-  if (n > prime_tab[low].prime)
-    {
-      fprintf (stderr, "Cannot find prime bigger than %lu\n", n);
-      abort ();
-    }
-
-  return low;
-}
-
-/* Returns a hash code for P.  */
-
-static hashval_t
-hash_pointer (const PTR p)
-{
-  return (hashval_t) ((long)p >> 3);
-}
-
-/* Returns non-zero if P1 and P2 are equal.  */
-
-static int
-eq_pointer (const PTR p1, const PTR p2)
-{
-  return p1 == p2;
-}
-
-
-/* The parens around the function names in the next two definitions
-   are essential in order to prevent macro expansions of the name.
-   The bodies, however, are expanded as expected, so they are not
-   recursive definitions.  */
-
-/* Return the current size of given hash table.  */
-
-#define htab_size(htab)  ((htab)->size)
-
-size_t
-(htab_size) (htab_t htab)
-{
-  return htab_size (htab);
-}
-
-/* Return the current number of elements in given hash table. */
-
-#define htab_elements(htab)  ((htab)->n_elements - (htab)->n_deleted)
-
-size_t
-(htab_elements) (htab_t htab)
-{
-  return htab_elements (htab);
-}
-
-/* Return X % Y.  */
-
-static inline hashval_t
-htab_mod_1 (hashval_t x, hashval_t y, hashval_t inv, int shift)
-{
-  /* The multiplicative inverses computed above are for 32-bit types, and
-     requires that we be able to compute a highpart multiply.  */
-#ifdef UNSIGNED_64BIT_TYPE
-  __extension__ typedef UNSIGNED_64BIT_TYPE ull;
-  if (sizeof (hashval_t) * CHAR_BIT <= 32)
-    {
-      hashval_t t1, t2, t3, t4, q, r;
-
-      t1 = ((ull)x * inv) >> 32;
-      t2 = x - t1;
-      t3 = t2 >> 1;
-      t4 = t1 + t3;
-      q  = t4 >> shift;
-      r  = x - (q * y);
-
-      return r;
-    }
-#endif
-
-  /* Otherwise just use the native division routines.  */
-  return x % y;
-}
-
-/* Compute the primary hash for HASH given HTAB's current size.  */
-
-static inline hashval_t
-htab_mod (hashval_t hash, htab_t htab)
-{
-  const struct prime_ent *p = &prime_tab[htab->size_prime_index];
-  return htab_mod_1 (hash, p->prime, p->inv, p->shift);
-}
-
-/* Compute the secondary hash for HASH given HTAB's current size.  */
-
-static inline hashval_t
-htab_mod_m2 (hashval_t hash, htab_t htab)
-{
-  const struct prime_ent *p = &prime_tab[htab->size_prime_index];
-  return 1 + htab_mod_1 (hash, p->prime - 2, p->inv_m2, p->shift);
-}
-
-/* This function creates table with length slightly longer than given
-   source length.  Created hash table is initiated as empty (all the
-   hash table entries are HTAB_EMPTY_ENTRY).  The function returns the
-   created hash table, or NULL if memory allocation fails.  */
-
-htab_t
-htab_create_alloc (size_t size, htab_hash hash_f, htab_eq eq_f,
-                   htab_del del_f, htab_alloc alloc_f, htab_free free_f)
-{
-  htab_t result;
-  unsigned int size_prime_index;
-
-  size_prime_index = higher_prime_index (size);
-  size = prime_tab[size_prime_index].prime;
-
-  result = (htab_t) (*alloc_f) (1, sizeof (struct htab));
-  if (result == NULL)
-    return NULL;
-  result->entries = (PTR *) (*alloc_f) (size, sizeof (PTR));
-  if (result->entries == NULL)
-    {
-      if (free_f != NULL)
-	(*free_f) (result);
-      return NULL;
-    }
-  result->size = size;
-  result->size_prime_index = size_prime_index;
-  result->hash_f = hash_f;
-  result->eq_f = eq_f;
-  result->del_f = del_f;
-  result->alloc_f = alloc_f;
-  result->free_f = free_f;
-  return result;
-}
-
-/* As above, but use the variants of alloc_f and free_f which accept
-   an extra argument.  */
-
-htab_t
-htab_create_alloc_ex (size_t size, htab_hash hash_f, htab_eq eq_f,
-                      htab_del del_f, void *alloc_arg,
-                      htab_alloc_with_arg alloc_f,
-		      htab_free_with_arg free_f)
-{
-  htab_t result;
-  unsigned int size_prime_index;
-
-  size_prime_index = higher_prime_index (size);
-  size = prime_tab[size_prime_index].prime;
-
-  result = (htab_t) (*alloc_f) (alloc_arg, 1, sizeof (struct htab));
-  if (result == NULL)
-    return NULL;
-  result->entries = (PTR *) (*alloc_f) (alloc_arg, size, sizeof (PTR));
-  if (result->entries == NULL)
-    {
-      if (free_f != NULL)
-	(*free_f) (alloc_arg, result);
-      return NULL;
-    }
-  result->size = size;
-  result->size_prime_index = size_prime_index;
-  result->hash_f = hash_f;
-  result->eq_f = eq_f;
-  result->del_f = del_f;
-  result->alloc_arg = alloc_arg;
-  result->alloc_with_arg_f = alloc_f;
-  result->free_with_arg_f = free_f;
-  return result;
-}
-
-/* Update the function pointers and allocation parameter in the htab_t.  */
-
-void
-htab_set_functions_ex (htab_t htab, htab_hash hash_f, htab_eq eq_f,
-                       htab_del del_f, PTR alloc_arg,
-                       htab_alloc_with_arg alloc_f, htab_free_with_arg free_f)
-{
-  htab->hash_f = hash_f;
-  htab->eq_f = eq_f;
-  htab->del_f = del_f;
-  htab->alloc_arg = alloc_arg;
-  htab->alloc_with_arg_f = alloc_f;
-  htab->free_with_arg_f = free_f;
-}
-
-/* These functions exist solely for backward compatibility.  */
-
-#undef htab_create
-htab_t
-htab_create (size_t size, htab_hash hash_f, htab_eq eq_f, htab_del del_f)
-{
-  return htab_create_alloc (size, hash_f, eq_f, del_f, xcalloc, free);
-}
-
-htab_t
-htab_try_create (size_t size, htab_hash hash_f, htab_eq eq_f, htab_del del_f)
-{
-  return htab_create_alloc (size, hash_f, eq_f, del_f, calloc, free);
-}
-
-/* This function frees all memory allocated for given hash table.
-   Naturally the hash table must already exist. */
-
-void
-htab_delete (htab_t htab)
-{
-  size_t size = htab_size (htab);
-  PTR *entries = htab->entries;
-  int i;
-
-  if (htab->del_f)
-    for (i = size - 1; i >= 0; i--)
-      if (entries[i] != HTAB_EMPTY_ENTRY && entries[i] != HTAB_DELETED_ENTRY)
-	(*htab->del_f) (entries[i]);
-
-  if (htab->free_f != NULL)
-    {
-      (*htab->free_f) (entries);
-      (*htab->free_f) (htab);
-    }
-  else if (htab->free_with_arg_f != NULL)
-    {
-      (*htab->free_with_arg_f) (htab->alloc_arg, entries);
-      (*htab->free_with_arg_f) (htab->alloc_arg, htab);
-    }
-}
-
-/* This function clears all entries in the given hash table.  */
-
-void
-htab_empty (htab_t htab)
-{
-  size_t size = htab_size (htab);
-  PTR *entries = htab->entries;
-  int i;
-
-  if (htab->del_f)
-    for (i = size - 1; i >= 0; i--)
-      if (entries[i] != HTAB_EMPTY_ENTRY && entries[i] != HTAB_DELETED_ENTRY)
-	(*htab->del_f) (entries[i]);
-
-  memset (entries, 0, size * sizeof (PTR));
-}
-
-/* Similar to htab_find_slot, but without several unwanted side effects:
-    - Does not call htab->eq_f when it finds an existing entry.
-    - Does not change the count of elements/searches/collisions in the
-      hash table.
-   This function also assumes there are no deleted entries in the table.
-   HASH is the hash value for the element to be inserted.  */
-
-static PTR *
-find_empty_slot_for_expand (htab_t htab, hashval_t hash)
-{
-  hashval_t index = htab_mod (hash, htab);
-  size_t size = htab_size (htab);
-  PTR *slot = htab->entries + index;
-  hashval_t hash2;
-
-  if (*slot == HTAB_EMPTY_ENTRY)
-    return slot;
-  else if (*slot == HTAB_DELETED_ENTRY)
-    abort ();
-
-  hash2 = htab_mod_m2 (hash, htab);
-  for (;;)
-    {
-      index += hash2;
-      if (index >= size)
-	index -= size;
-
-      slot = htab->entries + index;
-      if (*slot == HTAB_EMPTY_ENTRY)
-	return slot;
-      else if (*slot == HTAB_DELETED_ENTRY)
-	abort ();
-    }
-}
-
-/* The following function changes size of memory allocated for the
-   entries and repeatedly inserts the table elements.  The occupancy
-   of the table after the call will be about 50%.  Naturally the hash
-   table must already exist.  Remember also that the place of the
-   table entries is changed.  If memory allocation failures are allowed,
-   this function will return zero, indicating that the table could not be
-   expanded.  If all goes well, it will return a non-zero value.  */
-
-static int
-htab_expand (htab_t htab)
-{
-  PTR *oentries;
-  PTR *olimit;
-  PTR *p;
-  PTR *nentries;
-  size_t nsize, osize, elts;
-  unsigned int oindex, nindex;
-
-  oentries = htab->entries;
-  oindex = htab->size_prime_index;
-  osize = htab->size;
-  olimit = oentries + osize;
-  elts = htab_elements (htab);
-
-  /* Resize only when table after removal of unused elements is either
-     too full or too empty.  */
-  if (elts * 2 > osize || (elts * 8 < osize && osize > 32))
-    {
-      nindex = higher_prime_index (elts * 2);
-      nsize = prime_tab[nindex].prime;
-    }
-  else
-    {
-      nindex = oindex;
-      nsize = osize;
-    }
-
-  if (htab->alloc_with_arg_f != NULL)
-    nentries = (PTR *) (*htab->alloc_with_arg_f) (htab->alloc_arg, nsize,
-						  sizeof (PTR *));
-  else
-    nentries = (PTR *) (*htab->alloc_f) (nsize, sizeof (PTR *));
-  if (nentries == NULL)
-    return 0;
-  htab->entries = nentries;
-  htab->size = nsize;
-  htab->size_prime_index = nindex;
-  htab->n_elements -= htab->n_deleted;
-  htab->n_deleted = 0;
-
-  p = oentries;
-  do
-    {
-      PTR x = *p;
-
-      if (x != HTAB_EMPTY_ENTRY && x != HTAB_DELETED_ENTRY)
-	{
-	  PTR *q = find_empty_slot_for_expand (htab, (*htab->hash_f) (x));
-
-	  *q = x;
-	}
-
-      p++;
-    }
-  while (p < olimit);
-
-  if (htab->free_f != NULL)
-    (*htab->free_f) (oentries);
-  else if (htab->free_with_arg_f != NULL)
-    (*htab->free_with_arg_f) (htab->alloc_arg, oentries);
-  return 1;
-}
-
-/* This function searches for a hash table entry equal to the given
-   element.  It cannot be used to insert or delete an element.  */
-
-PTR
-htab_find_with_hash (htab_t htab, const PTR element, hashval_t hash)
-{
-  hashval_t index, hash2;
-  size_t size;
-  PTR entry;
-
-  htab->searches++;
-  size = htab_size (htab);
-  index = htab_mod (hash, htab);
-
-  entry = htab->entries[index];
-  if (entry == HTAB_EMPTY_ENTRY
-      || (entry != HTAB_DELETED_ENTRY && (*htab->eq_f) (entry, element)))
-    return entry;
-
-  hash2 = htab_mod_m2 (hash, htab);
-  for (;;)
-    {
-      htab->collisions++;
-      index += hash2;
-      if (index >= size)
-	index -= size;
-
-      entry = htab->entries[index];
-      if (entry == HTAB_EMPTY_ENTRY
-	  || (entry != HTAB_DELETED_ENTRY && (*htab->eq_f) (entry, element)))
-	return entry;
-    }
-}
-
-/* Like htab_find_slot_with_hash, but compute the hash value from the
-   element.  */
-
-PTR
-htab_find (htab_t htab, const PTR element)
-{
-  return htab_find_with_hash (htab, element, (*htab->hash_f) (element));
-}
-
-/* This function searches for a hash table slot containing an entry
-   equal to the given element.  To delete an entry, call this with
-   insert=NO_INSERT, then call htab_clear_slot on the slot returned
-   (possibly after doing some checks).  To insert an entry, call this
-   with insert=INSERT, then write the value you want into the returned
-   slot.  When inserting an entry, NULL may be returned if memory
-   allocation fails.  */
-
-PTR *
-htab_find_slot_with_hash (htab_t htab, const PTR element,
-                          hashval_t hash, enum insert_option insert)
-{
-  PTR *first_deleted_slot;
-  hashval_t index, hash2;
-  size_t size;
-  PTR entry;
-
-  size = htab_size (htab);
-  if (insert == INSERT && size * 3 <= htab->n_elements * 4)
-    {
-      if (htab_expand (htab) == 0)
-	return NULL;
-      size = htab_size (htab);
-    }
-
-  index = htab_mod (hash, htab);
-
-  htab->searches++;
-  first_deleted_slot = NULL;
-
-  entry = htab->entries[index];
-  if (entry == HTAB_EMPTY_ENTRY)
-    goto empty_entry;
-  else if (entry == HTAB_DELETED_ENTRY)
-    first_deleted_slot = &htab->entries[index];
-  else if ((*htab->eq_f) (entry, element))
-    return &htab->entries[index];
-      
-  hash2 = htab_mod_m2 (hash, htab);
-  for (;;)
-    {
-      htab->collisions++;
-      index += hash2;
-      if (index >= size)
-	index -= size;
-      
-      entry = htab->entries[index];
-      if (entry == HTAB_EMPTY_ENTRY)
-	goto empty_entry;
-      else if (entry == HTAB_DELETED_ENTRY)
-	{
-	  if (!first_deleted_slot)
-	    first_deleted_slot = &htab->entries[index];
-	}
-      else if ((*htab->eq_f) (entry, element))
-	return &htab->entries[index];
-    }
-
- empty_entry:
-  if (insert == NO_INSERT)
-    return NULL;
-
-  if (first_deleted_slot)
-    {
-      htab->n_deleted--;
-      *first_deleted_slot = HTAB_EMPTY_ENTRY;
-      return first_deleted_slot;
-    }
-
-  htab->n_elements++;
-  return &htab->entries[index];
-}
-
-/* Like htab_find_slot_with_hash, but compute the hash value from the
-   element.  */
-
-PTR *
-htab_find_slot (htab_t htab, const PTR element, enum insert_option insert)
-{
-  return htab_find_slot_with_hash (htab, element, (*htab->hash_f) (element),
-				   insert);
-}
-
-/* This function deletes an element with the given value from hash
-   table (the hash is computed from the element).  If there is no matching
-   element in the hash table, this function does nothing.  */
-
-void
-htab_remove_elt (htab_t htab, PTR element)
-{
-  htab_remove_elt_with_hash (htab, element, (*htab->hash_f) (element));
-}
-
-
-/* This function deletes an element with the given value from hash
-   table.  If there is no matching element in the hash table, this
-   function does nothing.  */
-
-void
-htab_remove_elt_with_hash (htab_t htab, PTR element, hashval_t hash)
-{
-  PTR *slot;
-
-  slot = htab_find_slot_with_hash (htab, element, hash, NO_INSERT);
-  if (*slot == HTAB_EMPTY_ENTRY)
-    return;
-
-  if (htab->del_f)
-    (*htab->del_f) (*slot);
-
-  *slot = HTAB_DELETED_ENTRY;
-  htab->n_deleted++;
-}
-
-/* This function clears a specified slot in a hash table.  It is
-   useful when you've already done the lookup and don't want to do it
-   again.  */
-
-void
-htab_clear_slot (htab_t htab, PTR *slot)
-{
-  if (slot < htab->entries || slot >= htab->entries + htab_size (htab)
-      || *slot == HTAB_EMPTY_ENTRY || *slot == HTAB_DELETED_ENTRY)
-    abort ();
-
-  if (htab->del_f)
-    (*htab->del_f) (*slot);
-
-  *slot = HTAB_DELETED_ENTRY;
-  htab->n_deleted++;
-}
-
-/* This function scans over the entire hash table calling
-   CALLBACK for each live entry.  If CALLBACK returns false,
-   the iteration stops.  INFO is passed as CALLBACK's second
-   argument.  */
-
-void
-htab_traverse_noresize (htab_t htab, htab_trav callback, PTR info)
-{
-  PTR *slot;
-  PTR *limit;
-  
-  slot = htab->entries;
-  limit = slot + htab_size (htab);
-
-  do
-    {
-      PTR x = *slot;
-
-      if (x != HTAB_EMPTY_ENTRY && x != HTAB_DELETED_ENTRY)
-	if (!(*callback) (slot, info))
-	  break;
-    }
-  while (++slot < limit);
-}
-
-/* Like htab_traverse_noresize, but does resize the table when it is
-   too empty to improve effectivity of subsequent calls.  */
-
-void
-htab_traverse (htab_t htab, htab_trav callback, PTR info)
-{
-  if (htab_elements (htab) * 8 < htab_size (htab))
-    htab_expand (htab);
-
-  htab_traverse_noresize (htab, callback, info);
-}
-
-/* Return the fraction of fixed collisions during all work with given
-   hash table. */
-
-double
-htab_collisions (htab_t htab)
-{
-  if (htab->searches == 0)
-    return 0.0;
-
-  return (double) htab->collisions / (double) htab->searches;
-}
-
-/* Hash P as a null-terminated string.
-
-   Copied from gcc/hashtable.c.  Zack had the following to say with respect
-   to applicability, though note that unlike hashtable.c, this hash table
-   implementation re-hashes rather than chain buckets.
-
-   http://gcc.gnu.org/ml/gcc-patches/2001-08/msg01021.html
-   From: Zack Weinberg <zackw@panix.com>
-   Date: Fri, 17 Aug 2001 02:15:56 -0400
-
-   I got it by extracting all the identifiers from all the source code
-   I had lying around in mid-1999, and testing many recurrences of
-   the form "H_n = H_{n-1} * K + c_n * L + M" where K, L, M were either
-   prime numbers or the appropriate identity.  This was the best one.
-   I don't remember exactly what constituted "best", except I was
-   looking at bucket-length distributions mostly.
-   
-   So it should be very good at hashing identifiers, but might not be
-   as good at arbitrary strings.
-   
-   I'll add that it thoroughly trounces the hash functions recommended
-   for this use at http://burtleburtle.net/bob/hash/index.html, both
-   on speed and bucket distribution.  I haven't tried it against the
-   function they just started using for Perl's hashes.  */
-
-hashval_t
-htab_hash_string (const PTR p)
-{
-  const unsigned char *str = (const unsigned char *) p;
-  hashval_t r = 0;
-  unsigned char c;
-
-  while ((c = *str++) != 0)
-    r = r * 67 + c - 113;
-
-  return r;
-}
-
-/* DERIVED FROM:
---------------------------------------------------------------------
-lookup2.c, by Bob Jenkins, December 1996, Public Domain.
-hash(), hash2(), hash3, and mix() are externally useful functions.
-Routines to test the hash are included if SELF_TEST is defined.
-You can use this free for any purpose.  It has no warranty.
---------------------------------------------------------------------
-*/
-
-/*
---------------------------------------------------------------------
-mix -- mix 3 32-bit values reversibly.
-For every delta with one or two bit set, and the deltas of all three
-  high bits or all three low bits, whether the original value of a,b,c
-  is almost all zero or is uniformly distributed,
-* If mix() is run forward or backward, at least 32 bits in a,b,c
-  have at least 1/4 probability of changing.
-* If mix() is run forward, every bit of c will change between 1/3 and
-  2/3 of the time.  (Well, 22/100 and 78/100 for some 2-bit deltas.)
-mix() was built out of 36 single-cycle latency instructions in a 
-  structure that could supported 2x parallelism, like so:
-      a -= b; 
-      a -= c; x = (c>>13);
-      b -= c; a ^= x;
-      b -= a; x = (a<<8);
-      c -= a; b ^= x;
-      c -= b; x = (b>>13);
-      ...
-  Unfortunately, superscalar Pentiums and Sparcs can't take advantage 
-  of that parallelism.  They've also turned some of those single-cycle
-  latency instructions into multi-cycle latency instructions.  Still,
-  this is the fastest good hash I could find.  There were about 2^^68
-  to choose from.  I only looked at a billion or so.
---------------------------------------------------------------------
-*/
-/* same, but slower, works on systems that might have 8 byte hashval_t's */
-#define mix(a,b,c) \
-{ \
-  a -= b; a -= c; a ^= (c>>13); \
-  b -= c; b -= a; b ^= (a<< 8); \
-  c -= a; c -= b; c ^= ((b&0xffffffff)>>13); \
-  a -= b; a -= c; a ^= ((c&0xffffffff)>>12); \
-  b -= c; b -= a; b = (b ^ (a<<16)) & 0xffffffff; \
-  c -= a; c -= b; c = (c ^ (b>> 5)) & 0xffffffff; \
-  a -= b; a -= c; a = (a ^ (c>> 3)) & 0xffffffff; \
-  b -= c; b -= a; b = (b ^ (a<<10)) & 0xffffffff; \
-  c -= a; c -= b; c = (c ^ (b>>15)) & 0xffffffff; \
-}
-
-/*
---------------------------------------------------------------------
-hash() -- hash a variable-length key into a 32-bit value
-  k     : the key (the unaligned variable-length array of bytes)
-  len   : the length of the key, counting by bytes
-  level : can be any 4-byte value
-Returns a 32-bit value.  Every bit of the key affects every bit of
-the return value.  Every 1-bit and 2-bit delta achieves avalanche.
-About 36+6len instructions.
-
-The best hash table sizes are powers of 2.  There is no need to do
-mod a prime (mod is sooo slow!).  If you need less than 32 bits,
-use a bitmask.  For example, if you need only 10 bits, do
-  h = (h & hashmask(10));
-In which case, the hash table should have hashsize(10) elements.
-
-If you are hashing n strings (ub1 **)k, do it like this:
-  for (i=0, h=0; i<n; ++i) h = hash( k[i], len[i], h);
-
-By Bob Jenkins, 1996.  bob_jenkins@burtleburtle.net.  You may use this
-code any way you wish, private, educational, or commercial.  It's free.
-
-See http://burtleburtle.net/bob/hash/evahash.html
-Use for hash table lookup, or anything where one collision in 2^32 is
-acceptable.  Do NOT use for cryptographic purposes.
---------------------------------------------------------------------
-*/
-
-hashval_t
-iterative_hash (const PTR k_in /* the key */,
-                register size_t  length /* the length of the key */,
-                register hashval_t initval /* the previous hash, or
-                                              an arbitrary value */)
-{
-  register const unsigned char *k = (const unsigned char *)k_in;
-  register hashval_t a,b,c,len;
-
-  /* Set up the internal state */
-  len = length;
-  a = b = 0x9e3779b9;  /* the golden ratio; an arbitrary value */
-  c = initval;           /* the previous hash value */
-
-  /*---------------------------------------- handle most of the key */
-#ifndef WORDS_BIGENDIAN
-  /* On a little-endian machine, if the data is 4-byte aligned we can hash
-     by word for better speed.  This gives nondeterministic results on
-     big-endian machines.  */
-  if (sizeof (hashval_t) == 4 && (((size_t)k)&3) == 0)
-    while (len >= 12)    /* aligned */
-      {
-	a += *(hashval_t *)(k+0);
-	b += *(hashval_t *)(k+4);
-	c += *(hashval_t *)(k+8);
-	mix(a,b,c);
-	k += 12; len -= 12;
-      }
-  else /* unaligned */
-#endif
-    while (len >= 12)
-      {
-	a += (k[0] +((hashval_t)k[1]<<8) +((hashval_t)k[2]<<16) +((hashval_t)k[3]<<24));
-	b += (k[4] +((hashval_t)k[5]<<8) +((hashval_t)k[6]<<16) +((hashval_t)k[7]<<24));
-	c += (k[8] +((hashval_t)k[9]<<8) +((hashval_t)k[10]<<16)+((hashval_t)k[11]<<24));
-	mix(a,b,c);
-	k += 12; len -= 12;
-      }
-
-  /*------------------------------------- handle the last 11 bytes */
-  c += length;
-  switch(len)              /* all the case statements fall through */
-    {
-    case 11: c+=((hashval_t)k[10]<<24);
-    case 10: c+=((hashval_t)k[9]<<16);
-    case 9 : c+=((hashval_t)k[8]<<8);
-      /* the first byte of c is reserved for the length */
-    case 8 : b+=((hashval_t)k[7]<<24);
-    case 7 : b+=((hashval_t)k[6]<<16);
-    case 6 : b+=((hashval_t)k[5]<<8);
-    case 5 : b+=k[4];
-    case 4 : a+=((hashval_t)k[3]<<24);
-    case 3 : a+=((hashval_t)k[2]<<16);
-    case 2 : a+=((hashval_t)k[1]<<8);
-    case 1 : a+=k[0];
-      /* case 0: nothing left to add */
-    }
-  mix(a,b,c);
-  /*-------------------------------------------- report the result */
-  return c;
-}
diff --git a/libiberty/hex.c b/libiberty/hex.c
deleted file mode 100644
index 86ba0b5..0000000
--- a/libiberty/hex.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/* Hex character manipulation support.
-   Copyright (C) 1995, 2001 Free Software Foundation, Inc.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#include <stdio.h>  /* for EOF */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include "libiberty.h"
-#include "safe-ctype.h" /* for HOST_CHARSET_ASCII */
-
-#if EOF != -1
- #error "hex.c requires EOF == -1"
-#endif
-
-/*
-
-@deftypefn Extension void hex_init (void)
-
-Initializes the array mapping the current character set to
-corresponding hex values.  This function must be called before any
-call to @code{hex_p} or @code{hex_value}.  If you fail to call it, a
-default ASCII-based table will normally be used on ASCII systems.
-
-@end deftypefn
-
-@deftypefn Extension int hex_p (int @var{c})
-
-Evaluates to non-zero if the given character is a valid hex character,
-or zero if it is not.  Note that the value you pass will be cast to
-@code{unsigned char} within the macro.
-
-@end deftypefn
-
-@deftypefn Extension {unsigned int} hex_value (int @var{c})
-
-Returns the numeric equivalent of the given character when interpreted
-as a hexidecimal digit.  The result is undefined if you pass an
-invalid hex digit.  Note that the value you pass will be cast to
-@code{unsigned char} within the macro.
-
-The @code{hex_value} macro returns @code{unsigned int}, rather than
-signed @code{int}, to make it easier to use in parsing addresses from
-hex dump files: a signed @code{int} would be sign-extended when
-converted to a wider unsigned type --- like @code{bfd_vma}, on some
-systems.
-
-@end deftypefn
-
-@undocumented _hex_array_size
-@undocumented _hex_bad
-@undocumented _hex_value
-
-*/
-
-
-/* Are we ASCII? */
-#if HOST_CHARSET == HOST_CHARSET_ASCII
-
-const unsigned char _hex_value[_hex_array_size] =
-{
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* NUL SOH STX ETX */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* EOT ENQ ACK BEL */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* BS  HT  LF  VT  */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* FF  CR  SO  SI  */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* DLE DC1 DC2 DC3 */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* DC4 NAK SYN ETB */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* CAN EM  SUB ESC */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* FS  GS  RS  US  */
-
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* SP  !   "   #   */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* $   %   &   '   */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* (   )   *   +   */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* ,   -   .   /   */
-  0,        1,        2,        3,          /* 0   1   2   3   */
-  4,        5,        6,        7,          /* 4   5   6   7   */
-  8,        9,        _hex_bad, _hex_bad,   /* 8   9   :   ;   */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* <   =   >   ?   */
-
-  _hex_bad, 10,       11,       12,         /* @   A   B   C   */
-  13,       14,       15,       _hex_bad,   /* D   E   F   G   */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* H   I   J   K   */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* L   M   N   O   */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* P   Q   R   S   */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* T   U   V   W   */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* X   Y   Z   [   */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* \   ]   ^   _   */
-
-  _hex_bad, 10,       11,       12,         /* `   a   b   c   */
-  13,       14,       15,       _hex_bad,   /* d   e   f   g   */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* h   i   j   k   */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* l   m   n   o   */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* p   q   r   s   */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* t   u   v   w   */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* x   y   z   {   */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,   /* |   }   ~   DEL */
-
-  /* The high half of unsigned char, all values are _hex_bad.  */
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-  _hex_bad, _hex_bad, _hex_bad, _hex_bad,
-};
-#define HEX_TABLE_INITIALIZED
-
-#else
-
-unsigned char _hex_value[_hex_array_size];
-
-#endif /* not ASCII */
-
-void
-hex_init (void)
-{
-#ifndef HEX_TABLE_INITIALIZED
-  int i;
-
-  for (i=0; i<_hex_array_size; i++)
-    {
-      switch (i)
-	{
-	case '0': _hex_value[i] = 0; break;
-	case '1': _hex_value[i] = 1; break;
-	case '2': _hex_value[i] = 2; break;
-	case '3': _hex_value[i] = 3; break;
-	case '4': _hex_value[i] = 4; break;
-	case '5': _hex_value[i] = 5; break;
-	case '6': _hex_value[i] = 6; break;
-	case '7': _hex_value[i] = 7; break;
-	case '8': _hex_value[i] = 8; break;
-	case '9': _hex_value[i] = 9; break;
-
-	case 'a': case 'A': _hex_value[i] = 10; break;
-	case 'b': case 'B': _hex_value[i] = 11; break;
-	case 'c': case 'C': _hex_value[i] = 12; break;
-	case 'd': case 'D': _hex_value[i] = 13; break;
-	case 'e': case 'E': _hex_value[i] = 14; break;
-	case 'f': case 'F': _hex_value[i] = 15; break;
-
-	default:
-	  _hex_value[i] = _hex_bad;
-	  break;
-	}
-    }
-#endif
-}
diff --git a/libiberty/index.c b/libiberty/index.c
deleted file mode 100644
index acd0a45..0000000
--- a/libiberty/index.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Stub implementation of (obsolete) index(). */
-
-/*
-
-@deftypefn Supplemental char* index (char *@var{s}, int @var{c})
-
-Returns a pointer to the first occurrence of the character @var{c} in
-the string @var{s}, or @code{NULL} if not found.  The use of @code{index} is
-deprecated in new programs in favor of @code{strchr}.
-
-@end deftypefn
-
-*/
-
-extern char * strchr(const char *, int);
-
-char *
-index (const char *s, int c)
-{
-  return strchr (s, c);
-}
diff --git a/libiberty/insque.c b/libiberty/insque.c
deleted file mode 100644
index 3473bb9..0000000
--- a/libiberty/insque.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* insque(3C) routines
-   This file is in the public domain.  */
-
-/*
-
-@deftypefn Supplemental void insque (struct qelem *@var{elem}, struct qelem *@var{pred})
-@deftypefnx Supplemental void remque (struct qelem *@var{elem})
-
-Routines to manipulate queues built from doubly linked lists.  The
-@code{insque} routine inserts @var{elem} in the queue immediately
-after @var{pred}.  The @code{remque} routine removes @var{elem} from
-its containing queue.  These routines expect to be passed pointers to
-structures which have as their first members a forward pointer and a
-back pointer, like this prototype (although no prototype is provided):
-
-@example
-struct qelem @{
-  struct qelem *q_forw;
-  struct qelem *q_back;
-  char q_data[];
-@};
-@end example
-
-@end deftypefn
-
-*/
-
-
-struct qelem {
-  struct qelem *q_forw;
-  struct qelem *q_back;
-};
-
-
-void
-insque (struct qelem *elem, struct qelem *pred)
-{
-  elem -> q_forw = pred -> q_forw;
-  pred -> q_forw -> q_back = elem;
-  elem -> q_back = pred;
-  pred -> q_forw = elem;
-}
-
-
-void
-remque (struct qelem *elem)
-{
-  elem -> q_forw -> q_back = elem -> q_back;
-  elem -> q_back -> q_forw = elem -> q_forw;
-}
diff --git a/libiberty/lbasename.c b/libiberty/lbasename.c
deleted file mode 100644
index 56fcd62..0000000
--- a/libiberty/lbasename.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Libiberty basename.  Like basename, but is not overridden by the
-   system C library.
-   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-/*
-
-@deftypefn Replacement {const char*} lbasename (const char *@var{name})
-
-Given a pointer to a string containing a typical pathname
-(@samp{/usr/src/cmd/ls/ls.c} for example), returns a pointer to the
-last component of the pathname (@samp{ls.c} in this case).  The
-returned pointer is guaranteed to lie within the original
-string.  This latter fact is not true of many vendor C
-libraries, which return special strings or modify the passed
-strings for particular input.
-
-In particular, the empty string returns the same empty string,
-and a path ending in @code{/} returns the empty string after it.
-
-@end deftypefn
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include "ansidecl.h"
-#include "libiberty.h"
-#include "safe-ctype.h"
-#include "filenames.h"
-
-const char *
-lbasename (const char *name)
-{
-  const char *base;
-
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  /* Skip over a possible disk name.  */
-  if (ISALPHA (name[0]) && name[1] == ':') 
-    name += 2;
-#endif
-
-  for (base = name; *name; name++)
-    if (IS_DIR_SEPARATOR (*name))
-      base = name + 1;
-
-  return base;
-}
diff --git a/libiberty/libiberty.texi b/libiberty/libiberty.texi
deleted file mode 100644
index d3701e6..0000000
--- a/libiberty/libiberty.texi
+++ /dev/null
@@ -1,324 +0,0 @@
-\input texinfo  @c -*-texinfo-*-
-@c %**start of header
-@setfilename libiberty.info
-@settitle @sc{gnu} libiberty
-@c %**end of header
-
-@syncodeindex fn cp
-@syncodeindex vr cp
-@syncodeindex pg cp
-
-@finalout
-@c %**end of header
- 
-@dircategory GNU libraries
-@direntry
-* Libiberty: (libiberty).          Library of utility functions which
-                                   are missing or broken on some systems.
-@end direntry
-
-@macro libib
-@code{libiberty}
-@end macro
-
-@c The edition date is written in three locations.  Search for 'thedate'.
-@ifinfo
-This manual describes the GNU @libib library of utility subroutines.
-This edition accompanies GCC 3, September 2001.
-
-Copyright @copyright{} 2001 Free Software Foundation, Inc.
-
-      Permission is granted to copy, distribute and/or modify this document
-      under the terms of the GNU Free Documentation License, Version 1.2
-      or any later version published by the Free Software Foundation;
-      with no Invariant Sections, with no Front-Cover Texts, and with no
-      Back-Cover Texts.  A copy of the license is included in the
-      section entitled ``GNU Free Documentation License''.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries a 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
-@end ifinfo
-
-
-@c The edition date is written in three locations.  Search for 'thedate'.
-@titlepage
-@title @sc{gnu} libiberty
-@subtitle September 2001
-@subtitle for GCC 3
-@author Phil Edwards et al.
-@page
-
-
-@vskip 0pt plus 1filll
-Copyright @copyright{} 2001 Free Software Foundation, Inc.
-
-      Permission is granted to copy, distribute and/or modify this document
-      under the terms of the GNU Free Documentation License, Version 1.2
-      or any later version published by the Free Software Foundation;
-      with no Invariant Sections, with no Front-Cover Texts, and with no
-      Back-Cover Texts.  A copy of the license is included in the
-      section entitled ``GNU Free Documentation License''.
-
-@end titlepage
-@contents
-@page
-
-@ifnottex
-@node    Top,Using,,
-@top     Introduction
-
-The @libib{} library is a collection of subroutines used by various
-GNU programs.  It is available under the Library General Public
-License; for more information, see @ref{Library Copying}.
-
-@c The edition date is written in three locations.  Search for 'thedate'.
-This edition accompanies GCC 3, September 2001.
-
-@end ifnottex
-
-@menu
-* Using::              How to use libiberty in your code.
-
-* Overview::           Overview of available function groups.
-
-* Functions::          Available functions, macros, and global variables.
-
-* Obstacks::           Object Stacks.
-
-* Licenses::           The various licenses under which libiberty sources are
-                       distributed.
-
-* Index::              Index of functions and categories.
-@end menu
-
-@node Using
-@chapter Using
-@cindex using libiberty
-@cindex libiberty usage
-@cindex how to use
-
-@c THIS SECTION IS CRAP AND NEEDS REWRITING BADLY.
-
-To date, @libib{} is generally not installed on its own.  It has evolved
-over years but does not have its own version number nor release schedule.
-
-Possibly the easiest way to use @libib{} in your projects is to drop the
-@libib{} code into your project's sources, and to build the library along
-with your own sources; the library would then be linked in at the end.  This
-prevents any possible version mismatches with other copies of libiberty
-elsewhere on the system.
-
-Passing @option{--enable-install-libiberty} to the @command{configure}
-script when building @libib{} causes the header files and archive library
-to be installed when @kbd{make install} is run.  This option also takes
-an (optional) argument to specify the installation location, in the same
-manner as @option{--prefix}.
-
-For your own projects, an approach which offers stability and flexibility
-is to include @libib{} with your code, but allow the end user to optionally
-choose to use a previously-installed version instead.  In this way the
-user may choose (for example) to install @libib{} as part of GCC, and use
-that version for all software built with that compiler.  (This approach
-has proven useful with software using the GNU @code{readline} library.)
-
-Making use of @libib{} code usually requires that you include one or more
-header files from the @libib{} distribution.  (They will be named as
-necessary in the function descriptions.)  At link time, you will need to
-add @option{-liberty} to your link command invocation.
-
-
-@node Overview
-@chapter Overview
-
-Functions contained in @libib{} can be divided into three general categories.
-
-
-@menu
-* Supplemental Functions::       Providing functions which don't exist
-                                 on older operating systems.
-
-* Replacement Functions::        These functions are sometimes buggy or
-                                 unpredictable on some operating systems.
-
-* Extensions::                   Functions which provide useful extensions
-                                 or safety wrappers around existing code.
-@end menu
-
-@node Supplemental Functions
-@section Supplemental Functions
-@cindex supplemental functions
-@cindex functions, supplemental
-@cindex functions, missing
-
-Certain operating systems do not provide functions which have since
-become standardized, or at least common.  For example, the Single
-Unix Specification Version 2 requires that the @code{basename}
-function be provided, but an OS which predates that specification
-might not have this function.  This should not prevent well-written
-code from running on such a system.
-
-Similarly, some functions exist only among a particular ``flavor''
-or ``family'' of operating systems.  As an example, the @code{bzero}
-function is often not present on systems outside the BSD-derived
-family of systems.
-
-Many such functions are provided in @libib{}.  They are quickly
-listed here with little description, as systems which lack them
-become less and less common.  Each function @var{foo} is implemented
-in @file{@var{foo}.c} but not declared in any @libib{} header file; more
-comments and caveats for each function's implementation are often
-available in the source file.  Generally, the function can simply
-be declared as @code{extern}.
-
-
-
-@node Replacement Functions
-@section Replacement Functions
-@cindex replacement functions
-@cindex functions, replacement
-
-Some functions have extremely limited implementations on different
-platforms.  Other functions are tedious to use correctly; for example,
-proper use of @code{malloc} calls for the return value to be checked and
-appropriate action taken if memory has been exhausted.  A group of
-``replacement functions'' is available in @libib{} to address these issues
-for some of the most commonly used subroutines.
-
-All of these functions are declared in the @file{libiberty.h} header
-file.  Many of the implementations will use preprocessor macros set by
-GNU Autoconf, if you decide to make use of that program.  Some of these
-functions may call one another.
-
-
-@menu
-* Memory Allocation::            Testing and handling failed memory
-                                   requests automatically.
-* Exit Handlers::                Calling routines on program exit.
-* Error Reporting::              Mapping errno and signal numbers to
-                                   more useful string formats.
-@end menu
-
-@node Memory Allocation
-@subsection Memory Allocation
-@cindex memory allocation
-
-The functions beginning with the letter @samp{x} are wrappers around
-standard functions; the functions provided by the system environment
-are called and their results checked before the results are passed back
-to client code.  If the standard functions fail, these wrappers will
-terminate the program.  Thus, these versions can be used with impunity.
-
-
-@node Exit Handlers
-@subsection Exit Handlers
-@cindex exit handlers
-
-The existence and implementation of the @code{atexit} routine varies
-amongst the flavors of Unix.  @libib{} provides an unvarying dependable
-implementation via @code{xatexit} and @code{xexit}.
-
-
-@node Error Reporting
-@subsection Error Reporting
-@cindex error reporting
-
-These are a set of routines to facilitate programming with the system
-@code{errno} interface.  The @libib{} source file @file{strerror.c}
-contains a good deal of documentation for these functions.
-
-@c signal stuff
-
-
-@node Extensions
-@section Extensions
-@cindex extensions
-@cindex functions, extension
-
-@libib{} includes additional functionality above and beyond standard
-functions, which has proven generically useful in GNU programs, such as
-obstacks and regex.  These functions are often copied from other
-projects as they gain popularity, and are included here to provide a
-central location from which to use, maintain, and distribute them.
-
-@menu
-* Obstacks::                     Stacks of arbitrary objects.
-@end menu
-
-@c This is generated from the glibc manual using a make-obstacks-texi.sh
-@c script of Phil's.  Hope it's accurate.
-@include obstacks.texi
-
-@node Functions
-@chapter Function, Variable, and Macro Listing.
-@include functions.texi
-
-@node Licenses
-@appendix Licenses
-
-@menu
-
-* Library Copying::   The GNU Library General Public License
-* BSD::               Regents of the University of California
-
-@end menu
-
-@c This takes care of Library Copying.  It is the copying-lib.texi from the
-@c GNU web site, with its @node line altered to make makeinfo shut up.
-@include copying-lib.texi
-
-@page
-@node BSD
-@appendixsec BSD
-
-Copyright @copyright{} 1990 Regents of the University of California.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-@enumerate
-
-@item
-Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-
-@item
-Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-
-@item
-[rescinded 22 July 1999]
-
-@item
-Neither the name of the University nor the names of its contributors
-may be used to endorse or promote products derived from this software
-without specific prior written permission.
-
-@end enumerate
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
-@node Index
-@unnumbered Index
-
-@printindex cp
-
-@bye
-
diff --git a/libiberty/lrealpath.c b/libiberty/lrealpath.c
deleted file mode 100644
index b27c8de..0000000
--- a/libiberty/lrealpath.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/* Libiberty realpath.  Like realpath, but more consistent behavior.
-   Based on gdb_realpath from GDB.
-
-   Copyright 2003 Free Software Foundation, Inc.
-
-   This file is part of the libiberty 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., 51 Franklin Street - Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
-
-/*
-
-@deftypefn Replacement {const char*} lrealpath (const char *@var{name})
-
-Given a pointer to a string containing a pathname, returns a canonical
-version of the filename.  Symlinks will be resolved, and ``.'' and ``..''
-components will be simplified.  The returned value will be allocated using
-@code{malloc}, or @code{NULL} will be returned on a memory allocation error.
-
-@end deftypefn
-
-*/
-
-#include "config.h"
-#include "ansidecl.h"
-#include "libiberty.h"
-
-#ifdef HAVE_LIMITS_H
-#include <limits.h>
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-
-/* On GNU libc systems the declaration is only visible with _GNU_SOURCE.  */
-#if defined(HAVE_CANONICALIZE_FILE_NAME) \
-    && defined(NEED_DECLARATION_CANONICALIZE_FILE_NAME)
-extern char *canonicalize_file_name (const char *);
-#endif
-
-#if defined(HAVE_REALPATH)
-# if defined (PATH_MAX)
-#  define REALPATH_LIMIT PATH_MAX
-# else
-#  if defined (MAXPATHLEN)
-#   define REALPATH_LIMIT MAXPATHLEN
-#  endif
-# endif
-#else
-  /* cygwin has realpath, so it won't get here.  */ 
-# if defined (_WIN32)
-#  define WIN32_LEAN_AND_MEAN
-#  include <windows.h> /* for GetFullPathName */
-# endif
-#endif
-
-char *
-lrealpath (const char *filename)
-{
-  /* Method 1: The system has a compile time upper bound on a filename
-     path.  Use that and realpath() to canonicalize the name.  This is
-     the most common case.  Note that, if there isn't a compile time
-     upper bound, you want to avoid realpath() at all costs.  */
-#if defined(REALPATH_LIMIT)
-  {
-    char buf[REALPATH_LIMIT];
-    const char *rp = realpath (filename, buf);
-    if (rp == NULL)
-      rp = filename;
-    return strdup (rp);
-  }
-#endif /* REALPATH_LIMIT */
-
-  /* Method 2: The host system (i.e., GNU) has the function
-     canonicalize_file_name() which malloc's a chunk of memory and
-     returns that, use that.  */
-#if defined(HAVE_CANONICALIZE_FILE_NAME)
-  {
-    char *rp = canonicalize_file_name (filename);
-    if (rp == NULL)
-      return strdup (filename);
-    else
-      return rp;
-  }
-#endif
-
-  /* Method 3: Now we're getting desperate!  The system doesn't have a
-     compile time buffer size and no alternative function.  Query the
-     OS, using pathconf(), for the buffer limit.  Care is needed
-     though, some systems do not limit PATH_MAX (return -1 for
-     pathconf()) making it impossible to pass a correctly sized buffer
-     to realpath() (it could always overflow).  On those systems, we
-     skip this.  */
-#if defined (HAVE_REALPATH) && defined (HAVE_UNISTD_H)
-  {
-    /* Find out the max path size.  */
-    long path_max = pathconf ("/", _PC_PATH_MAX);
-    if (path_max > 0)
-      {
-	/* PATH_MAX is bounded.  */
-	char *buf, *rp, *ret;
-	buf = (char *) malloc (path_max);
-	if (buf == NULL)
-	  return NULL;
-	rp = realpath (filename, buf);
-	ret = strdup (rp ? rp : filename);
-	free (buf);
-	return ret;
-      }
-  }
-#endif
-
-  /* The MS Windows method.  If we don't have realpath, we assume we
-     don't have symlinks and just canonicalize to a Windows absolute
-     path.  GetFullPath converts ../ and ./ in relative paths to
-     absolute paths, filling in current drive if one is not given
-     or using the current directory of a specified drive (eg, "E:foo").
-     It also converts all forward slashes to back slashes.  */
-#if defined (_WIN32)
-  {
-    char buf[MAX_PATH];
-    char* basename;
-    DWORD len = GetFullPathName (filename, MAX_PATH, buf, &basename);
-    if (len == 0 || len > MAX_PATH - 1)
-      return strdup (filename);
-    else
-      {
-	/* The file system is case-preserving but case-insensitive,
-	   Canonicalize to lowercase, using the codepage associated
-	   with the process locale.  */
-        CharLowerBuff (buf, len);
-        return strdup (buf);
-      }
-  }
-#endif
-
-  /* This system is a lost cause, just duplicate the filename.  */
-  return strdup (filename);
-}
diff --git a/libiberty/maint-tool b/libiberty/maint-tool
deleted file mode 100644
index 5584d9b..0000000
--- a/libiberty/maint-tool
+++ /dev/null
@@ -1,296 +0,0 @@
-#!/usr/bin/perl
-# -*- perl -*-
-
-#   Copyright (C) 2001
-#   Free Software Foundation
-#
-# This file is part of the libiberty library.
-# Libiberty is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# Libiberty 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
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with libiberty; see the file COPYING.LIB.  If not,
-# write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-# Boston, MA 02110-1301, USA.
-#
-# Originally written by DJ Delorie <dj@redhat.com>
-
-
-# This is a trivial script which checks the lists of C and O files in
-# the Makefile for consistency.
-
-$mode = shift;
-$srcdir = ".";
-
-if ($mode eq "-s") {
-    $srcdir = shift;
-    $mode = shift;
-}
-
-&missing() if $mode eq "missing";
-&undoc() if $mode eq "undoc";
-&deps() if $mode eq "deps";
-
-exit 0;
-
-format STDOUT =
-^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<~
-$out
-        ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<~~
-$out
-.
-
-######################################################################
-
-sub missing {
-
-    opendir(S, $srcdir);
-    while ($f = readdir S) {
-	$have{$f} = 1;
-    }
-    closedir(S);
-    opendir(S, ".");
-    while ($f = readdir S) {
-	$have{$f} = 1;
-    }
-    closedir(S);
-
-    for $a (@ARGV) {
-	$listed{$a} = 1;
-	$have{$a} = 0;
-    }
-
-    for $f (sort keys %have) {
-	next unless $have{$f};
-	if ($f =~ /\.c$/) {
-	    print "S $f\n";
-	}
-    }
-    for $f (sort keys %listed) {
-	if ($f =~ /(.*)\.c$/) {
-	    $base = $1;
-	    if (! $listed{"$base.o"}) {
-		print "O $f\n";
-	    }
-	}
-    }
-}
-
-######################################################################
-
-sub undoc {
-
-    opendir(S, $srcdir);
-    while ($file = readdir S) {
-	if ($file =~ /\.texi$/) {
-	    open(T, "$srcdir/$file");
-	    while (<T>) {
-		if (/^\@deftype[^\(]* ([^\s\(]+) *\(/) {
-		    $documented{$1} = 1;
-		}
-	    }
-	    close(T);
-	}
-	if ($file =~ /\.c$/) {
-	    open(C, "$srcdir/$file");
-	    while (<C>) {
-		if (/\@undocumented (\S+)/) {
-		    $documented{$1} = 1;
-		}
-		if (/^static /) {
-		    if (! /[\(;]/) {
-			s/[\r\n]+$/ /;
-			$_ .= <C>;
-		    }
-		    while ($_ =~ /\([^\)]*$/) {
-			s/[\r\n]+$/ /;
-			$_ .= <C>;
-		    }
-		}
-		s/ VPARAMS([ \(])/$1/;
-		s/PREFIX\(([^\)]*)\)/byte_$1/;
-		if (/^static [^\(]* ([^\s\(]+) *\(.*\)$/) {
-		    $documented{$1} = 1;
-		}
-	    }
-	}
-    }
-    closedir(D);
-
-    # $out = join(' ', sort keys %documented);
-    # write;
-    # print "\n";
-
-    system "etags $srcdir/*.c $srcdir/../include/*.h";
-    open(TAGS, "TAGS");
-    while (<TAGS>) {
-	s/[\r\n]+$//;
-	if (/^\014$/) {
-	    $filename = <TAGS>;
-	    $filename =~ s/[\r\n]+$//;
-	    $filename =~ s/,\d+$//;
-	    $filename =~ s@.*[/\\]@@;
-	    next;
-	}
-	if ($filename =~ /\.c$/ ) {
-	    next unless /^[_a-zA-Z]/;
-	} else {
-	    next unless /^\# *define/;
-	    s/\# *define *//;
-	}
-
-	s/ VPARAMS//;
-	s/ *\177.*//;
-	s/,$//;
-	s/DEFUN\(//;
-	s/\(//;
-
-	next if /^static /;
-	next if /\s/;
-	next if /^_/;
-	next if $documented{$_};
-	next if /_H_?$/;
-
-	if ($seen_in{$_} ne $filename) {
-	    $saw{$_} ++;
-	}
-	$seen_in{$_} = $filename;
-    }
-
-    for $k (keys %saw) {
-	delete $saw{$k} if $saw{$k} > 1;
-    }
-
-    for $k (sort keys %saw) {
-	$fromfile{$seen_in{$k}} .= " " if $fromfile{$seen_in{$k}};
-	$fromfile{$seen_in{$k}} .= $k;
-    }
-
-    for $f (sort keys %fromfile) {
-	$out = "$f: $fromfile{$f}";
-	write;
-    }
-}
-
-######################################################################
-
-sub deps_for {
-    my($f) = @_;
-    my(%d);
-    open(F, $f);
-    %d = ();
-    while (<F>) {
-	if (/^#\s*include\s+["<](.*)[">]/) {
-	    $d{$1} = 1;
-	}
-    }
-    close(F);
-    return keys %d;
-}
-
-sub canonicalize {
-    my ($p) = @_;
-    0 while $p =~ s@/\./@/@g;
-    0 while $p =~ s@^\./@@g;
-    0 while $p =~ s@/[^/]+/\.\./@/@g;
-    return $p;
-}
-
-sub locals_first {
-    my ($a,$b) = @_;
-    return -1 if $a eq "config.h";
-    return  1 if $b eq "config.h";
-    return $a cmp $b;
-}
-
-sub deps {
-
-    $crule  = "\tif [ x\"\$(PICFLAG)\" != x ]; then \\\n";
-    $crule .= "\t  \$(COMPILE.c) \$(PICFLAG) \$< -o pic/\$@; \\\n";
-    $crule .= "\telse true; fi\n";
-    $crule .= "\t\$(COMPILE.c) \$< \$(OUTPUT_OPTION)\n";
-    $crule .= "\n";
-
-    $incdir = shift @ARGV;
-
-    opendir(INC, $incdir);
-    while ($f = readdir INC) {
-	next unless $f =~ /\.h$/;
-	$mine{$f} = "\$(INCDIR)/$f";
-	$deps{$f} = join(' ', &deps_for("$incdir/$f"));
-    }
-    $mine{'config.h'} = "config.h";
-
-    opendir(INC, $srcdir);
-    while ($f = readdir INC) {
-	next unless $f =~ /\.h$/;
-	$mine{$f} = "\$(srcdir)/$f";
-	$deps{$f} = join(' ', &deps_for("$srcdir/$f"));
-    }
-    $mine{'config.h'} = "config.h";
-
-    open(IN, "$srcdir/Makefile.in");
-    open(OUT, ">$srcdir/Makefile.tmp");
-    while (<IN>) {
-	last if /remainder of this file/;
-	print OUT;
-    }
-    print OUT "# The dependencies in the remainder of this file are automatically\n";
-    print OUT "# generated by \"make maint-deps\".  Manual edits will be lost.\n\n";
-
-    opendir(S, $srcdir);
-    for $f (sort readdir S) {
-	if ($f =~ /\.c$/) {
-
-	    %scanned = ();
-	    @pending = &deps_for("$srcdir/$f");
-	    while (@pending) {
-		@tmp = @pending;
-		@pending = ();
-		for $p (@tmp) {
-		    next unless $mine{$p};
-		    if (!$scanned{$p}) {
-			push(@pending, split(' ', $deps{$p}));
-			$scanned{$p} = 1;
-		    }
-		}
-	    }
-	    @deps = sort { &locals_first($a,$b) } keys %scanned;
-	    $obj = $f;
-	    $obj =~ s/\.c$/.o/;
-	    $obj = "./$obj:";
-	    if ($#deps >= 0) {
-		print OUT "$obj \$(srcdir)/$f";
-		$len = length("$obj $f");
-		for $dt (@deps) {
-		    $d = $mine{$dt};
-		    if ($len + length($d) > 70) {
-			printf OUT " \\\n\t$d";
-			$len = 8 + length($d);
-		    } else {
-			print OUT " $d";
-			$len += length($d) + 1;
-		    }
-		}
-		print OUT "\n";
-	    } else {
-		print OUT "$obj \$(srcdir)/$f\n";
-	    }
-	    $c = $crule;
-	    $c =~ s@\$\<@\$\(srcdir\)\/$f@g;
-	    print OUT $c;
-	}
-    }
-    closedir(S);
-    close(IN);
-    close(OUT);
-
-    rename("$srcdir/Makefile.tmp", "$srcdir/Makefile.in");
-}
diff --git a/libiberty/make-relative-prefix.c b/libiberty/make-relative-prefix.c
deleted file mode 100644
index 66ddcaa..0000000
--- a/libiberty/make-relative-prefix.c
+++ /dev/null
@@ -1,389 +0,0 @@
-/* Relative (relocatable) prefix support.
-   Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2000, 2001, 2002 Free Software Foundation, Inc.
-
-This file is part of libiberty.
-
-GCC 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.
-
-GCC 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 GCC; see the file COPYING.  If not, write to the Free
-Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
-02110-1301, USA.  */
-
-/*
-
-@deftypefn Extension {const char*} make_relative_prefix (const char *@var{progname}, const char *@var{bin_prefix}, const char *@var{prefix})
-
-Given three paths @var{progname}, @var{bin_prefix}, @var{prefix},
-return the path that is in the same position relative to
-@var{progname}'s directory as @var{prefix} is relative to
-@var{bin_prefix}.  That is, a string starting with the directory
-portion of @var{progname}, followed by a relative pathname of the
-difference between @var{bin_prefix} and @var{prefix}.
-
-If @var{progname} does not contain any directory separators,
-@code{make_relative_prefix} will search @env{PATH} to find a program
-named @var{progname}.  Also, if @var{progname} is a symbolic link,
-the symbolic link will be resolved.
-
-For example, if @var{bin_prefix} is @code{/alpha/beta/gamma/gcc/delta},
-@var{prefix} is @code{/alpha/beta/gamma/omega/}, and @var{progname} is
-@code{/red/green/blue/gcc}, then this function will return
-@code{/red/green/blue/../../omega/}.
-
-The return value is normally allocated via @code{malloc}.  If no
-relative prefix can be found, return @code{NULL}.
-
-@end deftypefn
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#include <string.h>
-
-#include "ansidecl.h"
-#include "libiberty.h"
-
-#ifndef R_OK
-#define R_OK 4
-#define W_OK 2
-#define X_OK 1
-#endif
-
-#ifndef DIR_SEPARATOR
-#  define DIR_SEPARATOR '/'
-#endif
-
-#if defined (_WIN32) || defined (__MSDOS__) \
-    || defined (__DJGPP__) || defined (__OS2__)
-#  define HAVE_DOS_BASED_FILE_SYSTEM
-#  define HAVE_HOST_EXECUTABLE_SUFFIX
-#  define HOST_EXECUTABLE_SUFFIX ".exe"
-#  ifndef DIR_SEPARATOR_2 
-#    define DIR_SEPARATOR_2 '\\'
-#  endif
-#  define PATH_SEPARATOR ';'
-#else
-#  define PATH_SEPARATOR ':'
-#endif
-
-#ifndef DIR_SEPARATOR_2
-#  define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
-#else
-#  define IS_DIR_SEPARATOR(ch) \
-	(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
-#endif
-
-#define DIR_UP ".."
-
-static char *save_string (const char *, int);
-static char **split_directories	(const char *, int *);
-static void free_split_directories (char **);
-
-static char *
-save_string (const char *s, int len)
-{
-  char *result = (char *) malloc (len + 1);
-
-  memcpy (result, s, len);
-  result[len] = 0;
-  return result;
-}
-
-/* Split a filename into component directories.  */
-
-static char **
-split_directories (const char *name, int *ptr_num_dirs)
-{
-  int num_dirs = 0;
-  char **dirs;
-  const char *p, *q;
-  int ch;
-
-  /* Count the number of directories.  Special case MSDOS disk names as part
-     of the initial directory.  */
-  p = name;
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
-  if (name[1] == ':' && IS_DIR_SEPARATOR (name[2]))
-    {
-      p += 3;
-      num_dirs++;
-    }
-#endif /* HAVE_DOS_BASED_FILE_SYSTEM */
-
-  while ((ch = *p++) != '\0')
-    {
-      if (IS_DIR_SEPARATOR (ch))
-	{
-	  num_dirs++;
-	  while (IS_DIR_SEPARATOR (*p))
-	    p++;
-	}
-    }
-
-  dirs = (char **) malloc (sizeof (char *) * (num_dirs + 2));
-  if (dirs == NULL)
-    return NULL;
-
-  /* Now copy the directory parts.  */
-  num_dirs = 0;
-  p = name;
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
-  if (name[1] == ':' && IS_DIR_SEPARATOR (name[2]))
-    {
-      dirs[num_dirs++] = save_string (p, 3);
-      if (dirs[num_dirs - 1] == NULL)
-	{
-	  free (dirs);
-	  return NULL;
-	}
-      p += 3;
-    }
-#endif /* HAVE_DOS_BASED_FILE_SYSTEM */
-
-  q = p;
-  while ((ch = *p++) != '\0')
-    {
-      if (IS_DIR_SEPARATOR (ch))
-	{
-	  while (IS_DIR_SEPARATOR (*p))
-	    p++;
-
-	  dirs[num_dirs++] = save_string (q, p - q);
-	  if (dirs[num_dirs - 1] == NULL)
-	    {
-	      dirs[num_dirs] = NULL;
-	      free_split_directories (dirs);
-	      return NULL;
-	    }
-	  q = p;
-	}
-    }
-
-  if (p - 1 - q > 0)
-    dirs[num_dirs++] = save_string (q, p - 1 - q);
-  dirs[num_dirs] = NULL;
-
-  if (dirs[num_dirs - 1] == NULL)
-    {
-      free_split_directories (dirs);
-      return NULL;
-    }
-
-  if (ptr_num_dirs)
-    *ptr_num_dirs = num_dirs;
-  return dirs;
-}
-
-/* Release storage held by split directories.  */
-
-static void
-free_split_directories (char **dirs)
-{
-  int i = 0;
-
-  while (dirs[i] != NULL)
-    free (dirs[i++]);
-
-  free ((char *) dirs);
-}
-
-/* Given three strings PROGNAME, BIN_PREFIX, PREFIX, return a string that gets
-   to PREFIX starting with the directory portion of PROGNAME and a relative
-   pathname of the difference between BIN_PREFIX and PREFIX.
-
-   For example, if BIN_PREFIX is /alpha/beta/gamma/gcc/delta, PREFIX is
-   /alpha/beta/gamma/omega/, and PROGNAME is /red/green/blue/gcc, then this
-   function will return /red/green/blue/../../omega/.
-
-   If no relative prefix can be found, return NULL.  */
-
-char *
-make_relative_prefix (const char *progname,
-                      const char *bin_prefix, const char *prefix)
-{
-  char **prog_dirs, **bin_dirs, **prefix_dirs;
-  int prog_num, bin_num, prefix_num;
-  int i, n, common;
-  int needed_len;
-  char *ret, *ptr, *full_progname = NULL;
-
-  if (progname == NULL || bin_prefix == NULL || prefix == NULL)
-    return NULL;
-
-  /* If there is no full pathname, try to find the program by checking in each
-     of the directories specified in the PATH environment variable.  */
-  if (lbasename (progname) == progname)
-    {
-      char *temp;
-
-      temp = getenv ("PATH");
-      if (temp)
-	{
-	  char *startp, *endp, *nstore;
-	  size_t prefixlen = strlen (temp) + 1;
-	  if (prefixlen < 2)
-	    prefixlen = 2;
-
-	  nstore = (char *) alloca (prefixlen + strlen (progname) + 1);
-
-	  startp = endp = temp;
-	  while (1)
-	    {
-	      if (*endp == PATH_SEPARATOR || *endp == 0)
-		{
-		  if (endp == startp)
-		    {
-		      nstore[0] = '.';
-		      nstore[1] = DIR_SEPARATOR;
-		      nstore[2] = '\0';
-		    }
-		  else
-		    {
-		      strncpy (nstore, startp, endp - startp);
-		      if (! IS_DIR_SEPARATOR (endp[-1]))
-			{
-			  nstore[endp - startp] = DIR_SEPARATOR;
-			  nstore[endp - startp + 1] = 0;
-			}
-		      else
-			nstore[endp - startp] = 0;
-		    }
-		  strcat (nstore, progname);
-		  if (! access (nstore, X_OK)
-#ifdef HAVE_HOST_EXECUTABLE_SUFFIX
-                      || ! access (strcat (nstore, HOST_EXECUTABLE_SUFFIX), X_OK)
-#endif
-		      )
-		    {
-		      progname = nstore;
-		      break;
-		    }
-
-		  if (*endp == 0)
-		    break;
-		  endp = startp = endp + 1;
-		}
-	      else
-		endp++;
-	    }
-	}
-    }
-
-  full_progname = lrealpath (progname);
-  if (full_progname == NULL)
-    return NULL;
-
-  prog_dirs = split_directories (full_progname, &prog_num);
-  bin_dirs = split_directories (bin_prefix, &bin_num);
-  free (full_progname);
-  if (bin_dirs == NULL || prog_dirs == NULL)
-    return NULL;
-
-  /* Remove the program name from comparison of directory names.  */
-  prog_num--;
-
-  /* If we are still installed in the standard location, we don't need to
-     specify relative directories.  Also, if argv[0] still doesn't contain
-     any directory specifiers after the search above, then there is not much
-     we can do.  */
-  if (prog_num == bin_num)
-    {
-      for (i = 0; i < bin_num; i++)
-	{
-	  if (strcmp (prog_dirs[i], bin_dirs[i]) != 0)
-	    break;
-	}
-
-      if (prog_num <= 0 || i == bin_num)
-	{
-	  free_split_directories (prog_dirs);
-	  free_split_directories (bin_dirs);
-	  prog_dirs = bin_dirs = (char **) 0;
-	  return NULL;
-	}
-    }
-
-  prefix_dirs = split_directories (prefix, &prefix_num);
-  if (prefix_dirs == NULL)
-    {
-      free_split_directories (prog_dirs);
-      free_split_directories (bin_dirs);
-      return NULL;
-    }
-
-  /* Find how many directories are in common between bin_prefix & prefix.  */
-  n = (prefix_num < bin_num) ? prefix_num : bin_num;
-  for (common = 0; common < n; common++)
-    {
-      if (strcmp (bin_dirs[common], prefix_dirs[common]) != 0)
-	break;
-    }
-
-  /* If there are no common directories, there can be no relative prefix.  */
-  if (common == 0)
-    {
-      free_split_directories (prog_dirs);
-      free_split_directories (bin_dirs);
-      free_split_directories (prefix_dirs);
-      return NULL;
-    }
-
-  /* Two passes: first figure out the size of the result string, and
-     then construct it.  */
-  needed_len = 0;
-  for (i = 0; i < prog_num; i++)
-    needed_len += strlen (prog_dirs[i]);
-  needed_len += sizeof (DIR_UP) * (bin_num - common);
-  for (i = common; i < prefix_num; i++)
-    needed_len += strlen (prefix_dirs[i]);
-  needed_len += 1; /* Trailing NUL.  */
-
-  ret = (char *) malloc (needed_len);
-  if (ret == NULL)
-    return NULL;
-
-  /* Build up the pathnames in argv[0].  */
-  *ret = '\0';
-  for (i = 0; i < prog_num; i++)
-    strcat (ret, prog_dirs[i]);
-
-  /* Now build up the ..'s.  */
-  ptr = ret + strlen(ret);
-  for (i = common; i < bin_num; i++)
-    {
-      strcpy (ptr, DIR_UP);
-      ptr += sizeof (DIR_UP) - 1;
-      *(ptr++) = DIR_SEPARATOR;
-    }
-  *ptr = '\0';
-
-  /* Put in directories to move over to prefix.  */
-  for (i = common; i < prefix_num; i++)
-    strcat (ret, prefix_dirs[i]);
-
-  free_split_directories (prog_dirs);
-  free_split_directories (bin_dirs);
-  free_split_directories (prefix_dirs);
-
-  return ret;
-}
diff --git a/libiberty/make-temp-file.c b/libiberty/make-temp-file.c
deleted file mode 100644
index 5e21414..0000000
--- a/libiberty/make-temp-file.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/* Utility to pick a temporary filename prefix.
-   Copyright (C) 1996, 1997, 1998, 2001 Free Software Foundation, Inc.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If not,
-write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdio.h>	/* May get P_tmpdir.  */
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-#ifdef HAVE_SYS_FILE_H
-#include <sys/file.h>   /* May get R_OK, etc. on some systems.  */
-#endif
-
-#ifndef R_OK
-#define R_OK 4
-#define W_OK 2
-#define X_OK 1
-#endif
-
-#include "libiberty.h"
-extern int mkstemps (char *, int);
-
-/* '/' works just fine on MS-DOS based systems.  */
-#ifndef DIR_SEPARATOR
-#define DIR_SEPARATOR '/'
-#endif
-
-/* Name of temporary file.
-   mktemp requires 6 trailing X's.  */
-#define TEMP_FILE "ccXXXXXX"
-#define TEMP_FILE_LEN (sizeof(TEMP_FILE) - 1)
-
-/* Subroutine of choose_tmpdir.
-   If BASE is non-NULL, return it.
-   Otherwise it checks if DIR is a usable directory.
-   If success, DIR is returned.
-   Otherwise NULL is returned.  */
-
-static inline const char *try_dir (const char *, const char *);
-
-static inline const char *
-try_dir (const char *dir, const char *base)
-{
-  if (base != 0)
-    return base;
-  if (dir != 0
-      && access (dir, R_OK | W_OK | X_OK) == 0)
-    return dir;
-  return 0;
-}
-
-static const char tmp[] = { DIR_SEPARATOR, 't', 'm', 'p', 0 };
-static const char usrtmp[] =
-{ DIR_SEPARATOR, 'u', 's', 'r', DIR_SEPARATOR, 't', 'm', 'p', 0 };
-static const char vartmp[] =
-{ DIR_SEPARATOR, 'v', 'a', 'r', DIR_SEPARATOR, 't', 'm', 'p', 0 };
-
-static char *memoized_tmpdir;
-
-/*
-
-@deftypefn Replacement char* choose_tmpdir ()
-
-Returns a pointer to a directory path suitable for creating temporary
-files in.
-
-@end deftypefn
-
-*/
-
-char *
-choose_tmpdir (void)
-{
-  const char *base = 0;
-  char *tmpdir;
-  unsigned int len;
-
-  if (memoized_tmpdir)
-    return memoized_tmpdir;
-
-  base = try_dir (getenv ("TMPDIR"), base);
-  base = try_dir (getenv ("TMP"), base);
-  base = try_dir (getenv ("TEMP"), base);
-
-#ifdef P_tmpdir
-  base = try_dir (P_tmpdir, base);
-#endif
-
-  /* Try /var/tmp, /usr/tmp, then /tmp.  */
-  base = try_dir (vartmp, base);
-  base = try_dir (usrtmp, base);
-  base = try_dir (tmp, base);
- 
-  /* If all else fails, use the current directory!  */
-  if (base == 0)
-    base = ".";
-
-  /* Append DIR_SEPARATOR to the directory we've chosen
-     and return it.  */
-  len = strlen (base);
-  tmpdir = XNEWVEC (char, len + 2);
-  strcpy (tmpdir, base);
-  tmpdir[len] = DIR_SEPARATOR;
-  tmpdir[len+1] = '\0';
-
-  memoized_tmpdir = tmpdir;
-  return tmpdir;
-}
-
-/*
-
-@deftypefn Replacement char* make_temp_file (const char *@var{suffix})
-
-Return a temporary file name (as a string) or @code{NULL} if unable to
-create one.  @var{suffix} is a suffix to append to the file name.  The
-string is @code{malloc}ed, and the temporary file has been created.
-
-@end deftypefn
-
-*/
-
-char *
-make_temp_file (const char *suffix)
-{
-  const char *base = choose_tmpdir ();
-  char *temp_filename;
-  int base_len, suffix_len;
-  int fd;
-
-  if (suffix == 0)
-    suffix = "";
-
-  base_len = strlen (base);
-  suffix_len = strlen (suffix);
-
-  temp_filename = XNEWVEC (char, base_len
-			   + TEMP_FILE_LEN
-			   + suffix_len + 1);
-  strcpy (temp_filename, base);
-  strcpy (temp_filename + base_len, TEMP_FILE);
-  strcpy (temp_filename + base_len + TEMP_FILE_LEN, suffix);
-
-  fd = mkstemps (temp_filename, suffix_len);
-  /* If mkstemps failed, then something bad is happening.  Maybe we should
-     issue a message about a possible security attack in progress?  */
-  if (fd == -1)
-    abort ();
-  /* Similarly if we can not close the file.  */
-  if (close (fd))
-    abort ();
-  return temp_filename;
-}
diff --git a/libiberty/makefile.vms b/libiberty/makefile.vms
deleted file mode 100644
index 6a7dd45..0000000
--- a/libiberty/makefile.vms
+++ /dev/null
@@ -1,33 +0,0 @@
-#
-# Makefile for libiberty under openVMS/Alpha
-#
-# For use with gnu-make for vms
-#
-# Created by Klaus K"ampf, kkaempf@progis.de
-#
-#
-
-OBJS=bcopy.obj,bcmp.obj,getopt.obj,obstack.obj,xexit.obj,xmalloc.obj,hex.obj,\
-   getopt1.obj,cplus-dem.obj,strncasecmp.obj,strcasecmp.obj,strdup.obj,\
-   concat.obj,getruntime.obj,getpagesize.obj,alloca.obj,xstrerror.obj,\
-   xmemdup.obj,xstrdup.obj,xatexit.obj,choose-temp.obj,fnmatch.obj,objalloc.obj
-
-ifeq ($(CC),gcc)
-CFLAGS=/include=([],[-.include])
-else
-# assume dec c
-CFLAGS=/noopt/debug/include=([],[-.include])/define=("const=")/warnings=disable=(missingreturn,implicitfunc)
-endif
-
-libiberty.olb: config.h alloca-conf.h $(OBJS)
-	purge
-	lib/create libiberty *.obj
-
-config.h: config.h-vms
-	$(CP) $< $@
-
-clean:
-	$$ purge
-	$(RM) config.h;
-	$(RM) *.obj;
-	$(RM) libiberty.olb;
diff --git a/libiberty/md5.c b/libiberty/md5.c
deleted file mode 100644
index 83e0beb..0000000
--- a/libiberty/md5.c
+++ /dev/null
@@ -1,430 +0,0 @@
-/* md5.c - Functions to compute MD5 message digest of files or memory blocks
-   according to the definition of MD5 in RFC 1321 from April 1992.
-   Copyright (C) 1995, 1996 Free Software Foundation, Inc.
-
-   NOTE: This source is derived from an old version taken from the GNU C
-   Library (glibc).
-
-   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, 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.  */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-
-#if STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-# include <string.h>
-#else
-# ifndef HAVE_MEMCPY
-#  define memcpy(d, s, n) bcopy ((s), (d), (n))
-# endif
-#endif
-
-#include "ansidecl.h"
-#include "md5.h"
-
-#ifdef _LIBC
-# include <endian.h>
-# if __BYTE_ORDER == __BIG_ENDIAN
-#  define WORDS_BIGENDIAN 1
-# endif
-#endif
-
-#ifdef WORDS_BIGENDIAN
-# define SWAP(n)							\
-    (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24))
-#else
-# define SWAP(n) (n)
-#endif
-
-
-/* This array contains the bytes used to pad the buffer to the next
-   64-byte boundary.  (RFC 1321, 3.1: Step 1)  */
-static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ...  */ };
-
-
-/* Initialize structure containing state of computation.
-   (RFC 1321, 3.3: Step 3)  */
-void
-md5_init_ctx (struct md5_ctx *ctx)
-{
-  ctx->A = (md5_uint32) 0x67452301;
-  ctx->B = (md5_uint32) 0xefcdab89;
-  ctx->C = (md5_uint32) 0x98badcfe;
-  ctx->D = (md5_uint32) 0x10325476;
-
-  ctx->total[0] = ctx->total[1] = 0;
-  ctx->buflen = 0;
-}
-
-/* Put result from CTX in first 16 bytes following RESBUF.  The result
-   must be in little endian byte order.
-
-   IMPORTANT: On some systems it is required that RESBUF is correctly
-   aligned for a 32 bits value.  */
-void *
-md5_read_ctx (const struct md5_ctx *ctx, void *resbuf)
-{
-  ((md5_uint32 *) resbuf)[0] = SWAP (ctx->A);
-  ((md5_uint32 *) resbuf)[1] = SWAP (ctx->B);
-  ((md5_uint32 *) resbuf)[2] = SWAP (ctx->C);
-  ((md5_uint32 *) resbuf)[3] = SWAP (ctx->D);
-
-  return resbuf;
-}
-
-/* Process the remaining bytes in the internal buffer and the usual
-   prolog according to the standard and write the result to RESBUF.
-
-   IMPORTANT: On some systems it is required that RESBUF is correctly
-   aligned for a 32 bits value.  */
-void *
-md5_finish_ctx (struct md5_ctx *ctx, void *resbuf)
-{
-  /* Take yet unprocessed bytes into account.  */
-  md5_uint32 bytes = ctx->buflen;
-  size_t pad;
-
-  /* Now count remaining bytes.  */
-  ctx->total[0] += bytes;
-  if (ctx->total[0] < bytes)
-    ++ctx->total[1];
-
-  pad = bytes >= 56 ? 64 + 56 - bytes : 56 - bytes;
-  memcpy (&ctx->buffer[bytes], fillbuf, pad);
-
-  /* Put the 64-bit file length in *bits* at the end of the buffer.  */
-  *(md5_uint32 *) &ctx->buffer[bytes + pad] = SWAP (ctx->total[0] << 3);
-  *(md5_uint32 *) &ctx->buffer[bytes + pad + 4] = SWAP ((ctx->total[1] << 3) |
-							(ctx->total[0] >> 29));
-
-  /* Process last bytes.  */
-  md5_process_block (ctx->buffer, bytes + pad + 8, ctx);
-
-  return md5_read_ctx (ctx, resbuf);
-}
-
-/* Compute MD5 message digest for bytes read from STREAM.  The
-   resulting message digest number will be written into the 16 bytes
-   beginning at RESBLOCK.  */
-int
-md5_stream (FILE *stream, void *resblock)
-{
-  /* Important: BLOCKSIZE must be a multiple of 64.  */
-#define BLOCKSIZE 4096
-  struct md5_ctx ctx;
-  char buffer[BLOCKSIZE + 72];
-  size_t sum;
-
-  /* Initialize the computation context.  */
-  md5_init_ctx (&ctx);
-
-  /* Iterate over full file contents.  */
-  while (1)
-    {
-      /* We read the file in blocks of BLOCKSIZE bytes.  One call of the
-	 computation function processes the whole buffer so that with the
-	 next round of the loop another block can be read.  */
-      size_t n;
-      sum = 0;
-
-      /* Read block.  Take care for partial reads.  */
-      do
-	{
-	  n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream);
-
-	  sum += n;
-	}
-      while (sum < BLOCKSIZE && n != 0);
-      if (n == 0 && ferror (stream))
-        return 1;
-
-      /* If end of file is reached, end the loop.  */
-      if (n == 0)
-	break;
-
-      /* Process buffer with BLOCKSIZE bytes.  Note that
-			BLOCKSIZE % 64 == 0
-       */
-      md5_process_block (buffer, BLOCKSIZE, &ctx);
-    }
-
-  /* Add the last bytes if necessary.  */
-  if (sum > 0)
-    md5_process_bytes (buffer, sum, &ctx);
-
-  /* Construct result in desired memory.  */
-  md5_finish_ctx (&ctx, resblock);
-  return 0;
-}
-
-/* Compute MD5 message digest for LEN bytes beginning at BUFFER.  The
-   result is always in little endian byte order, so that a byte-wise
-   output yields to the wanted ASCII representation of the message
-   digest.  */
-void *
-md5_buffer (const char *buffer, size_t len, void *resblock)
-{
-  struct md5_ctx ctx;
-
-  /* Initialize the computation context.  */
-  md5_init_ctx (&ctx);
-
-  /* Process whole buffer but last len % 64 bytes.  */
-  md5_process_bytes (buffer, len, &ctx);
-
-  /* Put result in desired memory area.  */
-  return md5_finish_ctx (&ctx, resblock);
-}
-
-
-void
-md5_process_bytes (const void *buffer, size_t len, struct md5_ctx *ctx)
-{
-  /* When we already have some bits in our internal buffer concatenate
-     both inputs first.  */
-  if (ctx->buflen != 0)
-    {
-      size_t left_over = ctx->buflen;
-      size_t add = 128 - left_over > len ? len : 128 - left_over;
-
-      memcpy (&ctx->buffer[left_over], buffer, add);
-      ctx->buflen += add;
-
-      if (left_over + add > 64)
-	{
-	  md5_process_block (ctx->buffer, (left_over + add) & ~63, ctx);
-	  /* The regions in the following copy operation cannot overlap.  */
-	  memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63],
-		  (left_over + add) & 63);
-	  ctx->buflen = (left_over + add) & 63;
-	}
-
-      buffer = (const void *) ((const char *) buffer + add);
-      len -= add;
-    }
-
-  /* Process available complete blocks.  */
-  if (len > 64)
-    {
-#if !_STRING_ARCH_unaligned
-/* To check alignment gcc has an appropriate operator.  Other
-   compilers don't.  */
-# if __GNUC__ >= 2
-#  define UNALIGNED_P(p) (((md5_uintptr) p) % __alignof__ (md5_uint32) != 0)
-# else
-#  define UNALIGNED_P(p) (((md5_uintptr) p) % sizeof (md5_uint32) != 0)
-# endif
-      if (UNALIGNED_P (buffer))
-        while (len > 64)
-          {
-            md5_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx);
-            buffer = (const char *) buffer + 64;
-            len -= 64;
-          }
-      else
-#endif
-      md5_process_block (buffer, len & ~63, ctx);
-      buffer = (const void *) ((const char *) buffer + (len & ~63));
-      len &= 63;
-    }
-
-  /* Move remaining bytes in internal buffer.  */
-  if (len > 0)
-    {
-      memcpy (ctx->buffer, buffer, len);
-      ctx->buflen = len;
-    }
-}
-
-
-/* These are the four functions used in the four steps of the MD5 algorithm
-   and defined in the RFC 1321.  The first function is a little bit optimized
-   (as found in Colin Plumbs public domain implementation).  */
-/* #define FF(b, c, d) ((b & c) | (~b & d)) */
-#define FF(b, c, d) (d ^ (b & (c ^ d)))
-#define FG(b, c, d) FF (d, b, c)
-#define FH(b, c, d) (b ^ c ^ d)
-#define FI(b, c, d) (c ^ (b | ~d))
-
-/* Process LEN bytes of BUFFER, accumulating context into CTX.
-   It is assumed that LEN % 64 == 0.  */
-
-void
-md5_process_block (const void *buffer, size_t len, struct md5_ctx *ctx)
-{
-  md5_uint32 correct_words[16];
-  const md5_uint32 *words = (const md5_uint32 *) buffer;
-  size_t nwords = len / sizeof (md5_uint32);
-  const md5_uint32 *endp = words + nwords;
-  md5_uint32 A = ctx->A;
-  md5_uint32 B = ctx->B;
-  md5_uint32 C = ctx->C;
-  md5_uint32 D = ctx->D;
-
-  /* First increment the byte count.  RFC 1321 specifies the possible
-     length of the file up to 2^64 bits.  Here we only compute the
-     number of bytes.  Do a double word increment.  */
-  ctx->total[0] += len;
-  if (ctx->total[0] < len)
-    ++ctx->total[1];
-
-  /* Process all bytes in the buffer with 64 bytes in each round of
-     the loop.  */
-  while (words < endp)
-    {
-      md5_uint32 *cwp = correct_words;
-      md5_uint32 A_save = A;
-      md5_uint32 B_save = B;
-      md5_uint32 C_save = C;
-      md5_uint32 D_save = D;
-
-      /* First round: using the given function, the context and a constant
-	 the next context is computed.  Because the algorithms processing
-	 unit is a 32-bit word and it is determined to work on words in
-	 little endian byte order we perhaps have to change the byte order
-	 before the computation.  To reduce the work for the next steps
-	 we store the swapped words in the array CORRECT_WORDS.  */
-
-#define OP(a, b, c, d, s, T)						\
-      do								\
-        {								\
-	  a += FF (b, c, d) + (*cwp++ = SWAP (*words)) + T;		\
-	  ++words;							\
-	  CYCLIC (a, s);						\
-	  a += b;							\
-        }								\
-      while (0)
-
-      /* It is unfortunate that C does not provide an operator for
-	 cyclic rotation.  Hope the C compiler is smart enough.  */
-#define CYCLIC(w, s) (w = (w << s) | (w >> (32 - s)))
-
-      /* Before we start, one word to the strange constants.
-	 They are defined in RFC 1321 as
-
-	 T[i] = (int) (4294967296.0 * fabs (sin (i))), i=1..64
-       */
-
-      /* Round 1.  */
-      OP (A, B, C, D,  7, (md5_uint32) 0xd76aa478);
-      OP (D, A, B, C, 12, (md5_uint32) 0xe8c7b756);
-      OP (C, D, A, B, 17, (md5_uint32) 0x242070db);
-      OP (B, C, D, A, 22, (md5_uint32) 0xc1bdceee);
-      OP (A, B, C, D,  7, (md5_uint32) 0xf57c0faf);
-      OP (D, A, B, C, 12, (md5_uint32) 0x4787c62a);
-      OP (C, D, A, B, 17, (md5_uint32) 0xa8304613);
-      OP (B, C, D, A, 22, (md5_uint32) 0xfd469501);
-      OP (A, B, C, D,  7, (md5_uint32) 0x698098d8);
-      OP (D, A, B, C, 12, (md5_uint32) 0x8b44f7af);
-      OP (C, D, A, B, 17, (md5_uint32) 0xffff5bb1);
-      OP (B, C, D, A, 22, (md5_uint32) 0x895cd7be);
-      OP (A, B, C, D,  7, (md5_uint32) 0x6b901122);
-      OP (D, A, B, C, 12, (md5_uint32) 0xfd987193);
-      OP (C, D, A, B, 17, (md5_uint32) 0xa679438e);
-      OP (B, C, D, A, 22, (md5_uint32) 0x49b40821);
-
-      /* For the second to fourth round we have the possibly swapped words
-	 in CORRECT_WORDS.  Redefine the macro to take an additional first
-	 argument specifying the function to use.  */
-#undef OP
-#define OP(a, b, c, d, k, s, T)						\
-      do 								\
-	{								\
-	  a += FX (b, c, d) + correct_words[k] + T;			\
-	  CYCLIC (a, s);						\
-	  a += b;							\
-	}								\
-      while (0)
-
-#define FX(b, c, d) FG (b, c, d)
-
-      /* Round 2.  */
-      OP (A, B, C, D,  1,  5, (md5_uint32) 0xf61e2562);
-      OP (D, A, B, C,  6,  9, (md5_uint32) 0xc040b340);
-      OP (C, D, A, B, 11, 14, (md5_uint32) 0x265e5a51);
-      OP (B, C, D, A,  0, 20, (md5_uint32) 0xe9b6c7aa);
-      OP (A, B, C, D,  5,  5, (md5_uint32) 0xd62f105d);
-      OP (D, A, B, C, 10,  9, (md5_uint32) 0x02441453);
-      OP (C, D, A, B, 15, 14, (md5_uint32) 0xd8a1e681);
-      OP (B, C, D, A,  4, 20, (md5_uint32) 0xe7d3fbc8);
-      OP (A, B, C, D,  9,  5, (md5_uint32) 0x21e1cde6);
-      OP (D, A, B, C, 14,  9, (md5_uint32) 0xc33707d6);
-      OP (C, D, A, B,  3, 14, (md5_uint32) 0xf4d50d87);
-      OP (B, C, D, A,  8, 20, (md5_uint32) 0x455a14ed);
-      OP (A, B, C, D, 13,  5, (md5_uint32) 0xa9e3e905);
-      OP (D, A, B, C,  2,  9, (md5_uint32) 0xfcefa3f8);
-      OP (C, D, A, B,  7, 14, (md5_uint32) 0x676f02d9);
-      OP (B, C, D, A, 12, 20, (md5_uint32) 0x8d2a4c8a);
-
-#undef FX
-#define FX(b, c, d) FH (b, c, d)
-
-      /* Round 3.  */
-      OP (A, B, C, D,  5,  4, (md5_uint32) 0xfffa3942);
-      OP (D, A, B, C,  8, 11, (md5_uint32) 0x8771f681);
-      OP (C, D, A, B, 11, 16, (md5_uint32) 0x6d9d6122);
-      OP (B, C, D, A, 14, 23, (md5_uint32) 0xfde5380c);
-      OP (A, B, C, D,  1,  4, (md5_uint32) 0xa4beea44);
-      OP (D, A, B, C,  4, 11, (md5_uint32) 0x4bdecfa9);
-      OP (C, D, A, B,  7, 16, (md5_uint32) 0xf6bb4b60);
-      OP (B, C, D, A, 10, 23, (md5_uint32) 0xbebfbc70);
-      OP (A, B, C, D, 13,  4, (md5_uint32) 0x289b7ec6);
-      OP (D, A, B, C,  0, 11, (md5_uint32) 0xeaa127fa);
-      OP (C, D, A, B,  3, 16, (md5_uint32) 0xd4ef3085);
-      OP (B, C, D, A,  6, 23, (md5_uint32) 0x04881d05);
-      OP (A, B, C, D,  9,  4, (md5_uint32) 0xd9d4d039);
-      OP (D, A, B, C, 12, 11, (md5_uint32) 0xe6db99e5);
-      OP (C, D, A, B, 15, 16, (md5_uint32) 0x1fa27cf8);
-      OP (B, C, D, A,  2, 23, (md5_uint32) 0xc4ac5665);
-
-#undef FX
-#define FX(b, c, d) FI (b, c, d)
-
-      /* Round 4.  */
-      OP (A, B, C, D,  0,  6, (md5_uint32) 0xf4292244);
-      OP (D, A, B, C,  7, 10, (md5_uint32) 0x432aff97);
-      OP (C, D, A, B, 14, 15, (md5_uint32) 0xab9423a7);
-      OP (B, C, D, A,  5, 21, (md5_uint32) 0xfc93a039);
-      OP (A, B, C, D, 12,  6, (md5_uint32) 0x655b59c3);
-      OP (D, A, B, C,  3, 10, (md5_uint32) 0x8f0ccc92);
-      OP (C, D, A, B, 10, 15, (md5_uint32) 0xffeff47d);
-      OP (B, C, D, A,  1, 21, (md5_uint32) 0x85845dd1);
-      OP (A, B, C, D,  8,  6, (md5_uint32) 0x6fa87e4f);
-      OP (D, A, B, C, 15, 10, (md5_uint32) 0xfe2ce6e0);
-      OP (C, D, A, B,  6, 15, (md5_uint32) 0xa3014314);
-      OP (B, C, D, A, 13, 21, (md5_uint32) 0x4e0811a1);
-      OP (A, B, C, D,  4,  6, (md5_uint32) 0xf7537e82);
-      OP (D, A, B, C, 11, 10, (md5_uint32) 0xbd3af235);
-      OP (C, D, A, B,  2, 15, (md5_uint32) 0x2ad7d2bb);
-      OP (B, C, D, A,  9, 21, (md5_uint32) 0xeb86d391);
-
-      /* Add the starting values of the context.  */
-      A += A_save;
-      B += B_save;
-      C += C_save;
-      D += D_save;
-    }
-
-  /* Put checksum in context given as argument.  */
-  ctx->A = A;
-  ctx->B = B;
-  ctx->C = C;
-  ctx->D = D;
-}
diff --git a/libiberty/memchr.c b/libiberty/memchr.c
deleted file mode 100644
index 451f817..0000000
--- a/libiberty/memchr.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
-
-@deftypefn Supplemental void* memchr (const void *@var{s}, int @var{c}, size_t @var{n})
-
-This function searches memory starting at @code{*@var{s}} for the
-character @var{c}.  The search only ends with the first occurrence of
-@var{c}, or after @var{length} characters; in particular, a null
-character does not terminate the search.  If the character @var{c} is
-found within @var{length} characters of @code{*@var{s}}, a pointer
-to the character is returned.  If @var{c} is not found, then @code{NULL} is
-returned.
-
-@end deftypefn
-
-*/
-
-#include <ansidecl.h>
-#include <stddef.h>
-
-PTR
-memchr (register const PTR src_void, int c, size_t length)
-{
-  const unsigned char *src = (const unsigned char *)src_void;
-  
-  while (length-- > 0)
-  {
-    if (*src == c)
-     return (PTR)src;
-    src++;
-  }
-  return NULL;
-}
diff --git a/libiberty/memcmp.c b/libiberty/memcmp.c
deleted file mode 100644
index 39edfca..0000000
--- a/libiberty/memcmp.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* memcmp -- compare two memory regions.
-   This function is in the public domain.  */
-
-/*
-
-@deftypefn Supplemental int memcmp (const void *@var{x}, const void *@var{y}, size_t @var{count})
-
-Compares the first @var{count} bytes of two areas of memory.  Returns
-zero if they are the same, a value less than zero if @var{x} is
-lexically less than @var{y}, or a value greater than zero if @var{x}
-is lexically greater than @var{y}.  Note that lexical order is determined
-as if comparing unsigned char arrays.
-
-@end deftypefn
-
-*/
-
-#include <ansidecl.h>
-#include <stddef.h>
-
-int
-memcmp (const PTR str1, const PTR str2, size_t count)
-{
-  register const unsigned char *s1 = (const unsigned char*)str1;
-  register const unsigned char *s2 = (const unsigned char*)str2;
-
-  while (count-- > 0)
-    {
-      if (*s1++ != *s2++)
-	  return s1[-1] < s2[-1] ? -1 : 1;
-    }
-  return 0;
-}
-
diff --git a/libiberty/memcpy.c b/libiberty/memcpy.c
deleted file mode 100644
index 9b5b242..0000000
--- a/libiberty/memcpy.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* memcpy (the standard C function)
-   This function is in the public domain.  */
-
-/*
-
-@deftypefn Supplemental void* memcpy (void *@var{out}, const void *@var{in}, size_t @var{length})
-
-Copies @var{length} bytes from memory region @var{in} to region
-@var{out}.  Returns a pointer to @var{out}.
-
-@end deftypefn
-
-*/
-
-#include <ansidecl.h>
-#include <stddef.h>
-
-void bcopy (const void*, void*, size_t);
-
-PTR
-memcpy (PTR out, const PTR in, size_t length)
-{
-    bcopy(in, out, length);
-    return out;
-}
diff --git a/libiberty/memmove.c b/libiberty/memmove.c
deleted file mode 100644
index 06a24fc..0000000
--- a/libiberty/memmove.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Wrapper to implement ANSI C's memmove using BSD's bcopy. */
-/* This function is in the public domain.  --Per Bothner. */
-
-/*
-
-@deftypefn Supplemental void* memmove (void *@var{from}, const void *@var{to}, size_t @var{count})
-
-Copies @var{count} bytes from memory area @var{from} to memory area
-@var{to}, returning a pointer to @var{to}.
-
-@end deftypefn
-
-*/
-
-#include <ansidecl.h>
-#include <stddef.h>
-
-void bcopy (const void*, void*, size_t);
-
-PTR
-memmove (PTR s1, const PTR s2, size_t n)
-{
-  bcopy (s2, s1, n);
-  return s1;
-}
diff --git a/libiberty/mempcpy.c b/libiberty/mempcpy.c
deleted file mode 100644
index beda7df..0000000
--- a/libiberty/mempcpy.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Implement the mempcpy function.
-   Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
-   Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-/*
-
-@deftypefn Supplemental void* mempcpy (void *@var{out}, const void *@var{in}, size_t @var{length})
-
-Copies @var{length} bytes from memory region @var{in} to region
-@var{out}.  Returns a pointer to @var{out} + @var{length}.
-
-@end deftypefn
-
-*/
-
-#include <ansidecl.h>
-#include <stddef.h>
-
-extern PTR memcpy (PTR, const PTR, size_t);
-
-PTR
-mempcpy (PTR dst, const PTR src, size_t len)
-{
-  return (char *) memcpy (dst, src, len) + len;
-}
diff --git a/libiberty/memset.c b/libiberty/memset.c
deleted file mode 100644
index 1951ad6..0000000
--- a/libiberty/memset.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* memset
-   This implementation is in the public domain.  */
-
-/*
-
-@deftypefn Supplemental void* memset (void *@var{s}, int @var{c}, size_t @var{count})
-
-Sets the first @var{count} bytes of @var{s} to the constant byte
-@var{c}, returning a pointer to @var{s}.
-
-@end deftypefn
-
-*/
-
-#include <ansidecl.h>
-#include <stddef.h>
-
-PTR
-memset (PTR dest, register int val, register size_t len)
-{
-  register unsigned char *ptr = (unsigned char*)dest;
-  while (len-- > 0)
-    *ptr++ = val;
-  return dest;
-}
diff --git a/libiberty/mkstemps.c b/libiberty/mkstemps.c
deleted file mode 100644
index 6c2e472..0000000
--- a/libiberty/mkstemps.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/* Copyright (C) 1991, 1992, 1996, 1998, 2004 Free Software Foundation, Inc.
-   This file is derived from mkstemp.c from the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library 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
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <sys/types.h>
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-#include <errno.h>
-#include <stdio.h>
-#include <fcntl.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#include "ansidecl.h"
-
-/* We need to provide a type for gcc_uint64_t.  */
-#ifdef __GNUC__
-__extension__ typedef unsigned long long gcc_uint64_t;
-#else
-typedef unsigned long gcc_uint64_t;
-#endif
-
-#ifndef TMP_MAX
-#define TMP_MAX 16384
-#endif
-
-#ifndef O_BINARY
-# define O_BINARY 0
-#endif
-
-/*
-
-@deftypefn Replacement int mkstemps (char *@var{pattern}, int @var{suffix_len})
-
-Generate a unique temporary file name from @var{pattern}.
-@var{pattern} has the form:
-
-@example
-   @var{path}/ccXXXXXX@var{suffix}
-@end example
-
-@var{suffix_len} tells us how long @var{suffix} is (it can be zero
-length).  The last six characters of @var{pattern} before @var{suffix}
-must be @samp{XXXXXX}; they are replaced with a string that makes the
-filename unique.  Returns a file descriptor open on the file for
-reading and writing.
-
-@end deftypefn
-
-*/
-
-int
-mkstemps (char *pattern, int suffix_len)
-{
-  static const char letters[]
-    = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
-  static gcc_uint64_t value;
-#ifdef HAVE_GETTIMEOFDAY
-  struct timeval tv;
-#endif
-  char *XXXXXX;
-  size_t len;
-  int count;
-
-  len = strlen (pattern);
-
-  if ((int) len < 6 + suffix_len
-      || strncmp (&pattern[len - 6 - suffix_len], "XXXXXX", 6))
-    {
-      return -1;
-    }
-
-  XXXXXX = &pattern[len - 6 - suffix_len];
-
-#ifdef HAVE_GETTIMEOFDAY
-  /* Get some more or less random data.  */
-  gettimeofday (&tv, NULL);
-  value += ((gcc_uint64_t) tv.tv_usec << 16) ^ tv.tv_sec ^ getpid ();
-#else
-  value += getpid ();
-#endif
-
-  for (count = 0; count < TMP_MAX; ++count)
-    {
-      gcc_uint64_t v = value;
-      int fd;
-
-      /* Fill in the random bits.  */
-      XXXXXX[0] = letters[v % 62];
-      v /= 62;
-      XXXXXX[1] = letters[v % 62];
-      v /= 62;
-      XXXXXX[2] = letters[v % 62];
-      v /= 62;
-      XXXXXX[3] = letters[v % 62];
-      v /= 62;
-      XXXXXX[4] = letters[v % 62];
-      v /= 62;
-      XXXXXX[5] = letters[v % 62];
-
-      fd = open (pattern, O_BINARY|O_RDWR|O_CREAT|O_EXCL, 0600);
-      if (fd >= 0)
-	/* The file does not exist.  */
-	return fd;
-
-      /* This is a random value.  It is only necessary that the next
-	 TMP_MAX values generated by adding 7777 to VALUE are different
-	 with (module 2^32).  */
-      value += 7777;
-    }
-
-  /* We return the null string if we can't find a unique file name.  */
-  pattern[0] = '\0';
-  return -1;
-}
diff --git a/libiberty/msdos.c b/libiberty/msdos.c
deleted file mode 100644
index 923e64d..0000000
--- a/libiberty/msdos.c
+++ /dev/null
@@ -1,15 +0,0 @@
-char msg[] = "No vfork available - aborting\n";
-vfork()
-{
-  write(1, msg, sizeof(msg));
-}
-
-sigsetmask()
-{
-  /* no signals support in go32 (yet) */
-}
-
-waitpid()
-{
-  return -1;
-}
diff --git a/libiberty/objalloc.c b/libiberty/objalloc.c
deleted file mode 100644
index 3ddac2c..0000000
--- a/libiberty/objalloc.c
+++ /dev/null
@@ -1,291 +0,0 @@
-/* objalloc.c -- routines to allocate memory for objects
-   Copyright 1997 Free Software Foundation, Inc.
-   Written by Ian Lance Taylor, Cygnus Solutions.
-
-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, 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, 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#include "config.h"
-#include "ansidecl.h"
-
-#include "objalloc.h"
-
-/* Get a definition for NULL.  */
-#include <stdio.h>
-
-#if VMS
-#include <stdlib.h>
-#include <unixlib.h>
-#else
-
-/* Get a definition for size_t.  */
-#include <stddef.h>
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#else
-/* For systems with larger pointers than ints, this must be declared.  */
-extern PTR malloc (size_t);
-extern void free (PTR);
-#endif
-
-#endif
-
-/* These routines allocate space for an object.  Freeing allocated
-   space may or may not free all more recently allocated space.
-
-   We handle large and small allocation requests differently.  If we
-   don't have enough space in the current block, and the allocation
-   request is for more than 512 bytes, we simply pass it through to
-   malloc.  */
-
-/* The objalloc structure is defined in objalloc.h.  */
-
-/* This structure appears at the start of each chunk.  */
-
-struct objalloc_chunk
-{
-  /* Next chunk.  */
-  struct objalloc_chunk *next;
-  /* If this chunk contains large objects, this is the value of
-     current_ptr when this chunk was allocated.  If this chunk
-     contains small objects, this is NULL.  */
-  char *current_ptr;
-};
-
-/* The aligned size of objalloc_chunk.  */
-
-#define CHUNK_HEADER_SIZE					\
-  ((sizeof (struct objalloc_chunk) + OBJALLOC_ALIGN - 1)	\
-   &~ (OBJALLOC_ALIGN - 1))
-
-/* We ask for this much memory each time we create a chunk which is to
-   hold small objects.  */
-
-#define CHUNK_SIZE (4096 - 32)
-
-/* A request for this amount or more is just passed through to malloc.  */
-
-#define BIG_REQUEST (512)
-
-/* Create an objalloc structure.  */
-
-struct objalloc *
-objalloc_create (void)
-{
-  struct objalloc *ret;
-  struct objalloc_chunk *chunk;
-
-  ret = (struct objalloc *) malloc (sizeof *ret);
-  if (ret == NULL)
-    return NULL;
-
-  ret->chunks = (PTR) malloc (CHUNK_SIZE);
-  if (ret->chunks == NULL)
-    {
-      free (ret);
-      return NULL;
-    }
-
-  chunk = (struct objalloc_chunk *) ret->chunks;
-  chunk->next = NULL;
-  chunk->current_ptr = NULL;
-
-  ret->current_ptr = (char *) chunk + CHUNK_HEADER_SIZE;
-  ret->current_space = CHUNK_SIZE - CHUNK_HEADER_SIZE;
-
-  return ret;
-}
-
-/* Allocate space from an objalloc structure.  */
-
-PTR
-_objalloc_alloc (struct objalloc *o, unsigned long len)
-{
-  /* We avoid confusion from zero sized objects by always allocating
-     at least 1 byte.  */
-  if (len == 0)
-    len = 1;
-
-  len = (len + OBJALLOC_ALIGN - 1) &~ (OBJALLOC_ALIGN - 1);
-
-  if (len <= o->current_space)
-    {
-      o->current_ptr += len;
-      o->current_space -= len;
-      return (PTR) (o->current_ptr - len);
-    }
-
-  if (len >= BIG_REQUEST)
-    {
-      char *ret;
-      struct objalloc_chunk *chunk;
-
-      ret = (char *) malloc (CHUNK_HEADER_SIZE + len);
-      if (ret == NULL)
-	return NULL;
-
-      chunk = (struct objalloc_chunk *) ret;
-      chunk->next = (struct objalloc_chunk *) o->chunks;
-      chunk->current_ptr = o->current_ptr;
-
-      o->chunks = (PTR) chunk;
-
-      return (PTR) (ret + CHUNK_HEADER_SIZE);
-    }
-  else
-    {
-      struct objalloc_chunk *chunk;
-
-      chunk = (struct objalloc_chunk *) malloc (CHUNK_SIZE);
-      if (chunk == NULL)
-	return NULL;
-      chunk->next = (struct objalloc_chunk *) o->chunks;
-      chunk->current_ptr = NULL;
-
-      o->current_ptr = (char *) chunk + CHUNK_HEADER_SIZE;
-      o->current_space = CHUNK_SIZE - CHUNK_HEADER_SIZE;
-
-      o->chunks = (PTR) chunk;
-
-      return objalloc_alloc (o, len);
-    }
-}
-
-/* Free an entire objalloc structure.  */
-
-void
-objalloc_free (struct objalloc *o)
-{
-  struct objalloc_chunk *l;
-
-  l = (struct objalloc_chunk *) o->chunks;
-  while (l != NULL)
-    {
-      struct objalloc_chunk *next;
-
-      next = l->next;
-      free (l);
-      l = next;
-    }
-
-  free (o);
-}
-
-/* Free a block from an objalloc structure.  This also frees all more
-   recently allocated blocks.  */
-
-void
-objalloc_free_block (struct objalloc *o, PTR block)
-{
-  struct objalloc_chunk *p, *small;
-  char *b = (char *) block;
-
-  /* First set P to the chunk which contains the block we are freeing,
-     and set Q to the last small object chunk we see before P.  */
-  small = NULL;
-  for (p = (struct objalloc_chunk *) o->chunks; p != NULL; p = p->next)
-    {
-      if (p->current_ptr == NULL)
-	{
-	  if (b > (char *) p && b < (char *) p + CHUNK_SIZE)
-	    break;
-	  small = p;
-	}
-      else
-	{
-	  if (b == (char *) p + CHUNK_HEADER_SIZE)
-	    break;
-	}
-    }
-
-  /* If we can't find the chunk, the caller has made a mistake.  */
-  if (p == NULL)
-    abort ();
-
-  if (p->current_ptr == NULL)
-    {
-      struct objalloc_chunk *q;
-      struct objalloc_chunk *first;
-
-      /* The block is in a chunk containing small objects.  We can
-	 free every chunk through SMALL, because they have certainly
-	 been allocated more recently.  After SMALL, we will not see
-	 any chunks containing small objects; we can free any big
-	 chunk if the current_ptr is greater than or equal to B.  We
-	 can then reset the new current_ptr to B.  */
-
-      first = NULL;
-      q = (struct objalloc_chunk *) o->chunks;
-      while (q != p)
-	{
-	  struct objalloc_chunk *next;
-
-	  next = q->next;
-	  if (small != NULL)
-	    {
-	      if (small == q)
-		small = NULL;
-	      free (q);
-	    }
-	  else if (q->current_ptr > b)
-	    free (q);
-	  else if (first == NULL)
-	    first = q;
-
-	  q = next;
-	}
-
-      if (first == NULL)
-	first = p;
-      o->chunks = (PTR) first;
-
-      /* Now start allocating from this small block again.  */
-      o->current_ptr = b;
-      o->current_space = ((char *) p + CHUNK_SIZE) - b;
-    }
-  else
-    {
-      struct objalloc_chunk *q;
-      char *current_ptr;
-
-      /* This block is in a large chunk by itself.  We can free
-         everything on the list up to and including this block.  We
-         then start allocating from the next chunk containing small
-         objects, setting current_ptr from the value stored with the
-         large chunk we are freeing.  */
-
-      current_ptr = p->current_ptr;
-      p = p->next;
-
-      q = (struct objalloc_chunk *) o->chunks;
-      while (q != p)
-	{
-	  struct objalloc_chunk *next;
-
-	  next = q->next;
-	  free (q);
-	  q = next;
-	}
-
-      o->chunks = (PTR) p;
-
-      while (p->current_ptr != NULL)
-	p = p->next;
-
-      o->current_ptr = current_ptr;
-      o->current_space = ((char *) p + CHUNK_SIZE) - current_ptr;
-    }
-}
diff --git a/libiberty/obstack.c b/libiberty/obstack.c
deleted file mode 100644
index a6dbaf0..0000000
--- a/libiberty/obstack.c
+++ /dev/null
@@ -1,510 +0,0 @@
-/* obstack.c - subroutines used implicitly by object stack macros
-   Copyright (C) 1988,89,90,91,92,93,94,96,97 Free Software Foundation, Inc.
-
-
-   NOTE: This source is derived from an old version taken from the GNU C
-   Library (glibc).
-
-   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, 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301,
-   USA.  */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "obstack.h"
-
-/* NOTE BEFORE MODIFYING THIS FILE: This version number must be
-   incremented whenever callers compiled using an old obstack.h can no
-   longer properly call the functions in this obstack.c.  */
-#define OBSTACK_INTERFACE_VERSION 1
-
-/* Comment out all this code if we are using the GNU C Library, and are not
-   actually compiling the library itself, and the installed library
-   supports the same library interface we do.  This code is part of the GNU
-   C Library, but also included in many other GNU distributions.  Compiling
-   and linking in this code is a waste when using the GNU C library
-   (especially if it is a shared library).  Rather than having every GNU
-   program understand `configure --with-gnu-libc' and omit the object
-   files, it is simpler to just do this in the source for each such file.  */
-
-#include <stdio.h>		/* Random thing to get __GNU_LIBRARY__.  */
-#if !defined (_LIBC) && defined (__GNU_LIBRARY__) && __GNU_LIBRARY__ > 1
-#include <gnu-versions.h>
-#if _GNU_OBSTACK_INTERFACE_VERSION == OBSTACK_INTERFACE_VERSION
-#define ELIDE_CODE
-#endif
-#endif
-
-
-#ifndef ELIDE_CODE
-
-
-#define POINTER void *
-
-/* Determine default alignment.  */
-struct fooalign {char x; double d;};
-#define DEFAULT_ALIGNMENT  \
-  ((PTR_INT_TYPE) ((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 functions allocating more room by calling `obstack_chunk_alloc'
-   jump to the handler pointed to by `obstack_alloc_failed_handler'.
-   This variable by default points to the internal function
-   `print_and_abort'.  */
-static void print_and_abort (void);
-void (*obstack_alloc_failed_handler) (void) = print_and_abort;
-
-/* Exit value used when `print_and_abort' is used.  */
-#if defined __GNU_LIBRARY__ || defined HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifndef EXIT_FAILURE
-#define EXIT_FAILURE 1
-#endif
-int obstack_exit_failure = EXIT_FAILURE;
-
-/* The non-GNU-C macros copy the obstack into this global variable
-   to avoid multiple evaluation.  */
-
-struct obstack *_obstack;
-
-/* Define a macro that either calls functions with the traditional malloc/free
-   calling interface, or calls functions with the mmalloc/mfree interface
-   (that adds an extra first argument), based on the state of use_extra_arg.
-   For free, do not use ?:, since some compilers, like the MIPS compilers,
-   do not allow (expr) ? void : void.  */
-
-#if defined (__STDC__) && __STDC__
-#define CALL_CHUNKFUN(h, size) \
-  (((h) -> use_extra_arg) \
-   ? (*(h)->chunkfun) ((h)->extra_arg, (size)) \
-   : (*(struct _obstack_chunk *(*) (long)) (h)->chunkfun) ((size)))
-
-#define CALL_FREEFUN(h, old_chunk) \
-  do { \
-    if ((h) -> use_extra_arg) \
-      (*(h)->freefun) ((h)->extra_arg, (old_chunk)); \
-    else \
-      (*(void (*) (void *)) (h)->freefun) ((old_chunk)); \
-  } while (0)
-#else
-#define CALL_CHUNKFUN(h, size) \
-  (((h) -> use_extra_arg) \
-   ? (*(h)->chunkfun) ((h)->extra_arg, (size)) \
-   : (*(struct _obstack_chunk *(*) ()) (h)->chunkfun) ((size)))
-
-#define CALL_FREEFUN(h, old_chunk) \
-  do { \
-    if ((h) -> use_extra_arg) \
-      (*(h)->freefun) ((h)->extra_arg, (old_chunk)); \
-    else \
-      (*(void (*) ()) (h)->freefun) ((old_chunk)); \
-  } while (0)
-#endif
-
-
-/* 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.
-
-   Return nonzero if successful, zero if out of memory.
-   To recover from an out of memory error,
-   free up some memory, then call this again.  */
-
-int
-_obstack_begin (struct obstack *h, int size, int alignment,
-                POINTER (*chunkfun) (long), void (*freefun) (void *))
-{
-  register struct _obstack_chunk *chunk; /* points to new chunk */
-
-  if (alignment == 0)
-    alignment = (int) 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 = (struct _obstack_chunk * (*)(void *, long)) chunkfun;
-  h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun;
-  h->chunk_size = size;
-  h->alignment_mask = alignment - 1;
-  h->use_extra_arg = 0;
-
-  chunk = h->chunk = CALL_CHUNKFUN (h, h -> chunk_size);
-  if (!chunk)
-    (*obstack_alloc_failed_handler) ();
-  h->next_free = h->object_base = chunk->contents;
-  h->chunk_limit = chunk->limit
-    = (char *) chunk + h->chunk_size;
-  chunk->prev = 0;
-  /* The initial chunk now contains no empty object.  */
-  h->maybe_empty_object = 0;
-  h->alloc_failed = 0;
-  return 1;
-}
-
-int
-_obstack_begin_1 (struct obstack *h, int size, int alignment,
-                  POINTER (*chunkfun) (POINTER, long),
-                  void (*freefun) (POINTER, POINTER), POINTER arg)
-{
-  register struct _obstack_chunk *chunk; /* points to new chunk */
-
-  if (alignment == 0)
-    alignment = (int) 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 = (struct _obstack_chunk * (*)(void *,long)) chunkfun;
-  h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun;
-  h->chunk_size = size;
-  h->alignment_mask = alignment - 1;
-  h->extra_arg = arg;
-  h->use_extra_arg = 1;
-
-  chunk = h->chunk = CALL_CHUNKFUN (h, h -> chunk_size);
-  if (!chunk)
-    (*obstack_alloc_failed_handler) ();
-  h->next_free = h->object_base = chunk->contents;
-  h->chunk_limit = chunk->limit
-    = (char *) chunk + h->chunk_size;
-  chunk->prev = 0;
-  /* The initial chunk now contains no empty object.  */
-  h->maybe_empty_object = 0;
-  h->alloc_failed = 0;
-  return 1;
-}
-
-/* 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.  */
-
-void
-_obstack_newchunk (struct obstack *h, int length)
-{
-  register struct _obstack_chunk *old_chunk = h->chunk;
-  register struct _obstack_chunk *new_chunk;
-  register long	new_size;
-  register long obj_size = h->next_free - h->object_base;
-  register long i;
-  long 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 = CALL_CHUNKFUN (h, new_size);
-  if (!new_chunk)
-    (*obstack_alloc_failed_handler) ();
-  h->chunk = new_chunk;
-  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];
-
-  /* If the object just copied was the only data in OLD_CHUNK,
-     free that chunk and remove it from the chain.
-     But not if that chunk might contain an empty object.  */
-  if (h->object_base == old_chunk->contents && ! h->maybe_empty_object)
-    {
-      new_chunk->prev = old_chunk->prev;
-      CALL_FREEFUN (h, old_chunk);
-    }
-
-  h->object_base = new_chunk->contents;
-  h->next_free = h->object_base + obj_size;
-  /* The new chunk certainly contains no empty object yet.  */
-  h->maybe_empty_object = 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.  */
-
-/* Suppress -Wmissing-prototypes warning.  We don't want to declare this in
-   obstack.h because it is just for debugging.  */
-int _obstack_allocated_p (struct obstack *h, POINTER obj);
-
-int
-_obstack_allocated_p (struct obstack *h, POINTER 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;
-  /* We use >= rather than > since the object cannot be exactly at
-     the beginning of the chunk but might be an empty object exactly
-     at the end of an adjacent chunk.  */
-  while (lp != 0 && ((POINTER) lp >= obj || (POINTER) (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.  */
-
-#undef obstack_free
-
-/* This function has two names with identical definitions.
-   This is the first one, called from non-ANSI code.  */
-
-void
-_obstack_free (struct obstack *h, POINTER 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;
-  /* 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 && ((POINTER) lp >= obj || (POINTER) (lp)->limit < obj))
-    {
-      plp = lp->prev;
-      CALL_FREEFUN (h, lp);
-      lp = plp;
-      /* If we switch chunks, we can't tell whether the new current
-	 chunk contains an empty object, so assume that it may.  */
-      h->maybe_empty_object = 1;
-    }
-  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 ();
-}
-
-/* This function is used from ANSI code.  */
-
-void
-obstack_free (struct obstack *h, POINTER 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;
-  /* 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 && ((POINTER) lp >= obj || (POINTER) (lp)->limit < obj))
-    {
-      plp = lp->prev;
-      CALL_FREEFUN (h, lp);
-      lp = plp;
-      /* If we switch chunks, we can't tell whether the new current
-	 chunk contains an empty object, so assume that it may.  */
-      h->maybe_empty_object = 1;
-    }
-  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 ();
-}
-
-int
-_obstack_memory_used (struct obstack *h)
-{
-  register struct _obstack_chunk* lp;
-  register int nbytes = 0;
-
-  for (lp = h->chunk; lp != 0; lp = lp->prev)
-    {
-      nbytes += lp->limit - (char *) lp;
-    }
-  return nbytes;
-}
-
-/* Define the error handler.  */
-#ifndef _
-# if (HAVE_LIBINTL_H && ENABLE_NLS) || defined _LIBC
-#  include <libintl.h>
-#  ifndef _
-#   define _(Str) gettext (Str)
-#  endif
-# else
-#  define _(Str) (Str)
-# endif
-#endif
-
-static void
-print_and_abort (void)
-{
-  fputs (_("memory exhausted\n"), stderr);
-  exit (obstack_exit_failure);
-}
-
-#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.  */
-
-/* The function names appear in parentheses in order to prevent
-   the macro-definitions of the names from being expanded there.  */
-
-POINTER (obstack_base) (struct obstack *obstack)
-{
-  return obstack_base (obstack);
-}
-
-POINTER (obstack_next_free) (struct obstack *obstack)
-{
-  return obstack_next_free (obstack);
-}
-
-int (obstack_object_size) (struct obstack *obstack)
-{
-  return obstack_object_size (obstack);
-}
-
-int (obstack_room) (struct obstack *obstack)
-{
-  return obstack_room (obstack);
-}
-
-int (obstack_make_room) (struct obstack *obstack, int length)
-{
-  return obstack_make_room (obstack, length);
-}
-
-void (obstack_grow) (struct obstack *obstack, POINTER pointer, int length)
-{
-  obstack_grow (obstack, pointer, length);
-}
-
-void (obstack_grow0) (struct obstack *obstack, POINTER pointer, int length)
-{
-  obstack_grow0 (obstack, pointer, length);
-}
-
-void (obstack_1grow) (struct obstack *obstack, int character)
-{
-  obstack_1grow (obstack, character);
-}
-
-void (obstack_blank) (struct obstack *obstack, int length)
-{
-  obstack_blank (obstack, length);
-}
-
-void (obstack_1grow_fast) (struct obstack *obstack, int character)
-{
-  obstack_1grow_fast (obstack, character);
-}
-
-void (obstack_blank_fast) (struct obstack *obstack, int length)
-{
-  obstack_blank_fast (obstack, length);
-}
-
-POINTER (obstack_finish) (struct obstack *obstack)
-{
-  return obstack_finish (obstack);
-}
-
-POINTER (obstack_alloc) (struct obstack *obstack, int length)
-{
-  return obstack_alloc (obstack, length);
-}
-
-POINTER (obstack_copy) (struct obstack *obstack, POINTER pointer, int length)
-{
-  return obstack_copy (obstack, pointer, length);
-}
-
-POINTER (obstack_copy0) (struct obstack *obstack, POINTER pointer, int length)
-{
-  return obstack_copy0 (obstack, pointer, length);
-}
-
-#endif /* 0 */
-
-#endif	/* !ELIDE_CODE */
diff --git a/libiberty/obstacks.texi b/libiberty/obstacks.texi
deleted file mode 100644
index 9bddf7c..0000000
--- a/libiberty/obstacks.texi
+++ /dev/null
@@ -1,758 +0,0 @@
-@node Obstacks,Licenses,Functions,Top
-@chapter Obstacks
-@cindex obstacks
-
-An @dfn{obstack} is a pool of memory containing a stack of objects.  You
-can create any number of separate obstacks, and then allocate objects in
-specified obstacks.  Within each obstack, the last object allocated must
-always be the first one freed, but distinct obstacks are independent of
-each other.
-
-Aside from this one constraint of order of freeing, obstacks are totally
-general: an obstack can contain any number of objects of any size.  They
-are implemented with macros, so allocation is usually very fast as long as
-the objects are usually small.  And the only space overhead per object is
-the padding needed to start each object on a suitable boundary.
-
-@menu
-* Creating Obstacks::		How to declare an obstack in your program.
-* Preparing for Obstacks::	Preparations needed before you can
-				 use obstacks.
-* Allocation in an Obstack::    Allocating objects in an obstack.
-* Freeing Obstack Objects::     Freeing objects in an obstack.
-* Obstack Functions::		The obstack functions are both
-				 functions and macros.
-* Growing Objects::             Making an object bigger by stages.
-* Extra Fast Growing::		Extra-high-efficiency (though more
-				 complicated) growing objects.
-* Status of an Obstack::        Inquiries about the status of an obstack.
-* Obstacks Data Alignment::     Controlling alignment of objects in obstacks.
-* Obstack Chunks::              How obstacks obtain and release chunks;
-				 efficiency considerations.
-* Summary of Obstacks::
-@end menu
-
-@node Creating Obstacks
-@section Creating Obstacks
-
-The utilities for manipulating obstacks are declared in the header
-file @file{obstack.h}.
-@pindex obstack.h
-
-@comment obstack.h
-@comment GNU
-@deftp {Data Type} {struct obstack}
-An obstack is represented by a data structure of type @code{struct
-obstack}.  This structure has a small fixed size; it records the status
-of the obstack and how to find the space in which objects are allocated.
-It does not contain any of the objects themselves.  You should not try
-to access the contents of the structure directly; use only the functions
-described in this chapter.
-@end deftp
-
-You can declare variables of type @code{struct obstack} and use them as
-obstacks, or you can allocate obstacks dynamically like any other kind
-of object.  Dynamic allocation of obstacks allows your program to have a
-variable number of different stacks.  (You can even allocate an
-obstack structure in another obstack, but this is rarely useful.)
-
-All the functions that work with obstacks require you to specify which
-obstack to use.  You do this with a pointer of type @code{struct obstack
-*}.  In the following, we often say ``an obstack'' when strictly
-speaking the object at hand is such a pointer.
-
-The objects in the obstack are packed into large blocks called
-@dfn{chunks}.  The @code{struct obstack} structure points to a chain of
-the chunks currently in use.
-
-The obstack library obtains a new chunk whenever you allocate an object
-that won't fit in the previous chunk.  Since the obstack library manages
-chunks automatically, you don't need to pay much attention to them, but
-you do need to supply a function which the obstack library should use to
-get a chunk.  Usually you supply a function which uses @code{malloc}
-directly or indirectly.  You must also supply a function to free a chunk.
-These matters are described in the following section.
-
-@node Preparing for Obstacks
-@section Preparing for Using Obstacks
-
-Each source file in which you plan to use the obstack functions
-must include the header file @file{obstack.h}, like this:
-
-@smallexample
-#include <obstack.h>
-@end smallexample
-
-@findex obstack_chunk_alloc
-@findex obstack_chunk_free
-Also, if the source file uses the macro @code{obstack_init}, it must
-declare or define two functions or macros that will be called by the
-obstack library.  One, @code{obstack_chunk_alloc}, is used to allocate
-the chunks of memory into which objects are packed.  The other,
-@code{obstack_chunk_free}, is used to return chunks when the objects in
-them are freed.  These macros should appear before any use of obstacks
-in the source file.
-
-Usually these are defined to use @code{malloc} via the intermediary
-@code{xmalloc} (@pxref{Unconstrained Allocation, , , libc, The GNU C Library Reference Manual}).  This is done with
-the following pair of macro definitions:
-
-@smallexample
-#define obstack_chunk_alloc xmalloc
-#define obstack_chunk_free free
-@end smallexample
-
-@noindent
-Though the memory you get using obstacks really comes from @code{malloc},
-using obstacks is faster because @code{malloc} is called less often, for
-larger blocks of memory.  @xref{Obstack Chunks}, for full details.
-
-At run time, before the program can use a @code{struct obstack} object
-as an obstack, it must initialize the obstack by calling
-@code{obstack_init}.
-
-@comment obstack.h
-@comment GNU
-@deftypefun int obstack_init (struct obstack *@var{obstack-ptr})
-Initialize obstack @var{obstack-ptr} for allocation of objects.  This
-function calls the obstack's @code{obstack_chunk_alloc} function.  If
-allocation of memory fails, the function pointed to by
-@code{obstack_alloc_failed_handler} is called.  The @code{obstack_init}
-function always returns 1 (Compatibility notice: Former versions of
-obstack returned 0 if allocation failed).
-@end deftypefun
-
-Here are two examples of how to allocate the space for an obstack and
-initialize it.  First, an obstack that is a static variable:
-
-@smallexample
-static struct obstack myobstack;
-@dots{}
-obstack_init (&myobstack);
-@end smallexample
-
-@noindent
-Second, an obstack that is itself dynamically allocated:
-
-@smallexample
-struct obstack *myobstack_ptr
-  = (struct obstack *) xmalloc (sizeof (struct obstack));
-
-obstack_init (myobstack_ptr);
-@end smallexample
-
-@comment obstack.h
-@comment GNU
-@defvar obstack_alloc_failed_handler
-The value of this variable is a pointer to a function that
-@code{obstack} uses when @code{obstack_chunk_alloc} fails to allocate
-memory.  The default action is to print a message and abort.
-You should supply a function that either calls @code{exit}
-(@pxref{Program Termination, , , libc, The GNU C Library Reference Manual}) or @code{longjmp} (@pxref{Non-Local
-Exits, , , libc, The GNU C Library Reference Manual}) and doesn't return.
-
-@smallexample
-void my_obstack_alloc_failed (void)
-@dots{}
-obstack_alloc_failed_handler = &my_obstack_alloc_failed;
-@end smallexample
-
-@end defvar
-
-@node Allocation in an Obstack
-@section Allocation in an Obstack
-@cindex allocation (obstacks)
-
-The most direct way to allocate an object in an obstack is with
-@code{obstack_alloc}, which is invoked almost like @code{malloc}.
-
-@comment obstack.h
-@comment GNU
-@deftypefun {void *} obstack_alloc (struct obstack *@var{obstack-ptr}, int @var{size})
-This allocates an uninitialized block of @var{size} bytes in an obstack
-and returns its address.  Here @var{obstack-ptr} specifies which obstack
-to allocate the block in; it is the address of the @code{struct obstack}
-object which represents the obstack.  Each obstack function or macro
-requires you to specify an @var{obstack-ptr} as the first argument.
-
-This function calls the obstack's @code{obstack_chunk_alloc} function if
-it needs to allocate a new chunk of memory; it calls
-@code{obstack_alloc_failed_handler} if allocation of memory by
-@code{obstack_chunk_alloc} failed.
-@end deftypefun
-
-For example, here is a function that allocates a copy of a string @var{str}
-in a specific obstack, which is in the variable @code{string_obstack}:
-
-@smallexample
-struct obstack string_obstack;
-
-char *
-copystring (char *string)
-@{
-  size_t len = strlen (string) + 1;
-  char *s = (char *) obstack_alloc (&string_obstack, len);
-  memcpy (s, string, len);
-  return s;
-@}
-@end smallexample
-
-To allocate a block with specified contents, use the function
-@code{obstack_copy}, declared like this:
-
-@comment obstack.h
-@comment GNU
-@deftypefun {void *} obstack_copy (struct obstack *@var{obstack-ptr}, void *@var{address}, int @var{size})
-This allocates a block and initializes it by copying @var{size}
-bytes of data starting at @var{address}.  It calls
-@code{obstack_alloc_failed_handler} if allocation of memory by
-@code{obstack_chunk_alloc} failed.
-@end deftypefun
-
-@comment obstack.h
-@comment GNU
-@deftypefun {void *} obstack_copy0 (struct obstack *@var{obstack-ptr}, void *@var{address}, int @var{size})
-Like @code{obstack_copy}, but appends an extra byte containing a null
-character.  This extra byte is not counted in the argument @var{size}.
-@end deftypefun
-
-The @code{obstack_copy0} function is convenient for copying a sequence
-of characters into an obstack as a null-terminated string.  Here is an
-example of its use:
-
-@smallexample
-char *
-obstack_savestring (char *addr, int size)
-@{
-  return obstack_copy0 (&myobstack, addr, size);
-@}
-@end smallexample
-
-@noindent
-Contrast this with the previous example of @code{savestring} using
-@code{malloc} (@pxref{Basic Allocation, , , libc, The GNU C Library Reference Manual}).
-
-@node Freeing Obstack Objects
-@section Freeing Objects in an Obstack
-@cindex freeing (obstacks)
-
-To free an object allocated in an obstack, use the function
-@code{obstack_free}.  Since the obstack is a stack of objects, freeing
-one object automatically frees all other objects allocated more recently
-in the same obstack.
-
-@comment obstack.h
-@comment GNU
-@deftypefun void obstack_free (struct obstack *@var{obstack-ptr}, void *@var{object})
-If @var{object} is a null pointer, everything allocated in the obstack
-is freed.  Otherwise, @var{object} must be the address of an object
-allocated in the obstack.  Then @var{object} is freed, along with
-everything allocated in @var{obstack} since @var{object}.
-@end deftypefun
-
-Note that if @var{object} is a null pointer, the result is an
-uninitialized obstack.  To free all memory in an obstack but leave it
-valid for further allocation, call @code{obstack_free} with the address
-of the first object allocated on the obstack:
-
-@smallexample
-obstack_free (obstack_ptr, first_object_allocated_ptr);
-@end smallexample
-
-Recall that the objects in an obstack are grouped into chunks.  When all
-the objects in a chunk become free, the obstack library automatically
-frees the chunk (@pxref{Preparing for Obstacks}).  Then other
-obstacks, or non-obstack allocation, can reuse the space of the chunk.
-
-@node Obstack Functions
-@section Obstack Functions and Macros
-@cindex macros
-
-The interfaces for using obstacks may be defined either as functions or
-as macros, depending on the compiler.  The obstack facility works with
-all C compilers, including both @w{ISO C} and traditional C, but there are
-precautions you must take if you plan to use compilers other than GNU C.
-
-If you are using an old-fashioned @w{non-ISO C} compiler, all the obstack
-``functions'' are actually defined only as macros.  You can call these
-macros like functions, but you cannot use them in any other way (for
-example, you cannot take their address).
-
-Calling the macros requires a special precaution: namely, the first
-operand (the obstack pointer) may not contain any side effects, because
-it may be computed more than once.  For example, if you write this:
-
-@smallexample
-obstack_alloc (get_obstack (), 4);
-@end smallexample
-
-@noindent
-you will find that @code{get_obstack} may be called several times.
-If you use @code{*obstack_list_ptr++} as the obstack pointer argument,
-you will get very strange results since the incrementation may occur
-several times.
-
-In @w{ISO C}, each function has both a macro definition and a function
-definition.  The function definition is used if you take the address of the
-function without calling it.  An ordinary call uses the macro definition by
-default, but you can request the function definition instead by writing the
-function name in parentheses, as shown here:
-
-@smallexample
-char *x;
-void *(*funcp) ();
-/* @r{Use the macro}.  */
-x = (char *) obstack_alloc (obptr, size);
-/* @r{Call the function}.  */
-x = (char *) (obstack_alloc) (obptr, size);
-/* @r{Take the address of the function}.  */
-funcp = obstack_alloc;
-@end smallexample
-
-@noindent
-This is the same situation that exists in @w{ISO C} for the standard library
-functions.  @xref{Macro Definitions, , , libc, The GNU C Library Reference Manual}.
-
-@strong{Warning:} When you do use the macros, you must observe the
-precaution of avoiding side effects in the first operand, even in @w{ISO C}.
-
-If you use the GNU C compiler, this precaution is not necessary, because
-various language extensions in GNU C permit defining the macros so as to
-compute each argument only once.
-
-@node Growing Objects
-@section Growing Objects
-@cindex growing objects (in obstacks)
-@cindex changing the size of a block (obstacks)
-
-Because memory in obstack chunks is used sequentially, it is possible to
-build up an object step by step, adding one or more bytes at a time to the
-end of the object.  With this technique, you do not need to know how much
-data you will put in the object until you come to the end of it.  We call
-this the technique of @dfn{growing objects}.  The special functions
-for adding data to the growing object are described in this section.
-
-You don't need to do anything special when you start to grow an object.
-Using one of the functions to add data to the object automatically
-starts it.  However, it is necessary to say explicitly when the object is
-finished.  This is done with the function @code{obstack_finish}.
-
-The actual address of the object thus built up is not known until the
-object is finished.  Until then, it always remains possible that you will
-add so much data that the object must be copied into a new chunk.
-
-While the obstack is in use for a growing object, you cannot use it for
-ordinary allocation of another object.  If you try to do so, the space
-already added to the growing object will become part of the other object.
-
-@comment obstack.h
-@comment GNU
-@deftypefun void obstack_blank (struct obstack *@var{obstack-ptr}, int @var{size})
-The most basic function for adding to a growing object is
-@code{obstack_blank}, which adds space without initializing it.
-@end deftypefun
-
-@comment obstack.h
-@comment GNU
-@deftypefun void obstack_grow (struct obstack *@var{obstack-ptr}, void *@var{data}, int @var{size})
-To add a block of initialized space, use @code{obstack_grow}, which is
-the growing-object analogue of @code{obstack_copy}.  It adds @var{size}
-bytes of data to the growing object, copying the contents from
-@var{data}.
-@end deftypefun
-
-@comment obstack.h
-@comment GNU
-@deftypefun void obstack_grow0 (struct obstack *@var{obstack-ptr}, void *@var{data}, int @var{size})
-This is the growing-object analogue of @code{obstack_copy0}.  It adds
-@var{size} bytes copied from @var{data}, followed by an additional null
-character.
-@end deftypefun
-
-@comment obstack.h
-@comment GNU
-@deftypefun void obstack_1grow (struct obstack *@var{obstack-ptr}, char @var{c})
-To add one character at a time, use the function @code{obstack_1grow}.
-It adds a single byte containing @var{c} to the growing object.
-@end deftypefun
-
-@comment obstack.h
-@comment GNU
-@deftypefun void obstack_ptr_grow (struct obstack *@var{obstack-ptr}, void *@var{data})
-Adding the value of a pointer one can use the function
-@code{obstack_ptr_grow}.  It adds @code{sizeof (void *)} bytes
-containing the value of @var{data}.
-@end deftypefun
-
-@comment obstack.h
-@comment GNU
-@deftypefun void obstack_int_grow (struct obstack *@var{obstack-ptr}, int @var{data})
-A single value of type @code{int} can be added by using the
-@code{obstack_int_grow} function.  It adds @code{sizeof (int)} bytes to
-the growing object and initializes them with the value of @var{data}.
-@end deftypefun
-
-@comment obstack.h
-@comment GNU
-@deftypefun {void *} obstack_finish (struct obstack *@var{obstack-ptr})
-When you are finished growing the object, use the function
-@code{obstack_finish} to close it off and return its final address.
-
-Once you have finished the object, the obstack is available for ordinary
-allocation or for growing another object.
-
-This function can return a null pointer under the same conditions as
-@code{obstack_alloc} (@pxref{Allocation in an Obstack}).
-@end deftypefun
-
-When you build an object by growing it, you will probably need to know
-afterward how long it became.  You need not keep track of this as you grow
-the object, because you can find out the length from the obstack just
-before finishing the object with the function @code{obstack_object_size},
-declared as follows:
-
-@comment obstack.h
-@comment GNU
-@deftypefun int obstack_object_size (struct obstack *@var{obstack-ptr})
-This function returns the current size of the growing object, in bytes.
-Remember to call this function @emph{before} finishing the object.
-After it is finished, @code{obstack_object_size} will return zero.
-@end deftypefun
-
-If you have started growing an object and wish to cancel it, you should
-finish it and then free it, like this:
-
-@smallexample
-obstack_free (obstack_ptr, obstack_finish (obstack_ptr));
-@end smallexample
-
-@noindent
-This has no effect if no object was growing.
-
-@cindex shrinking objects
-You can use @code{obstack_blank} with a negative size argument to make
-the current object smaller.  Just don't try to shrink it beyond zero
-length---there's no telling what will happen if you do that.
-
-@node Extra Fast Growing
-@section Extra Fast Growing Objects
-@cindex efficiency and obstacks
-
-The usual functions for growing objects incur overhead for checking
-whether there is room for the new growth in the current chunk.  If you
-are frequently constructing objects in small steps of growth, this
-overhead can be significant.
-
-You can reduce the overhead by using special ``fast growth''
-functions that grow the object without checking.  In order to have a
-robust program, you must do the checking yourself.  If you do this checking
-in the simplest way each time you are about to add data to the object, you
-have not saved anything, because that is what the ordinary growth
-functions do.  But if you can arrange to check less often, or check
-more efficiently, then you make the program faster.
-
-The function @code{obstack_room} returns the amount of room available
-in the current chunk.  It is declared as follows:
-
-@comment obstack.h
-@comment GNU
-@deftypefun int obstack_room (struct obstack *@var{obstack-ptr})
-This returns the number of bytes that can be added safely to the current
-growing object (or to an object about to be started) in obstack
-@var{obstack} using the fast growth functions.
-@end deftypefun
-
-While you know there is room, you can use these fast growth functions
-for adding data to a growing object:
-
-@comment obstack.h
-@comment GNU
-@deftypefun void obstack_1grow_fast (struct obstack *@var{obstack-ptr}, char @var{c})
-The function @code{obstack_1grow_fast} adds one byte containing the
-character @var{c} to the growing object in obstack @var{obstack-ptr}.
-@end deftypefun
-
-@comment obstack.h
-@comment GNU
-@deftypefun void obstack_ptr_grow_fast (struct obstack *@var{obstack-ptr}, void *@var{data})
-The function @code{obstack_ptr_grow_fast} adds @code{sizeof (void *)}
-bytes containing the value of @var{data} to the growing object in
-obstack @var{obstack-ptr}.
-@end deftypefun
-
-@comment obstack.h
-@comment GNU
-@deftypefun void obstack_int_grow_fast (struct obstack *@var{obstack-ptr}, int @var{data})
-The function @code{obstack_int_grow_fast} adds @code{sizeof (int)} bytes
-containing the value of @var{data} to the growing object in obstack
-@var{obstack-ptr}.
-@end deftypefun
-
-@comment obstack.h
-@comment GNU
-@deftypefun void obstack_blank_fast (struct obstack *@var{obstack-ptr}, int @var{size})
-The function @code{obstack_blank_fast} adds @var{size} bytes to the
-growing object in obstack @var{obstack-ptr} without initializing them.
-@end deftypefun
-
-When you check for space using @code{obstack_room} and there is not
-enough room for what you want to add, the fast growth functions
-are not safe.  In this case, simply use the corresponding ordinary
-growth function instead.  Very soon this will copy the object to a
-new chunk; then there will be lots of room available again.
-
-So, each time you use an ordinary growth function, check afterward for
-sufficient space using @code{obstack_room}.  Once the object is copied
-to a new chunk, there will be plenty of space again, so the program will
-start using the fast growth functions again.
-
-Here is an example:
-
-@smallexample
-@group
-void
-add_string (struct obstack *obstack, const char *ptr, int len)
-@{
-  while (len > 0)
-    @{
-      int room = obstack_room (obstack);
-      if (room == 0)
-        @{
-          /* @r{Not enough room. Add one character slowly,}
-             @r{which may copy to a new chunk and make room.}  */
-          obstack_1grow (obstack, *ptr++);
-          len--;
-        @}
-      else
-        @{
-          if (room > len)
-            room = len;
-          /* @r{Add fast as much as we have room for.} */
-          len -= room;
-          while (room-- > 0)
-            obstack_1grow_fast (obstack, *ptr++);
-        @}
-    @}
-@}
-@end group
-@end smallexample
-
-@node Status of an Obstack
-@section Status of an Obstack
-@cindex obstack status
-@cindex status of obstack
-
-Here are functions that provide information on the current status of
-allocation in an obstack.  You can use them to learn about an object while
-still growing it.
-
-@comment obstack.h
-@comment GNU
-@deftypefun {void *} obstack_base (struct obstack *@var{obstack-ptr})
-This function returns the tentative address of the beginning of the
-currently growing object in @var{obstack-ptr}.  If you finish the object
-immediately, it will have that address.  If you make it larger first, it
-may outgrow the current chunk---then its address will change!
-
-If no object is growing, this value says where the next object you
-allocate will start (once again assuming it fits in the current
-chunk).
-@end deftypefun
-
-@comment obstack.h
-@comment GNU
-@deftypefun {void *} obstack_next_free (struct obstack *@var{obstack-ptr})
-This function returns the address of the first free byte in the current
-chunk of obstack @var{obstack-ptr}.  This is the end of the currently
-growing object.  If no object is growing, @code{obstack_next_free}
-returns the same value as @code{obstack_base}.
-@end deftypefun
-
-@comment obstack.h
-@comment GNU
-@deftypefun int obstack_object_size (struct obstack *@var{obstack-ptr})
-This function returns the size in bytes of the currently growing object.
-This is equivalent to
-
-@smallexample
-obstack_next_free (@var{obstack-ptr}) - obstack_base (@var{obstack-ptr})
-@end smallexample
-@end deftypefun
-
-@node Obstacks Data Alignment
-@section Alignment of Data in Obstacks
-@cindex alignment (in obstacks)
-
-Each obstack has an @dfn{alignment boundary}; each object allocated in
-the obstack automatically starts on an address that is a multiple of the
-specified boundary.  By default, this boundary is 4 bytes.
-
-To access an obstack's alignment boundary, use the macro
-@code{obstack_alignment_mask}, whose function prototype looks like
-this:
-
-@comment obstack.h
-@comment GNU
-@deftypefn Macro int obstack_alignment_mask (struct obstack *@var{obstack-ptr})
-The value is a bit mask; a bit that is 1 indicates that the corresponding
-bit in the address of an object should be 0.  The mask value should be one
-less than a power of 2; the effect is that all object addresses are
-multiples of that power of 2.  The default value of the mask is 3, so that
-addresses are multiples of 4.  A mask value of 0 means an object can start
-on any multiple of 1 (that is, no alignment is required).
-
-The expansion of the macro @code{obstack_alignment_mask} is an lvalue,
-so you can alter the mask by assignment.  For example, this statement:
-
-@smallexample
-obstack_alignment_mask (obstack_ptr) = 0;
-@end smallexample
-
-@noindent
-has the effect of turning off alignment processing in the specified obstack.
-@end deftypefn
-
-Note that a change in alignment mask does not take effect until
-@emph{after} the next time an object is allocated or finished in the
-obstack.  If you are not growing an object, you can make the new
-alignment mask take effect immediately by calling @code{obstack_finish}.
-This will finish a zero-length object and then do proper alignment for
-the next object.
-
-@node Obstack Chunks
-@section Obstack Chunks
-@cindex efficiency of chunks
-@cindex chunks
-
-Obstacks work by allocating space for themselves in large chunks, and
-then parceling out space in the chunks to satisfy your requests.  Chunks
-are normally 4096 bytes long unless you specify a different chunk size.
-The chunk size includes 8 bytes of overhead that are not actually used
-for storing objects.  Regardless of the specified size, longer chunks
-will be allocated when necessary for long objects.
-
-The obstack library allocates chunks by calling the function
-@code{obstack_chunk_alloc}, which you must define.  When a chunk is no
-longer needed because you have freed all the objects in it, the obstack
-library frees the chunk by calling @code{obstack_chunk_free}, which you
-must also define.
-
-These two must be defined (as macros) or declared (as functions) in each
-source file that uses @code{obstack_init} (@pxref{Creating Obstacks}).
-Most often they are defined as macros like this:
-
-@smallexample
-#define obstack_chunk_alloc malloc
-#define obstack_chunk_free free
-@end smallexample
-
-Note that these are simple macros (no arguments).  Macro definitions with
-arguments will not work!  It is necessary that @code{obstack_chunk_alloc}
-or @code{obstack_chunk_free}, alone, expand into a function name if it is
-not itself a function name.
-
-If you allocate chunks with @code{malloc}, the chunk size should be a
-power of 2.  The default chunk size, 4096, was chosen because it is long
-enough to satisfy many typical requests on the obstack yet short enough
-not to waste too much memory in the portion of the last chunk not yet used.
-
-@comment obstack.h
-@comment GNU
-@deftypefn Macro int obstack_chunk_size (struct obstack *@var{obstack-ptr})
-This returns the chunk size of the given obstack.
-@end deftypefn
-
-Since this macro expands to an lvalue, you can specify a new chunk size by
-assigning it a new value.  Doing so does not affect the chunks already
-allocated, but will change the size of chunks allocated for that particular
-obstack in the future.  It is unlikely to be useful to make the chunk size
-smaller, but making it larger might improve efficiency if you are
-allocating many objects whose size is comparable to the chunk size.  Here
-is how to do so cleanly:
-
-@smallexample
-if (obstack_chunk_size (obstack_ptr) < @var{new-chunk-size})
-  obstack_chunk_size (obstack_ptr) = @var{new-chunk-size};
-@end smallexample
-
-@node Summary of Obstacks
-@section Summary of Obstack Functions
-
-Here is a summary of all the functions associated with obstacks.  Each
-takes the address of an obstack (@code{struct obstack *}) as its first
-argument.
-
-@table @code
-@item void obstack_init (struct obstack *@var{obstack-ptr})
-Initialize use of an obstack.  @xref{Creating Obstacks}.
-
-@item void *obstack_alloc (struct obstack *@var{obstack-ptr}, int @var{size})
-Allocate an object of @var{size} uninitialized bytes.
-@xref{Allocation in an Obstack}.
-
-@item void *obstack_copy (struct obstack *@var{obstack-ptr}, void *@var{address}, int @var{size})
-Allocate an object of @var{size} bytes, with contents copied from
-@var{address}.  @xref{Allocation in an Obstack}.
-
-@item void *obstack_copy0 (struct obstack *@var{obstack-ptr}, void *@var{address}, int @var{size})
-Allocate an object of @var{size}+1 bytes, with @var{size} of them copied
-from @var{address}, followed by a null character at the end.
-@xref{Allocation in an Obstack}.
-
-@item void obstack_free (struct obstack *@var{obstack-ptr}, void *@var{object})
-Free @var{object} (and everything allocated in the specified obstack
-more recently than @var{object}).  @xref{Freeing Obstack Objects}.
-
-@item void obstack_blank (struct obstack *@var{obstack-ptr}, int @var{size})
-Add @var{size} uninitialized bytes to a growing object.
-@xref{Growing Objects}.
-
-@item void obstack_grow (struct obstack *@var{obstack-ptr}, void *@var{address}, int @var{size})
-Add @var{size} bytes, copied from @var{address}, to a growing object.
-@xref{Growing Objects}.
-
-@item void obstack_grow0 (struct obstack *@var{obstack-ptr}, void *@var{address}, int @var{size})
-Add @var{size} bytes, copied from @var{address}, to a growing object,
-and then add another byte containing a null character.  @xref{Growing
-Objects}.
-
-@item void obstack_1grow (struct obstack *@var{obstack-ptr}, char @var{data-char})
-Add one byte containing @var{data-char} to a growing object.
-@xref{Growing Objects}.
-
-@item void *obstack_finish (struct obstack *@var{obstack-ptr})
-Finalize the object that is growing and return its permanent address.
-@xref{Growing Objects}.
-
-@item int obstack_object_size (struct obstack *@var{obstack-ptr})
-Get the current size of the currently growing object.  @xref{Growing
-Objects}.
-
-@item void obstack_blank_fast (struct obstack *@var{obstack-ptr}, int @var{size})
-Add @var{size} uninitialized bytes to a growing object without checking
-that there is enough room.  @xref{Extra Fast Growing}.
-
-@item void obstack_1grow_fast (struct obstack *@var{obstack-ptr}, char @var{data-char})
-Add one byte containing @var{data-char} to a growing object without
-checking that there is enough room.  @xref{Extra Fast Growing}.
-
-@item int obstack_room (struct obstack *@var{obstack-ptr})
-Get the amount of room now available for growing the current object.
-@xref{Extra Fast Growing}.
-
-@item int obstack_alignment_mask (struct obstack *@var{obstack-ptr})
-The mask used for aligning the beginning of an object.  This is an
-lvalue.  @xref{Obstacks Data Alignment}.
-
-@item int obstack_chunk_size (struct obstack *@var{obstack-ptr})
-The size for allocating chunks.  This is an lvalue.  @xref{Obstack Chunks}.
-
-@item void *obstack_base (struct obstack *@var{obstack-ptr})
-Tentative starting address of the currently growing object.
-@xref{Status of an Obstack}.
-
-@item void *obstack_next_free (struct obstack *@var{obstack-ptr})
-Address just after the end of the currently growing object.
-@xref{Status of an Obstack}.
-@end table
-
diff --git a/libiberty/partition.c b/libiberty/partition.c
deleted file mode 100644
index 5f0745c..0000000
--- a/libiberty/partition.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/* List implementation of a partition of consecutive integers.
-   Copyright (C) 2000, 2001 Free Software Foundation, Inc.
-   Contributed by CodeSourcery, LLC.
-
-   This file is part of GNU CC.
-
-   GNU CC 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.
-
-   GNU CC 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 GNU CC; see the file COPYING.  If not, write to
-   the Free Software Foundation, 51 Franklin Street - Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-
-#include "libiberty.h"
-#include "partition.h"
-
-static int elem_compare (const void *, const void *);
-
-/* Creates a partition of NUM_ELEMENTS elements.  Initially each
-   element is in a class by itself.  */
-
-partition
-partition_new (int num_elements)
-{
-  int e;
-  
-  partition part = (partition) 
-    xmalloc (sizeof (struct partition_def) + 
-	     (num_elements - 1) * sizeof (struct partition_elem));
-  part->num_elements = num_elements;
-  for (e = 0; e < num_elements; ++e) 
-    {
-      part->elements[e].class_element = e;
-      part->elements[e].next = &(part->elements[e]);
-      part->elements[e].class_count = 1;
-    }
-
-  return part;
-}
-
-/* Freeds a partition.  */
-
-void
-partition_delete (partition part)
-{
-  free (part);
-}
-
-/* Unites the classes containing ELEM1 and ELEM2 into a single class
-   of partition PART.  If ELEM1 and ELEM2 are already in the same
-   class, does nothing.  Returns the canonical element of the
-   resulting union class.  */
-
-int
-partition_union (partition part, int elem1, int elem2)
-{
-  struct partition_elem *elements = part->elements;
-  struct partition_elem *e1;
-  struct partition_elem *e2;
-  struct partition_elem *p;
-  struct partition_elem *old_next;
-  /* The canonical element of the resulting union class.  */
-  int class_element = elements[elem1].class_element;
-
-  /* If they're already in the same class, do nothing.  */
-  if (class_element == elements[elem2].class_element)
-    return class_element;
-
-  /* Make sure ELEM1 is in the larger class of the two.  If not, swap
-     them.  This way we always scan the shorter list.  */
-  if (elements[elem1].class_count < elements[elem2].class_count) 
-    {
-      int temp = elem1;
-      elem1 = elem2;
-      elem2 = temp;
-      class_element = elements[elem1].class_element;
-    }
-
-  e1 = &(elements[elem1]);
-  e2 = &(elements[elem2]);
-
-  /* Keep a count of the number of elements in the list.  */
-  elements[class_element].class_count 
-    += elements[e2->class_element].class_count;
-
-  /* Update the class fields in elem2's class list.  */
-  e2->class_element = class_element;
-  for (p = e2->next; p != e2; p = p->next)
-    p->class_element = class_element;
-  
-  /* Splice ELEM2's class list into ELEM1's.  These are circular
-     lists.  */
-  old_next = e1->next;
-  e1->next = e2->next;
-  e2->next = old_next;
-
-  return class_element;
-}
-
-/* Compare elements ELEM1 and ELEM2 from array of integers, given a
-   pointer to each.  Used to qsort such an array.  */
-
-static int 
-elem_compare (const void *elem1, const void *elem2)
-{
-  int e1 = * (const int *) elem1;
-  int e2 = * (const int *) elem2;
-  if (e1 < e2)
-    return -1;
-  else if (e1 > e2)
-    return 1;
-  else
-    return 0;
-}
-
-/* Prints PART to the file pointer FP.  The elements of each
-   class are sorted.  */
-
-void
-partition_print (partition part, FILE *fp)
-{
-  char *done;
-  int num_elements = part->num_elements;
-  struct partition_elem *elements = part->elements;
-  int *class_elements;
-  int e;
-
-  /* Flag the elements we've already printed.  */
-  done = (char *) xmalloc (num_elements);
-  memset (done, 0, num_elements);
-
-  /* A buffer used to sort elements in a class.  */
-  class_elements = (int *) xmalloc (num_elements * sizeof (int));
-
-  fputc ('[', fp);
-  for (e = 0; e < num_elements; ++e)
-    /* If we haven't printed this element, print its entire class.  */
-    if (! done[e]) 
-      {
-	int c = e;
-	int count = elements[elements[e].class_element].class_count;
-	int i;
-
-      /* Collect the elements in this class.  */
-	for (i = 0; i < count; ++i) {
-	  class_elements[i] = c;
-	  done[c] = 1;
-	  c = elements[c].next - elements;
-	}
-	/* Sort them.  */
-	qsort ((void *) class_elements, count, sizeof (int), elem_compare);
-	/* Print them.  */
-	fputc ('(', fp);
-	for (i = 0; i < count; ++i) 
-	  fprintf (fp, i == 0 ? "%d" : " %d", class_elements[i]);
-	fputc (')', fp);
-      }
-  fputc (']', fp);
-
-  free (class_elements);
-  free (done);
-}
-
diff --git a/libiberty/pex-common.c b/libiberty/pex-common.c
deleted file mode 100644
index 3daa638..0000000
--- a/libiberty/pex-common.c
+++ /dev/null
@@ -1,589 +0,0 @@
-/* Common code for executing a program in a sub-process.
-   Copyright (C) 2005 Free Software Foundation, Inc.
-   Written by Ian Lance Taylor <ian@airs.com>.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If not,
-write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#include "config.h"
-#include "libiberty.h"
-#include "pex-common.h"
-
-#include <stdio.h>
-#include <errno.h>
-#ifdef NEED_DECLARATION_ERRNO
-extern int errno;
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-extern int mkstemps (char *, int);
-
-/* This file contains subroutines for the program execution routines
-   (pex_init, pex_run, etc.).  This file is compiled on all
-   systems.  */
-
-static void pex_add_remove (struct pex_obj *, const char *, int);
-static int pex_get_status_and_time (struct pex_obj *, int, const char **,
-				    int *);
-
-/* Initialize a pex_obj structure.  */
-
-struct pex_obj *
-pex_init_common (int flags, const char *pname, const char *tempbase,
-		 const struct pex_funcs *funcs)
-{
-  struct pex_obj *obj;
-
-  obj = XNEW (struct pex_obj);
-  obj->flags = flags;
-  obj->pname = pname;
-  obj->tempbase = tempbase;
-  obj->next_input = STDIN_FILE_NO;
-  obj->next_input_name = NULL;
-  obj->next_input_name_allocated = 0;
-  obj->count = 0;
-  obj->children = NULL;
-  obj->status = NULL;
-  obj->time = NULL;
-  obj->number_waited = 0;
-  obj->input_file = NULL;
-  obj->read_output = NULL;
-  obj->remove_count = 0;
-  obj->remove = NULL;
-  obj->funcs = funcs;
-  obj->sysdep = NULL;
-  return obj;
-}
-
-/* Add a file to be removed when we are done.  */
-
-static void
-pex_add_remove (struct pex_obj *obj, const char *name, int allocated)
-{
-  char *add;
-
-  ++obj->remove_count;
-  obj->remove = XRESIZEVEC (char *, obj->remove, obj->remove_count);
-  if (allocated)
-    add = (char *) name;
-  else
-    add = xstrdup (name);
-  obj->remove[obj->remove_count - 1] = add;
-}
-
-/* Generate a temporary file name based on OBJ, FLAGS, and NAME.
-   Return NULL if we were unable to reserve a temporary filename.
-
-   If non-NULL, the result is either allocated with malloc, or the
-   same pointer as NAME.  */
-static char *
-temp_file (struct pex_obj *obj, int flags, char *name)
-{
-  if (name == NULL)
-    {
-      if (obj->tempbase == NULL)
-        {
-          name = make_temp_file (NULL);
-        }
-      else
-        {
-          int len = strlen (obj->tempbase);
-          int out;
-
-          if (len >= 6
-              && strcmp (obj->tempbase + len - 6, "XXXXXX") == 0)
-            name = xstrdup (obj->tempbase);
-          else
-            name = concat (obj->tempbase, "XXXXXX", NULL);
-
-          out = mkstemps (name, 0);
-          if (out < 0)
-            {
-              free (name);
-              return NULL;
-            }
-
-          /* This isn't obj->funcs->close because we got the
-             descriptor from mkstemps, not from a function in
-             obj->funcs.  Calling close here is just like what
-             make_temp_file does.  */
-          close (out);
-        }
-    }
-  else if ((flags & PEX_SUFFIX) != 0)
-    {
-      if (obj->tempbase == NULL)
-        name = make_temp_file (name);
-      else
-        name = concat (obj->tempbase, name, NULL);
-    }
-
-  return name;
-}
-
-
-/* As for pex_run (), but permits the environment for the child process
-   to be specified. */
-
-const char *
-pex_run_in_environment (struct pex_obj *obj, int flags, const char *executable,
-       	                char * const * argv, char * const * env,
-                        const char *orig_outname, const char *errname,
-                  	int *err)
-{
-  const char *errmsg;
-  int in, out, errdes;
-  char *outname;
-  int outname_allocated;
-  int p[2];
-  long pid;
-
-  in = -1;
-  out = -1;
-  errdes = -1;
-  outname = (char *) orig_outname;
-  outname_allocated = 0;
-
-  /* If the user called pex_input_file, close the file now.  */
-  if (obj->input_file)
-    {
-      if (fclose (obj->input_file) == EOF)
-        {
-          errmsg = "closing pipeline input file";
-          goto error_exit;
-        }
-      obj->input_file = NULL;
-    }
-
-  /* Set IN.  */
-
-  if (obj->next_input_name != NULL)
-    {
-      /* We have to make sure that the previous process has completed
-	 before we try to read the file.  */
-      if (!pex_get_status_and_time (obj, 0, &errmsg, err))
-	goto error_exit;
-
-      in = obj->funcs->open_read (obj, obj->next_input_name,
-				  (flags & PEX_BINARY_INPUT) != 0);
-      if (in < 0)
-	{
-	  *err = errno;
-	  errmsg = "open temporary file";
-	  goto error_exit;
-	}
-      if (obj->next_input_name_allocated)
-	{
-	  free (obj->next_input_name);
-	  obj->next_input_name_allocated = 0;
-	}
-      obj->next_input_name = NULL;
-    }
-  else
-    {
-      in = obj->next_input;
-      if (in < 0)
-	{
-	  *err = 0;
-	  errmsg = "pipeline already complete";
-	  goto error_exit;
-	}
-    }
-
-  /* Set OUT and OBJ->NEXT_INPUT/OBJ->NEXT_INPUT_NAME.  */
-
-  if ((flags & PEX_LAST) != 0)
-    {
-      if (outname == NULL)
-	out = STDOUT_FILE_NO;
-      else if ((flags & PEX_SUFFIX) != 0)
-	{
-	  outname = concat (obj->tempbase, outname, NULL);
-	  outname_allocated = 1;
-	}
-      obj->next_input = -1;
-    }
-  else if ((obj->flags & PEX_USE_PIPES) == 0)
-    {
-      outname = temp_file (obj, flags, outname);
-      if (! outname)
-        {
-          *err = 0;
-          errmsg = "could not create temporary file";
-          goto error_exit;
-        }
-
-      if (outname != orig_outname)
-        outname_allocated = 1;
-
-      if ((obj->flags & PEX_SAVE_TEMPS) == 0)
-	{
-	  pex_add_remove (obj, outname, outname_allocated);
-	  outname_allocated = 0;
-	}
-
-      /* Hand off ownership of outname to the next stage.  */
-      obj->next_input_name = outname;
-      obj->next_input_name_allocated = outname_allocated;
-      outname_allocated = 0;
-    }
-  else
-    {
-      if (obj->funcs->pipe (obj, p, (flags & PEX_BINARY_OUTPUT) != 0) < 0)
-	{
-	  *err = errno;
-	  errmsg = "pipe";
-	  goto error_exit;
-	}
-
-      out = p[WRITE_PORT];
-      obj->next_input = p[READ_PORT];
-    }
-
-  if (out < 0)
-    {
-      out = obj->funcs->open_write (obj, outname,
-				    (flags & PEX_BINARY_OUTPUT) != 0);
-      if (out < 0)
-	{
-	  *err = errno;
-	  errmsg = "open temporary output file";
-	  goto error_exit;
-	}
-    }
-
-  if (outname_allocated)
-    {
-      free (outname);
-      outname_allocated = 0;
-    }
-
-  /* Set ERRDES.  */
-
-  if (errname == NULL)
-    errdes = STDERR_FILE_NO;
-  else
-    {
-      /* We assume that stderr is in text mode--it certainly shouldn't
-	 be controlled by PEX_BINARY_OUTPUT.  If necessary, we can add
-	 a PEX_BINARY_STDERR flag.  */
-      errdes = obj->funcs->open_write (obj, errname, 0);
-      if (errdes < 0)
-	{
-	  *err = errno;
-	  errmsg = "open error file";
-	  goto error_exit;
-	}
-    }
-
-  /* Run the program.  */
-
-  pid = obj->funcs->exec_child (obj, flags, executable, argv, env,
-                                in, out, errdes, &errmsg, err);
-  if (pid < 0)
-    goto error_exit;
-
-  ++obj->count;
-  obj->children = XRESIZEVEC (long, obj->children, obj->count);
-  obj->children[obj->count - 1] = pid;
-
-  return NULL;
-
- error_exit:
-  if (in >= 0 && in != STDIN_FILE_NO)
-    obj->funcs->close (obj, in);
-  if (out >= 0 && out != STDOUT_FILE_NO)
-    obj->funcs->close (obj, out);
-  if (errdes >= 0 && errdes != STDERR_FILE_NO)
-    obj->funcs->close (obj, errdes);
-  if (outname_allocated)
-    free (outname);
-  return errmsg;
-}
-
-/* Run a program.  */
-
-const char *
-pex_run (struct pex_obj *obj, int flags, const char *executable,
-       	 char * const * argv, const char *orig_outname, const char *errname,
-         int *err)
-{
-  return pex_run_in_environment (obj, flags, executable, argv, NULL,
-				 orig_outname, errname, err);
-}
-
-/* Return a FILE pointer for a temporary file to fill with input for
-   the pipeline.  */
-FILE *
-pex_input_file (struct pex_obj *obj, int flags, const char *in_name)
-{
-  char *name = (char *) in_name;
-  FILE *f;
-
-  /* This must be called before the first pipeline stage is run, and
-     there must not have been any other input selected.  */
-  if (obj->count != 0
-      || (obj->next_input >= 0 && obj->next_input != STDIN_FILE_NO)
-      || obj->next_input_name)
-    {
-      errno = EINVAL;
-      return NULL;
-    }
-
-  name = temp_file (obj, flags, name);
-  if (! name)
-    return NULL;
-
-  f = fopen (name, (flags & PEX_BINARY_OUTPUT) ? "wb" : "w");
-  if (! f)
-    {
-      free (name);
-      return NULL;
-    }
-
-  obj->input_file = f;
-  obj->next_input_name = name;
-  obj->next_input_name_allocated = (name != in_name);
-
-  return f;
-}
-
-/* Return a stream for a pipe connected to the standard input of the
-   first stage of the pipeline.  */
-FILE *
-pex_input_pipe (struct pex_obj *obj, int binary)
-{
-  int p[2];
-  FILE *f;
-
-  /* You must call pex_input_pipe before the first pex_run or pex_one.  */
-  if (obj->count > 0)
-    goto usage_error;
-
-  /* You must be using pipes.  Implementations that don't support
-     pipes clear this flag before calling pex_init_common.  */
-  if (! (obj->flags & PEX_USE_PIPES))
-    goto usage_error;
-
-  /* If we have somehow already selected other input, that's a
-     mistake.  */
-  if ((obj->next_input >= 0 && obj->next_input != STDIN_FILE_NO)
-      || obj->next_input_name)
-    goto usage_error;
-
-  if (obj->funcs->pipe (obj, p, binary != 0) < 0)
-    return NULL;
-
-  f = obj->funcs->fdopenw (obj, p[WRITE_PORT], binary != 0);
-  if (! f)
-    {
-      int saved_errno = errno;
-      obj->funcs->close (obj, p[READ_PORT]);
-      obj->funcs->close (obj, p[WRITE_PORT]);
-      errno = saved_errno;
-      return NULL;
-    }
-
-  obj->next_input = p[READ_PORT];
-
-  return f;
-
- usage_error:
-  errno = EINVAL;
-  return NULL;
-}
-
-/* Return a FILE pointer for the output of the last program
-   executed.  */
-
-FILE *
-pex_read_output (struct pex_obj *obj, int binary)
-{
-  if (obj->next_input_name != NULL)
-    {
-      const char *errmsg;
-      int err;
-
-      /* We have to make sure that the process has completed before we
-	 try to read the file.  */
-      if (!pex_get_status_and_time (obj, 0, &errmsg, &err))
-	{
-	  errno = err;
-	  return NULL;
-	}
-
-      obj->read_output = fopen (obj->next_input_name, binary ? "rb" : "r");
-
-      if (obj->next_input_name_allocated)
-	{
-	  free (obj->next_input_name);
-	  obj->next_input_name_allocated = 0;
-	}
-      obj->next_input_name = NULL;
-    }
-  else
-    {
-      int o;
-
-      o = obj->next_input;
-      if (o < 0 || o == STDIN_FILE_NO)
-	return NULL;
-      obj->read_output = obj->funcs->fdopenr (obj, o, binary);
-      obj->next_input = -1;
-    }
-
-  return obj->read_output;
-}
-
-/* Get the exit status and, if requested, the resource time for all
-   the child processes.  Return 0 on failure, 1 on success.  */
-
-static int
-pex_get_status_and_time (struct pex_obj *obj, int done, const char **errmsg,
-			 int *err)
-{
-  int ret;
-  int i;
-
-  if (obj->number_waited == obj->count)
-    return 1;
-
-  obj->status = XRESIZEVEC (int, obj->status, obj->count);
-  if ((obj->flags & PEX_RECORD_TIMES) != 0)
-    obj->time = XRESIZEVEC (struct pex_time, obj->time, obj->count);
-
-  ret = 1;
-  for (i = obj->number_waited; i < obj->count; ++i)
-    {
-      if (obj->funcs->wait (obj, obj->children[i], &obj->status[i],
-			    obj->time == NULL ? NULL : &obj->time[i],
-			    done, errmsg, err) < 0)
-	ret = 0;
-    }
-  obj->number_waited = i;
-
-  return ret;
-}
-
-/* Get exit status of executed programs.  */
-
-int
-pex_get_status (struct pex_obj *obj, int count, int *vector)
-{
-  if (obj->status == NULL)
-    {
-      const char *errmsg;
-      int err;
-
-      if (!pex_get_status_and_time (obj, 0, &errmsg, &err))
-	return 0;
-    }
-
-  if (count > obj->count)
-    {
-      memset (vector + obj->count, 0, (count - obj->count) * sizeof (int));
-      count = obj->count;
-    }
-
-  memcpy (vector, obj->status, count * sizeof (int));
-
-  return 1;
-}
-
-/* Get process times of executed programs.  */
-
-int
-pex_get_times (struct pex_obj *obj, int count, struct pex_time *vector)
-{
-  if (obj->status == NULL)
-    {
-      const char *errmsg;
-      int err;
-
-      if (!pex_get_status_and_time (obj, 0, &errmsg, &err))
-	return 0;
-    }
-
-  if (obj->time == NULL)
-    return 0;
-
-  if (count > obj->count)
-    {
-      memset (vector + obj->count, 0,
-	      (count - obj->count) * sizeof (struct pex_time));
-      count = obj->count;
-    }
-
-  memcpy (vector, obj->time, count * sizeof (struct pex_time));
-
-  return 1;
-}
-
-/* Free a pex_obj structure.  */
-
-void
-pex_free (struct pex_obj *obj)
-{
-  if (obj->next_input >= 0 && obj->next_input != STDIN_FILE_NO)
-    obj->funcs->close (obj, obj->next_input);
-
-  /* If the caller forgot to wait for the children, we do it here, to
-     avoid zombies.  */
-  if (obj->status == NULL)
-    {
-      const char *errmsg;
-      int err;
-
-      obj->flags &= ~ PEX_RECORD_TIMES;
-      pex_get_status_and_time (obj, 1, &errmsg, &err);
-    }
-
-  if (obj->next_input_name_allocated)
-    free (obj->next_input_name);
-  if (obj->children != NULL)
-    free (obj->children);
-  if (obj->status != NULL)
-    free (obj->status);
-  if (obj->time != NULL)
-    free (obj->time);
-  if (obj->read_output != NULL)
-    fclose (obj->read_output);
-
-  if (obj->remove_count > 0)
-    {
-      int i;
-
-      for (i = 0; i < obj->remove_count; ++i)
-	{
-	  remove (obj->remove[i]);
-	  free (obj->remove[i]);
-	}
-      free (obj->remove);
-    }
-
-  if (obj->funcs->cleanup != NULL)
-    obj->funcs->cleanup (obj);
-
-  free (obj);
-}
diff --git a/libiberty/pex-common.h b/libiberty/pex-common.h
deleted file mode 100644
index 520f26a..0000000
--- a/libiberty/pex-common.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/* Utilities to execute a program in a subprocess (possibly linked by pipes
-   with other subprocesses), and wait for it.  Shared logic.
-   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004
-   Free Software Foundation, Inc.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If not,
-write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#ifndef PEX_COMMON_H
-#define PEX_COMMON_H
-
-#include "config.h"
-#include "libiberty.h"
-#include <stdio.h>
-
-#define install_error_msg "installation problem, cannot exec `%s'"
-
-/* stdin file number.  */
-#define STDIN_FILE_NO 0
-
-/* stdout file number.  */
-#define STDOUT_FILE_NO 1
-
-/* stderr file number.  */
-#define STDERR_FILE_NO 2
-
-/* value of `pipe': port index for reading.  */
-#define READ_PORT 0
-
-/* value of `pipe': port index for writing.  */
-#define WRITE_PORT 1
-
-/* The structure used by pex_init and friends.  */
-
-struct pex_obj
-{
-  /* Flags.  */
-  int flags;
-  /* Name of calling program, for error messages.  */
-  const char *pname;
-  /* Base name to use for temporary files.  */
-  const char *tempbase;
-  /* Pipe to use as stdin for next process.  */
-  int next_input;
-  /* File name to use as stdin for next process.  */
-  char *next_input_name;
-  /* Whether next_input_name was allocated using malloc.  */
-  int next_input_name_allocated;
-  /* Number of child processes.  */
-  int count;
-  /* PIDs of child processes; array allocated using malloc.  */
-  long *children;
-  /* Exit statuses of child processes; array allocated using malloc.  */
-  int *status;
-  /* Time used by child processes; array allocated using malloc.  */
-  struct pex_time *time;
-  /* Number of children we have already waited for.  */
-  int number_waited;
-  /* FILE created by pex_input_file.  */
-  FILE *input_file;
-  /* FILE created by pex_read_output.  */
-  FILE *read_output;
-  /* Number of temporary files to remove.  */
-  int remove_count;
-  /* List of temporary files to remove; array allocated using malloc
-     of strings allocated using malloc.  */
-  char **remove;
-  /* Pointers to system dependent functions.  */
-  const struct pex_funcs *funcs;
-  /* For use by system dependent code.  */
-  void *sysdep;
-};
-
-/* Functions passed to pex_run_common.  */
-
-struct pex_funcs
-{
-  /* Open file NAME for reading.  If BINARY is non-zero, open in
-     binary mode.  Return >= 0 on success, -1 on error.  */
-  int (*open_read) (struct pex_obj *, const char */* name */, int /* binary */);
-  /* Open file NAME for writing.  If BINARY is non-zero, open in
-     binary mode.  Return >= 0 on success, -1 on error.  */
-  int (*open_write) (struct pex_obj *, const char */* name */,
-                     int /* binary */);
-  /* Execute a child process.  FLAGS, EXECUTABLE, ARGV, ERR are from
-     pex_run.  IN, OUT, ERRDES are each a descriptor, from open_read,
-     open_write, or pipe, or they are one of STDIN_FILE_NO,
-     STDOUT_FILE_NO or STDERR_FILE_NO; if not STD*_FILE_NO, they
-     should be closed.  The function should handle the
-     PEX_STDERR_TO_STDOUT flag.  Return >= 0 on success, or -1 on
-     error and set *ERRMSG and *ERR.  */
-  long (*exec_child) (struct pex_obj *, int /* flags */,
-                      const char */* executable */, char * const * /* argv */,
-                      char * const * /* env */,
-                      int /* in */, int /* out */, int /* errdes */,
-		      const char **/* errmsg */, int */* err */);
-  /* Close a descriptor.  Return 0 on success, -1 on error.  */
-  int (*close) (struct pex_obj *, int);
-  /* Wait for a child to complete, returning exit status in *STATUS
-     and time in *TIME (if it is not null).  CHILD is from fork.  DONE
-     is 1 if this is called via pex_free.  ERRMSG and ERR are as in
-     fork.  Return 0 on success, -1 on error.  */
-  int (*wait) (struct pex_obj *, long /* child */, int * /* status */,
-               struct pex_time * /* time */, int /* done */,
-               const char ** /* errmsg */, int * /* err */);
-  /* Create a pipe (only called if PEX_USE_PIPES is set) storing two
-     descriptors in P[0] and P[1].  If BINARY is non-zero, open in
-     binary mode.  Return 0 on success, -1 on error.  */
-  int (*pipe) (struct pex_obj *, int * /* p */, int /* binary */);
-  /* Get a FILE pointer to read from a file descriptor (only called if
-     PEX_USE_PIPES is set).  If BINARY is non-zero, open in binary
-     mode.  Return pointer on success, NULL on error.  */
-  FILE * (*fdopenr) (struct pex_obj *, int /* fd */, int /* binary */);
-  /* Get a FILE pointer to write to the file descriptor FD (only
-     called if PEX_USE_PIPES is set).  If BINARY is non-zero, open in
-     binary mode.  Arrange for FD not to be inherited by the child
-     processes.  Return pointer on success, NULL on error.  */
-  FILE * (*fdopenw) (struct pex_obj *, int /* fd */, int /* binary */);
-  /* Free any system dependent data associated with OBJ.  May be
-     NULL if there is nothing to do.  */
-  void (*cleanup) (struct pex_obj *);
-};
-
-extern struct pex_obj *pex_init_common (int, const char *, const char *,
-					const struct pex_funcs *);
-
-#endif
diff --git a/libiberty/pex-djgpp.c b/libiberty/pex-djgpp.c
deleted file mode 100644
index acaa4c4..0000000
--- a/libiberty/pex-djgpp.c
+++ /dev/null
@@ -1,293 +0,0 @@
-/* Utilities to execute a program in a subprocess (possibly linked by pipes
-   with other subprocesses), and wait for it.  DJGPP specialization.
-   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2005
-   Free Software Foundation, Inc.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If not,
-write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#include "pex-common.h"
-
-#include <stdio.h>
-#include <errno.h>
-#ifdef NEED_DECLARATION_ERRNO
-extern int errno;
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#include <string.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <sys/stat.h>
-#include <process.h>
-
-/* Use ECHILD if available, otherwise use EINVAL.  */
-#ifdef ECHILD
-#define PWAIT_ERROR ECHILD
-#else
-#define PWAIT_ERROR EINVAL
-#endif
-
-static int pex_djgpp_open_read (struct pex_obj *, const char *, int);
-static int pex_djgpp_open_write (struct pex_obj *, const char *, int);
-static long pex_djgpp_exec_child (struct pex_obj *, int, const char *,
-				  char * const *, char * const *,
-                                  int, int, int,
-				  const char **, int *);
-static int pex_djgpp_close (struct pex_obj *, int);
-static int pex_djgpp_wait (struct pex_obj *, long, int *, struct pex_time *,
-			   int, const char **, int *);
-
-/* The list of functions we pass to the common routines.  */
-
-const struct pex_funcs funcs =
-{
-  pex_djgpp_open_read,
-  pex_djgpp_open_write,
-  pex_djgpp_exec_child,
-  pex_djgpp_close,
-  pex_djgpp_wait,
-  NULL, /* pipe */
-  NULL, /* fdopenr */
-  NULL, /* fdopenw */
-  NULL  /* cleanup */
-};
-
-/* Return a newly initialized pex_obj structure.  */
-
-struct pex_obj *
-pex_init (int flags, const char *pname, const char *tempbase)
-{
-  /* DJGPP does not support pipes.  */
-  flags &= ~ PEX_USE_PIPES;
-  return pex_init_common (flags, pname, tempbase, &funcs);
-}
-
-/* Open a file for reading.  */
-
-static int
-pex_djgpp_open_read (struct pex_obj *obj ATTRIBUTE_UNUSED,
-		     const char *name, int binary)
-{
-  return open (name, O_RDONLY | (binary ? O_BINARY : O_TEXT));
-}
-
-/* Open a file for writing.  */
-
-static int
-pex_djgpp_open_write (struct pex_obj *obj ATTRIBUTE_UNUSED,
-		      const char *name, int binary)
-{
-  /* Note that we can't use O_EXCL here because gcc may have already
-     created the temporary file via make_temp_file.  */
-  return open (name,
-	       (O_WRONLY | O_CREAT | O_TRUNC
-		| (binary ? O_BINARY : O_TEXT)),
-	       S_IRUSR | S_IWUSR);
-}
-
-/* Close a file.  */
-
-static int
-pex_djgpp_close (struct pex_obj *obj ATTRIBUTE_UNUSED, int fd)
-{
-  return close (fd);
-}
-
-/* Execute a child.  */
-
-static long
-pex_djgpp_exec_child (struct pex_obj *obj, int flags, const char *executable,
-		      char * const * argv, char * const * env,
-                      int in, int out, int errdes,
-		      const char **errmsg, int *err)
-{
-  int org_in, org_out, org_errdes;
-  int status;
-  int *statuses;
-
-  org_in = -1;
-  org_out = -1;
-  org_errdes = -1;
-
-  if (in != STDIN_FILE_NO)
-    {
-      org_in = dup (STDIN_FILE_NO);
-      if (org_in < 0)
-	{
-	  *err = errno;
-	  *errmsg = "dup";
-	  return -1;
-	}
-      if (dup2 (in, STDIN_FILE_NO) < 0)
-	{
-	  *err = errno;
-	  *errmsg = "dup2";
-	  return -1;
-	}
-      if (close (in) < 0)
-	{
-	  *err = errno;
-	  *errmsg = "close";
-	  return -1;
-	}
-    }
-
-  if (out != STDOUT_FILE_NO)
-    {
-      org_out = dup (STDOUT_FILE_NO);
-      if (org_out < 0)
-	{
-	  *err = errno;
-	  *errmsg = "dup";
-	  return -1;
-	}
-      if (dup2 (out, STDOUT_FILE_NO) < 0)
-	{
-	  *err = errno;
-	  *errmsg = "dup2";
-	  return -1;
-	}
-      if (close (out) < 0)
-	{
-	  *err = errno;
-	  *errmsg = "close";
-	  return -1;
-	}
-    }
-
-  if (errdes != STDERR_FILE_NO
-      || (flags & PEX_STDERR_TO_STDOUT) != 0)
-    {
-      org_errdes = dup (STDERR_FILE_NO);
-      if (org_errdes < 0)
-	{
-	  *err = errno;
-	  *errmsg = "dup";
-	  return -1;
-	}
-      if (dup2 ((flags & PEX_STDERR_TO_STDOUT) != 0 ? STDOUT_FILE_NO : errdes,
-		 STDERR_FILE_NO) < 0)
-	{
-	  *err = errno;
-	  *errmsg = "dup2";
-	  return -1;
-	}
-      if (errdes != STDERR_FILE_NO)
-	{
-	  if (close (errdes) < 0)
-	    {
-	      *err = errno;
-	      *errmsg = "close";
-	      return -1;
-	    }
-	}
-    }
-
-  if (env)
-    status = (((flags & PEX_SEARCH) != 0 ? spawnvpe : spawnve)
-	      (P_WAIT, executable, argv, env));
-  else
-    status = (((flags & PEX_SEARCH) != 0 ? spawnvp : spawnv)
-  	      (P_WAIT, executable, argv));
-
-  if (status == -1)
-    {
-      *err = errno;
-      *errmsg = ((flags & PEX_SEARCH) != 0) ? "spawnvp" : "spawnv";
-    }
-
-  if (in != STDIN_FILE_NO)
-    {
-      if (dup2 (org_in, STDIN_FILE_NO) < 0)
-	{
-	  *err = errno;
-	  *errmsg = "dup2";
-	  return -1;
-	}
-      if (close (org_in) < 0)
-	{
-	  *err = errno;
-	  *errmsg = "close";
-	  return -1;
-	}
-    }
-
-  if (out != STDOUT_FILE_NO)
-    {
-      if (dup2 (org_out, STDOUT_FILE_NO) < 0)
-	{
-	  *err = errno;
-	  *errmsg = "dup2";
-	  return -1;
-	}
-      if (close (org_out) < 0)
-	{
-	  *err = errno;
-	  *errmsg = "close";
-	  return -1;
-	}
-    }
-
-  if (errdes != STDERR_FILE_NO
-      || (flags & PEX_STDERR_TO_STDOUT) != 0)
-    {
-      if (dup2 (org_errdes, STDERR_FILE_NO) < 0)
-	{
-	  *err = errno;
-	  *errmsg = "dup2";
-	  return -1;
-	}
-      if (close (org_errdes) < 0)
-	{
-	  *err = errno;
-	  *errmsg = "close";
-	  return -1;
-	}
-    }
-
-  /* Save the exit status for later.  When we are called, obj->count
-     is the number of children which have executed before this
-     one.  */
-  statuses = (int *) obj->sysdep;
-  statuses = XRESIZEVEC (int, statuses, obj->count + 1);
-  statuses[obj->count] = status;
-  obj->sysdep = (void *) statuses;
-
-  return obj->count;
-}
-
-/* Wait for a child process to complete.  Actually the child process
-   has already completed, and we just need to return the exit
-   status.  */
-
-static int
-pex_djgpp_wait (struct pex_obj *obj, long pid, int *status,
-		struct pex_time *time, int done ATTRIBUTE_UNUSED,
-		const char **errmsg ATTRIBUTE_UNUSED,
-		int *err ATTRIBUTE_UNUSED)
-{
-  int *statuses;
-
-  if (time != NULL)
-    memset (time, 0, sizeof *time);
-
-  statuses = (int *) obj->sysdep;
-  *status = statuses[pid];
-
-  return 0;
-}
diff --git a/libiberty/pex-msdos.c b/libiberty/pex-msdos.c
deleted file mode 100644
index bcad93d..0000000
--- a/libiberty/pex-msdos.c
+++ /dev/null
@@ -1,317 +0,0 @@
-/* Utilities to execute a program in a subprocess (possibly linked by pipes
-   with other subprocesses), and wait for it.  Generic MSDOS specialization.
-   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2005
-   Free Software Foundation, Inc.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If not,
-write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#include "pex-common.h"
-
-#include <stdio.h>
-#include <errno.h>
-#ifdef NEED_DECLARATION_ERRNO
-extern int errno;
-#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-#include "safe-ctype.h"
-#include <process.h>
-
-/* The structure we keep in obj->sysdep.  */
-
-#define PEX_MSDOS_FILE_COUNT 3
-
-#define PEX_MSDOS_FD_OFFSET 10
-
-struct pex_msdos
-{
-  /* An array of file names.  We refer to these using file descriptors
-     of 10 + array index.  */
-  const char *files[PEX_MSDOS_FILE_COUNT];
-  /* Exit statuses of programs which have been run.  */
-  int *statuses;
-};
-
-static int pex_msdos_open (struct pex_obj *, const char *, int);
-static int pex_msdos_open (struct pex_obj *, const char *, int);
-static int pex_msdos_fdindex (struct pex_msdos *, int);
-static long pex_msdos_exec_child (struct pex_obj *, int, const char *,
-				  char * const *, char * const *,
-                                  int, int, int, const char **, int *);
-static int pex_msdos_close (struct pex_obj *, int);
-static int pex_msdos_wait (struct pex_obj *, long, int *, struct pex_time *,
-			   int, const char **, int *);
-static void pex_msdos_cleanup (struct pex_obj *);
-
-/* The list of functions we pass to the common routines.  */
-
-const struct pex_funcs funcs =
-{
-  pex_msdos_open,
-  pex_msdos_open,
-  pex_msdos_exec_child,
-  pex_msdos_close,
-  pex_msdos_wait,
-  NULL, /* pipe */
-  NULL, /* fdopenr */
-  NULL, /* fdopenw */
-  pex_msdos_cleanup
-};
-
-/* Return a newly initialized pex_obj structure.  */
-
-struct pex_obj *
-pex_init (int flags, const char *pname, const char *tempbase)
-{
-  struct pex_obj *ret;
-  int i;
-
-  /* MSDOS does not support pipes.  */
-  flags &= ~ PEX_USE_PIPES;
-
-  ret = pex_init_common (flags, pname, tempbase, funcs);
-
-  ret->sysdep = XNEW (struct pex_msdos);
-  for (i = 0; i < PEX_MSDOS_FILE_COUNT; ++i)
-    ret->files[i] = NULL;
-  ret->statuses = NULL;
-
-  return ret;
-}
-
-/* Open a file.  FIXME: We ignore the binary argument, since we have
-   no way to handle it.  */
-
-static int
-pex_msdos_open (struct pex_obj *obj, const char *name,
-		int binary ATTRIBUTE_UNUSED)
-{
-  struct pex_msdos *ms;
-  int i;
-
-  ms = (struct pex_msdos *) obj->sysdep;
-
-  for (i = 0; i < PEX_MSDOS_FILE_COUNT; ++i)
-    {
-      if (ms->files[i] == NULL)
-	{
-	  ms->files[i] = xstrdup (name);
-	  return i + PEX_MSDOS_FD_OFFSET;
-	}
-    }
-
-  abort ();
-}
-
-/* Get the index into msdos->files associated with an open file
-   descriptor.  */
-
-static int
-pex_msdos_fdindex (struct pex_msdos *ms, int fd)
-{
-  fd -= PEX_MSDOS_FD_OFFSET;
-  if (fd < 0 || fd >= PEX_MSDOS_FILE_COUNT || ms->files[fd] == NULL)
-    abort ();
-  return fd;
-}
-
-
-/* Close a file.  */
-
-static int
-pex_msdos_close (struct pex_obj *obj, int fd)
-{
-  struct pex_msdos *ms;
-  int fdinex;
-
-  ms = (struct pex_msdos *) obj->sysdep;
-  fdindex = pe_msdos_fdindex (ms, fd);
-  free (ms->files[fdindex]);
-  ms->files[fdindex] = NULL;
-}
-
-/* Execute a child.  */
-
-static long
-pex_msdos_exec_child (struct pex_obj *obj, int flags, const char *executable,
-		      char * const * argv, char * const * env, int in, int out,
-		      int errdes ATTRIBUTE_UNUSED, const char **errmsg,
-		      int *err)
-{
-  struct pex_msdos *ms;
-  char *temp_base;
-  int temp_base_allocated;
-  char *rf;
-  int inindex;
-  char *infile;
-  int outindex;
-  char *outfile;
-  char *scmd;
-  FILE *argfile;
-  int i;
-  int status;
-
-  ms = (struct pex_msdos *) obj->sysdep;
-
-  /* FIXME: I don't know how to redirect stderr, so we ignore ERRDES
-     and PEX_STDERR_TO_STDOUT.  */
-
-  temp_base = obj->temp_base;
-  if (temp_base != NULL)
-    temp_base_allocated = 0;
-  else
-    {
-      temp_base = choose_temp_base ();
-      temp_base_allocated = 1;
-    }
-
-  rf = concat (temp_base, ".gp", NULL);
-
-  if (temp_base_allocated)
-    free (temp_base);
-
-  if (in == STDIN_FILE_NO)
-    {
-      inindex = -1;
-      infile = "";
-    }
-  else
-    {
-      inindex = pex_msdos_fdindex (ms, in);
-      infile = ms->files[inindex];
-    }
-
-  if (out == STDOUT_FILE_NO)
-    {
-      outindex = -1;
-      outfile = "";
-    }
-  else
-    {
-      outindex = pex_msdos_fdindex (ms, out);
-      outfile = ms->files[outindex];
-    }
-
-  scmd = XNEWVEC (char, strlen (program)
-		  + ((flags & PEXECUTE_SEARCH) != 0 ? 4 : 0)
-		  + strlen (rf)
-		  + strlen (infile)
-		  + strlen (outfile)
-		  + 10);
-  sprintf (scmd, "%s%s @%s%s%s%s%s",
-	   program,
-	   (flags & PEXECUTE_SEARCH) != 0 ? ".exe" : "",
-	   rf,
-	   inindex != -1 ? " <" : "",
-	   infile,
-	   outindex != -1 ? " >" : "",
-	   outfile);
-
-  argfile = fopen (rf, "w");
-  if (argfile == NULL)
-    {
-      *err = errno;
-      free (scmd);
-      free (rf);
-      *errmsg = "cannot open temporary command file";
-      return -1;
-    }
-
-  for (i = 1; argv[i] != NULL; ++i)
-    {
-      char *p;
-
-      for (p = argv[i]; *p != '\0'; ++p)
-	{
-	  if (*p == '"' || *p == '\'' || *p == '\\' || ISSPACE (*p))
-	    putc ('\\', argfile);
-	  putc (*p, argfile);
-	}
-      putc ('\n', argfile);
-    }
-
-  fclose (argfile);
-
-  status = system (scmd);
-
-  if (status == -1)
-    {
-      *err = errno;
-      remove (rf);
-      free (scmd);
-      free (rf);
-      *errmsg = "system";
-      return -1;
-    }
-
-  remove (rf);
-  free (scmd);
-  free (rf);
-
-  /* Save the exit status for later.  When we are called, obj->count
-     is the number of children which have executed before this
-     one.  */
-  ms->statuses = XRESIZEVEC(int, ms->statuses, obj->count + 1);
-  ms->statuses[obj->count] = status;
-
-  return obj->count;
-}
-
-/* Wait for a child process to complete.  Actually the child process
-   has already completed, and we just need to return the exit
-   status.  */
-
-static int
-pex_msdos_wait (struct pex_obj *obj, long pid, int *status,
-		struct pex_time *time, int done ATTRIBUTE_UNUSED,
-		const char **errmsg ATTRIBUTE_UNUSED,
-		int *err ATTRIBUTE_UNUSED)
-{
-  struct pex_msdos *ms;
-
-  ms = (struct pex_msdos *) obj->sysdep;
-
-  if (time != NULL)
-    memset (time, 0, sizeof *time);
-
-  *status = ms->statuses[pid];
-
-  return 0;
-}
-
-/* Clean up the pex_msdos structure.  */
-
-static void
-pex_msdos_cleanup (struct pex_obj  *obj)
-{
-  struct pex_msdos *ms;
-  int i;
-
-  ms = (struct pex_msdos *) obj->sysdep;
-  for (i = 0; i < PEX_MSDOS_FILE_COUNT; ++i)
-    if (msdos->files[i] != NULL)
-      free (msdos->files[i]);
-  if (msdos->statuses != NULL)
-    free (msdos->statuses);
-  free (msdos);
-  obj->sysdep = NULL;
-}
diff --git a/libiberty/pex-one.c b/libiberty/pex-one.c
deleted file mode 100644
index 696b8bc..0000000
--- a/libiberty/pex-one.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Execute a program and wait for a result.
-   Copyright (C) 2005 Free Software Foundation, Inc.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If not,
-write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#include "config.h"
-#include "libiberty.h"
-
-const char *
-pex_one (int flags, const char *executable, char * const *argv,
-	 const char *pname, const char *outname, const char *errname,
-	 int *status, int *err)
-{
-  struct pex_obj *obj;
-  const char *errmsg;
-
-  obj = pex_init (0, pname, NULL);
-  errmsg = pex_run (obj, flags, executable, argv, outname, errname, err);
-  if (errmsg == NULL)
-    {
-      if (!pex_get_status (obj, 1, status))
-	{
-	  *err = 0;
-	  errmsg = "pex_get_status failed";
-	}
-    }
-  pex_free (obj);
-  return errmsg;  
-}
diff --git a/libiberty/pex-unix.c b/libiberty/pex-unix.c
deleted file mode 100644
index e006e59..0000000
--- a/libiberty/pex-unix.c
+++ /dev/null
@@ -1,532 +0,0 @@
-/* Utilities to execute a program in a subprocess (possibly linked by pipes
-   with other subprocesses), and wait for it.  Generic Unix version
-   (also used for UWIN and VMS).
-   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
-   Free Software Foundation, Inc.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If not,
-write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#include "config.h"
-#include "libiberty.h"
-#include "pex-common.h"
-
-#include <stdio.h>
-#include <signal.h>
-#include <errno.h>
-#ifdef NEED_DECLARATION_ERRNO
-extern int errno;
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#include <sys/types.h>
-
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-#ifdef HAVE_SYS_WAIT_H
-#include <sys/wait.h>
-#endif
-#ifdef HAVE_GETRUSAGE
-#include <sys/time.h>
-#include <sys/resource.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-
-
-#ifdef vfork /* Autoconf may define this to fork for us. */
-# define VFORK_STRING "fork"
-#else
-# define VFORK_STRING "vfork"
-#endif
-#ifdef HAVE_VFORK_H
-#include <vfork.h>
-#endif
-#ifdef VMS
-#define vfork() (decc$$alloc_vfork_blocks() >= 0 ? \
-               lib$get_current_invo_context(decc$$get_vfork_jmpbuf()) : -1)
-#endif /* VMS */
-
-
-/* File mode to use for private and world-readable files.  */
-
-#if defined (S_IRUSR) && defined (S_IWUSR) && defined (S_IRGRP) && defined (S_IWGRP) && defined (S_IROTH) && defined (S_IWOTH)
-#define PUBLIC_MODE  \
-    (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)
-#else
-#define PUBLIC_MODE 0666
-#endif
-
-/* Get the exit status of a particular process, and optionally get the
-   time that it took.  This is simple if we have wait4, slightly
-   harder if we have waitpid, and is a pain if we only have wait.  */
-
-static pid_t pex_wait (struct pex_obj *, pid_t, int *, struct pex_time *);
-
-#ifdef HAVE_WAIT4
-
-static pid_t
-pex_wait (struct pex_obj *obj ATTRIBUTE_UNUSED, pid_t pid, int *status,
-	  struct pex_time *time)
-{
-  pid_t ret;
-  struct rusage r;
-
-#ifdef HAVE_WAITPID
-  if (time == NULL)
-    return waitpid (pid, status, 0);
-#endif
-
-  ret = wait4 (pid, status, 0, &r);
-
-  if (time != NULL)
-    {
-      time->user_seconds = r.ru_utime.tv_sec;
-      time->user_microseconds= r.ru_utime.tv_usec;
-      time->system_seconds = r.ru_stime.tv_sec;
-      time->system_microseconds= r.ru_stime.tv_usec;
-    }
-
-  return ret;
-}
-
-#else /* ! defined (HAVE_WAIT4) */
-
-#ifdef HAVE_WAITPID
-
-#ifndef HAVE_GETRUSAGE
-
-static pid_t
-pex_wait (struct pex_obj *obj ATTRIBUTE_UNUSED, pid_t pid, int *status,
-	  struct pex_time *time)
-{
-  if (time != NULL)
-    memset (time, 0, sizeof (struct pex_time));
-  return waitpid (pid, status, 0);
-}
-
-#else /* defined (HAVE_GETRUSAGE) */
-
-static pid_t
-pex_wait (struct pex_obj *obj ATTRIBUTE_UNUSED, pid_t pid, int *status,
-	  struct pex_time *time)
-{
-  struct rusage r1, r2;
-  pid_t ret;
-
-  if (time == NULL)
-    return waitpid (pid, status, 0);
-
-  getrusage (RUSAGE_CHILDREN, &r1);
-
-  ret = waitpid (pid, status, 0);
-  if (ret < 0)
-    return ret;
-
-  getrusage (RUSAGE_CHILDREN, &r2);
-
-  time->user_seconds = r2.ru_utime.tv_sec - r1.ru_utime.tv_sec;
-  time->user_microseconds = r2.ru_utime.tv_usec - r1.ru_utime.tv_usec;
-  if (r2.ru_utime.tv_usec < r1.ru_utime.tv_usec)
-    {
-      --time->user_seconds;
-      time->user_microseconds += 1000000;
-    }
-
-  time->system_seconds = r2.ru_stime.tv_sec - r1.ru_stime.tv_sec;
-  time->system_microseconds = r2.ru_stime.tv_usec - r1.ru_stime.tv_usec;
-  if (r2.ru_stime.tv_usec < r1.ru_stime.tv_usec)
-    {
-      --time->system_seconds;
-      time->system_microseconds += 1000000;
-    }
-
-  return ret;
-}
-
-#endif /* defined (HAVE_GETRUSAGE) */
-
-#else /* ! defined (HAVE_WAITPID) */
-
-struct status_list
-{
-  struct status_list *next;
-  pid_t pid;
-  int status;
-  struct pex_time time;
-};
-
-static pid_t
-pex_wait (struct pex_obj *obj, pid_t pid, int *status, struct pex_time *time)
-{
-  struct status_list **pp;
-
-  for (pp = (struct status_list **) &obj->sysdep;
-       *pp != NULL;
-       pp = &(*pp)->next)
-    {
-      if ((*pp)->pid == pid)
-	{
-	  struct status_list *p;
-
-	  p = *pp;
-	  *status = p->status;
-	  if (time != NULL)
-	    *time = p->time;
-	  *pp = p->next;
-	  free (p);
-	  return pid;
-	}
-    }
-
-  while (1)
-    {
-      pid_t cpid;
-      struct status_list *psl;
-      struct pex_time pt;
-#ifdef HAVE_GETRUSAGE
-      struct rusage r1, r2;
-#endif
-
-      if (time != NULL)
-	{
-#ifdef HAVE_GETRUSAGE
-	  getrusage (RUSAGE_CHILDREN, &r1);
-#else
-	  memset (&pt, 0, sizeof (struct pex_time));
-#endif
-	}
-
-      cpid = wait (status);
-
-#ifdef HAVE_GETRUSAGE
-      if (time != NULL && cpid >= 0)
-	{
-	  getrusage (RUSAGE_CHILDREN, &r2);
-
-	  pt.user_seconds = r2.ru_utime.tv_sec - r1.ru_utime.tv_sec;
-	  pt.user_microseconds = r2.ru_utime.tv_usec - r1.ru_utime.tv_usec;
-	  if (pt.user_microseconds < 0)
-	    {
-	      --pt.user_seconds;
-	      pt.user_microseconds += 1000000;
-	    }
-
-	  pt.system_seconds = r2.ru_stime.tv_sec - r1.ru_stime.tv_sec;
-	  pt.system_microseconds = r2.ru_stime.tv_usec - r1.ru_stime.tv_usec;
-	  if (pt.system_microseconds < 0)
-	    {
-	      --pt.system_seconds;
-	      pt.system_microseconds += 1000000;
-	    }
-	}
-#endif
-
-      if (cpid < 0 || cpid == pid)
-	{
-	  if (time != NULL)
-	    *time = pt;
-	  return cpid;
-	}
-
-      psl = XNEW (struct status_list);
-      psl->pid = cpid;
-      psl->status = *status;
-      if (time != NULL)
-	psl->time = pt;
-      psl->next = (struct status_list *) obj->sysdep;
-      obj->sysdep = (void *) psl;
-    }
-}
-
-#endif /* ! defined (HAVE_WAITPID) */
-#endif /* ! defined (HAVE_WAIT4) */
-
-static void pex_child_error (struct pex_obj *, const char *, const char *, int)
-     ATTRIBUTE_NORETURN;
-static int pex_unix_open_read (struct pex_obj *, const char *, int);
-static int pex_unix_open_write (struct pex_obj *, const char *, int);
-static long pex_unix_exec_child (struct pex_obj *, int, const char *,
-				 char * const *, char * const *,
-                                 int, int, int, const char **, int *);
-static int pex_unix_close (struct pex_obj *, int);
-static int pex_unix_wait (struct pex_obj *, long, int *, struct pex_time *,
-			  int, const char **, int *);
-static int pex_unix_pipe (struct pex_obj *, int *, int);
-static FILE *pex_unix_fdopenr (struct pex_obj *, int, int);
-static FILE *pex_unix_fdopenw (struct pex_obj *, int, int);
-static void pex_unix_cleanup (struct pex_obj *);
-
-/* The list of functions we pass to the common routines.  */
-
-const struct pex_funcs funcs =
-{
-  pex_unix_open_read,
-  pex_unix_open_write,
-  pex_unix_exec_child,
-  pex_unix_close,
-  pex_unix_wait,
-  pex_unix_pipe,
-  pex_unix_fdopenr,
-  pex_unix_fdopenw,
-  pex_unix_cleanup
-};
-
-/* Return a newly initialized pex_obj structure.  */
-
-struct pex_obj *
-pex_init (int flags, const char *pname, const char *tempbase)
-{
-  return pex_init_common (flags, pname, tempbase, &funcs);
-}
-
-/* Open a file for reading.  */
-
-static int
-pex_unix_open_read (struct pex_obj *obj ATTRIBUTE_UNUSED, const char *name,
-		    int binary ATTRIBUTE_UNUSED)
-{
-  return open (name, O_RDONLY);
-}
-
-/* Open a file for writing.  */
-
-static int
-pex_unix_open_write (struct pex_obj *obj ATTRIBUTE_UNUSED, const char *name,
-		     int binary ATTRIBUTE_UNUSED)
-{
-  /* Note that we can't use O_EXCL here because gcc may have already
-     created the temporary file via make_temp_file.  */
-  return open (name, O_WRONLY | O_CREAT | O_TRUNC, PUBLIC_MODE);
-}
-
-/* Close a file.  */
-
-static int
-pex_unix_close (struct pex_obj *obj ATTRIBUTE_UNUSED, int fd)
-{
-  return close (fd);
-}
-
-/* Report an error from a child process.  We don't use stdio routines,
-   because we might be here due to a vfork call.  */
-
-static void
-pex_child_error (struct pex_obj *obj, const char *executable,
-		 const char *errmsg, int err)
-{
-#define writeerr(s) write (STDERR_FILE_NO, s, strlen (s))
-  writeerr (obj->pname);
-  writeerr (": error trying to exec '");
-  writeerr (executable);
-  writeerr ("': ");
-  writeerr (errmsg);
-  writeerr (": ");
-  writeerr (xstrerror (err));
-  writeerr ("\n");
-  _exit (-1);
-}
-
-/* Execute a child.  */
-
-extern char **environ;
-
-static long
-pex_unix_exec_child (struct pex_obj *obj, int flags, const char *executable,
-		     char * const * argv, char * const * env,
-                     int in, int out, int errdes,
-		     const char **errmsg, int *err)
-{
-  pid_t pid;
-
-  /* We declare these to be volatile to avoid warnings from gcc about
-     them being clobbered by vfork.  */
-  volatile int sleep_interval;
-  volatile int retries;
-
-  sleep_interval = 1;
-  pid = -1;
-  for (retries = 0; retries < 4; ++retries)
-    {
-      pid = vfork ();
-      if (pid >= 0)
-	break;
-      sleep (sleep_interval);
-      sleep_interval *= 2;
-    }
-
-  switch (pid)
-    {
-    case -1:
-      *err = errno;
-      *errmsg = VFORK_STRING;
-      return -1;
-
-    case 0:
-      /* Child process.  */
-      if (in != STDIN_FILE_NO)
-	{
-	  if (dup2 (in, STDIN_FILE_NO) < 0)
-	    pex_child_error (obj, executable, "dup2", errno);
-	  if (close (in) < 0)
-	    pex_child_error (obj, executable, "close", errno);
-	}
-      if (out != STDOUT_FILE_NO)
-	{
-	  if (dup2 (out, STDOUT_FILE_NO) < 0)
-	    pex_child_error (obj, executable, "dup2", errno);
-	  if (close (out) < 0)
-	    pex_child_error (obj, executable, "close", errno);
-	}
-      if (errdes != STDERR_FILE_NO)
-	{
-	  if (dup2 (errdes, STDERR_FILE_NO) < 0)
-	    pex_child_error (obj, executable, "dup2", errno);
-	  if (close (errdes) < 0)
-	    pex_child_error (obj, executable, "close", errno);
-	}
-      if ((flags & PEX_STDERR_TO_STDOUT) != 0)
-	{
-	  if (dup2 (STDOUT_FILE_NO, STDERR_FILE_NO) < 0)
-	    pex_child_error (obj, executable, "dup2", errno);
-	}
-
-      if (env)
-        environ = (char**) env;
-
-      if ((flags & PEX_SEARCH) != 0)
-	{
-	  execvp (executable, argv);
-	  pex_child_error (obj, executable, "execvp", errno);
-	}
-      else
-	{
-	  execv (executable, argv);
-	  pex_child_error (obj, executable, "execv", errno);
-	}
-
-      /* NOTREACHED */
-      return -1;
-
-    default:
-      /* Parent process.  */
-      if (in != STDIN_FILE_NO)
-	{
-	  if (close (in) < 0)
-	    {
-	      *err = errno;
-	      *errmsg = "close";
-	      return -1;
-	    }
-	}
-      if (out != STDOUT_FILE_NO)
-	{
-	  if (close (out) < 0)
-	    {
-	      *err = errno;
-	      *errmsg = "close";
-	      return -1;
-	    }
-	}
-      if (errdes != STDERR_FILE_NO)
-	{
-	  if (close (errdes) < 0)
-	    {
-	      *err = errno;
-	      *errmsg = "close";
-	      return -1;
-	    }
-	}
-
-      return (long) pid;
-    }
-}
-
-/* Wait for a child process to complete.  */
-
-static int
-pex_unix_wait (struct pex_obj *obj, long pid, int *status,
-	       struct pex_time *time, int done, const char **errmsg,
-	       int *err)
-{
-  /* If we are cleaning up when the caller didn't retrieve process
-     status for some reason, encourage the process to go away.  */
-  if (done)
-    kill (pid, SIGTERM);
-
-  if (pex_wait (obj, pid, status, time) < 0)
-    {
-      *err = errno;
-      *errmsg = "wait";
-      return -1;
-    }
-
-  return 0;
-}
-
-/* Create a pipe.  */
-
-static int
-pex_unix_pipe (struct pex_obj *obj ATTRIBUTE_UNUSED, int *p,
-	       int binary ATTRIBUTE_UNUSED)
-{
-  return pipe (p);
-}
-
-/* Get a FILE pointer to read from a file descriptor.  */
-
-static FILE *
-pex_unix_fdopenr (struct pex_obj *obj ATTRIBUTE_UNUSED, int fd,
-		  int binary ATTRIBUTE_UNUSED)
-{
-  return fdopen (fd, "r");
-}
-
-static FILE *
-pex_unix_fdopenw (struct pex_obj *obj ATTRIBUTE_UNUSED, int fd,
-		  int binary ATTRIBUTE_UNUSED)
-{
-  if (fcntl (fd, F_SETFD, FD_CLOEXEC) < 0)
-    return NULL;
-  return fdopen (fd, "w");
-}
-
-static void
-pex_unix_cleanup (struct pex_obj *obj ATTRIBUTE_UNUSED)
-{
-#if !defined (HAVE_WAIT4) && !defined (HAVE_WAITPID)
-  while (obj->sysdep != NULL)
-    {
-      struct status_list *this;
-      struct status_list *next;
-
-      this = (struct status_list *) obj->sysdep;
-      next = this->next;
-      free (this);
-      obj->sysdep = (void *) next;
-    }
-#endif
-}
diff --git a/libiberty/pex-win32.c b/libiberty/pex-win32.c
deleted file mode 100644
index 4572545..0000000
--- a/libiberty/pex-win32.c
+++ /dev/null
@@ -1,886 +0,0 @@
-/* Utilities to execute a program in a subprocess (possibly linked by pipes
-   with other subprocesses), and wait for it.  Generic Win32 specialization.
-   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
-   Free Software Foundation, Inc.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If not,
-write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#include "pex-common.h"
-
-#include <windows.h>
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_SYS_WAIT_H
-#include <sys/wait.h>
-#endif
-
-#include <assert.h>
-#include <process.h>
-#include <io.h>
-#include <fcntl.h>
-#include <signal.h>
-#include <sys/stat.h>
-#include <errno.h>
-#include <ctype.h>
-
-/* mingw32 headers may not define the following.  */
-
-#ifndef _P_WAIT
-#  define _P_WAIT	0
-#  define _P_NOWAIT	1
-#  define _P_OVERLAY	2
-#  define _P_NOWAITO	3
-#  define _P_DETACH	4
-
-#  define WAIT_CHILD		0
-#  define WAIT_GRANDCHILD	1
-#endif
-
-#define MINGW_NAME "Minimalist GNU for Windows"
-#define MINGW_NAME_LEN (sizeof(MINGW_NAME) - 1)
-
-extern char *stpcpy (char *dst, const char *src);
-
-/* Ensure that the executable pathname uses Win32 backslashes. This
-   is not necessary on NT, but on W9x, forward slashes causes
-   failure of spawn* and exec* functions (and probably any function
-   that calls CreateProcess) *iff* the executable pathname (argv[0])
-   is a quoted string.  And quoting is necessary in case a pathname
-   contains embedded white space.  You can't win.  */
-static void
-backslashify (char *s)
-{
-  while ((s = strchr (s, '/')) != NULL)
-    *s = '\\';
-  return;
-}
-
-static int pex_win32_open_read (struct pex_obj *, const char *, int);
-static int pex_win32_open_write (struct pex_obj *, const char *, int);
-static long pex_win32_exec_child (struct pex_obj *, int, const char *,
-				  char * const *, char * const *,
-                                  int, int, int,
-				  const char **, int *);
-static int pex_win32_close (struct pex_obj *, int);
-static int pex_win32_wait (struct pex_obj *, long, int *,
-			   struct pex_time *, int, const char **, int *);
-static int pex_win32_pipe (struct pex_obj *, int *, int);
-static FILE *pex_win32_fdopenr (struct pex_obj *, int, int);
-static FILE *pex_win32_fdopenw (struct pex_obj *, int, int);
-
-/* The list of functions we pass to the common routines.  */
-
-const struct pex_funcs funcs =
-{
-  pex_win32_open_read,
-  pex_win32_open_write,
-  pex_win32_exec_child,
-  pex_win32_close,
-  pex_win32_wait,
-  pex_win32_pipe,
-  pex_win32_fdopenr,
-  pex_win32_fdopenw,
-  NULL /* cleanup */
-};
-
-/* Return a newly initialized pex_obj structure.  */
-
-struct pex_obj *
-pex_init (int flags, const char *pname, const char *tempbase)
-{
-  return pex_init_common (flags, pname, tempbase, &funcs);
-}
-
-/* Open a file for reading.  */
-
-static int
-pex_win32_open_read (struct pex_obj *obj ATTRIBUTE_UNUSED, const char *name,
-		     int binary)
-{
-  return _open (name, _O_RDONLY | (binary ? _O_BINARY : _O_TEXT));
-}
-
-/* Open a file for writing.  */
-
-static int
-pex_win32_open_write (struct pex_obj *obj ATTRIBUTE_UNUSED, const char *name,
-		      int binary)
-{
-  /* Note that we can't use O_EXCL here because gcc may have already
-     created the temporary file via make_temp_file.  */
-  return _open (name,
-		(_O_WRONLY | _O_CREAT | _O_TRUNC
-		 | (binary ? _O_BINARY : _O_TEXT)),
-		_S_IREAD | _S_IWRITE);
-}
-
-/* Close a file.  */
-
-static int
-pex_win32_close (struct pex_obj *obj ATTRIBUTE_UNUSED, int fd)
-{
-  return _close (fd);
-}
-
-#ifdef USE_MINGW_MSYS
-static const char *mingw_keys[] = {"SOFTWARE", "Microsoft", "Windows", "CurrentVersion", "Uninstall", NULL};
-
-/* Tack the executable on the end of a (possibly slash terminated) buffer
-   and convert everything to \. */
-static const char *
-tack_on_executable (char *buf, const char *executable)
-{
-  char *p = strchr (buf, '\0');
-  if (p > buf && (p[-1] == '\\' || p[-1] == '/'))
-    p[-1] = '\0';
-  backslashify (strcat (buf, executable));
-  return buf;
-}
-
-/* Walk down a registry hierarchy until the end.  Return the key. */
-static HKEY
-openkey (HKEY hStart, const char *keys[])
-{
-  HKEY hKey, hTmp;
-  for (hKey = hStart; *keys; keys++)
-    {
-      LONG res;
-      hTmp = hKey;
-      res = RegOpenKey (hTmp, *keys, &hKey);
-
-      if (hTmp != HKEY_LOCAL_MACHINE)
-	RegCloseKey (hTmp);
-
-      if (res != ERROR_SUCCESS)
-	return NULL;
-    }
-  return hKey;
-}
-
-/* Return the "mingw root" as derived from the mingw uninstall information. */
-static const char *
-mingw_rootify (const char *executable)
-{
-  HKEY hKey, hTmp;
-  DWORD maxlen;
-  char *namebuf, *foundbuf;
-  DWORD i;
-  LONG res;
-
-  /* Open the uninstall "directory". */
-  hKey = openkey (HKEY_LOCAL_MACHINE, mingw_keys);
-
-  /* Not found. */
-  if (!hKey)
-    return executable;
-
-  /* Need to enumerate all of the keys here looking for one the most recent
-     one for MinGW. */
-  if (RegQueryInfoKey (hKey, NULL, NULL, NULL, NULL, &maxlen, NULL, NULL,
-		       NULL, NULL, NULL, NULL) != ERROR_SUCCESS)
-    {
-      RegCloseKey (hKey);
-      return executable;
-    }
-  namebuf = XNEWVEC (char, ++maxlen);
-  foundbuf = XNEWVEC (char, maxlen);
-  foundbuf[0] = '\0';
-  if (!namebuf || !foundbuf)
-    {
-      RegCloseKey (hKey);
-      if (namebuf)
-	free (namebuf);
-      if (foundbuf)
-	free (foundbuf);
-      return executable;
-    }
-
-  /* Look through all of the keys for one that begins with Minimal GNU...
-     Try to get the latest version by doing a string compare although that
-     string never really works with version number sorting. */
-  for (i = 0; RegEnumKey (hKey, i, namebuf, maxlen) == ERROR_SUCCESS; i++)
-    {
-      int match = strcasecmp (namebuf, MINGW_NAME);
-      if (match < 0)
-	continue;
-      if (match > 0 && strncasecmp (namebuf, MINGW_NAME, MINGW_NAME_LEN) > 0)
-	continue;
-      if (strcasecmp (namebuf, foundbuf) > 0)
-	strcpy (foundbuf, namebuf);
-    }
-  free (namebuf);
-
-  /* If foundbuf is empty, we didn't find anything.  Punt. */
-  if (!foundbuf[0])
-    {
-      free (foundbuf);
-      RegCloseKey (hKey);
-      return executable;
-    }
-
-  /* Open the key that we wanted */
-  res = RegOpenKey (hKey, foundbuf, &hTmp);
-  RegCloseKey (hKey);
-  free (foundbuf);
-
-  /* Don't know why this would fail, but you gotta check */
-  if (res != ERROR_SUCCESS)
-    return executable;
-
-  maxlen = 0;
-  /* Get the length of the value pointed to by InstallLocation */
-  if (RegQueryValueEx (hTmp, "InstallLocation", 0, NULL, NULL,
-		       &maxlen) != ERROR_SUCCESS || maxlen == 0)
-    {
-      RegCloseKey (hTmp);
-      return executable;
-    }
-
-  /* Allocate space for the install location */
-  foundbuf = XNEWVEC (char, maxlen + strlen (executable));
-  if (!foundbuf)
-    {
-      free (foundbuf);
-      RegCloseKey (hTmp);
-    }
-
-  /* Read the install location into the buffer */
-  res = RegQueryValueEx (hTmp, "InstallLocation", 0, NULL, (LPBYTE) foundbuf,
-			 &maxlen);
-  RegCloseKey (hTmp);
-  if (res != ERROR_SUCCESS)
-    {
-      free (foundbuf);
-      return executable;
-    }
-
-  /* Concatenate the install location and the executable, turn all slashes
-     to backslashes, and return that. */
-  return tack_on_executable (foundbuf, executable);
-}
-
-/* Read the install location of msys from it's installation file and
-   rootify the executable based on that. */
-static const char *
-msys_rootify (const char *executable)
-{
-  size_t bufsize = 64;
-  size_t execlen = strlen (executable) + 1;
-  char *buf;
-  DWORD res = 0;
-  for (;;)
-    {
-      buf = XNEWVEC (char, bufsize + execlen);
-      if (!buf)
-	break;
-      res = GetPrivateProfileString ("InstallSettings", "InstallPath", NULL,
-				     buf, bufsize, "msys.ini");
-      if (!res)
-	break;
-      if (strlen (buf) < bufsize)
-	break;
-      res = 0;
-      free (buf);
-      bufsize *= 2;
-      if (bufsize > 65536)
-	{
-	  buf = NULL;
-	  break;
-	}
-    }
-
-  if (res)
-    return tack_on_executable (buf, executable);
-
-  /* failed */
-  if (buf)
-    free (buf);
-  return executable;
-}
-#endif
-
-/* Return a Windows command-line from ARGV.  It is the caller's
-   responsibility to free the string returned.  */
-
-static char *
-argv_to_cmdline (char *const *argv)
-{
-  char *cmdline;
-  char *p;
-  size_t cmdline_len;
-  int i, j, k;
-
-  cmdline_len = 0;
-  for (i = 0; argv[i]; i++)
-    {
-      /* We quote every last argument.  This simplifies the problem;
-	 we need only escape embedded double-quotes and immediately
-	 preceeding backslash characters.  A sequence of backslach characters
-	 that is not follwed by a double quote character will not be
-	 escaped.  */
-      for (j = 0; argv[i][j]; j++)
-	{
-	  if (argv[i][j] == '"')
-	    {
-	      /* Escape preceeding backslashes.  */
-	      for (k = j - 1; k >= 0 && argv[i][k] == '\\'; k--)
-		cmdline_len++;
-	      /* Escape the qote character.  */
-	      cmdline_len++;
-	    }
-	}
-      /* Trailing backslashes also need to be escaped because they will be
-         followed by the terminating quote.  */
-      for (k = j - 1; k >= 0 && argv[i][k] == '\\'; k--)
-	cmdline_len++;
-      cmdline_len += j;
-      cmdline_len += 3;  /* for leading and trailing quotes and space */
-    }
-  cmdline = xmalloc (cmdline_len);
-  p = cmdline;
-  for (i = 0; argv[i]; i++)
-    {
-      *p++ = '"';
-      for (j = 0; argv[i][j]; j++)
-	{
-	  if (argv[i][j] == '"')
-	    {
-	      for (k = j - 1; k >= 0 && argv[i][k] == '\\'; k--)
-		*p++ = '\\';
-	      *p++ = '\\';
-	    }
-	  *p++ = argv[i][j];
-	}
-      for (k = j - 1; k >= 0 && argv[i][k] == '\\'; k--)
-	*p++ = '\\';
-      *p++ = '"';
-      *p++ = ' ';
-    }
-  p[-1] = '\0';
-  return cmdline;
-}
-
-static const char *const
-std_suffixes[] = {
-  ".com",
-  ".exe",
-  ".bat",
-  ".cmd",
-  0
-};
-static const char *const
-no_suffixes[] = {
-  "",
-  0
-};
-
-/* Returns the full path to PROGRAM.  If SEARCH is true, look for
-   PROGRAM in each directory in PATH.  */
-
-static char *
-find_executable (const char *program, BOOL search)
-{
-  char *full_executable;
-  char *e;
-  size_t fe_len;
-  const char *path = 0;
-  const char *const *ext;
-  const char *p, *q;
-  size_t proglen = strlen (program);
-  int has_extension = !!strchr (program, '.');
-  int has_slash = (strchr (program, '/') || strchr (program, '\\'));
-  HANDLE h;
-
-  if (has_slash)
-    search = FALSE;
-
-  if (search)
-    path = getenv ("PATH");
-  if (!path)
-    path = "";
-
-  fe_len = 0;
-  for (p = path; *p; p = q)
-    {
-      q = p;
-      while (*q != ';' && *q != '\0')
-	q++;
-      if ((size_t)(q - p) > fe_len)
-	fe_len = q - p;
-      if (*q == ';')
-	q++;
-    }
-  fe_len = fe_len + 1 + proglen + (has_extension ? 1 : 5);
-  full_executable = xmalloc (fe_len);
-
-  p = path;
-  do
-    {
-      q = p;
-      while (*q != ';' && *q != '\0')
-	q++;
-
-      e = full_executable;
-      memcpy (e, p, q - p);
-      e += (q - p);
-      if (q - p)
-	*e++ = '\\';
-      strcpy (e, program);
-
-      if (*q == ';')
-	q++;
-
-      for (e = full_executable; *e; e++)
-	if (*e == '/')
-	  *e = '\\';
-
-      /* At this point, e points to the terminating NUL character for
-         full_executable.  */
-      for (ext = has_extension ? no_suffixes : std_suffixes; *ext; ext++)
-	{
-	  /* Remove any current extension.  */
-	  *e = '\0';
-	  /* Add the new one.  */
-	  strcat (full_executable, *ext);
-
-	  /* Attempt to open this file.  */
-	  h = CreateFile (full_executable, GENERIC_READ,
-			  FILE_SHARE_READ | FILE_SHARE_WRITE,
-			  0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
-	  if (h != INVALID_HANDLE_VALUE)
-	    goto found;
-	}
-      p = q;
-    }
-  while (*p);
-  free (full_executable);
-  return 0;
-
- found:
-  CloseHandle (h);
-  return full_executable;
-}
-
-/* Low-level process creation function and helper.  */
-
-static int
-env_compare (const void *a_ptr, const void *b_ptr)
-{
-  const char *a;
-  const char *b;
-  unsigned char c1;
-  unsigned char c2;
-
-  a = *(const char **) a_ptr;
-  b = *(const char **) b_ptr;
-
-  /* a and b will be of the form: VAR=VALUE
-     We compare only the variable name part here using a case-insensitive
-     comparison algorithm.  It might appear that in fact strcasecmp () can
-     take the place of this whole function, and indeed it could, save for
-     the fact that it would fail in cases such as comparing A1=foo and
-     A=bar (because 1 is less than = in the ASCII character set).
-     (Environment variables containing no numbers would work in such a
-     scenario.)  */
-
-  do
-    {
-      c1 = (unsigned char) tolower (*a++);
-      c2 = (unsigned char) tolower (*b++);
-
-      if (c1 == '=')
-        c1 = '\0';
-
-      if (c2 == '=')
-        c2 = '\0';
-    }
-  while (c1 == c2 && c1 != '\0');
-
-  return c1 - c2;
-}
-
-static long
-win32_spawn (const char *executable,
-	     BOOL search,
-	     char *const *argv,
-             char *const *env, /* array of strings of the form: VAR=VALUE */
-	     DWORD dwCreationFlags,
-	     LPSTARTUPINFO si,
-	     LPPROCESS_INFORMATION pi)
-{
-  char *full_executable;
-  char *cmdline;
-  char **env_copy;
-  char *env_block = NULL;
-
-  full_executable = NULL;
-  cmdline = NULL;
-
-  if (env)
-    {
-      int env_size;
-
-      /* Count the number of environment bindings supplied.  */
-      for (env_size = 0; env[env_size]; env_size++)
-        continue;
-    
-      /* Assemble an environment block, if required.  This consists of
-         VAR=VALUE strings juxtaposed (with one null character between each
-         pair) and an additional null at the end.  */
-      if (env_size > 0)
-        {
-          int var;
-          int total_size = 1; /* 1 is for the final null.  */
-          char *bufptr;
-    
-          /* Windows needs the members of the block to be sorted by variable
-             name.  */
-          env_copy = alloca (sizeof (char *) * env_size);
-          memcpy (env_copy, env, sizeof (char *) * env_size);
-          qsort (env_copy, env_size, sizeof (char *), env_compare);
-    
-          for (var = 0; var < env_size; var++)
-            total_size += strlen (env[var]) + 1;
-    
-          env_block = malloc (total_size);
-          bufptr = env_block;
-          for (var = 0; var < env_size; var++)
-            bufptr = stpcpy (bufptr, env_copy[var]) + 1;
-    
-          *bufptr = '\0';
-        }
-    }
-
-  full_executable = find_executable (executable, search);
-  if (!full_executable)
-    goto error;
-  cmdline = argv_to_cmdline (argv);
-  if (!cmdline)
-    goto error;
-    
-  /* Create the child process.  */  
-  if (!CreateProcess (full_executable, cmdline, 
-		      /*lpProcessAttributes=*/NULL,
-		      /*lpThreadAttributes=*/NULL,
-		      /*bInheritHandles=*/TRUE,
-		      dwCreationFlags,
-		      (LPVOID) env_block,
-		      /*lpCurrentDirectory=*/NULL,
-		      si,
-		      pi))
-    {
-      if (env_block)
-        free (env_block);
-
-      free (full_executable);
-
-      return -1;
-    }
-
-  /* Clean up.  */
-  CloseHandle (pi->hThread);
-  free (full_executable);
-  if (env_block)
-    free (env_block);
-
-  return (long) pi->hProcess;
-
- error:
-  if (env_block)
-    free (env_block);
-  if (cmdline)
-    free (cmdline);
-  if (full_executable)
-    free (full_executable);
-
-  return -1;
-}
-
-static long
-spawn_script (const char *executable, char *const *argv,
-              char* const *env,
-	      DWORD dwCreationFlags,
-	      LPSTARTUPINFO si,
-	      LPPROCESS_INFORMATION pi)
-{
-  int pid = -1;
-  int save_errno = errno;
-  int fd = _open (executable, _O_RDONLY);
-
-  if (fd >= 0)
-    {
-      char buf[MAX_PATH + 5];
-      int len = _read (fd, buf, sizeof (buf) - 1);
-      _close (fd);
-      if (len > 3)
-	{
-	  char *eol;
-	  buf[len] = '\0';
-	  eol = strchr (buf, '\n');
-	  if (eol && strncmp (buf, "#!", 2) == 0)
-	    {
-	      char *executable1;
-	      const char ** avhere = (const char **) --argv;
-	      do
-		*eol = '\0';
-	      while (*--eol == '\r' || *eol == ' ' || *eol == '\t');
-	      for (executable1 = buf + 2; *executable1 == ' ' || *executable1 == '\t'; executable1++)
-		continue;
-
-	      backslashify (executable1);
-	      *avhere = executable1;
-#ifndef USE_MINGW_MSYS
-	      executable = strrchr (executable1, '\\') + 1;
-	      if (!executable)
-		executable = executable1;
-	      pid = win32_spawn (executable, TRUE, argv, env,
-				 dwCreationFlags, si, pi);
-#else
-	      if (strchr (executable1, '\\') == NULL)
-		pid = win32_spawn (executable1, TRUE, argv, env,
-				   dwCreationFlags, si, pi);
-	      else if (executable1[0] != '\\')
-		pid = win32_spawn (executable1, FALSE, argv, env,
-				   dwCreationFlags, si, pi);
-	      else
-		{
-		  const char *newex = mingw_rootify (executable1);
-		  *avhere = newex;
-		  pid = win32_spawn (newex, FALSE, argv, env,
-				     dwCreationFlags, si, pi);
-		  if (executable1 != newex)
-		    free ((char *) newex);
-		  if (pid < 0)
-		    {
-		      newex = msys_rootify (executable1);
-		      if (newex != executable1)
-			{
-			  *avhere = newex;
-			  pid = win32_spawn (newex, FALSE, argv, env,
-					     dwCreationFlags, si, pi);
-			  free ((char *) newex);
-			}
-		    }
-		}
-#endif
-	    }
-	}
-    }
-  if (pid < 0)
-    errno = save_errno;
-  return pid;
-}
-
-/* Execute a child.  */
-
-static long
-pex_win32_exec_child (struct pex_obj *obj ATTRIBUTE_UNUSED, int flags,
-		      const char *executable, char * const * argv,
-                      char* const* env,
-		      int in, int out, int errdes, const char **errmsg,
-		      int *err)
-{
-  long pid;
-  HANDLE stdin_handle;
-  HANDLE stdout_handle;
-  HANDLE stderr_handle;
-  DWORD dwCreationFlags;
-  OSVERSIONINFO version_info;
-  STARTUPINFO si;
-  PROCESS_INFORMATION pi;
-
-  stdin_handle = INVALID_HANDLE_VALUE;
-  stdout_handle = INVALID_HANDLE_VALUE;
-  stderr_handle = INVALID_HANDLE_VALUE;
-
-  stdin_handle = (HANDLE) _get_osfhandle (in);
-  stdout_handle = (HANDLE) _get_osfhandle (out);
-  if (!(flags & PEX_STDERR_TO_STDOUT))
-    stderr_handle = (HANDLE) _get_osfhandle (errdes);
-  else
-    stderr_handle = stdout_handle;
-
-  /* Determine the version of Windows we are running on.  */
-  version_info.dwOSVersionInfoSize = sizeof (version_info); 
-  GetVersionEx (&version_info);
-  if (version_info.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
-    /* On Windows 95/98/ME the CREATE_NO_WINDOW flag is not
-       supported, so we cannot avoid creating a console window.  */
-    dwCreationFlags = 0;
-  else
-    {
-      HANDLE conout_handle;
-
-      /* Determine whether or not we have an associated console.  */
-      conout_handle = CreateFile("CONOUT$", 
-				 GENERIC_WRITE,
-				 FILE_SHARE_WRITE,
-				 /*lpSecurityAttributes=*/NULL,
-				 OPEN_EXISTING,
-				 FILE_ATTRIBUTE_NORMAL,
-				 /*hTemplateFile=*/NULL);
-      if (conout_handle == INVALID_HANDLE_VALUE)
-	/* There is no console associated with this process.  Since
-	   the child is a console process, the OS would normally
-	   create a new console Window for the child.  Since we'll be
-	   redirecting the child's standard streams, we do not need
-	   the console window.  */ 
-	dwCreationFlags = CREATE_NO_WINDOW;
-      else 
-	{
-	  /* There is a console associated with the process, so the OS
-	     will not create a new console.  And, if we use
-	     CREATE_NO_WINDOW in this situation, the child will have
-	     no associated console.  Therefore, if the child's
-	     standard streams are connected to the console, the output
-	     will be discarded.  */
-	  CloseHandle(conout_handle);
-	  dwCreationFlags = 0;
-	}
-    }
-
-  /* Since the child will be a console process, it will, by default,
-     connect standard input/output to its console.  However, we want
-     the child to use the handles specifically designated above.  In
-     addition, if there is no console (such as when we are running in
-     a Cygwin X window), then we must redirect the child's
-     input/output, as there is no console for the child to use.  */
-  memset (&si, 0, sizeof (si));
-  si.cb = sizeof (si);
-  si.dwFlags = STARTF_USESTDHANDLES;
-  si.hStdInput = stdin_handle;
-  si.hStdOutput = stdout_handle;
-  si.hStdError = stderr_handle;
-
-  /* Create the child process.  */  
-  pid = win32_spawn (executable, (flags & PEX_SEARCH) != 0,
-		     argv, env, dwCreationFlags, &si, &pi);
-  if (pid == -1)
-    pid = spawn_script (executable, argv, env, dwCreationFlags,
-                        &si, &pi);
-  if (pid == -1)
-    {
-      *err = ENOENT;
-      *errmsg = "CreateProcess";
-    }
-
-  /* Close the standard output and standard error handles in the
-     parent.  */ 
-  if (out != STDOUT_FILENO)
-    obj->funcs->close (obj, out);
-  if (errdes != STDERR_FILENO)
-    obj->funcs->close (obj, errdes);
-
-  return pid;
-}
-
-/* Wait for a child process to complete.  MS CRTDLL doesn't return
-   enough information in status to decide if the child exited due to a
-   signal or not, rather it simply returns an integer with the exit
-   code of the child; eg., if the child exited with an abort() call
-   and didn't have a handler for SIGABRT, it simply returns with
-   status == 3.  We fix the status code to conform to the usual WIF*
-   macros.  Note that WIFSIGNALED will never be true under CRTDLL. */
-
-static int
-pex_win32_wait (struct pex_obj *obj ATTRIBUTE_UNUSED, long pid,
-		int *status, struct pex_time *time, int done ATTRIBUTE_UNUSED,
-		const char **errmsg, int *err)
-{
-  DWORD termstat;
-  HANDLE h;
-
-  if (time != NULL)
-    memset (time, 0, sizeof *time);
-
-  h = (HANDLE) pid;
-
-  /* FIXME: If done is non-zero, we should probably try to kill the
-     process.  */
-  if (WaitForSingleObject (h, INFINITE) != WAIT_OBJECT_0)
-    {
-      CloseHandle (h);
-      *err = ECHILD;
-      *errmsg = "WaitForSingleObject";
-      return -1;
-    }
-
-  GetExitCodeProcess (h, &termstat);
-  CloseHandle (h);
- 
-  /* A value of 3 indicates that the child caught a signal, but not
-     which one.  Since only SIGABRT, SIGFPE and SIGINT do anything, we
-     report SIGABRT.  */
-  if (termstat == 3)
-    *status = SIGABRT;
-  else
-    *status = (termstat & 0xff) << 8;
-
-  return 0;
-}
-
-/* Create a pipe.  */
-
-static int
-pex_win32_pipe (struct pex_obj *obj ATTRIBUTE_UNUSED, int *p,
-		int binary)
-{
-  return _pipe (p, 256, binary ? _O_BINARY : _O_TEXT);
-}
-
-/* Get a FILE pointer to read from a file descriptor.  */
-
-static FILE *
-pex_win32_fdopenr (struct pex_obj *obj ATTRIBUTE_UNUSED, int fd,
-		   int binary)
-{
-  return fdopen (fd, binary ? "rb" : "r");
-}
-
-static FILE *
-pex_win32_fdopenw (struct pex_obj *obj ATTRIBUTE_UNUSED, int fd,
-		   int binary)
-{
-  HANDLE h = (HANDLE) _get_osfhandle (fd);
-  if (h == INVALID_HANDLE_VALUE)
-    return NULL;
-  if (! SetHandleInformation (h, HANDLE_FLAG_INHERIT, 0))
-    return NULL;
-  return fdopen (fd, binary ? "wb" : "w");
-}
-
-#ifdef MAIN
-#include <stdio.h>
-
-int
-main (int argc ATTRIBUTE_UNUSED, char **argv)
-{
-  char const *errmsg;
-  int err;
-  argv++;
-  printf ("%ld\n", pex_win32_exec_child (NULL, PEX_SEARCH, argv[0], argv, NULL, 0, 0, 1, 2, &errmsg, &err));
-  exit (0);
-}
-#endif
diff --git a/libiberty/pexecute.c b/libiberty/pexecute.c
deleted file mode 100644
index 97f1574..0000000
--- a/libiberty/pexecute.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Utilities to execute a program in a subprocess (possibly linked by pipes
-   with other subprocesses), and wait for it.
-   Copyright (C) 2004 Free Software Foundation, Inc.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If not,
-write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-/* pexecute is an old routine.  This implementation uses the newer
-   pex_init/pex_run/pex_get_status/pex_free routines.  Don't use
-   pexecute in new code.  Use the newer routines instead.  */
-
-#include "config.h"
-#include "libiberty.h"
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-/* We only permit a single pexecute chain to execute at a time.  This
-   was always true anyhow, though it wasn't documented.  */
-
-static struct pex_obj *pex;
-static int idx;
-
-int
-pexecute (const char *program, char * const *argv, const char *pname,
-	  const char *temp_base, char **errmsg_fmt, char **errmsg_arg,
-	  int flags)
-{
-  const char *errmsg;
-  int err;
-
-  if ((flags & PEXECUTE_FIRST) != 0)
-    {
-      if (pex != NULL)
-	{
-	  *errmsg_fmt = (char *) "pexecute already in progress";
-	  *errmsg_arg = NULL;
-	  return -1;
-	}
-      pex = pex_init (PEX_USE_PIPES, pname, temp_base);
-      idx = 0;
-    }
-  else
-    {
-      if (pex == NULL)
-	{
-	  *errmsg_fmt = (char *) "pexecute not in progress";
-	  *errmsg_arg = NULL;
-	  return -1;
-	}
-    }
-
-  errmsg = pex_run (pex,
-		    (((flags & PEXECUTE_LAST) != 0 ? PEX_LAST : 0)
-		     | ((flags & PEXECUTE_SEARCH) != 0 ? PEX_SEARCH : 0)),
-		    program, argv, NULL, NULL, &err);
-  if (errmsg != NULL)
-    {
-      *errmsg_fmt = (char *) errmsg;
-      *errmsg_arg = NULL;
-      return -1;
-    }
-
-  /* Instead of a PID, we just return a one-based index into the
-     status values.  We avoid zero just because the old pexecute would
-     never return it.  */
-  return ++idx;
-}
-
-int
-pwait (int pid, int *status, int flags ATTRIBUTE_UNUSED)
-{
-  /* The PID returned by pexecute is one-based.  */
-  --pid;
-
-  if (pex == NULL || pid < 0 || pid >= idx)
-    return -1;
-
-  if (pid == 0 && idx == 1)
-    {
-      if (!pex_get_status (pex, 1, status))
-	return -1;
-    }
-  else
-    {
-      int *vector;
-
-      vector = XNEWVEC (int, idx);
-      if (!pex_get_status (pex, idx, vector))
-	{
-	  free (vector);
-	  return -1;
-	}
-      *status = vector[pid];
-      free (vector);
-    }
-
-  /* Assume that we are done after the caller has retrieved the last
-     exit status.  The original implementation did not require that
-     the exit statuses be retrieved in order, but this implementation
-     does.  */
-  if (pid + 1 == idx)
-    {
-      pex_free (pex);
-      pex = NULL;
-      idx = 0;
-    }
-
-  return pid + 1;
-}
diff --git a/libiberty/pexecute.txh b/libiberty/pexecute.txh
deleted file mode 100644
index d85ee59..0000000
--- a/libiberty/pexecute.txh
+++ /dev/null
@@ -1,274 +0,0 @@
-@c -*- mode: texinfo -*-
-@deftypefn Extension {struct pex_obj *} pex_init (int @var{flags}, const char *@var{pname}, const char *@var{tempbase})
-
-Prepare to execute one or more programs, with standard output of each
-program fed to standard input of the next.  This is a system
-independent interface to execute a pipeline.
-
-@var{flags} is a bitwise combination of the following:
-
-@table @code
-
-@vindex PEX_RECORD_TIMES
-@item PEX_RECORD_TIMES
-Record subprocess times if possible.
-
-@vindex PEX_USE_PIPES
-@item PEX_USE_PIPES
-Use pipes for communication between processes, if possible.
-
-@vindex PEX_SAVE_TEMPS
-@item PEX_SAVE_TEMPS
-Don't delete temporary files used for communication between
-processes.
-
-@end table
-
-@var{pname} is the name of program to be executed, used in error
-messages.  @var{tempbase} is a base name to use for any required
-temporary files; it may be @code{NULL} to use a randomly chosen name.
-
-@end deftypefn
-
-@deftypefn Extension {const char *} pex_run (struct pex_obj *@var{obj}, int @var{flags}, const char *@var{executable}, char * const *@var{argv}, const char *@var{outname}, const char *@var{errname}, int *@var{err})
-
-Execute one program in a pipeline.  On success this returns
-@code{NULL}.  On failure it returns an error message, a statically
-allocated string.
-
-@var{obj} is returned by a previous call to @code{pex_init}.
-
-@var{flags} is a bitwise combination of the following:
-
-@table @code
-
-@vindex PEX_LAST
-@item PEX_LAST
-This must be set on the last program in the pipeline.  In particular,
-it should be set when executing a single program.  The standard output
-of the program will be sent to @var{outname}, or, if @var{outname} is
-@code{NULL}, to the standard output of the calling program.  Do @emph{not}
-set this bit if you want to call @code{pex_read_output}
-(described below).  After a call to @code{pex_run} with this bit set,
-@var{pex_run} may no longer be called with the same @var{obj}.
-
-@vindex PEX_SEARCH
-@item PEX_SEARCH
-Search for the program using the user's executable search path.
-
-@vindex PEX_SUFFIX
-@item PEX_SUFFIX
-@var{outname} is a suffix.  See the description of @var{outname},
-below.
-
-@vindex PEX_STDERR_TO_STDOUT
-@item PEX_STDERR_TO_STDOUT
-Send the program's standard error to standard output, if possible.
-
-@vindex PEX_BINARY_INPUT
-@vindex PEX_BINARY_OUTPUT
-@item PEX_BINARY_INPUT
-@itemx PEX_BINARY_OUTPUT
-The standard input (output) of the program should be read (written) in
-binary mode rather than text mode.  These flags are ignored on systems
-which do not distinguish binary mode and text mode, such as Unix.  For
-proper behavior these flags should match appropriately---a call to
-@code{pex_run} using @code{PEX_BINARY_OUTPUT} should be followed by a
-call using @code{PEX_BINARY_INPUT}.
-@end table
-
-@var{executable} is the program to execute.  @var{argv} is the set of
-arguments to pass to the program; normally @code{@var{argv}[0]} will
-be a copy of @var{executable}.
-
-@var{outname} is used to set the name of the file to use for standard
-output.  There are two cases in which no output file will be used:
-
-@enumerate
-@item
-if @code{PEX_LAST} is not set in @var{flags}, and @code{PEX_USE_PIPES}
-was set in the call to @code{pex_init}, and the system supports pipes
-
-@item
-if @code{PEX_LAST} is set in @var{flags}, and @var{outname} is
-@code{NULL}
-@end enumerate
-
-@noindent
-Otherwise the code will use a file to hold standard
-output.  If @code{PEX_LAST} is not set, this file is considered to be
-a temporary file, and it will be removed when no longer needed, unless
-@code{PEX_SAVE_TEMPS} was set in the call to @code{pex_init}.
-
-There are two cases to consider when setting the name of the file to
-hold standard output.
-
-@enumerate
-@item
-@code{PEX_SUFFIX} is set in @var{flags}.  In this case
-@var{outname} may not be @code{NULL}.  If the @var{tempbase} parameter
-to @code{pex_init} was not @code{NULL}, then the output file name is
-the concatenation of @var{tempbase} and @var{outname}.  If
-@var{tempbase} was @code{NULL}, then the output file name is a random
-file name ending in @var{outname}.
-
-@item
-@code{PEX_SUFFIX} was not set in @var{flags}.  In this
-case, if @var{outname} is not @code{NULL}, it is used as the output
-file name.  If @var{outname} is @code{NULL}, and @var{tempbase} was
-not NULL, the output file name is randomly chosen using
-@var{tempbase}.  Otherwise the output file name is chosen completely
-at random.
-@end enumerate
-
-@var{errname} is the file name to use for standard error output.  If
-it is @code{NULL}, standard error is the same as the caller's.
-Otherwise, standard error is written to the named file.
-
-On an error return, the code sets @code{*@var{err}} to an @code{errno}
-value, or to 0 if there is no relevant @code{errno}.
-
-@end deftypefn
-
-@deftypefn Extension {const char *} pex_run_in_environment (struct pex_obj *@var{obj}, int @var{flags}, const char *@var{executable}, char * const *@var{argv}, char * const *@var{env}, int @var{env_size}, const char *@var{outname}, const char *@var{errname}, int *@var{err})
-
-Execute one program in a pipeline, permitting the environment for the
-program to be specified.  Behaviour and parameters not listed below are
-as for @code{pex_run}.
-
-@var{env} is the environment for the child process, specified as an array of
-character pointers.  Each element of the array should point to a string of the
-form @code{VAR=VALUE}, with the exception of the last element that must be
-@code{NULL}.
-
-@end deftypefn
-
-@deftypefn Extension {FILE *} pex_input_file (struct pex_obj *@var{obj}, int @var{flags}, const char *@var{in_name})
-
-Return a stream for a temporary file to pass to the first program in
-the pipeline as input.
-
-The name of the input file is chosen according to the same rules
-@code{pex_run} uses to choose output file names, based on
-@var{in_name}, @var{obj} and the @code{PEX_SUFFIX} bit in @var{flags}.
-
-Don't call @code{fclose} on the returned stream; the first call to
-@code{pex_run} closes it automatically.
-
-If @var{flags} includes @code{PEX_BINARY_OUTPUT}, open the stream in
-binary mode; otherwise, open it in the default mode.  Including
-@code{PEX_BINARY_OUTPUT} in @var{flags} has no effect on Unix.
-@end deftypefn
-
-@deftypefn Extension {FILE *} pex_input_pipe (struct pex_obj *@var{obj}, int @var{binary})
-
-Return a stream @var{fp} for a pipe connected to the standard input of
-the first program in the pipeline; @var{fp} is opened for writing.
-You must have passed @code{PEX_USE_PIPES} to the @code{pex_init} call
-that returned @var{obj}.
-
-You must close @var{fp} using @code{fclose} yourself when you have
-finished writing data to the pipeline.
-
-The file descriptor underlying @var{fp} is marked not to be inherited
-by child processes.
-
-On systems that do not support pipes, this function returns
-@code{NULL}, and sets @code{errno} to @code{EINVAL}.  If you would
-like to write code that is portable to all systems the @code{pex}
-functions support, consider using @code{pex_input_file} instead.
-
-There are two opportunities for deadlock using
-@code{pex_input_pipe}:
-
-@itemize @bullet
-@item
-Most systems' pipes can buffer only a fixed amount of data; a process
-that writes to a full pipe blocks.  Thus, if you write to @file{fp}
-before starting the first process, you run the risk of blocking when
-there is no child process yet to read the data and allow you to
-continue.  @code{pex_input_pipe} makes no promises about the
-size of the pipe's buffer, so if you need to write any data at all
-before starting the first process in the pipeline, consider using
-@code{pex_input_file} instead.
-
-@item
-Using @code{pex_input_pipe} and @code{pex_read_output} together
-may also cause deadlock.  If the output pipe fills up, so that each
-program in the pipeline is waiting for the next to read more data, and
-you fill the input pipe by writing more data to @var{fp}, then there
-is no way to make progress: the only process that could read data from
-the output pipe is you, but you are blocked on the input pipe.
-
-@end itemize
-
-@end deftypefn
-
-@deftypefn Extension {FILE *} pex_read_output (struct pex_obj *@var{obj}, int @var{binary})
-
-Returns a @code{FILE} pointer which may be used to read the standard
-output of the last program in the pipeline.  When this is used,
-@code{PEX_LAST} should not be used in a call to @code{pex_run}.  After
-this is called, @code{pex_run} may no longer be called with the same
-@var{obj}.  @var{binary} should be non-zero if the file should be
-opened in binary mode.  Don't call @code{fclose} on the returned file;
-it will be closed by @code{pex_free}.
-
-@end deftypefn
-
-@deftypefn Extension int pex_get_status (struct pex_obj *@var{obj}, int @var{count}, int *@var{vector})
-
-Returns the exit status of all programs run using @var{obj}.
-@var{count} is the number of results expected.  The results will be
-placed into @var{vector}.  The results are in the order of the calls
-to @code{pex_run}.  Returns 0 on error, 1 on success.
-
-@end deftypefn
-
-@deftypefn Extension int pex_get_times (struct pex_obj *@var{obj}, int @var{count}, struct pex_time *@var{vector})
-
-Returns the process execution times of all programs run using
-@var{obj}.  @var{count} is the number of results expected.  The
-results will be placed into @var{vector}.  The results are in the
-order of the calls to @code{pex_run}.  Returns 0 on error, 1 on
-success.
-
-@code{struct pex_time} has the following fields of the type
-@code{unsigned long}: @code{user_seconds},
-@code{user_microseconds}, @code{system_seconds},
-@code{system_microseconds}.  On systems which do not support reporting
-process times, all the fields will be set to @code{0}.
-
-@end deftypefn
-
-@deftypefn Extension void pex_free (struct pex_obj @var{obj})
-
-Clean up and free all data associated with @var{obj}.
-
-@end deftypefn
-
-@deftypefn Extension {const char *} pex_one (int @var{flags}, const char *@var{executable}, char * const *@var{argv}, const char *@var{pname}, const char *@var{outname}, const char *@var{errname}, int *@var{status}, int *@var{err})
-
-An interface to permit the easy execution of a
-single program.  The return value and most of the parameters are as
-for a call to @code{pex_run}.  @var{flags} is restricted to a
-combination of @code{PEX_SEARCH}, @code{PEX_STDERR_TO_STDOUT}, and
-@code{PEX_BINARY_OUTPUT}.  @var{outname} is interpreted as if
-@code{PEX_LAST} were set.  On a successful return, @code{*@var{status}} will
-be set to the exit status of the program.
-
-@end deftypefn
-
-@deftypefn Extension int pexecute (const char *@var{program}, char * const *@var{argv}, const char *@var{this_pname}, const char *@var{temp_base}, char **@var{errmsg_fmt}, char **@var{errmsg_arg}, int flags)
-
-This is the old interface to execute one or more programs.  It is
-still supported for compatibility purposes, but is no longer
-documented.
-
-@end deftypefn
-
-@deftypefn Extension int pwait (int @var{pid}, int *@var{status}, int @var{flags})
-
-Another part of the old execution interface.
-
-@end deftypefn
diff --git a/libiberty/physmem.c b/libiberty/physmem.c
deleted file mode 100644
index 09fbf3f..0000000
--- a/libiberty/physmem.c
+++ /dev/null
@@ -1,305 +0,0 @@
-/* Calculate the size of physical memory.
-   Copyright 2000, 2001, 2003, 2004, 2005 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 2, 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* Written by Paul Eggert.  */
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#if HAVE_SYS_PSTAT_H
-# include <sys/pstat.h>
-#endif
-
-#if HAVE_SYS_SYSMP_H
-# include <sys/sysmp.h>
-#endif
-
-#if HAVE_SYS_SYSINFO_H && HAVE_MACHINE_HAL_SYSINFO_H
-# include <sys/sysinfo.h>
-# include <machine/hal_sysinfo.h>
-#endif
-
-#if HAVE_SYS_TABLE_H
-# include <sys/table.h>
-#endif
-
-#include <sys/types.h>
-
-#if HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#endif
-
-#if HAVE_SYS_SYSCTL_H
-# include <sys/sysctl.h>
-#endif
-
-#if HAVE_SYS_SYSTEMCFG_H
-# include <sys/systemcfg.h>
-#endif
-
-#ifdef _WIN32
-# define WIN32_LEAN_AND_MEAN
-# include <windows.h>
-/*  MEMORYSTATUSEX is missing from older windows headers, so define
-    a local replacement.  */
-typedef struct
-{
-  DWORD dwLength;
-  DWORD dwMemoryLoad;
-  DWORDLONG ullTotalPhys;
-  DWORDLONG ullAvailPhys;
-  DWORDLONG ullTotalPageFile;
-  DWORDLONG ullAvailPageFile;
-  DWORDLONG ullTotalVirtual;
-  DWORDLONG ullAvailVirtual;
-  DWORDLONG ullAvailExtendedVirtual;
-} lMEMORYSTATUSEX;
-typedef WINBOOL (WINAPI *PFN_MS_EX) (lMEMORYSTATUSEX*);
-#endif
-
-#include "libiberty.h"
-
-/* Return the total amount of physical memory.  */
-double
-physmem_total (void)
-{
-#if defined _SC_PHYS_PAGES && defined _SC_PAGESIZE
-  { /* This works on linux-gnu, solaris2 and cygwin.  */
-    double pages = sysconf (_SC_PHYS_PAGES);
-    double pagesize = sysconf (_SC_PAGESIZE);
-    if (0 <= pages && 0 <= pagesize)
-      return pages * pagesize;
-  }
-#endif
-
-#if HAVE_PSTAT_GETSTATIC
-  { /* This works on hpux11.  */
-    struct pst_static pss;
-    if (0 <= pstat_getstatic (&pss, sizeof pss, 1, 0))
-      {
-	double pages = pss.physical_memory;
-	double pagesize = pss.page_size;
-	if (0 <= pages && 0 <= pagesize)
-	  return pages * pagesize;
-      }
-  }
-#endif
-
-#if HAVE_SYSMP && defined MP_SAGET && defined MPSA_RMINFO && defined _SC_PAGESIZE
-  { /* This works on irix6. */
-    struct rminfo realmem;
-    if (sysmp (MP_SAGET, MPSA_RMINFO, &realmem, sizeof realmem) == 0)
-      {
-	double pagesize = sysconf (_SC_PAGESIZE);
-	double pages = realmem.physmem;
-	if (0 <= pages && 0 <= pagesize)
-	  return pages * pagesize;
-      }
-  }
-#endif
-
-#if HAVE_GETSYSINFO && defined GSI_PHYSMEM
-  { /* This works on Tru64 UNIX V4/5.  */
-    int physmem;
-
-    if (getsysinfo (GSI_PHYSMEM, (caddr_t) &physmem, sizeof (physmem),
-		    NULL, NULL, NULL) == 1)
-      {
-	double kbytes = physmem;
-
-	if (0 <= kbytes)
-	  return kbytes * 1024.0;
-      }
-  }
-#endif
-
-#if HAVE_SYSCTL && defined HW_PHYSMEM
-  { /* This works on *bsd and darwin.  */
-    unsigned int physmem;
-    size_t len = sizeof physmem;
-    static int mib[2] = { CTL_HW, HW_PHYSMEM };
-
-    if (sysctl (mib, ARRAY_SIZE (mib), &physmem, &len, NULL, 0) == 0
-	&& len == sizeof (physmem))
-      return (double) physmem;
-  }
-#endif
-
-#if HAVE__SYSTEM_CONFIGURATION
-  /* This works on AIX 4.3.3+.  */
-  return _system_configuration.physmem;
-#endif
-
-#if defined _WIN32
-  { /* this works on windows */
-    PFN_MS_EX pfnex;
-    HMODULE h = GetModuleHandle ("kernel32.dll");
-
-    if (!h)
-      return 0.0;
-
-    /*  Use GlobalMemoryStatusEx if available.  */
-    if ((pfnex = (PFN_MS_EX) GetProcAddress (h, "GlobalMemoryStatusEx")))
-      {
-	lMEMORYSTATUSEX lms_ex;
-	lms_ex.dwLength = sizeof lms_ex;
-	if (!pfnex (&lms_ex))
-	  return 0.0;
-	return (double) lms_ex.ullTotalPhys;
-      }
-
-    /*  Fall back to GlobalMemoryStatus which is always available.
-        but returns wrong results for physical memory > 4GB.  */
-    else
-      {
-	MEMORYSTATUS ms;
-	GlobalMemoryStatus (&ms);
-	return (double) ms.dwTotalPhys;
-      }
-  }
-#endif
-
-  /* Return 0 if we can't determine the value.  */
-  return 0;
-}
-
-/* Return the amount of physical memory available.  */
-double
-physmem_available (void)
-{
-#if defined _SC_AVPHYS_PAGES && defined _SC_PAGESIZE
-  { /* This works on linux-gnu, solaris2 and cygwin.  */
-    double pages = sysconf (_SC_AVPHYS_PAGES);
-    double pagesize = sysconf (_SC_PAGESIZE);
-    if (0 <= pages && 0 <= pagesize)
-      return pages * pagesize;
-  }
-#endif
-
-#if HAVE_PSTAT_GETSTATIC && HAVE_PSTAT_GETDYNAMIC
-  { /* This works on hpux11.  */
-    struct pst_static pss;
-    struct pst_dynamic psd;
-    if (0 <= pstat_getstatic (&pss, sizeof pss, 1, 0)
-	&& 0 <= pstat_getdynamic (&psd, sizeof psd, 1, 0))
-      {
-	double pages = psd.psd_free;
-	double pagesize = pss.page_size;
-	if (0 <= pages && 0 <= pagesize)
-	  return pages * pagesize;
-      }
-  }
-#endif
-
-#if HAVE_SYSMP && defined MP_SAGET && defined MPSA_RMINFO && defined _SC_PAGESIZE
-  { /* This works on irix6. */
-    struct rminfo realmem;
-    if (sysmp (MP_SAGET, MPSA_RMINFO, &realmem, sizeof realmem) == 0)
-      {
-	double pagesize = sysconf (_SC_PAGESIZE);
-	double pages = realmem.availrmem;
-	if (0 <= pages && 0 <= pagesize)
-	  return pages * pagesize;
-      }
-  }
-#endif
-
-#if HAVE_TABLE && defined TBL_VMSTATS
-  { /* This works on Tru64 UNIX V4/5.  */
-    struct tbl_vmstats vmstats;
-
-    if (table (TBL_VMSTATS, 0, &vmstats, 1, sizeof (vmstats)) == 1)
-      {
-	double pages = vmstats.free_count;
-	double pagesize = vmstats.pagesize;
-
-	if (0 <= pages && 0 <= pagesize)
-	  return pages * pagesize;
-      }
-  }
-#endif
-
-#if HAVE_SYSCTL && defined HW_USERMEM
-  { /* This works on *bsd and darwin.  */
-    unsigned int usermem;
-    size_t len = sizeof usermem;
-    static int mib[2] = { CTL_HW, HW_USERMEM };
-
-    if (sysctl (mib, ARRAY_SIZE (mib), &usermem, &len, NULL, 0) == 0
-	&& len == sizeof (usermem))
-      return (double) usermem;
-  }
-#endif
-
-#if defined _WIN32
-  { /* this works on windows */
-    PFN_MS_EX pfnex;
-    HMODULE h = GetModuleHandle ("kernel32.dll");
-
-    if (!h)
-      return 0.0;
-
-    /*  Use GlobalMemoryStatusEx if available.  */
-    if ((pfnex = (PFN_MS_EX) GetProcAddress (h, "GlobalMemoryStatusEx")))
-      {
-	lMEMORYSTATUSEX lms_ex;
-	lms_ex.dwLength = sizeof lms_ex;
-	if (!pfnex (&lms_ex))
-	  return 0.0;
-	return (double) lms_ex.ullAvailPhys;
-      }
-
-    /*  Fall back to GlobalMemoryStatus which is always available.
-        but returns wrong results for physical memory > 4GB  */
-    else
-      {
-	MEMORYSTATUS ms;
-	GlobalMemoryStatus (&ms);
-	return (double) ms.dwAvailPhys;
-      }
-  }
-#endif
-
-  /* Guess 25% of physical memory.  */
-  return physmem_total () / 4;
-}
-
-
-#if DEBUG
-
-# include <stdio.h>
-# include <stdlib.h>
-
-int
-main (void)
-{
-  printf ("%12.f %12.f\n", physmem_total (), physmem_available ());
-  exit (0);
-}
-
-#endif /* DEBUG */
-
-/*
-Local Variables:
-compile-command: "gcc -DDEBUG -DHAVE_CONFIG_H -I.. -g -O -Wall -W physmem.c"
-End:
-*/
diff --git a/libiberty/putenv.c b/libiberty/putenv.c
deleted file mode 100644
index 248f50e..0000000
--- a/libiberty/putenv.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Copyright (C) 1991, 1994, 1995, 1996, 2002 Free Software Foundation, Inc.
-   This file based on putenv.c in the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library 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
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
-
-/*
-
-@deftypefn Supplemental int putenv (const char *@var{string})
-
-Uses @code{setenv} or @code{unsetenv} to put @var{string} into
-the environment or remove it.  If @var{string} is of the form
-@samp{name=value} the string is added; if no @samp{=} is present the
-name is unset/removed.
-
-@end deftypefn
-
-*/
-
-#if defined (_AIX) && !defined (__GNUC__)
- #pragma alloca
-#endif
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "ansidecl.h"
-
-#define putenv libiberty_putenv
-
-#if HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-#if HAVE_STRING_H
-# include <string.h>
-#endif
-
-#ifdef HAVE_ALLOCA_H
-# include <alloca.h>
-#else
-# ifndef alloca
-#  ifdef __GNUC__
-#   define alloca __builtin_alloca
-#  else
-extern char *alloca ();
-#  endif /* __GNUC__ */
-# endif /* alloca */
-#endif /* HAVE_ALLOCA_H */
-
-#undef putenv
-
-/* Below this point, it's verbatim code from the glibc-2.0 implementation */
-
-
-/* Put STRING, which is of the form "NAME=VALUE", in the environment.  */
-int
-putenv (const char *string)
-{
-  const char *const name_end = strchr (string, '=');
-
-  if (name_end)
-    {
-      char *name = (char *) alloca (name_end - string + 1);
-      memcpy (name, string, name_end - string);
-      name[name_end - string] = '\0';
-      return setenv (name, name_end + 1, 1);
-    }
-
-  unsetenv (string);
-  return 0;
-}
diff --git a/libiberty/random.c b/libiberty/random.c
deleted file mode 100644
index c306698..0000000
--- a/libiberty/random.c
+++ /dev/null
@@ -1,403 +0,0 @@
-/*
- * Copyright (c) 1983 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. [rescinded 22 July 1999]
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * This is derived from the Berkeley source:
- *	@(#)random.c	5.5 (Berkeley) 7/6/88
- * It was reworked for the GNU C Library by Roland McGrath.
- */
-
-/*
-
-@deftypefn Supplement {long int} random (void)
-@deftypefnx Supplement void srandom (unsigned int @var{seed})
-@deftypefnx Supplement void* initstate (unsigned int @var{seed}, void *@var{arg_state}, unsigned long @var{n})
-@deftypefnx Supplement void* setstate (void *@var{arg_state})
-
-Random number functions.  @code{random} returns a random number in the
-range 0 to @code{LONG_MAX}.  @code{srandom} initializes the random
-number generator to some starting point determined by @var{seed}
-(else, the values returned by @code{random} are always the same for each
-run of the program).  @code{initstate} and @code{setstate} allow fine-grained
-control over the state of the random number generator.
-
-@end deftypefn
-
-*/
-
-#include <errno.h>
-
-#if 0
-
-#include <ansidecl.h>
-#include <limits.h>
-#include <stddef.h>
-#include <stdlib.h>
-
-#else
-
-#define	ULONG_MAX  ((unsigned long)(~0L))     /* 0xFFFFFFFF for 32-bits */
-#define	LONG_MAX   ((long)(ULONG_MAX >> 1))   /* 0x7FFFFFFF for 32-bits*/
-
-#ifdef __STDC__
-#  define PTR void *
-#  ifndef NULL
-#    define NULL (void *) 0
-#  endif
-#else
-#  define PTR char *
-#  ifndef NULL
-#    define NULL (void *) 0
-#  endif
-#endif
-
-#endif
-
-long int random (void);
-
-/* An improved random number generation package.  In addition to the standard
-   rand()/srand() like interface, this package also has a special state info
-   interface.  The initstate() routine is called with a seed, an array of
-   bytes, and a count of how many bytes are being passed in; this array is
-   then initialized to contain information for random number generation with
-   that much state information.  Good sizes for the amount of state
-   information are 32, 64, 128, and 256 bytes.  The state can be switched by
-   calling the setstate() function with the same array as was initiallized
-   with initstate().  By default, the package runs with 128 bytes of state
-   information and generates far better random numbers than a linear
-   congruential generator.  If the amount of state information is less than
-   32 bytes, a simple linear congruential R.N.G. is used.  Internally, the
-   state information is treated as an array of longs; the zeroeth element of
-   the array is the type of R.N.G. being used (small integer); the remainder
-   of the array is the state information for the R.N.G.  Thus, 32 bytes of
-   state information will give 7 longs worth of state information, which will
-   allow a degree seven polynomial.  (Note: The zeroeth word of state
-   information also has some other information stored in it; see setstate
-   for details).  The random number generation technique is a linear feedback
-   shift register approach, employing trinomials (since there are fewer terms
-   to sum up that way).  In this approach, the least significant bit of all
-   the numbers in the state table will act as a linear feedback shift register,
-   and will have period 2^deg - 1 (where deg is the degree of the polynomial
-   being used, assuming that the polynomial is irreducible and primitive).
-   The higher order bits will have longer periods, since their values are
-   also influenced by pseudo-random carries out of the lower bits.  The
-   total period of the generator is approximately deg*(2**deg - 1); thus
-   doubling the amount of state information has a vast influence on the
-   period of the generator.  Note: The deg*(2**deg - 1) is an approximation
-   only good for large deg, when the period of the shift register is the
-   dominant factor.  With deg equal to seven, the period is actually much
-   longer than the 7*(2**7 - 1) predicted by this formula.  */
-
-
-
-/* For each of the currently supported random number generators, we have a
-   break value on the amount of state information (you need at least thi
-   bytes of state info to support this random number generator), a degree for
-   the polynomial (actually a trinomial) that the R.N.G. is based on, and
-   separation between the two lower order coefficients of the trinomial.  */
-
-/* Linear congruential.  */
-#define	TYPE_0		0
-#define	BREAK_0		8
-#define	DEG_0		0
-#define	SEP_0		0
-
-/* x**7 + x**3 + 1.  */
-#define	TYPE_1		1
-#define	BREAK_1		32
-#define	DEG_1		7
-#define	SEP_1		3
-
-/* x**15 + x + 1.  */
-#define	TYPE_2		2
-#define	BREAK_2		64
-#define	DEG_2		15
-#define	SEP_2		1
-
-/* x**31 + x**3 + 1.  */
-#define	TYPE_3		3
-#define	BREAK_3		128
-#define	DEG_3		31
-#define	SEP_3		3
-
-/* x**63 + x + 1.  */
-#define	TYPE_4		4
-#define	BREAK_4		256
-#define	DEG_4		63
-#define	SEP_4		1
-
-
-/* Array versions of the above information to make code run faster.
-   Relies on fact that TYPE_i == i.  */
-
-#define	MAX_TYPES	5	/* Max number of types above.  */
-
-static int degrees[MAX_TYPES] = { DEG_0, DEG_1, DEG_2, DEG_3, DEG_4 };
-static int seps[MAX_TYPES] = { SEP_0, SEP_1, SEP_2, SEP_3, SEP_4 };
-
-
-
-/* Initially, everything is set up as if from:
-	initstate(1, randtbl, 128);
-   Note that this initialization takes advantage of the fact that srandom
-   advances the front and rear pointers 10*rand_deg times, and hence the
-   rear pointer which starts at 0 will also end up at zero; thus the zeroeth
-   element of the state information, which contains info about the current
-   position of the rear pointer is just
-	(MAX_TYPES * (rptr - state)) + TYPE_3 == TYPE_3.  */
-
-static long int randtbl[DEG_3 + 1] =
-  { TYPE_3,
-      0x9a319039, 0x32d9c024, 0x9b663182, 0x5da1f342, 
-      0xde3b81e0, 0xdf0a6fb5, 0xf103bc02, 0x48f340fb, 
-      0x7449e56b, 0xbeb1dbb0, 0xab5c5918, 0x946554fd, 
-      0x8c2e680f, 0xeb3d799f, 0xb11ee0b7, 0x2d436b86, 
-      0xda672e2a, 0x1588ca88, 0xe369735d, 0x904f35f7, 
-      0xd7158fd6, 0x6fa6f051, 0x616e6b96, 0xac94efdc, 
-      0x36413f93, 0xc622c298, 0xf5a42ab8, 0x8a88d77b, 
-      0xf5ad9d0e, 0x8999220b, 0x27fb47b9
-    };
-
-/* FPTR and RPTR are two pointers into the state info, a front and a rear
-   pointer.  These two pointers are always rand_sep places aparts, as they
-   cycle through the state information.  (Yes, this does mean we could get
-   away with just one pointer, but the code for random is more efficient
-   this way).  The pointers are left positioned as they would be from the call:
-	initstate(1, randtbl, 128);
-   (The position of the rear pointer, rptr, is really 0 (as explained above
-   in the initialization of randtbl) because the state table pointer is set
-   to point to randtbl[1] (as explained below).)  */
-
-static long int *fptr = &randtbl[SEP_3 + 1];
-static long int *rptr = &randtbl[1];
-
-
-
-/* The following things are the pointer to the state information table,
-   the type of the current generator, the degree of the current polynomial
-   being used, and the separation between the two pointers.
-   Note that for efficiency of random, we remember the first location of
-   the state information, not the zeroeth.  Hence it is valid to access
-   state[-1], which is used to store the type of the R.N.G.
-   Also, we remember the last location, since this is more efficient than
-   indexing every time to find the address of the last element to see if
-   the front and rear pointers have wrapped.  */
-
-static long int *state = &randtbl[1];
-
-static int rand_type = TYPE_3;
-static int rand_deg = DEG_3;
-static int rand_sep = SEP_3;
-
-static long int *end_ptr = &randtbl[sizeof(randtbl) / sizeof(randtbl[0])];
-
-/* Initialize the random number generator based on the given seed.  If the
-   type is the trivial no-state-information type, just remember the seed.
-   Otherwise, initializes state[] based on the given "seed" via a linear
-   congruential generator.  Then, the pointers are set to known locations
-   that are exactly rand_sep places apart.  Lastly, it cycles the state
-   information a given number of times to get rid of any initial dependencies
-   introduced by the L.C.R.N.G.  Note that the initialization of randtbl[]
-   for default usage relies on values produced by this routine.  */
-void
-srandom (unsigned int x)
-{
-  state[0] = x;
-  if (rand_type != TYPE_0)
-    {
-      register long int i;
-      for (i = 1; i < rand_deg; ++i)
-	state[i] = (1103515145 * state[i - 1]) + 12345;
-      fptr = &state[rand_sep];
-      rptr = &state[0];
-      for (i = 0; i < 10 * rand_deg; ++i)
-	random();
-    }
-}
-
-/* Initialize the state information in the given array of N bytes for
-   future random number generation.  Based on the number of bytes we
-   are given, and the break values for the different R.N.G.'s, we choose
-   the best (largest) one we can and set things up for it.  srandom is
-   then called to initialize the state information.  Note that on return
-   from srandom, we set state[-1] to be the type multiplexed with the current
-   value of the rear pointer; this is so successive calls to initstate won't
-   lose this information and will be able to restart with setstate.
-   Note: The first thing we do is save the current state, if any, just like
-   setstate so that it doesn't matter when initstate is called.
-   Returns a pointer to the old state.  */
-PTR
-initstate (unsigned int seed, PTR arg_state, unsigned long n)
-{
-  PTR ostate = (PTR) &state[-1];
-
-  if (rand_type == TYPE_0)
-    state[-1] = rand_type;
-  else
-    state[-1] = (MAX_TYPES * (rptr - state)) + rand_type;
-  if (n < BREAK_1)
-    {
-      if (n < BREAK_0)
-	{
-	  errno = EINVAL;
-	  return NULL;
-	}
-      rand_type = TYPE_0;
-      rand_deg = DEG_0;
-      rand_sep = SEP_0;
-    }
-  else if (n < BREAK_2)
-    {
-      rand_type = TYPE_1;
-      rand_deg = DEG_1;
-      rand_sep = SEP_1;
-    }
-  else if (n < BREAK_3)
-    {
-      rand_type = TYPE_2;
-      rand_deg = DEG_2;
-      rand_sep = SEP_2;
-    }
-  else if (n < BREAK_4)
-    {
-      rand_type = TYPE_3;
-      rand_deg = DEG_3;
-      rand_sep = SEP_3;
-    }
-  else
-    {
-      rand_type = TYPE_4;
-      rand_deg = DEG_4;
-      rand_sep = SEP_4;
-    }
-
-  state = &((long int *) arg_state)[1];	/* First location.  */
-  /* Must set END_PTR before srandom.  */
-  end_ptr = &state[rand_deg];
-  srandom(seed);
-  if (rand_type == TYPE_0)
-    state[-1] = rand_type;
-  else
-    state[-1] = (MAX_TYPES * (rptr - state)) + rand_type;
-
-  return ostate;
-}
-
-/* Restore the state from the given state array.
-   Note: It is important that we also remember the locations of the pointers
-   in the current state information, and restore the locations of the pointers
-   from the old state information.  This is done by multiplexing the pointer
-   location into the zeroeth word of the state information. Note that due
-   to the order in which things are done, it is OK to call setstate with the
-   same state as the current state
-   Returns a pointer to the old state information.  */
-
-PTR
-setstate (PTR arg_state)
-{
-  register long int *new_state = (long int *) arg_state;
-  register int type = new_state[0] % MAX_TYPES;
-  register int rear = new_state[0] / MAX_TYPES;
-  PTR ostate = (PTR) &state[-1];
-
-  if (rand_type == TYPE_0)
-    state[-1] = rand_type;
-  else
-    state[-1] = (MAX_TYPES * (rptr - state)) + rand_type;
-
-  switch (type)
-    {
-    case TYPE_0:
-    case TYPE_1:
-    case TYPE_2:
-    case TYPE_3:
-    case TYPE_4:
-      rand_type = type;
-      rand_deg = degrees[type];
-      rand_sep = seps[type];
-      break;
-    default:
-      /* State info munged.  */
-      errno = EINVAL;
-      return NULL;
-    }
-
-  state = &new_state[1];
-  if (rand_type != TYPE_0)
-    {
-      rptr = &state[rear];
-      fptr = &state[(rear + rand_sep) % rand_deg];
-    }
-  /* Set end_ptr too.  */
-  end_ptr = &state[rand_deg];
-
-  return ostate;
-}
-
-/* If we are using the trivial TYPE_0 R.N.G., just do the old linear
-   congruential bit.  Otherwise, we do our fancy trinomial stuff, which is the
-   same in all ther other cases due to all the global variables that have been
-   set up.  The basic operation is to add the number at the rear pointer into
-   the one at the front pointer.  Then both pointers are advanced to the next
-   location cyclically in the table.  The value returned is the sum generated,
-   reduced to 31 bits by throwing away the "least random" low bit.
-   Note: The code takes advantage of the fact that both the front and
-   rear pointers can't wrap on the same call by not testing the rear
-   pointer if the front one has wrapped.  Returns a 31-bit random number.  */
-
-long int
-random (void)
-{
-  if (rand_type == TYPE_0)
-    {
-      state[0] = ((state[0] * 1103515245) + 12345) & LONG_MAX;
-      return state[0];
-    }
-  else
-    {
-      long int i;
-      *fptr += *rptr;
-      /* Chucking least random bit.  */
-      i = (*fptr >> 1) & LONG_MAX;
-      ++fptr;
-      if (fptr >= end_ptr)
-	{
-	  fptr = state;
-	  ++rptr;
-	}
-      else
-	{
-	  ++rptr;
-	  if (rptr >= end_ptr)
-	    rptr = state;
-	}
-      return i;
-    }
-}
diff --git a/libiberty/regex.c b/libiberty/regex.c
deleted file mode 100644
index fa1df19..0000000
--- a/libiberty/regex.c
+++ /dev/null
@@ -1,8202 +0,0 @@
-/* Extended regular expression matching and search library,
-   version 0.12.
-   (Implements POSIX draft P1003.2/D11.2, except for some of the
-   internationalization features.)
-
-   Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-   2002, 2005 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library 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
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-   02110-1301 USA.  */
-
-/* This file has been modified for usage in libiberty.  It includes "xregex.h"
-   instead of <regex.h>.  The "xregex.h" header file renames all external
-   routines with an "x" prefix so they do not collide with the native regex
-   routines or with other components regex routines. */
-/* AIX requires this to be the first thing in the file. */
-#if defined _AIX && !defined __GNUC__ && !defined REGEX_MALLOC
-  #pragma alloca
-#endif
-
-#undef	_GNU_SOURCE
-#define _GNU_SOURCE
-
-#ifndef INSIDE_RECURSION
-# ifdef HAVE_CONFIG_H
-#  include <config.h>
-# endif
-#endif
-
-#include <ansidecl.h>
-
-#ifndef INSIDE_RECURSION
-
-# if defined STDC_HEADERS && !defined emacs
-#  include <stddef.h>
-# else
-/* We need this for `regex.h', and perhaps for the Emacs include files.  */
-#  include <sys/types.h>
-# endif
-
-# define WIDE_CHAR_SUPPORT (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC)
-
-/* For platform which support the ISO C amendement 1 functionality we
-   support user defined character classes.  */
-# if defined _LIBC || WIDE_CHAR_SUPPORT
-/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>.  */
-#  include <wchar.h>
-#  include <wctype.h>
-# endif
-
-# ifdef _LIBC
-/* We have to keep the namespace clean.  */
-#  define regfree(preg) __regfree (preg)
-#  define regexec(pr, st, nm, pm, ef) __regexec (pr, st, nm, pm, ef)
-#  define regcomp(preg, pattern, cflags) __regcomp (preg, pattern, cflags)
-#  define regerror(errcode, preg, errbuf, errbuf_size) \
-	__regerror(errcode, preg, errbuf, errbuf_size)
-#  define re_set_registers(bu, re, nu, st, en) \
-	__re_set_registers (bu, re, nu, st, en)
-#  define re_match_2(bufp, string1, size1, string2, size2, pos, regs, stop) \
-	__re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop)
-#  define re_match(bufp, string, size, pos, regs) \
-	__re_match (bufp, string, size, pos, regs)
-#  define re_search(bufp, string, size, startpos, range, regs) \
-	__re_search (bufp, string, size, startpos, range, regs)
-#  define re_compile_pattern(pattern, length, bufp) \
-	__re_compile_pattern (pattern, length, bufp)
-#  define re_set_syntax(syntax) __re_set_syntax (syntax)
-#  define re_search_2(bufp, st1, s1, st2, s2, startpos, range, regs, stop) \
-	__re_search_2 (bufp, st1, s1, st2, s2, startpos, range, regs, stop)
-#  define re_compile_fastmap(bufp) __re_compile_fastmap (bufp)
-
-#  define btowc __btowc
-
-/* We are also using some library internals.  */
-#  include <locale/localeinfo.h>
-#  include <locale/elem-hash.h>
-#  include <langinfo.h>
-#  include <locale/coll-lookup.h>
-# endif
-
-/* This is for other GNU distributions with internationalized messages.  */
-# if (HAVE_LIBINTL_H && ENABLE_NLS) || defined _LIBC
-#  include <libintl.h>
-#  ifdef _LIBC
-#   undef gettext
-#   define gettext(msgid) __dcgettext ("libc", msgid, LC_MESSAGES)
-#  endif
-# else
-#  define gettext(msgid) (msgid)
-# endif
-
-# ifndef gettext_noop
-/* This define is so xgettext can find the internationalizable
-   strings.  */
-#  define gettext_noop(String) String
-# endif
-
-/* The `emacs' switch turns on certain matching commands
-   that make sense only in Emacs. */
-# ifdef emacs
-
-#  include "lisp.h"
-#  include "buffer.h"
-#  include "syntax.h"
-
-# else  /* not emacs */
-
-/* If we are not linking with Emacs proper,
-   we can't use the relocating allocator
-   even if config.h says that we can.  */
-#  undef REL_ALLOC
-
-#  if defined STDC_HEADERS || defined _LIBC
-#   include <stdlib.h>
-#  else
-char *malloc ();
-char *realloc ();
-#  endif
-
-/* When used in Emacs's lib-src, we need to get bzero and bcopy somehow.
-   If nothing else has been done, use the method below.  */
-#  ifdef INHIBIT_STRING_HEADER
-#   if !(defined HAVE_BZERO && defined HAVE_BCOPY)
-#    if !defined bzero && !defined bcopy
-#     undef INHIBIT_STRING_HEADER
-#    endif
-#   endif
-#  endif
-
-/* This is the normal way of making sure we have a bcopy and a bzero.
-   This is used in most programs--a few other programs avoid this
-   by defining INHIBIT_STRING_HEADER.  */
-#  ifndef INHIBIT_STRING_HEADER
-#   if defined HAVE_STRING_H || defined STDC_HEADERS || defined _LIBC
-#    include <string.h>
-#    ifndef bzero
-#     ifndef _LIBC
-#      define bzero(s, n)	(memset (s, '\0', n), (s))
-#     else
-#      define bzero(s, n)	__bzero (s, n)
-#     endif
-#    endif
-#   else
-#    include <strings.h>
-#    ifndef memcmp
-#     define memcmp(s1, s2, n)	bcmp (s1, s2, n)
-#    endif
-#    ifndef memcpy
-#     define memcpy(d, s, n)	(bcopy (s, d, n), (d))
-#    endif
-#   endif
-#  endif
-
-/* Define the syntax stuff for \<, \>, etc.  */
-
-/* This must be nonzero for the wordchar and notwordchar pattern
-   commands in re_match_2.  */
-#  ifndef Sword
-#   define Sword 1
-#  endif
-
-#  ifdef SWITCH_ENUM_BUG
-#   define SWITCH_ENUM_CAST(x) ((int)(x))
-#  else
-#   define SWITCH_ENUM_CAST(x) (x)
-#  endif
-
-# endif /* not emacs */
-
-# if defined _LIBC || HAVE_LIMITS_H
-#  include <limits.h>
-# endif
-
-# ifndef MB_LEN_MAX
-#  define MB_LEN_MAX 1
-# endif
-
-/* Get the interface, including the syntax bits.  */
-# include "xregex.h"  /* change for libiberty */
-
-/* isalpha etc. are used for the character classes.  */
-# include <ctype.h>
-
-/* Jim Meyering writes:
-
-   "... Some ctype macros are valid only for character codes that
-   isascii says are ASCII (SGI's IRIX-4.0.5 is one such system --when
-   using /bin/cc or gcc but without giving an ansi option).  So, all
-   ctype uses should be through macros like ISPRINT...  If
-   STDC_HEADERS is defined, then autoconf has verified that the ctype
-   macros don't need to be guarded with references to isascii. ...
-   Defining isascii to 1 should let any compiler worth its salt
-   eliminate the && through constant folding."
-   Solaris defines some of these symbols so we must undefine them first.  */
-
-# undef ISASCII
-# if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII)
-#  define ISASCII(c) 1
-# else
-#  define ISASCII(c) isascii(c)
-# endif
-
-# ifdef isblank
-#  define ISBLANK(c) (ISASCII (c) && isblank (c))
-# else
-#  define ISBLANK(c) ((c) == ' ' || (c) == '\t')
-# endif
-# ifdef isgraph
-#  define ISGRAPH(c) (ISASCII (c) && isgraph (c))
-# else
-#  define ISGRAPH(c) (ISASCII (c) && isprint (c) && !isspace (c))
-# endif
-
-# undef ISPRINT
-# define ISPRINT(c) (ISASCII (c) && isprint (c))
-# define ISDIGIT(c) (ISASCII (c) && isdigit (c))
-# define ISALNUM(c) (ISASCII (c) && isalnum (c))
-# define ISALPHA(c) (ISASCII (c) && isalpha (c))
-# define ISCNTRL(c) (ISASCII (c) && iscntrl (c))
-# define ISLOWER(c) (ISASCII (c) && islower (c))
-# define ISPUNCT(c) (ISASCII (c) && ispunct (c))
-# define ISSPACE(c) (ISASCII (c) && isspace (c))
-# define ISUPPER(c) (ISASCII (c) && isupper (c))
-# define ISXDIGIT(c) (ISASCII (c) && isxdigit (c))
-
-# ifdef _tolower
-#  define TOLOWER(c) _tolower(c)
-# else
-#  define TOLOWER(c) tolower(c)
-# endif
-
-# ifndef NULL
-#  define NULL (void *)0
-# endif
-
-/* We remove any previous definition of `SIGN_EXTEND_CHAR',
-   since ours (we hope) works properly with all combinations of
-   machines, compilers, `char' and `unsigned char' argument types.
-   (Per Bothner suggested the basic approach.)  */
-# undef SIGN_EXTEND_CHAR
-# if __STDC__
-#  define SIGN_EXTEND_CHAR(c) ((signed char) (c))
-# else  /* not __STDC__ */
-/* As in Harbison and Steele.  */
-#  define SIGN_EXTEND_CHAR(c) ((((unsigned char) (c)) ^ 128) - 128)
-# endif
-
-# ifndef emacs
-/* How many characters in the character set.  */
-#  define CHAR_SET_SIZE 256
-
-#  ifdef SYNTAX_TABLE
-
-extern char *re_syntax_table;
-
-#  else /* not SYNTAX_TABLE */
-
-static char re_syntax_table[CHAR_SET_SIZE];
-
-static void init_syntax_once (void);
-
-static void
-init_syntax_once (void)
-{
-   register int c;
-   static int done = 0;
-
-   if (done)
-     return;
-   bzero (re_syntax_table, sizeof re_syntax_table);
-
-   for (c = 0; c < CHAR_SET_SIZE; ++c)
-     if (ISALNUM (c))
-	re_syntax_table[c] = Sword;
-
-   re_syntax_table['_'] = Sword;
-
-   done = 1;
-}
-
-#  endif /* not SYNTAX_TABLE */
-
-#  define SYNTAX(c) re_syntax_table[(unsigned char) (c)]
-
-# endif /* emacs */
-
-/* Integer type for pointers.  */
-# if !defined _LIBC && !defined HAVE_UINTPTR_T
-typedef unsigned long int uintptr_t;
-# endif
-
-/* Should we use malloc or alloca?  If REGEX_MALLOC is not defined, we
-   use `alloca' instead of `malloc'.  This is because using malloc in
-   re_search* or re_match* could cause memory leaks when C-g is used in
-   Emacs; also, malloc is slower and causes storage fragmentation.  On
-   the other hand, malloc is more portable, and easier to debug.
-
-   Because we sometimes use alloca, some routines have to be macros,
-   not functions -- `alloca'-allocated space disappears at the end of the
-   function it is called in.  */
-
-# ifdef REGEX_MALLOC
-
-#  define REGEX_ALLOCATE malloc
-#  define REGEX_REALLOCATE(source, osize, nsize) realloc (source, nsize)
-#  define REGEX_FREE free
-
-# else /* not REGEX_MALLOC  */
-
-/* Emacs already defines alloca, sometimes.  */
-#  ifndef alloca
-
-/* Make alloca work the best possible way.  */
-#   ifdef __GNUC__
-#    define alloca __builtin_alloca
-#   else /* not __GNUC__ */
-#    if HAVE_ALLOCA_H
-#     include <alloca.h>
-#    endif /* HAVE_ALLOCA_H */
-#   endif /* not __GNUC__ */
-
-#  endif /* not alloca */
-
-#  define REGEX_ALLOCATE alloca
-
-/* Assumes a `char *destination' variable.  */
-#  define REGEX_REALLOCATE(source, osize, nsize)			\
-  (destination = (char *) alloca (nsize),				\
-   memcpy (destination, source, osize))
-
-/* No need to do anything to free, after alloca.  */
-#  define REGEX_FREE(arg) ((void)0) /* Do nothing!  But inhibit gcc warning.  */
-
-# endif /* not REGEX_MALLOC */
-
-/* Define how to allocate the failure stack.  */
-
-# if defined REL_ALLOC && defined REGEX_MALLOC
-
-#  define REGEX_ALLOCATE_STACK(size)				\
-  r_alloc (&failure_stack_ptr, (size))
-#  define REGEX_REALLOCATE_STACK(source, osize, nsize)		\
-  r_re_alloc (&failure_stack_ptr, (nsize))
-#  define REGEX_FREE_STACK(ptr)					\
-  r_alloc_free (&failure_stack_ptr)
-
-# else /* not using relocating allocator */
-
-#  ifdef REGEX_MALLOC
-
-#   define REGEX_ALLOCATE_STACK malloc
-#   define REGEX_REALLOCATE_STACK(source, osize, nsize) realloc (source, nsize)
-#   define REGEX_FREE_STACK free
-
-#  else /* not REGEX_MALLOC */
-
-#   define REGEX_ALLOCATE_STACK alloca
-
-#   define REGEX_REALLOCATE_STACK(source, osize, nsize)			\
-   REGEX_REALLOCATE (source, osize, nsize)
-/* No need to explicitly free anything.  */
-#   define REGEX_FREE_STACK(arg)
-
-#  endif /* not REGEX_MALLOC */
-# endif /* not using relocating allocator */
-
-
-/* True if `size1' is non-NULL and PTR is pointing anywhere inside
-   `string1' or just past its end.  This works if PTR is NULL, which is
-   a good thing.  */
-# define FIRST_STRING_P(ptr) 					\
-  (size1 && string1 <= (ptr) && (ptr) <= string1 + size1)
-
-/* (Re)Allocate N items of type T using malloc, or fail.  */
-# define TALLOC(n, t) ((t *) malloc ((n) * sizeof (t)))
-# define RETALLOC(addr, n, t) ((addr) = (t *) realloc (addr, (n) * sizeof (t)))
-# define RETALLOC_IF(addr, n, t) \
-  if (addr) RETALLOC((addr), (n), t); else (addr) = TALLOC ((n), t)
-# define REGEX_TALLOC(n, t) ((t *) REGEX_ALLOCATE ((n) * sizeof (t)))
-
-# define BYTEWIDTH 8 /* In bits.  */
-
-# define STREQ(s1, s2) ((strcmp (s1, s2) == 0))
-
-# undef MAX
-# undef MIN
-# define MAX(a, b) ((a) > (b) ? (a) : (b))
-# define MIN(a, b) ((a) < (b) ? (a) : (b))
-
-typedef char boolean;
-# define false 0
-# define true 1
-
-static reg_errcode_t byte_regex_compile (const char *pattern, size_t size,
-                                         reg_syntax_t syntax,
-                                         struct re_pattern_buffer *bufp);
-
-static int byte_re_match_2_internal (struct re_pattern_buffer *bufp,
-                                     const char *string1, int size1,
-                                     const char *string2, int size2,
-                                     int pos,
-                                     struct re_registers *regs,
-                                     int stop);
-static int byte_re_search_2 (struct re_pattern_buffer *bufp,
-                             const char *string1, int size1,
-                             const char *string2, int size2,
-                             int startpos, int range,
-                             struct re_registers *regs, int stop);
-static int byte_re_compile_fastmap (struct re_pattern_buffer *bufp);
-
-#ifdef MBS_SUPPORT
-static reg_errcode_t wcs_regex_compile (const char *pattern, size_t size,
-                                        reg_syntax_t syntax,
-                                        struct re_pattern_buffer *bufp);
-
-
-static int wcs_re_match_2_internal (struct re_pattern_buffer *bufp,
-                                    const char *cstring1, int csize1,
-                                    const char *cstring2, int csize2,
-                                    int pos,
-                                    struct re_registers *regs,
-                                    int stop,
-                                    wchar_t *string1, int size1,
-                                    wchar_t *string2, int size2,
-                                    int *mbs_offset1, int *mbs_offset2);
-static int wcs_re_search_2 (struct re_pattern_buffer *bufp,
-                            const char *string1, int size1,
-                            const char *string2, int size2,
-                            int startpos, int range,
-                            struct re_registers *regs, int stop);
-static int wcs_re_compile_fastmap (struct re_pattern_buffer *bufp);
-#endif
-
-/* These are the command codes that appear in compiled regular
-   expressions.  Some opcodes are followed by argument bytes.  A
-   command code can specify any interpretation whatsoever for its
-   arguments.  Zero bytes may appear in the compiled regular expression.  */
-
-typedef enum
-{
-  no_op = 0,
-
-  /* Succeed right away--no more backtracking.  */
-  succeed,
-
-        /* Followed by one byte giving n, then by n literal bytes.  */
-  exactn,
-
-# ifdef MBS_SUPPORT
-	/* Same as exactn, but contains binary data.  */
-  exactn_bin,
-# endif
-
-        /* Matches any (more or less) character.  */
-  anychar,
-
-        /* Matches any one char belonging to specified set.  First
-           following byte is number of bitmap bytes.  Then come bytes
-           for a bitmap saying which chars are in.  Bits in each byte
-           are ordered low-bit-first.  A character is in the set if its
-           bit is 1.  A character too large to have a bit in the map is
-           automatically not in the set.  */
-        /* ifdef MBS_SUPPORT, following element is length of character
-	   classes, length of collating symbols, length of equivalence
-	   classes, length of character ranges, and length of characters.
-	   Next, character class element, collating symbols elements,
-	   equivalence class elements, range elements, and character
-	   elements follow.
-	   See regex_compile function.  */
-  charset,
-
-        /* Same parameters as charset, but match any character that is
-           not one of those specified.  */
-  charset_not,
-
-        /* Start remembering the text that is matched, for storing in a
-           register.  Followed by one byte with the register number, in
-           the range 0 to one less than the pattern buffer's re_nsub
-           field.  Then followed by one byte with the number of groups
-           inner to this one.  (This last has to be part of the
-           start_memory only because we need it in the on_failure_jump
-           of re_match_2.)  */
-  start_memory,
-
-        /* Stop remembering the text that is matched and store it in a
-           memory register.  Followed by one byte with the register
-           number, in the range 0 to one less than `re_nsub' in the
-           pattern buffer, and one byte with the number of inner groups,
-           just like `start_memory'.  (We need the number of inner
-           groups here because we don't have any easy way of finding the
-           corresponding start_memory when we're at a stop_memory.)  */
-  stop_memory,
-
-        /* Match a duplicate of something remembered. Followed by one
-           byte containing the register number.  */
-  duplicate,
-
-        /* Fail unless at beginning of line.  */
-  begline,
-
-        /* Fail unless at end of line.  */
-  endline,
-
-        /* Succeeds if at beginning of buffer (if emacs) or at beginning
-           of string to be matched (if not).  */
-  begbuf,
-
-        /* Analogously, for end of buffer/string.  */
-  endbuf,
-
-        /* Followed by two byte relative address to which to jump.  */
-  jump,
-
-	/* Same as jump, but marks the end of an alternative.  */
-  jump_past_alt,
-
-        /* Followed by two-byte relative address of place to resume at
-           in case of failure.  */
-        /* ifdef MBS_SUPPORT, the size of address is 1.  */
-  on_failure_jump,
-
-        /* Like on_failure_jump, but pushes a placeholder instead of the
-           current string position when executed.  */
-  on_failure_keep_string_jump,
-
-        /* Throw away latest failure point and then jump to following
-           two-byte relative address.  */
-        /* ifdef MBS_SUPPORT, the size of address is 1.  */
-  pop_failure_jump,
-
-        /* Change to pop_failure_jump if know won't have to backtrack to
-           match; otherwise change to jump.  This is used to jump
-           back to the beginning of a repeat.  If what follows this jump
-           clearly won't match what the repeat does, such that we can be
-           sure that there is no use backtracking out of repetitions
-           already matched, then we change it to a pop_failure_jump.
-           Followed by two-byte address.  */
-        /* ifdef MBS_SUPPORT, the size of address is 1.  */
-  maybe_pop_jump,
-
-        /* Jump to following two-byte address, and push a dummy failure
-           point. This failure point will be thrown away if an attempt
-           is made to use it for a failure.  A `+' construct makes this
-           before the first repeat.  Also used as an intermediary kind
-           of jump when compiling an alternative.  */
-        /* ifdef MBS_SUPPORT, the size of address is 1.  */
-  dummy_failure_jump,
-
-	/* Push a dummy failure point and continue.  Used at the end of
-	   alternatives.  */
-  push_dummy_failure,
-
-        /* Followed by two-byte relative address and two-byte number n.
-           After matching N times, jump to the address upon failure.  */
-        /* ifdef MBS_SUPPORT, the size of address is 1.  */
-  succeed_n,
-
-        /* Followed by two-byte relative address, and two-byte number n.
-           Jump to the address N times, then fail.  */
-        /* ifdef MBS_SUPPORT, the size of address is 1.  */
-  jump_n,
-
-        /* Set the following two-byte relative address to the
-           subsequent two-byte number.  The address *includes* the two
-           bytes of number.  */
-        /* ifdef MBS_SUPPORT, the size of address is 1.  */
-  set_number_at,
-
-  wordchar,	/* Matches any word-constituent character.  */
-  notwordchar,	/* Matches any char that is not a word-constituent.  */
-
-  wordbeg,	/* Succeeds if at word beginning.  */
-  wordend,	/* Succeeds if at word end.  */
-
-  wordbound,	/* Succeeds if at a word boundary.  */
-  notwordbound	/* Succeeds if not at a word boundary.  */
-
-# ifdef emacs
-  ,before_dot,	/* Succeeds if before point.  */
-  at_dot,	/* Succeeds if at point.  */
-  after_dot,	/* Succeeds if after point.  */
-
-	/* Matches any character whose syntax is specified.  Followed by
-           a byte which contains a syntax code, e.g., Sword.  */
-  syntaxspec,
-
-	/* Matches any character whose syntax is not that specified.  */
-  notsyntaxspec
-# endif /* emacs */
-} re_opcode_t;
-#endif /* not INSIDE_RECURSION */
-
-
-#ifdef BYTE
-# define CHAR_T char
-# define UCHAR_T unsigned char
-# define COMPILED_BUFFER_VAR bufp->buffer
-# define OFFSET_ADDRESS_SIZE 2
-# define PREFIX(name) byte_##name
-# define ARG_PREFIX(name) name
-# define PUT_CHAR(c) putchar (c)
-#else
-# ifdef WCHAR
-#  define CHAR_T wchar_t
-#  define UCHAR_T wchar_t
-#  define COMPILED_BUFFER_VAR wc_buffer
-#  define OFFSET_ADDRESS_SIZE 1 /* the size which STORE_NUMBER macro use */
-#  define CHAR_CLASS_SIZE ((__alignof__(wctype_t)+sizeof(wctype_t))/sizeof(CHAR_T)+1)
-#  define PREFIX(name) wcs_##name
-#  define ARG_PREFIX(name) c##name
-/* Should we use wide stream??  */
-#  define PUT_CHAR(c) printf ("%C", c);
-#  define TRUE 1
-#  define FALSE 0
-# else
-#  ifdef MBS_SUPPORT
-#   define WCHAR
-#   define INSIDE_RECURSION
-#   include "regex.c"
-#   undef INSIDE_RECURSION
-#  endif
-#  define BYTE
-#  define INSIDE_RECURSION
-#  include "regex.c"
-#  undef INSIDE_RECURSION
-# endif
-#endif
-
-#ifdef INSIDE_RECURSION
-/* Common operations on the compiled pattern.  */
-
-/* Store NUMBER in two contiguous bytes starting at DESTINATION.  */
-/* ifdef MBS_SUPPORT, we store NUMBER in 1 element.  */
-
-# ifdef WCHAR
-#  define STORE_NUMBER(destination, number)				\
-  do {									\
-    *(destination) = (UCHAR_T)(number);				\
-  } while (0)
-# else /* BYTE */
-#  define STORE_NUMBER(destination, number)				\
-  do {									\
-    (destination)[0] = (number) & 0377;					\
-    (destination)[1] = (number) >> 8;					\
-  } while (0)
-# endif /* WCHAR */
-
-/* Same as STORE_NUMBER, except increment DESTINATION to
-   the byte after where the number is stored.  Therefore, DESTINATION
-   must be an lvalue.  */
-/* ifdef MBS_SUPPORT, we store NUMBER in 1 element.  */
-
-# define STORE_NUMBER_AND_INCR(destination, number)			\
-  do {									\
-    STORE_NUMBER (destination, number);					\
-    (destination) += OFFSET_ADDRESS_SIZE;				\
-  } while (0)
-
-/* Put into DESTINATION a number stored in two contiguous bytes starting
-   at SOURCE.  */
-/* ifdef MBS_SUPPORT, we store NUMBER in 1 element.  */
-
-# ifdef WCHAR
-#  define EXTRACT_NUMBER(destination, source)				\
-  do {									\
-    (destination) = *(source);						\
-  } while (0)
-# else /* BYTE */
-#  define EXTRACT_NUMBER(destination, source)				\
-  do {									\
-    (destination) = *(source) & 0377;					\
-    (destination) += SIGN_EXTEND_CHAR (*((source) + 1)) << 8;		\
-  } while (0)
-# endif
-
-# ifdef DEBUG
-static void PREFIX(extract_number) (int *dest, UCHAR_T *source);
-static void
-PREFIX(extract_number) (int *dest, UCHAR_T *source)
-{
-#  ifdef WCHAR
-  *dest = *source;
-#  else /* BYTE */
-  int temp = SIGN_EXTEND_CHAR (*(source + 1));
-  *dest = *source & 0377;
-  *dest += temp << 8;
-#  endif
-}
-
-#  ifndef EXTRACT_MACROS /* To debug the macros.  */
-#   undef EXTRACT_NUMBER
-#   define EXTRACT_NUMBER(dest, src) PREFIX(extract_number) (&dest, src)
-#  endif /* not EXTRACT_MACROS */
-
-# endif /* DEBUG */
-
-/* Same as EXTRACT_NUMBER, except increment SOURCE to after the number.
-   SOURCE must be an lvalue.  */
-
-# define EXTRACT_NUMBER_AND_INCR(destination, source)			\
-  do {									\
-    EXTRACT_NUMBER (destination, source);				\
-    (source) += OFFSET_ADDRESS_SIZE; 					\
-  } while (0)
-
-# ifdef DEBUG
-static void PREFIX(extract_number_and_incr) (int *destination,
-                                             UCHAR_T **source);
-static void
-PREFIX(extract_number_and_incr) (int *destination, UCHAR_T **source)
-{
-  PREFIX(extract_number) (destination, *source);
-  *source += OFFSET_ADDRESS_SIZE;
-}
-
-#  ifndef EXTRACT_MACROS
-#   undef EXTRACT_NUMBER_AND_INCR
-#   define EXTRACT_NUMBER_AND_INCR(dest, src) \
-  PREFIX(extract_number_and_incr) (&dest, &src)
-#  endif /* not EXTRACT_MACROS */
-
-# endif /* DEBUG */
-
-
-
-/* If DEBUG is defined, Regex prints many voluminous messages about what
-   it is doing (if the variable `debug' is nonzero).  If linked with the
-   main program in `iregex.c', you can enter patterns and strings
-   interactively.  And if linked with the main program in `main.c' and
-   the other test files, you can run the already-written tests.  */
-
-# ifdef DEBUG
-
-#  ifndef DEFINED_ONCE
-
-/* We use standard I/O for debugging.  */
-#   include <stdio.h>
-
-/* It is useful to test things that ``must'' be true when debugging.  */
-#   include <assert.h>
-
-static int debug;
-
-#   define DEBUG_STATEMENT(e) e
-#   define DEBUG_PRINT1(x) if (debug) printf (x)
-#   define DEBUG_PRINT2(x1, x2) if (debug) printf (x1, x2)
-#   define DEBUG_PRINT3(x1, x2, x3) if (debug) printf (x1, x2, x3)
-#   define DEBUG_PRINT4(x1, x2, x3, x4) if (debug) printf (x1, x2, x3, x4)
-#  endif /* not DEFINED_ONCE */
-
-#  define DEBUG_PRINT_COMPILED_PATTERN(p, s, e) 			\
-  if (debug) PREFIX(print_partial_compiled_pattern) (s, e)
-#  define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2)		\
-  if (debug) PREFIX(print_double_string) (w, s1, sz1, s2, sz2)
-
-
-/* Print the fastmap in human-readable form.  */
-
-#  ifndef DEFINED_ONCE
-void
-print_fastmap (char *fastmap)
-{
-  unsigned was_a_range = 0;
-  unsigned i = 0;
-
-  while (i < (1 << BYTEWIDTH))
-    {
-      if (fastmap[i++])
-	{
-	  was_a_range = 0;
-          putchar (i - 1);
-          while (i < (1 << BYTEWIDTH)  &&  fastmap[i])
-            {
-              was_a_range = 1;
-              i++;
-            }
-	  if (was_a_range)
-            {
-              printf ("-");
-              putchar (i - 1);
-            }
-        }
-    }
-  putchar ('\n');
-}
-#  endif /* not DEFINED_ONCE */
-
-
-/* Print a compiled pattern string in human-readable form, starting at
-   the START pointer into it and ending just before the pointer END.  */
-
-void
-PREFIX(print_partial_compiled_pattern) (UCHAR_T *start, UCHAR_T *end)
-{
-  int mcnt, mcnt2;
-  UCHAR_T *p1;
-  UCHAR_T *p = start;
-  UCHAR_T *pend = end;
-
-  if (start == NULL)
-    {
-      printf ("(null)\n");
-      return;
-    }
-
-  /* Loop over pattern commands.  */
-  while (p < pend)
-    {
-#  ifdef _LIBC
-      printf ("%td:\t", p - start);
-#  else
-      printf ("%ld:\t", (long int) (p - start));
-#  endif
-
-      switch ((re_opcode_t) *p++)
-	{
-        case no_op:
-          printf ("/no_op");
-          break;
-
-	case exactn:
-	  mcnt = *p++;
-          printf ("/exactn/%d", mcnt);
-          do
-	    {
-              putchar ('/');
-	      PUT_CHAR (*p++);
-            }
-          while (--mcnt);
-          break;
-
-#  ifdef MBS_SUPPORT
-	case exactn_bin:
-	  mcnt = *p++;
-	  printf ("/exactn_bin/%d", mcnt);
-          do
-	    {
-	      printf("/%lx", (long int) *p++);
-            }
-          while (--mcnt);
-          break;
-#  endif /* MBS_SUPPORT */
-
-	case start_memory:
-          mcnt = *p++;
-          printf ("/start_memory/%d/%ld", mcnt, (long int) *p++);
-          break;
-
-	case stop_memory:
-          mcnt = *p++;
-	  printf ("/stop_memory/%d/%ld", mcnt, (long int) *p++);
-          break;
-
-	case duplicate:
-	  printf ("/duplicate/%ld", (long int) *p++);
-	  break;
-
-	case anychar:
-	  printf ("/anychar");
-	  break;
-
-	case charset:
-        case charset_not:
-          {
-#  ifdef WCHAR
-	    int i, length;
-	    wchar_t *workp = p;
-	    printf ("/charset [%s",
-	            (re_opcode_t) *(workp - 1) == charset_not ? "^" : "");
-	    p += 5;
-	    length = *workp++; /* the length of char_classes */
-	    for (i=0 ; i<length ; i++)
-	      printf("[:%lx:]", (long int) *p++);
-	    length = *workp++; /* the length of collating_symbol */
-	    for (i=0 ; i<length ;)
-	      {
-		printf("[.");
-		while(*p != 0)
-		  PUT_CHAR((i++,*p++));
-		i++,p++;
-		printf(".]");
-	      }
-	    length = *workp++; /* the length of equivalence_class */
-	    for (i=0 ; i<length ;)
-	      {
-		printf("[=");
-		while(*p != 0)
-		  PUT_CHAR((i++,*p++));
-		i++,p++;
-		printf("=]");
-	      }
-	    length = *workp++; /* the length of char_range */
-	    for (i=0 ; i<length ; i++)
-	      {
-		wchar_t range_start = *p++;
-		wchar_t range_end = *p++;
-		printf("%C-%C", range_start, range_end);
-	      }
-	    length = *workp++; /* the length of char */
-	    for (i=0 ; i<length ; i++)
-	      printf("%C", *p++);
-	    putchar (']');
-#  else
-            register int c, last = -100;
-	    register int in_range = 0;
-
-	    printf ("/charset [%s",
-	            (re_opcode_t) *(p - 1) == charset_not ? "^" : "");
-
-            assert (p + *p < pend);
-
-            for (c = 0; c < 256; c++)
-	      if (c / 8 < *p
-		  && (p[1 + (c/8)] & (1 << (c % 8))))
-		{
-		  /* Are we starting a range?  */
-		  if (last + 1 == c && ! in_range)
-		    {
-		      putchar ('-');
-		      in_range = 1;
-		    }
-		  /* Have we broken a range?  */
-		  else if (last + 1 != c && in_range)
-              {
-		      putchar (last);
-		      in_range = 0;
-		    }
-
-		  if (! in_range)
-		    putchar (c);
-
-		  last = c;
-              }
-
-	    if (in_range)
-	      putchar (last);
-
-	    putchar (']');
-
-	    p += 1 + *p;
-#  endif /* WCHAR */
-	  }
-	  break;
-
-	case begline:
-	  printf ("/begline");
-          break;
-
-	case endline:
-          printf ("/endline");
-          break;
-
-	case on_failure_jump:
-          PREFIX(extract_number_and_incr) (&mcnt, &p);
-#  ifdef _LIBC
-  	  printf ("/on_failure_jump to %td", p + mcnt - start);
-#  else
-  	  printf ("/on_failure_jump to %ld", (long int) (p + mcnt - start));
-#  endif
-          break;
-
-	case on_failure_keep_string_jump:
-          PREFIX(extract_number_and_incr) (&mcnt, &p);
-#  ifdef _LIBC
-  	  printf ("/on_failure_keep_string_jump to %td", p + mcnt - start);
-#  else
-  	  printf ("/on_failure_keep_string_jump to %ld",
-		  (long int) (p + mcnt - start));
-#  endif
-          break;
-
-	case dummy_failure_jump:
-          PREFIX(extract_number_and_incr) (&mcnt, &p);
-#  ifdef _LIBC
-  	  printf ("/dummy_failure_jump to %td", p + mcnt - start);
-#  else
-  	  printf ("/dummy_failure_jump to %ld", (long int) (p + mcnt - start));
-#  endif
-          break;
-
-	case push_dummy_failure:
-          printf ("/push_dummy_failure");
-          break;
-
-        case maybe_pop_jump:
-          PREFIX(extract_number_and_incr) (&mcnt, &p);
-#  ifdef _LIBC
-  	  printf ("/maybe_pop_jump to %td", p + mcnt - start);
-#  else
-  	  printf ("/maybe_pop_jump to %ld", (long int) (p + mcnt - start));
-#  endif
-	  break;
-
-        case pop_failure_jump:
-	  PREFIX(extract_number_and_incr) (&mcnt, &p);
-#  ifdef _LIBC
-  	  printf ("/pop_failure_jump to %td", p + mcnt - start);
-#  else
-  	  printf ("/pop_failure_jump to %ld", (long int) (p + mcnt - start));
-#  endif
-	  break;
-
-        case jump_past_alt:
-	  PREFIX(extract_number_and_incr) (&mcnt, &p);
-#  ifdef _LIBC
-  	  printf ("/jump_past_alt to %td", p + mcnt - start);
-#  else
-  	  printf ("/jump_past_alt to %ld", (long int) (p + mcnt - start));
-#  endif
-	  break;
-
-        case jump:
-	  PREFIX(extract_number_and_incr) (&mcnt, &p);
-#  ifdef _LIBC
-  	  printf ("/jump to %td", p + mcnt - start);
-#  else
-  	  printf ("/jump to %ld", (long int) (p + mcnt - start));
-#  endif
-	  break;
-
-        case succeed_n:
-          PREFIX(extract_number_and_incr) (&mcnt, &p);
-	  p1 = p + mcnt;
-          PREFIX(extract_number_and_incr) (&mcnt2, &p);
-#  ifdef _LIBC
-	  printf ("/succeed_n to %td, %d times", p1 - start, mcnt2);
-#  else
-	  printf ("/succeed_n to %ld, %d times",
-		  (long int) (p1 - start), mcnt2);
-#  endif
-          break;
-
-        case jump_n:
-          PREFIX(extract_number_and_incr) (&mcnt, &p);
-	  p1 = p + mcnt;
-          PREFIX(extract_number_and_incr) (&mcnt2, &p);
-	  printf ("/jump_n to %d, %d times", p1 - start, mcnt2);
-          break;
-
-        case set_number_at:
-          PREFIX(extract_number_and_incr) (&mcnt, &p);
-	  p1 = p + mcnt;
-          PREFIX(extract_number_and_incr) (&mcnt2, &p);
-#  ifdef _LIBC
-	  printf ("/set_number_at location %td to %d", p1 - start, mcnt2);
-#  else
-	  printf ("/set_number_at location %ld to %d",
-		  (long int) (p1 - start), mcnt2);
-#  endif
-          break;
-
-        case wordbound:
-	  printf ("/wordbound");
-	  break;
-
-	case notwordbound:
-	  printf ("/notwordbound");
-          break;
-
-	case wordbeg:
-	  printf ("/wordbeg");
-	  break;
-
-	case wordend:
-	  printf ("/wordend");
-	  break;
-
-#  ifdef emacs
-	case before_dot:
-	  printf ("/before_dot");
-          break;
-
-	case at_dot:
-	  printf ("/at_dot");
-          break;
-
-	case after_dot:
-	  printf ("/after_dot");
-          break;
-
-	case syntaxspec:
-          printf ("/syntaxspec");
-	  mcnt = *p++;
-	  printf ("/%d", mcnt);
-          break;
-
-	case notsyntaxspec:
-          printf ("/notsyntaxspec");
-	  mcnt = *p++;
-	  printf ("/%d", mcnt);
-	  break;
-#  endif /* emacs */
-
-	case wordchar:
-	  printf ("/wordchar");
-          break;
-
-	case notwordchar:
-	  printf ("/notwordchar");
-          break;
-
-	case begbuf:
-	  printf ("/begbuf");
-          break;
-
-	case endbuf:
-	  printf ("/endbuf");
-          break;
-
-        default:
-          printf ("?%ld", (long int) *(p-1));
-	}
-
-      putchar ('\n');
-    }
-
-#  ifdef _LIBC
-  printf ("%td:\tend of pattern.\n", p - start);
-#  else
-  printf ("%ld:\tend of pattern.\n", (long int) (p - start));
-#  endif
-}
-
-
-void
-PREFIX(print_compiled_pattern) (struct re_pattern_buffer *bufp)
-{
-  UCHAR_T *buffer = (UCHAR_T*) bufp->buffer;
-
-  PREFIX(print_partial_compiled_pattern) (buffer, buffer
-				  + bufp->used / sizeof(UCHAR_T));
-  printf ("%ld bytes used/%ld bytes allocated.\n",
-	  bufp->used, bufp->allocated);
-
-  if (bufp->fastmap_accurate && bufp->fastmap)
-    {
-      printf ("fastmap: ");
-      print_fastmap (bufp->fastmap);
-    }
-
-#  ifdef _LIBC
-  printf ("re_nsub: %Zd\t", bufp->re_nsub);
-#  else
-  printf ("re_nsub: %ld\t", (long int) bufp->re_nsub);
-#  endif
-  printf ("regs_alloc: %d\t", bufp->regs_allocated);
-  printf ("can_be_null: %d\t", bufp->can_be_null);
-  printf ("newline_anchor: %d\n", bufp->newline_anchor);
-  printf ("no_sub: %d\t", bufp->no_sub);
-  printf ("not_bol: %d\t", bufp->not_bol);
-  printf ("not_eol: %d\t", bufp->not_eol);
-  printf ("syntax: %lx\n", bufp->syntax);
-  /* Perhaps we should print the translate table?  */
-}
-
-
-void
-PREFIX(print_double_string) (const CHAR_T *where, const CHAR_T *string1,
-                             int size1, const CHAR_T *string2, int size2)
-{
-  int this_char;
-
-  if (where == NULL)
-    printf ("(null)");
-  else
-    {
-      int cnt;
-
-      if (FIRST_STRING_P (where))
-        {
-          for (this_char = where - string1; this_char < size1; this_char++)
-	    PUT_CHAR (string1[this_char]);
-
-          where = string2;
-        }
-
-      cnt = 0;
-      for (this_char = where - string2; this_char < size2; this_char++)
-	{
-	  PUT_CHAR (string2[this_char]);
-	  if (++cnt > 100)
-	    {
-	      fputs ("...", stdout);
-	      break;
-	    }
-	}
-    }
-}
-
-#  ifndef DEFINED_ONCE
-void
-printchar (int c)
-{
-  putc (c, stderr);
-}
-#  endif
-
-# else /* not DEBUG */
-
-#  ifndef DEFINED_ONCE
-#   undef assert
-#   define assert(e)
-
-#   define DEBUG_STATEMENT(e)
-#   define DEBUG_PRINT1(x)
-#   define DEBUG_PRINT2(x1, x2)
-#   define DEBUG_PRINT3(x1, x2, x3)
-#   define DEBUG_PRINT4(x1, x2, x3, x4)
-#  endif /* not DEFINED_ONCE */
-#  define DEBUG_PRINT_COMPILED_PATTERN(p, s, e)
-#  define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2)
-
-# endif /* not DEBUG */
-
-
-
-# ifdef WCHAR
-/* This  convert a multibyte string to a wide character string.
-   And write their correspondances to offset_buffer(see below)
-   and write whether each wchar_t is binary data to is_binary.
-   This assume invalid multibyte sequences as binary data.
-   We assume offset_buffer and is_binary is already allocated
-   enough space.  */
-
-static size_t convert_mbs_to_wcs (CHAR_T *dest, const unsigned char* src,
-				  size_t len, int *offset_buffer,
-				  char *is_binary);
-static size_t
-convert_mbs_to_wcs (CHAR_T *dest, const unsigned char*src, size_t len,
-                    int *offset_buffer, char *is_binary)
-     /* It hold correspondances between src(char string) and
-	dest(wchar_t string) for optimization.
-	e.g. src  = "xxxyzz"
-             dest = {'X', 'Y', 'Z'}
-	      (each "xxx", "y" and "zz" represent one multibyte character
-	       corresponding to 'X', 'Y' and 'Z'.)
-	  offset_buffer = {0, 0+3("xxx"), 0+3+1("y"), 0+3+1+2("zz")}
-	  	        = {0, 3, 4, 6}
-     */
-{
-  wchar_t *pdest = dest;
-  const unsigned char *psrc = src;
-  size_t wc_count = 0;
-
-  mbstate_t mbs;
-  int i, consumed;
-  size_t mb_remain = len;
-  size_t mb_count = 0;
-
-  /* Initialize the conversion state.  */
-  memset (&mbs, 0, sizeof (mbstate_t));
-
-  offset_buffer[0] = 0;
-  for( ; mb_remain > 0 ; ++wc_count, ++pdest, mb_remain -= consumed,
-	 psrc += consumed)
-    {
-#ifdef _LIBC
-      consumed = __mbrtowc (pdest, psrc, mb_remain, &mbs);
-#else
-      consumed = mbrtowc (pdest, psrc, mb_remain, &mbs);
-#endif
-
-      if (consumed <= 0)
-	/* failed to convert. maybe src contains binary data.
-	   So we consume 1 byte manualy.  */
-	{
-	  *pdest = *psrc;
-	  consumed = 1;
-	  is_binary[wc_count] = TRUE;
-	}
-      else
-	is_binary[wc_count] = FALSE;
-      /* In sjis encoding, we use yen sign as escape character in
-	 place of reverse solidus. So we convert 0x5c(yen sign in
-	 sjis) to not 0xa5(yen sign in UCS2) but 0x5c(reverse
-	 solidus in UCS2).  */
-      if (consumed == 1 && (int) *psrc == 0x5c && (int) *pdest == 0xa5)
-	*pdest = (wchar_t) *psrc;
-
-      offset_buffer[wc_count + 1] = mb_count += consumed;
-    }
-
-  /* Fill remain of the buffer with sentinel.  */
-  for (i = wc_count + 1 ; i <= len ; i++)
-    offset_buffer[i] = mb_count + 1;
-
-  return wc_count;
-}
-
-# endif /* WCHAR */
-
-#else /* not INSIDE_RECURSION */
-
-/* Set by `re_set_syntax' to the current regexp syntax to recognize.  Can
-   also be assigned to arbitrarily: each pattern buffer stores its own
-   syntax, so it can be changed between regex compilations.  */
-/* This has no initializer because initialized variables in Emacs
-   become read-only after dumping.  */
-reg_syntax_t re_syntax_options;
-
-
-/* Specify the precise syntax of regexps for compilation.  This provides
-   for compatibility for various utilities which historically have
-   different, incompatible syntaxes.
-
-   The argument SYNTAX is a bit mask comprised of the various bits
-   defined in regex.h.  We return the old syntax.  */
-
-reg_syntax_t
-re_set_syntax (reg_syntax_t syntax)
-{
-  reg_syntax_t ret = re_syntax_options;
-
-  re_syntax_options = syntax;
-# ifdef DEBUG
-  if (syntax & RE_DEBUG)
-    debug = 1;
-  else if (debug) /* was on but now is not */
-    debug = 0;
-# endif /* DEBUG */
-  return ret;
-}
-# ifdef _LIBC
-weak_alias (__re_set_syntax, re_set_syntax)
-# endif
-
-/* This table gives an error message for each of the error codes listed
-   in regex.h.  Obviously the order here has to be same as there.
-   POSIX doesn't require that we do anything for REG_NOERROR,
-   but why not be nice?  */
-
-static const char *re_error_msgid[] =
-  {
-    gettext_noop ("Success"),	/* REG_NOERROR */
-    gettext_noop ("No match"),	/* REG_NOMATCH */
-    gettext_noop ("Invalid regular expression"), /* REG_BADPAT */
-    gettext_noop ("Invalid collation character"), /* REG_ECOLLATE */
-    gettext_noop ("Invalid character class name"), /* REG_ECTYPE */
-    gettext_noop ("Trailing backslash"), /* REG_EESCAPE */
-    gettext_noop ("Invalid back reference"), /* REG_ESUBREG */
-    gettext_noop ("Unmatched [ or [^"),	/* REG_EBRACK */
-    gettext_noop ("Unmatched ( or \\("), /* REG_EPAREN */
-    gettext_noop ("Unmatched \\{"), /* REG_EBRACE */
-    gettext_noop ("Invalid content of \\{\\}"), /* REG_BADBR */
-    gettext_noop ("Invalid range end"),	/* REG_ERANGE */
-    gettext_noop ("Memory exhausted"), /* REG_ESPACE */
-    gettext_noop ("Invalid preceding regular expression"), /* REG_BADRPT */
-    gettext_noop ("Premature end of regular expression"), /* REG_EEND */
-    gettext_noop ("Regular expression too big"), /* REG_ESIZE */
-    gettext_noop ("Unmatched ) or \\)") /* REG_ERPAREN */
-  };
-
-#endif /* INSIDE_RECURSION */
-
-#ifndef DEFINED_ONCE
-/* Avoiding alloca during matching, to placate r_alloc.  */
-
-/* Define MATCH_MAY_ALLOCATE unless we need to make sure that the
-   searching and matching functions should not call alloca.  On some
-   systems, alloca is implemented in terms of malloc, and if we're
-   using the relocating allocator routines, then malloc could cause a
-   relocation, which might (if the strings being searched are in the
-   ralloc heap) shift the data out from underneath the regexp
-   routines.
-
-   Here's another reason to avoid allocation: Emacs
-   processes input from X in a signal handler; processing X input may
-   call malloc; if input arrives while a matching routine is calling
-   malloc, then we're scrod.  But Emacs can't just block input while
-   calling matching routines; then we don't notice interrupts when
-   they come in.  So, Emacs blocks input around all regexp calls
-   except the matching calls, which it leaves unprotected, in the
-   faith that they will not malloc.  */
-
-/* Normally, this is fine.  */
-# define MATCH_MAY_ALLOCATE
-
-/* When using GNU C, we are not REALLY using the C alloca, no matter
-   what config.h may say.  So don't take precautions for it.  */
-# ifdef __GNUC__
-#  undef C_ALLOCA
-# endif
-
-/* The match routines may not allocate if (1) they would do it with malloc
-   and (2) it's not safe for them to use malloc.
-   Note that if REL_ALLOC is defined, matching would not use malloc for the
-   failure stack, but we would still use it for the register vectors;
-   so REL_ALLOC should not affect this.  */
-# if (defined C_ALLOCA || defined REGEX_MALLOC) && defined emacs
-#  undef MATCH_MAY_ALLOCATE
-# endif
-#endif /* not DEFINED_ONCE */
-
-#ifdef INSIDE_RECURSION
-/* Failure stack declarations and macros; both re_compile_fastmap and
-   re_match_2 use a failure stack.  These have to be macros because of
-   REGEX_ALLOCATE_STACK.  */
-
-
-/* Number of failure points for which to initially allocate space
-   when matching.  If this number is exceeded, we allocate more
-   space, so it is not a hard limit.  */
-# ifndef INIT_FAILURE_ALLOC
-#  define INIT_FAILURE_ALLOC 5
-# endif
-
-/* Roughly the maximum number of failure points on the stack.  Would be
-   exactly that if always used MAX_FAILURE_ITEMS items each time we failed.
-   This is a variable only so users of regex can assign to it; we never
-   change it ourselves.  */
-
-# ifdef INT_IS_16BIT
-
-#  ifndef DEFINED_ONCE
-#   if defined MATCH_MAY_ALLOCATE
-/* 4400 was enough to cause a crash on Alpha OSF/1,
-   whose default stack limit is 2mb.  */
-long int re_max_failures = 4000;
-#   else
-long int re_max_failures = 2000;
-#   endif
-#  endif
-
-union PREFIX(fail_stack_elt)
-{
-  UCHAR_T *pointer;
-  long int integer;
-};
-
-typedef union PREFIX(fail_stack_elt) PREFIX(fail_stack_elt_t);
-
-typedef struct
-{
-  PREFIX(fail_stack_elt_t) *stack;
-  unsigned long int size;
-  unsigned long int avail;		/* Offset of next open position.  */
-} PREFIX(fail_stack_type);
-
-# else /* not INT_IS_16BIT */
-
-#  ifndef DEFINED_ONCE
-#   if defined MATCH_MAY_ALLOCATE
-/* 4400 was enough to cause a crash on Alpha OSF/1,
-   whose default stack limit is 2mb.  */
-int re_max_failures = 4000;
-#   else
-int re_max_failures = 2000;
-#   endif
-#  endif
-
-union PREFIX(fail_stack_elt)
-{
-  UCHAR_T *pointer;
-  int integer;
-};
-
-typedef union PREFIX(fail_stack_elt) PREFIX(fail_stack_elt_t);
-
-typedef struct
-{
-  PREFIX(fail_stack_elt_t) *stack;
-  unsigned size;
-  unsigned avail;			/* Offset of next open position.  */
-} PREFIX(fail_stack_type);
-
-# endif /* INT_IS_16BIT */
-
-# ifndef DEFINED_ONCE
-#  define FAIL_STACK_EMPTY()     (fail_stack.avail == 0)
-#  define FAIL_STACK_PTR_EMPTY() (fail_stack_ptr->avail == 0)
-#  define FAIL_STACK_FULL()      (fail_stack.avail == fail_stack.size)
-# endif
-
-
-/* Define macros to initialize and free the failure stack.
-   Do `return -2' if the alloc fails.  */
-
-# ifdef MATCH_MAY_ALLOCATE
-#  define INIT_FAIL_STACK()						\
-  do {									\
-    fail_stack.stack = (PREFIX(fail_stack_elt_t) *)		\
-      REGEX_ALLOCATE_STACK (INIT_FAILURE_ALLOC * sizeof (PREFIX(fail_stack_elt_t))); \
-									\
-    if (fail_stack.stack == NULL)				\
-      return -2;							\
-									\
-    fail_stack.size = INIT_FAILURE_ALLOC;			\
-    fail_stack.avail = 0;					\
-  } while (0)
-
-#  define RESET_FAIL_STACK()  REGEX_FREE_STACK (fail_stack.stack)
-# else
-#  define INIT_FAIL_STACK()						\
-  do {									\
-    fail_stack.avail = 0;					\
-  } while (0)
-
-#  define RESET_FAIL_STACK()
-# endif
-
-
-/* Double the size of FAIL_STACK, up to approximately `re_max_failures' items.
-
-   Return 1 if succeeds, and 0 if either ran out of memory
-   allocating space for it or it was already too large.
-
-   REGEX_REALLOCATE_STACK requires `destination' be declared.   */
-
-# define DOUBLE_FAIL_STACK(fail_stack)					\
-  ((fail_stack).size > (unsigned) (re_max_failures * MAX_FAILURE_ITEMS)	\
-   ? 0									\
-   : ((fail_stack).stack = (PREFIX(fail_stack_elt_t) *)			\
-        REGEX_REALLOCATE_STACK ((fail_stack).stack, 			\
-          (fail_stack).size * sizeof (PREFIX(fail_stack_elt_t)),	\
-          ((fail_stack).size << 1) * sizeof (PREFIX(fail_stack_elt_t))),\
-									\
-      (fail_stack).stack == NULL					\
-      ? 0								\
-      : ((fail_stack).size <<= 1, 					\
-         1)))
-
-
-/* Push pointer POINTER on FAIL_STACK.
-   Return 1 if was able to do so and 0 if ran out of memory allocating
-   space to do so.  */
-# define PUSH_PATTERN_OP(POINTER, FAIL_STACK)				\
-  ((FAIL_STACK_FULL ()							\
-    && !DOUBLE_FAIL_STACK (FAIL_STACK))					\
-   ? 0									\
-   : ((FAIL_STACK).stack[(FAIL_STACK).avail++].pointer = POINTER,	\
-      1))
-
-/* Push a pointer value onto the failure stack.
-   Assumes the variable `fail_stack'.  Probably should only
-   be called from within `PUSH_FAILURE_POINT'.  */
-# define PUSH_FAILURE_POINTER(item)					\
-  fail_stack.stack[fail_stack.avail++].pointer = (UCHAR_T *) (item)
-
-/* This pushes an integer-valued item onto the failure stack.
-   Assumes the variable `fail_stack'.  Probably should only
-   be called from within `PUSH_FAILURE_POINT'.  */
-# define PUSH_FAILURE_INT(item)					\
-  fail_stack.stack[fail_stack.avail++].integer = (item)
-
-/* Push a fail_stack_elt_t value onto the failure stack.
-   Assumes the variable `fail_stack'.  Probably should only
-   be called from within `PUSH_FAILURE_POINT'.  */
-# define PUSH_FAILURE_ELT(item)					\
-  fail_stack.stack[fail_stack.avail++] =  (item)
-
-/* These three POP... operations complement the three PUSH... operations.
-   All assume that `fail_stack' is nonempty.  */
-# define POP_FAILURE_POINTER() fail_stack.stack[--fail_stack.avail].pointer
-# define POP_FAILURE_INT() fail_stack.stack[--fail_stack.avail].integer
-# define POP_FAILURE_ELT() fail_stack.stack[--fail_stack.avail]
-
-/* Used to omit pushing failure point id's when we're not debugging.  */
-# ifdef DEBUG
-#  define DEBUG_PUSH PUSH_FAILURE_INT
-#  define DEBUG_POP(item_addr) *(item_addr) = POP_FAILURE_INT ()
-# else
-#  define DEBUG_PUSH(item)
-#  define DEBUG_POP(item_addr)
-# endif
-
-
-/* Push the information about the state we will need
-   if we ever fail back to it.
-
-   Requires variables fail_stack, regstart, regend, reg_info, and
-   num_regs_pushed be declared.  DOUBLE_FAIL_STACK requires `destination'
-   be declared.
-
-   Does `return FAILURE_CODE' if runs out of memory.  */
-
-# define PUSH_FAILURE_POINT(pattern_place, string_place, failure_code)	\
-  do {									\
-    char *destination;							\
-    /* Must be int, so when we don't save any registers, the arithmetic	\
-       of 0 + -1 isn't done as unsigned.  */				\
-    /* Can't be int, since there is not a shred of a guarantee that int	\
-       is wide enough to hold a value of something to which pointer can	\
-       be assigned */							\
-    active_reg_t this_reg;						\
-    									\
-    DEBUG_STATEMENT (failure_id++);					\
-    DEBUG_STATEMENT (nfailure_points_pushed++);				\
-    DEBUG_PRINT2 ("\nPUSH_FAILURE_POINT #%u:\n", failure_id);		\
-    DEBUG_PRINT2 ("  Before push, next avail: %d\n", (fail_stack).avail);\
-    DEBUG_PRINT2 ("                     size: %d\n", (fail_stack).size);\
-									\
-    DEBUG_PRINT2 ("  slots needed: %ld\n", NUM_FAILURE_ITEMS);		\
-    DEBUG_PRINT2 ("     available: %d\n", REMAINING_AVAIL_SLOTS);	\
-									\
-    /* Ensure we have enough space allocated for what we will push.  */	\
-    while (REMAINING_AVAIL_SLOTS < NUM_FAILURE_ITEMS)			\
-      {									\
-        if (!DOUBLE_FAIL_STACK (fail_stack))				\
-          return failure_code;						\
-									\
-        DEBUG_PRINT2 ("\n  Doubled stack; size now: %d\n",		\
-		       (fail_stack).size);				\
-        DEBUG_PRINT2 ("  slots available: %d\n", REMAINING_AVAIL_SLOTS);\
-      }									\
-									\
-    /* Push the info, starting with the registers.  */			\
-    DEBUG_PRINT1 ("\n");						\
-									\
-    if (1)								\
-      for (this_reg = lowest_active_reg; this_reg <= highest_active_reg; \
-	   this_reg++)							\
-	{								\
-	  DEBUG_PRINT2 ("  Pushing reg: %lu\n", this_reg);		\
-	  DEBUG_STATEMENT (num_regs_pushed++);				\
-									\
-	  DEBUG_PRINT2 ("    start: %p\n", regstart[this_reg]);		\
-	  PUSH_FAILURE_POINTER (regstart[this_reg]);			\
-									\
-	  DEBUG_PRINT2 ("    end: %p\n", regend[this_reg]);		\
-	  PUSH_FAILURE_POINTER (regend[this_reg]);			\
-									\
-	  DEBUG_PRINT2 ("    info: %p\n      ",				\
-			reg_info[this_reg].word.pointer);		\
-	  DEBUG_PRINT2 (" match_null=%d",				\
-			REG_MATCH_NULL_STRING_P (reg_info[this_reg]));	\
-	  DEBUG_PRINT2 (" active=%d", IS_ACTIVE (reg_info[this_reg]));	\
-	  DEBUG_PRINT2 (" matched_something=%d",			\
-			MATCHED_SOMETHING (reg_info[this_reg]));	\
-	  DEBUG_PRINT2 (" ever_matched=%d",				\
-			EVER_MATCHED_SOMETHING (reg_info[this_reg]));	\
-	  DEBUG_PRINT1 ("\n");						\
-	  PUSH_FAILURE_ELT (reg_info[this_reg].word);			\
-	}								\
-									\
-    DEBUG_PRINT2 ("  Pushing  low active reg: %ld\n", lowest_active_reg);\
-    PUSH_FAILURE_INT (lowest_active_reg);				\
-									\
-    DEBUG_PRINT2 ("  Pushing high active reg: %ld\n", highest_active_reg);\
-    PUSH_FAILURE_INT (highest_active_reg);				\
-									\
-    DEBUG_PRINT2 ("  Pushing pattern %p:\n", pattern_place);		\
-    DEBUG_PRINT_COMPILED_PATTERN (bufp, pattern_place, pend);		\
-    PUSH_FAILURE_POINTER (pattern_place);				\
-									\
-    DEBUG_PRINT2 ("  Pushing string %p: `", string_place);		\
-    DEBUG_PRINT_DOUBLE_STRING (string_place, string1, size1, string2,   \
-				 size2);				\
-    DEBUG_PRINT1 ("'\n");						\
-    PUSH_FAILURE_POINTER (string_place);				\
-									\
-    DEBUG_PRINT2 ("  Pushing failure id: %u\n", failure_id);		\
-    DEBUG_PUSH (failure_id);						\
-  } while (0)
-
-# ifndef DEFINED_ONCE
-/* This is the number of items that are pushed and popped on the stack
-   for each register.  */
-#  define NUM_REG_ITEMS  3
-
-/* Individual items aside from the registers.  */
-#  ifdef DEBUG
-#   define NUM_NONREG_ITEMS 5 /* Includes failure point id.  */
-#  else
-#   define NUM_NONREG_ITEMS 4
-#  endif
-
-/* We push at most this many items on the stack.  */
-/* We used to use (num_regs - 1), which is the number of registers
-   this regexp will save; but that was changed to 5
-   to avoid stack overflow for a regexp with lots of parens.  */
-#  define MAX_FAILURE_ITEMS (5 * NUM_REG_ITEMS + NUM_NONREG_ITEMS)
-
-/* We actually push this many items.  */
-#  define NUM_FAILURE_ITEMS				\
-  (((0							\
-     ? 0 : highest_active_reg - lowest_active_reg + 1)	\
-    * NUM_REG_ITEMS)					\
-   + NUM_NONREG_ITEMS)
-
-/* How many items can still be added to the stack without overflowing it.  */
-#  define REMAINING_AVAIL_SLOTS ((fail_stack).size - (fail_stack).avail)
-# endif /* not DEFINED_ONCE */
-
-
-/* Pops what PUSH_FAIL_STACK pushes.
-
-   We restore into the parameters, all of which should be lvalues:
-     STR -- the saved data position.
-     PAT -- the saved pattern position.
-     LOW_REG, HIGH_REG -- the highest and lowest active registers.
-     REGSTART, REGEND -- arrays of string positions.
-     REG_INFO -- array of information about each subexpression.
-
-   Also assumes the variables `fail_stack' and (if debugging), `bufp',
-   `pend', `string1', `size1', `string2', and `size2'.  */
-# define POP_FAILURE_POINT(str, pat, low_reg, high_reg, regstart, regend, reg_info)\
-{									\
-  DEBUG_STATEMENT (unsigned failure_id;)				\
-  active_reg_t this_reg;						\
-  const UCHAR_T *string_temp;						\
-									\
-  assert (!FAIL_STACK_EMPTY ());					\
-									\
-  /* Remove failure points and point to how many regs pushed.  */	\
-  DEBUG_PRINT1 ("POP_FAILURE_POINT:\n");				\
-  DEBUG_PRINT2 ("  Before pop, next avail: %d\n", fail_stack.avail);	\
-  DEBUG_PRINT2 ("                    size: %d\n", fail_stack.size);	\
-									\
-  assert (fail_stack.avail >= NUM_NONREG_ITEMS);			\
-									\
-  DEBUG_POP (&failure_id);						\
-  DEBUG_PRINT2 ("  Popping failure id: %u\n", failure_id);		\
-									\
-  /* If the saved string location is NULL, it came from an		\
-     on_failure_keep_string_jump opcode, and we want to throw away the	\
-     saved NULL, thus retaining our current position in the string.  */	\
-  string_temp = POP_FAILURE_POINTER ();					\
-  if (string_temp != NULL)						\
-    str = (const CHAR_T *) string_temp;					\
-									\
-  DEBUG_PRINT2 ("  Popping string %p: `", str);				\
-  DEBUG_PRINT_DOUBLE_STRING (str, string1, size1, string2, size2);	\
-  DEBUG_PRINT1 ("'\n");							\
-									\
-  pat = (UCHAR_T *) POP_FAILURE_POINTER ();				\
-  DEBUG_PRINT2 ("  Popping pattern %p:\n", pat);			\
-  DEBUG_PRINT_COMPILED_PATTERN (bufp, pat, pend);			\
-									\
-  /* Restore register info.  */						\
-  high_reg = (active_reg_t) POP_FAILURE_INT ();				\
-  DEBUG_PRINT2 ("  Popping high active reg: %ld\n", high_reg);		\
-									\
-  low_reg = (active_reg_t) POP_FAILURE_INT ();				\
-  DEBUG_PRINT2 ("  Popping  low active reg: %ld\n", low_reg);		\
-									\
-  if (1)								\
-    for (this_reg = high_reg; this_reg >= low_reg; this_reg--)		\
-      {									\
-	DEBUG_PRINT2 ("    Popping reg: %ld\n", this_reg);		\
-									\
-	reg_info[this_reg].word = POP_FAILURE_ELT ();			\
-	DEBUG_PRINT2 ("      info: %p\n",				\
-		      reg_info[this_reg].word.pointer);			\
-									\
-	regend[this_reg] = (const CHAR_T *) POP_FAILURE_POINTER ();	\
-	DEBUG_PRINT2 ("      end: %p\n", regend[this_reg]);		\
-									\
-	regstart[this_reg] = (const CHAR_T *) POP_FAILURE_POINTER ();	\
-	DEBUG_PRINT2 ("      start: %p\n", regstart[this_reg]);		\
-      }									\
-  else									\
-    {									\
-      for (this_reg = highest_active_reg; this_reg > high_reg; this_reg--) \
-	{								\
-	  reg_info[this_reg].word.integer = 0;				\
-	  regend[this_reg] = 0;						\
-	  regstart[this_reg] = 0;					\
-	}								\
-      highest_active_reg = high_reg;					\
-    }									\
-									\
-  set_regs_matched_done = 0;						\
-  DEBUG_STATEMENT (nfailure_points_popped++);				\
-} /* POP_FAILURE_POINT */
-
-/* Structure for per-register (a.k.a. per-group) information.
-   Other register information, such as the
-   starting and ending positions (which are addresses), and the list of
-   inner groups (which is a bits list) are maintained in separate
-   variables.
-
-   We are making a (strictly speaking) nonportable assumption here: that
-   the compiler will pack our bit fields into something that fits into
-   the type of `word', i.e., is something that fits into one item on the
-   failure stack.  */
-
-
-/* Declarations and macros for re_match_2.  */
-
-typedef union
-{
-  PREFIX(fail_stack_elt_t) word;
-  struct
-  {
-      /* This field is one if this group can match the empty string,
-         zero if not.  If not yet determined,  `MATCH_NULL_UNSET_VALUE'.  */
-# define MATCH_NULL_UNSET_VALUE 3
-    unsigned match_null_string_p : 2;
-    unsigned is_active : 1;
-    unsigned matched_something : 1;
-    unsigned ever_matched_something : 1;
-  } bits;
-} PREFIX(register_info_type);
-
-# ifndef DEFINED_ONCE
-#  define REG_MATCH_NULL_STRING_P(R)  ((R).bits.match_null_string_p)
-#  define IS_ACTIVE(R)  ((R).bits.is_active)
-#  define MATCHED_SOMETHING(R)  ((R).bits.matched_something)
-#  define EVER_MATCHED_SOMETHING(R)  ((R).bits.ever_matched_something)
-
-
-/* Call this when have matched a real character; it sets `matched' flags
-   for the subexpressions which we are currently inside.  Also records
-   that those subexprs have matched.  */
-#  define SET_REGS_MATCHED()						\
-  do									\
-    {									\
-      if (!set_regs_matched_done)					\
-	{								\
-	  active_reg_t r;						\
-	  set_regs_matched_done = 1;					\
-	  for (r = lowest_active_reg; r <= highest_active_reg; r++)	\
-	    {								\
-	      MATCHED_SOMETHING (reg_info[r])				\
-		= EVER_MATCHED_SOMETHING (reg_info[r])			\
-		= 1;							\
-	    }								\
-	}								\
-    }									\
-  while (0)
-# endif /* not DEFINED_ONCE */
-
-/* Registers are set to a sentinel when they haven't yet matched.  */
-static CHAR_T PREFIX(reg_unset_dummy);
-# define REG_UNSET_VALUE (&PREFIX(reg_unset_dummy))
-# define REG_UNSET(e) ((e) == REG_UNSET_VALUE)
-
-/* Subroutine declarations and macros for regex_compile.  */
-static void PREFIX(store_op1) (re_opcode_t op, UCHAR_T *loc, int arg);
-static void PREFIX(store_op2) (re_opcode_t op, UCHAR_T *loc,
-                               int arg1, int arg2);
-static void PREFIX(insert_op1) (re_opcode_t op, UCHAR_T *loc,
-                                int arg, UCHAR_T *end);
-static void PREFIX(insert_op2) (re_opcode_t op, UCHAR_T *loc,
-                                int arg1, int arg2, UCHAR_T *end);
-static boolean PREFIX(at_begline_loc_p) (const CHAR_T *pattern,
-                                         const CHAR_T *p,
-                                         reg_syntax_t syntax);
-static boolean PREFIX(at_endline_loc_p) (const CHAR_T *p,
-                                         const CHAR_T *pend,
-                                         reg_syntax_t syntax);
-# ifdef WCHAR
-static reg_errcode_t wcs_compile_range (CHAR_T range_start,
-                                        const CHAR_T **p_ptr,
-                                        const CHAR_T *pend,
-                                        char *translate,
-                                        reg_syntax_t syntax,
-                                        UCHAR_T *b,
-                                        CHAR_T *char_set);
-static void insert_space (int num, CHAR_T *loc, CHAR_T *end);
-# else /* BYTE */
-static reg_errcode_t byte_compile_range (unsigned int range_start,
-                                         const char **p_ptr,
-                                         const char *pend,
-                                         char *translate,
-                                         reg_syntax_t syntax,
-                                         unsigned char *b);
-# endif /* WCHAR */
-
-/* Fetch the next character in the uncompiled pattern---translating it
-   if necessary.  Also cast from a signed character in the constant
-   string passed to us by the user to an unsigned char that we can use
-   as an array index (in, e.g., `translate').  */
-/* ifdef MBS_SUPPORT, we translate only if character <= 0xff,
-   because it is impossible to allocate 4GB array for some encodings
-   which have 4 byte character_set like UCS4.  */
-# ifndef PATFETCH
-#  ifdef WCHAR
-#   define PATFETCH(c)							\
-  do {if (p == pend) return REG_EEND;					\
-    c = (UCHAR_T) *p++;							\
-    if (translate && (c <= 0xff)) c = (UCHAR_T) translate[c];		\
-  } while (0)
-#  else /* BYTE */
-#   define PATFETCH(c)							\
-  do {if (p == pend) return REG_EEND;					\
-    c = (unsigned char) *p++;						\
-    if (translate) c = (unsigned char) translate[c];			\
-  } while (0)
-#  endif /* WCHAR */
-# endif
-
-/* Fetch the next character in the uncompiled pattern, with no
-   translation.  */
-# define PATFETCH_RAW(c)						\
-  do {if (p == pend) return REG_EEND;					\
-    c = (UCHAR_T) *p++; 	       					\
-  } while (0)
-
-/* Go backwards one character in the pattern.  */
-# define PATUNFETCH p--
-
-
-/* If `translate' is non-null, return translate[D], else just D.  We
-   cast the subscript to translate because some data is declared as
-   `char *', to avoid warnings when a string constant is passed.  But
-   when we use a character as a subscript we must make it unsigned.  */
-/* ifdef MBS_SUPPORT, we translate only if character <= 0xff,
-   because it is impossible to allocate 4GB array for some encodings
-   which have 4 byte character_set like UCS4.  */
-
-# ifndef TRANSLATE
-#  ifdef WCHAR
-#   define TRANSLATE(d) \
-  ((translate && ((UCHAR_T) (d)) <= 0xff) \
-   ? (char) translate[(unsigned char) (d)] : (d))
-# else /* BYTE */
-#   define TRANSLATE(d) \
-  (translate ? (char) translate[(unsigned char) (d)] : (char) (d))
-#  endif /* WCHAR */
-# endif
-
-
-/* Macros for outputting the compiled pattern into `buffer'.  */
-
-/* If the buffer isn't allocated when it comes in, use this.  */
-# define INIT_BUF_SIZE  (32 * sizeof(UCHAR_T))
-
-/* Make sure we have at least N more bytes of space in buffer.  */
-# ifdef WCHAR
-#  define GET_BUFFER_SPACE(n)						\
-    while (((unsigned long)b - (unsigned long)COMPILED_BUFFER_VAR	\
-            + (n)*sizeof(CHAR_T)) > bufp->allocated)			\
-      EXTEND_BUFFER ()
-# else /* BYTE */
-#  define GET_BUFFER_SPACE(n)						\
-    while ((unsigned long) (b - bufp->buffer + (n)) > bufp->allocated)	\
-      EXTEND_BUFFER ()
-# endif /* WCHAR */
-
-/* Make sure we have one more byte of buffer space and then add C to it.  */
-# define BUF_PUSH(c)							\
-  do {									\
-    GET_BUFFER_SPACE (1);						\
-    *b++ = (UCHAR_T) (c);						\
-  } while (0)
-
-
-/* Ensure we have two more bytes of buffer space and then append C1 and C2.  */
-# define BUF_PUSH_2(c1, c2)						\
-  do {									\
-    GET_BUFFER_SPACE (2);						\
-    *b++ = (UCHAR_T) (c1);						\
-    *b++ = (UCHAR_T) (c2);						\
-  } while (0)
-
-
-/* As with BUF_PUSH_2, except for three bytes.  */
-# define BUF_PUSH_3(c1, c2, c3)						\
-  do {									\
-    GET_BUFFER_SPACE (3);						\
-    *b++ = (UCHAR_T) (c1);						\
-    *b++ = (UCHAR_T) (c2);						\
-    *b++ = (UCHAR_T) (c3);						\
-  } while (0)
-
-/* Store a jump with opcode OP at LOC to location TO.  We store a
-   relative address offset by the three bytes the jump itself occupies.  */
-# define STORE_JUMP(op, loc, to) \
- PREFIX(store_op1) (op, loc, (int) ((to) - (loc) - (1 + OFFSET_ADDRESS_SIZE)))
-
-/* Likewise, for a two-argument jump.  */
-# define STORE_JUMP2(op, loc, to, arg) \
-  PREFIX(store_op2) (op, loc, (int) ((to) - (loc) - (1 + OFFSET_ADDRESS_SIZE)), arg)
-
-/* Like `STORE_JUMP', but for inserting.  Assume `b' is the buffer end.  */
-# define INSERT_JUMP(op, loc, to) \
-  PREFIX(insert_op1) (op, loc, (int) ((to) - (loc) - (1 + OFFSET_ADDRESS_SIZE)), b)
-
-/* Like `STORE_JUMP2', but for inserting.  Assume `b' is the buffer end.  */
-# define INSERT_JUMP2(op, loc, to, arg) \
-  PREFIX(insert_op2) (op, loc, (int) ((to) - (loc) - (1 + OFFSET_ADDRESS_SIZE)),\
-	      arg, b)
-
-/* This is not an arbitrary limit: the arguments which represent offsets
-   into the pattern are two bytes long.  So if 2^16 bytes turns out to
-   be too small, many things would have to change.  */
-/* Any other compiler which, like MSC, has allocation limit below 2^16
-   bytes will have to use approach similar to what was done below for
-   MSC and drop MAX_BUF_SIZE a bit.  Otherwise you may end up
-   reallocating to 0 bytes.  Such thing is not going to work too well.
-   You have been warned!!  */
-# ifndef DEFINED_ONCE
-#  if defined _MSC_VER  && !defined WIN32
-/* Microsoft C 16-bit versions limit malloc to approx 65512 bytes.
-   The REALLOC define eliminates a flurry of conversion warnings,
-   but is not required. */
-#   define MAX_BUF_SIZE  65500L
-#   define REALLOC(p,s) realloc ((p), (size_t) (s))
-#  else
-#   define MAX_BUF_SIZE (1L << 16)
-#   define REALLOC(p,s) realloc ((p), (s))
-#  endif
-
-/* Extend the buffer by twice its current size via realloc and
-   reset the pointers that pointed into the old block to point to the
-   correct places in the new one.  If extending the buffer results in it
-   being larger than MAX_BUF_SIZE, then flag memory exhausted.  */
-#  if __BOUNDED_POINTERS__
-#   define SET_HIGH_BOUND(P) (__ptrhigh (P) = __ptrlow (P) + bufp->allocated)
-#   define MOVE_BUFFER_POINTER(P) \
-  (__ptrlow (P) += incr, SET_HIGH_BOUND (P), __ptrvalue (P) += incr)
-#   define ELSE_EXTEND_BUFFER_HIGH_BOUND	\
-  else						\
-    {						\
-      SET_HIGH_BOUND (b);			\
-      SET_HIGH_BOUND (begalt);			\
-      if (fixup_alt_jump)			\
-	SET_HIGH_BOUND (fixup_alt_jump);	\
-      if (laststart)				\
-	SET_HIGH_BOUND (laststart);		\
-      if (pending_exact)			\
-	SET_HIGH_BOUND (pending_exact);		\
-    }
-#  else
-#   define MOVE_BUFFER_POINTER(P) (P) += incr
-#   define ELSE_EXTEND_BUFFER_HIGH_BOUND
-#  endif
-# endif /* not DEFINED_ONCE */
-
-# ifdef WCHAR
-#  define EXTEND_BUFFER()						\
-  do {									\
-    UCHAR_T *old_buffer = COMPILED_BUFFER_VAR;				\
-    int wchar_count;							\
-    if (bufp->allocated + sizeof(UCHAR_T) > MAX_BUF_SIZE)		\
-      return REG_ESIZE;							\
-    bufp->allocated <<= 1;						\
-    if (bufp->allocated > MAX_BUF_SIZE)					\
-      bufp->allocated = MAX_BUF_SIZE;					\
-    /* How many characters the new buffer can have?  */			\
-    wchar_count = bufp->allocated / sizeof(UCHAR_T);			\
-    if (wchar_count == 0) wchar_count = 1;				\
-    /* Truncate the buffer to CHAR_T align.  */			\
-    bufp->allocated = wchar_count * sizeof(UCHAR_T);			\
-    RETALLOC (COMPILED_BUFFER_VAR, wchar_count, UCHAR_T);		\
-    bufp->buffer = (char*)COMPILED_BUFFER_VAR;				\
-    if (COMPILED_BUFFER_VAR == NULL)					\
-      return REG_ESPACE;						\
-    /* If the buffer moved, move all the pointers into it.  */		\
-    if (old_buffer != COMPILED_BUFFER_VAR)				\
-      {									\
-	int incr = COMPILED_BUFFER_VAR - old_buffer;			\
-	MOVE_BUFFER_POINTER (b);					\
-	MOVE_BUFFER_POINTER (begalt);					\
-	if (fixup_alt_jump)						\
-	  MOVE_BUFFER_POINTER (fixup_alt_jump);				\
-	if (laststart)							\
-	  MOVE_BUFFER_POINTER (laststart);				\
-	if (pending_exact)						\
-	  MOVE_BUFFER_POINTER (pending_exact);				\
-      }									\
-    ELSE_EXTEND_BUFFER_HIGH_BOUND					\
-  } while (0)
-# else /* BYTE */
-#  define EXTEND_BUFFER()						\
-  do {									\
-    UCHAR_T *old_buffer = COMPILED_BUFFER_VAR;				\
-    if (bufp->allocated == MAX_BUF_SIZE)				\
-      return REG_ESIZE;							\
-    bufp->allocated <<= 1;						\
-    if (bufp->allocated > MAX_BUF_SIZE)					\
-      bufp->allocated = MAX_BUF_SIZE;					\
-    bufp->buffer = (UCHAR_T *) REALLOC (COMPILED_BUFFER_VAR,		\
-						bufp->allocated);	\
-    if (COMPILED_BUFFER_VAR == NULL)					\
-      return REG_ESPACE;						\
-    /* If the buffer moved, move all the pointers into it.  */		\
-    if (old_buffer != COMPILED_BUFFER_VAR)				\
-      {									\
-	int incr = COMPILED_BUFFER_VAR - old_buffer;			\
-	MOVE_BUFFER_POINTER (b);					\
-	MOVE_BUFFER_POINTER (begalt);					\
-	if (fixup_alt_jump)						\
-	  MOVE_BUFFER_POINTER (fixup_alt_jump);				\
-	if (laststart)							\
-	  MOVE_BUFFER_POINTER (laststart);				\
-	if (pending_exact)						\
-	  MOVE_BUFFER_POINTER (pending_exact);				\
-      }									\
-    ELSE_EXTEND_BUFFER_HIGH_BOUND					\
-  } while (0)
-# endif /* WCHAR */
-
-# ifndef DEFINED_ONCE
-/* Since we have one byte reserved for the register number argument to
-   {start,stop}_memory, the maximum number of groups we can report
-   things about is what fits in that byte.  */
-#  define MAX_REGNUM 255
-
-/* But patterns can have more than `MAX_REGNUM' registers.  We just
-   ignore the excess.  */
-typedef unsigned regnum_t;
-
-
-/* Macros for the compile stack.  */
-
-/* Since offsets can go either forwards or backwards, this type needs to
-   be able to hold values from -(MAX_BUF_SIZE - 1) to MAX_BUF_SIZE - 1.  */
-/* int may be not enough when sizeof(int) == 2.  */
-typedef long pattern_offset_t;
-
-typedef struct
-{
-  pattern_offset_t begalt_offset;
-  pattern_offset_t fixup_alt_jump;
-  pattern_offset_t inner_group_offset;
-  pattern_offset_t laststart_offset;
-  regnum_t regnum;
-} compile_stack_elt_t;
-
-
-typedef struct
-{
-  compile_stack_elt_t *stack;
-  unsigned size;
-  unsigned avail;			/* Offset of next open position.  */
-} compile_stack_type;
-
-
-#  define INIT_COMPILE_STACK_SIZE 32
-
-#  define COMPILE_STACK_EMPTY  (compile_stack.avail == 0)
-#  define COMPILE_STACK_FULL  (compile_stack.avail == compile_stack.size)
-
-/* The next available element.  */
-#  define COMPILE_STACK_TOP (compile_stack.stack[compile_stack.avail])
-
-# endif /* not DEFINED_ONCE */
-
-/* Set the bit for character C in a list.  */
-# ifndef DEFINED_ONCE
-#  define SET_LIST_BIT(c)                               \
-  (b[((unsigned char) (c)) / BYTEWIDTH]               \
-   |= 1 << (((unsigned char) c) % BYTEWIDTH))
-# endif /* DEFINED_ONCE */
-
-/* Get the next unsigned number in the uncompiled pattern.  */
-# define GET_UNSIGNED_NUMBER(num) \
-  {									\
-    while (p != pend)							\
-      {									\
-	PATFETCH (c);							\
-	if (c < '0' || c > '9')						\
-	  break;							\
-	if (num <= RE_DUP_MAX)						\
-	  {								\
-	    if (num < 0)						\
-	      num = 0;							\
-	    num = num * 10 + c - '0';					\
-	  }								\
-      }									\
-  }
-
-# ifndef DEFINED_ONCE
-#  if defined _LIBC || WIDE_CHAR_SUPPORT
-/* The GNU C library provides support for user-defined character classes
-   and the functions from ISO C amendement 1.  */
-#   ifdef CHARCLASS_NAME_MAX
-#    define CHAR_CLASS_MAX_LENGTH CHARCLASS_NAME_MAX
-#   else
-/* This shouldn't happen but some implementation might still have this
-   problem.  Use a reasonable default value.  */
-#    define CHAR_CLASS_MAX_LENGTH 256
-#   endif
-
-#   ifdef _LIBC
-#    define IS_CHAR_CLASS(string) __wctype (string)
-#   else
-#    define IS_CHAR_CLASS(string) wctype (string)
-#   endif
-#  else
-#   define CHAR_CLASS_MAX_LENGTH  6 /* Namely, `xdigit'.  */
-
-#   define IS_CHAR_CLASS(string)					\
-   (STREQ (string, "alpha") || STREQ (string, "upper")			\
-    || STREQ (string, "lower") || STREQ (string, "digit")		\
-    || STREQ (string, "alnum") || STREQ (string, "xdigit")		\
-    || STREQ (string, "space") || STREQ (string, "print")		\
-    || STREQ (string, "punct") || STREQ (string, "graph")		\
-    || STREQ (string, "cntrl") || STREQ (string, "blank"))
-#  endif
-# endif /* DEFINED_ONCE */
-
-# ifndef MATCH_MAY_ALLOCATE
-
-/* If we cannot allocate large objects within re_match_2_internal,
-   we make the fail stack and register vectors global.
-   The fail stack, we grow to the maximum size when a regexp
-   is compiled.
-   The register vectors, we adjust in size each time we
-   compile a regexp, according to the number of registers it needs.  */
-
-static PREFIX(fail_stack_type) fail_stack;
-
-/* Size with which the following vectors are currently allocated.
-   That is so we can make them bigger as needed,
-   but never make them smaller.  */
-#  ifdef DEFINED_ONCE
-static int regs_allocated_size;
-
-static const char **     regstart, **     regend;
-static const char ** old_regstart, ** old_regend;
-static const char **best_regstart, **best_regend;
-static const char **reg_dummy;
-#  endif /* DEFINED_ONCE */
-
-static PREFIX(register_info_type) *PREFIX(reg_info);
-static PREFIX(register_info_type) *PREFIX(reg_info_dummy);
-
-/* Make the register vectors big enough for NUM_REGS registers,
-   but don't make them smaller.  */
-
-static void
-PREFIX(regex_grow_registers) (int num_regs)
-{
-  if (num_regs > regs_allocated_size)
-    {
-      RETALLOC_IF (regstart,	 num_regs, const char *);
-      RETALLOC_IF (regend,	 num_regs, const char *);
-      RETALLOC_IF (old_regstart, num_regs, const char *);
-      RETALLOC_IF (old_regend,	 num_regs, const char *);
-      RETALLOC_IF (best_regstart, num_regs, const char *);
-      RETALLOC_IF (best_regend,	 num_regs, const char *);
-      RETALLOC_IF (PREFIX(reg_info), num_regs, PREFIX(register_info_type));
-      RETALLOC_IF (reg_dummy,	 num_regs, const char *);
-      RETALLOC_IF (PREFIX(reg_info_dummy), num_regs, PREFIX(register_info_type));
-
-      regs_allocated_size = num_regs;
-    }
-}
-
-# endif /* not MATCH_MAY_ALLOCATE */
-
-# ifndef DEFINED_ONCE
-static boolean group_in_compile_stack (compile_stack_type compile_stack,
-                                       regnum_t regnum);
-# endif /* not DEFINED_ONCE */
-
-/* `regex_compile' compiles PATTERN (of length SIZE) according to SYNTAX.
-   Returns one of error codes defined in `regex.h', or zero for success.
-
-   Assumes the `allocated' (and perhaps `buffer') and `translate'
-   fields are set in BUFP on entry.
-
-   If it succeeds, results are put in BUFP (if it returns an error, the
-   contents of BUFP are undefined):
-     `buffer' is the compiled pattern;
-     `syntax' is set to SYNTAX;
-     `used' is set to the length of the compiled pattern;
-     `fastmap_accurate' is zero;
-     `re_nsub' is the number of subexpressions in PATTERN;
-     `not_bol' and `not_eol' are zero;
-
-   The `fastmap' and `newline_anchor' fields are neither
-   examined nor set.  */
-
-/* Return, freeing storage we allocated.  */
-# ifdef WCHAR
-#  define FREE_STACK_RETURN(value)		\
-  return (free(pattern), free(mbs_offset), free(is_binary), free (compile_stack.stack), value)
-# else
-#  define FREE_STACK_RETURN(value)		\
-  return (free (compile_stack.stack), value)
-# endif /* WCHAR */
-
-static reg_errcode_t
-PREFIX(regex_compile) (const char *ARG_PREFIX(pattern),
-                       size_t ARG_PREFIX(size), reg_syntax_t syntax,
-                       struct re_pattern_buffer *bufp)
-{
-  /* We fetch characters from PATTERN here.  Even though PATTERN is
-     `char *' (i.e., signed), we declare these variables as unsigned, so
-     they can be reliably used as array indices.  */
-  register UCHAR_T c, c1;
-
-#ifdef WCHAR
-  /* A temporary space to keep wchar_t pattern and compiled pattern.  */
-  CHAR_T *pattern, *COMPILED_BUFFER_VAR;
-  size_t size;
-  /* offset buffer for optimization. See convert_mbs_to_wc.  */
-  int *mbs_offset = NULL;
-  /* It hold whether each wchar_t is binary data or not.  */
-  char *is_binary = NULL;
-  /* A flag whether exactn is handling binary data or not.  */
-  char is_exactn_bin = FALSE;
-#endif /* WCHAR */
-
-  /* A random temporary spot in PATTERN.  */
-  const CHAR_T *p1;
-
-  /* Points to the end of the buffer, where we should append.  */
-  register UCHAR_T *b;
-
-  /* Keeps track of unclosed groups.  */
-  compile_stack_type compile_stack;
-
-  /* Points to the current (ending) position in the pattern.  */
-#ifdef WCHAR
-  const CHAR_T *p;
-  const CHAR_T *pend;
-#else /* BYTE */
-  const CHAR_T *p = pattern;
-  const CHAR_T *pend = pattern + size;
-#endif /* WCHAR */
-
-  /* How to translate the characters in the pattern.  */
-  RE_TRANSLATE_TYPE translate = bufp->translate;
-
-  /* Address of the count-byte of the most recently inserted `exactn'
-     command.  This makes it possible to tell if a new exact-match
-     character can be added to that command or if the character requires
-     a new `exactn' command.  */
-  UCHAR_T *pending_exact = 0;
-
-  /* Address of start of the most recently finished expression.
-     This tells, e.g., postfix * where to find the start of its
-     operand.  Reset at the beginning of groups and alternatives.  */
-  UCHAR_T *laststart = 0;
-
-  /* Address of beginning of regexp, or inside of last group.  */
-  UCHAR_T *begalt;
-
-  /* Address of the place where a forward jump should go to the end of
-     the containing expression.  Each alternative of an `or' -- except the
-     last -- ends with a forward jump of this sort.  */
-  UCHAR_T *fixup_alt_jump = 0;
-
-  /* Counts open-groups as they are encountered.  Remembered for the
-     matching close-group on the compile stack, so the same register
-     number is put in the stop_memory as the start_memory.  */
-  regnum_t regnum = 0;
-
-#ifdef WCHAR
-  /* Initialize the wchar_t PATTERN and offset_buffer.  */
-  p = pend = pattern = TALLOC(csize + 1, CHAR_T);
-  mbs_offset = TALLOC(csize + 1, int);
-  is_binary = TALLOC(csize + 1, char);
-  if (pattern == NULL || mbs_offset == NULL || is_binary == NULL)
-    {
-      free(pattern);
-      free(mbs_offset);
-      free(is_binary);
-      return REG_ESPACE;
-    }
-  pattern[csize] = L'\0';	/* sentinel */
-  size = convert_mbs_to_wcs(pattern, cpattern, csize, mbs_offset, is_binary);
-  pend = p + size;
-  if (size < 0)
-    {
-      free(pattern);
-      free(mbs_offset);
-      free(is_binary);
-      return REG_BADPAT;
-    }
-#endif
-
-#ifdef DEBUG
-  DEBUG_PRINT1 ("\nCompiling pattern: ");
-  if (debug)
-    {
-      unsigned debug_count;
-
-      for (debug_count = 0; debug_count < size; debug_count++)
-        PUT_CHAR (pattern[debug_count]);
-      putchar ('\n');
-    }
-#endif /* DEBUG */
-
-  /* Initialize the compile stack.  */
-  compile_stack.stack = TALLOC (INIT_COMPILE_STACK_SIZE, compile_stack_elt_t);
-  if (compile_stack.stack == NULL)
-    {
-#ifdef WCHAR
-      free(pattern);
-      free(mbs_offset);
-      free(is_binary);
-#endif
-      return REG_ESPACE;
-    }
-
-  compile_stack.size = INIT_COMPILE_STACK_SIZE;
-  compile_stack.avail = 0;
-
-  /* Initialize the pattern buffer.  */
-  bufp->syntax = syntax;
-  bufp->fastmap_accurate = 0;
-  bufp->not_bol = bufp->not_eol = 0;
-
-  /* Set `used' to zero, so that if we return an error, the pattern
-     printer (for debugging) will think there's no pattern.  We reset it
-     at the end.  */
-  bufp->used = 0;
-
-  /* Always count groups, whether or not bufp->no_sub is set.  */
-  bufp->re_nsub = 0;
-
-#if !defined emacs && !defined SYNTAX_TABLE
-  /* Initialize the syntax table.  */
-   init_syntax_once ();
-#endif
-
-  if (bufp->allocated == 0)
-    {
-      if (bufp->buffer)
-	{ /* If zero allocated, but buffer is non-null, try to realloc
-             enough space.  This loses if buffer's address is bogus, but
-             that is the user's responsibility.  */
-#ifdef WCHAR
-	  /* Free bufp->buffer and allocate an array for wchar_t pattern
-	     buffer.  */
-          free(bufp->buffer);
-          COMPILED_BUFFER_VAR = TALLOC (INIT_BUF_SIZE/sizeof(UCHAR_T),
-					UCHAR_T);
-#else
-          RETALLOC (COMPILED_BUFFER_VAR, INIT_BUF_SIZE, UCHAR_T);
-#endif /* WCHAR */
-        }
-      else
-        { /* Caller did not allocate a buffer.  Do it for them.  */
-          COMPILED_BUFFER_VAR = TALLOC (INIT_BUF_SIZE / sizeof(UCHAR_T),
-					UCHAR_T);
-        }
-
-      if (!COMPILED_BUFFER_VAR) FREE_STACK_RETURN (REG_ESPACE);
-#ifdef WCHAR
-      bufp->buffer = (char*)COMPILED_BUFFER_VAR;
-#endif /* WCHAR */
-      bufp->allocated = INIT_BUF_SIZE;
-    }
-#ifdef WCHAR
-  else
-    COMPILED_BUFFER_VAR = (UCHAR_T*) bufp->buffer;
-#endif
-
-  begalt = b = COMPILED_BUFFER_VAR;
-
-  /* Loop through the uncompiled pattern until we're at the end.  */
-  while (p != pend)
-    {
-      PATFETCH (c);
-
-      switch (c)
-        {
-        case '^':
-          {
-            if (   /* If at start of pattern, it's an operator.  */
-                   p == pattern + 1
-                   /* If context independent, it's an operator.  */
-                || syntax & RE_CONTEXT_INDEP_ANCHORS
-                   /* Otherwise, depends on what's come before.  */
-                || PREFIX(at_begline_loc_p) (pattern, p, syntax))
-              BUF_PUSH (begline);
-            else
-              goto normal_char;
-          }
-          break;
-
-
-        case '$':
-          {
-            if (   /* If at end of pattern, it's an operator.  */
-                   p == pend
-                   /* If context independent, it's an operator.  */
-                || syntax & RE_CONTEXT_INDEP_ANCHORS
-                   /* Otherwise, depends on what's next.  */
-                || PREFIX(at_endline_loc_p) (p, pend, syntax))
-               BUF_PUSH (endline);
-             else
-               goto normal_char;
-           }
-           break;
-
-
-	case '+':
-        case '?':
-          if ((syntax & RE_BK_PLUS_QM)
-              || (syntax & RE_LIMITED_OPS))
-            goto normal_char;
-        handle_plus:
-        case '*':
-          /* If there is no previous pattern... */
-          if (!laststart)
-            {
-              if (syntax & RE_CONTEXT_INVALID_OPS)
-                FREE_STACK_RETURN (REG_BADRPT);
-              else if (!(syntax & RE_CONTEXT_INDEP_OPS))
-                goto normal_char;
-            }
-
-          {
-            /* Are we optimizing this jump?  */
-            boolean keep_string_p = false;
-
-            /* 1 means zero (many) matches is allowed.  */
-            char zero_times_ok = 0, many_times_ok = 0;
-
-            /* If there is a sequence of repetition chars, collapse it
-               down to just one (the right one).  We can't combine
-               interval operators with these because of, e.g., `a{2}*',
-               which should only match an even number of `a's.  */
-
-            for (;;)
-              {
-                zero_times_ok |= c != '+';
-                many_times_ok |= c != '?';
-
-                if (p == pend)
-                  break;
-
-                PATFETCH (c);
-
-                if (c == '*'
-                    || (!(syntax & RE_BK_PLUS_QM) && (c == '+' || c == '?')))
-                  ;
-
-                else if (syntax & RE_BK_PLUS_QM  &&  c == '\\')
-                  {
-                    if (p == pend) FREE_STACK_RETURN (REG_EESCAPE);
-
-                    PATFETCH (c1);
-                    if (!(c1 == '+' || c1 == '?'))
-                      {
-                        PATUNFETCH;
-                        PATUNFETCH;
-                        break;
-                      }
-
-                    c = c1;
-                  }
-                else
-                  {
-                    PATUNFETCH;
-                    break;
-                  }
-
-                /* If we get here, we found another repeat character.  */
-               }
-
-            /* Star, etc. applied to an empty pattern is equivalent
-               to an empty pattern.  */
-            if (!laststart)
-              break;
-
-            /* Now we know whether or not zero matches is allowed
-               and also whether or not two or more matches is allowed.  */
-            if (many_times_ok)
-              { /* More than one repetition is allowed, so put in at the
-                   end a backward relative jump from `b' to before the next
-                   jump we're going to put in below (which jumps from
-                   laststart to after this jump).
-
-                   But if we are at the `*' in the exact sequence `.*\n',
-                   insert an unconditional jump backwards to the .,
-                   instead of the beginning of the loop.  This way we only
-                   push a failure point once, instead of every time
-                   through the loop.  */
-                assert (p - 1 > pattern);
-
-                /* Allocate the space for the jump.  */
-                GET_BUFFER_SPACE (1 + OFFSET_ADDRESS_SIZE);
-
-                /* We know we are not at the first character of the pattern,
-                   because laststart was nonzero.  And we've already
-                   incremented `p', by the way, to be the character after
-                   the `*'.  Do we have to do something analogous here
-                   for null bytes, because of RE_DOT_NOT_NULL?  */
-                if (TRANSLATE (*(p - 2)) == TRANSLATE ('.')
-		    && zero_times_ok
-                    && p < pend && TRANSLATE (*p) == TRANSLATE ('\n')
-                    && !(syntax & RE_DOT_NEWLINE))
-                  { /* We have .*\n.  */
-                    STORE_JUMP (jump, b, laststart);
-                    keep_string_p = true;
-                  }
-                else
-                  /* Anything else.  */
-                  STORE_JUMP (maybe_pop_jump, b, laststart -
-			      (1 + OFFSET_ADDRESS_SIZE));
-
-                /* We've added more stuff to the buffer.  */
-                b += 1 + OFFSET_ADDRESS_SIZE;
-              }
-
-            /* On failure, jump from laststart to b + 3, which will be the
-               end of the buffer after this jump is inserted.  */
-	    /* ifdef WCHAR, 'b + 1 + OFFSET_ADDRESS_SIZE' instead of
-	       'b + 3'.  */
-            GET_BUFFER_SPACE (1 + OFFSET_ADDRESS_SIZE);
-            INSERT_JUMP (keep_string_p ? on_failure_keep_string_jump
-                                       : on_failure_jump,
-                         laststart, b + 1 + OFFSET_ADDRESS_SIZE);
-            pending_exact = 0;
-            b += 1 + OFFSET_ADDRESS_SIZE;
-
-            if (!zero_times_ok)
-              {
-                /* At least one repetition is required, so insert a
-                   `dummy_failure_jump' before the initial
-                   `on_failure_jump' instruction of the loop. This
-                   effects a skip over that instruction the first time
-                   we hit that loop.  */
-                GET_BUFFER_SPACE (1 + OFFSET_ADDRESS_SIZE);
-                INSERT_JUMP (dummy_failure_jump, laststart, laststart +
-			     2 + 2 * OFFSET_ADDRESS_SIZE);
-                b += 1 + OFFSET_ADDRESS_SIZE;
-              }
-            }
-	  break;
-
-
-	case '.':
-          laststart = b;
-          BUF_PUSH (anychar);
-          break;
-
-
-        case '[':
-          {
-            boolean had_char_class = false;
-#ifdef WCHAR
-	    CHAR_T range_start = 0xffffffff;
-#else
-	    unsigned int range_start = 0xffffffff;
-#endif
-            if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
-
-#ifdef WCHAR
-	    /* We assume a charset(_not) structure as a wchar_t array.
-	       charset[0] = (re_opcode_t) charset(_not)
-               charset[1] = l (= length of char_classes)
-               charset[2] = m (= length of collating_symbols)
-               charset[3] = n (= length of equivalence_classes)
-	       charset[4] = o (= length of char_ranges)
-	       charset[5] = p (= length of chars)
-
-               charset[6] = char_class (wctype_t)
-               charset[6+CHAR_CLASS_SIZE] = char_class (wctype_t)
-                         ...
-               charset[l+5]  = char_class (wctype_t)
-
-               charset[l+6]  = collating_symbol (wchar_t)
-                            ...
-               charset[l+m+5]  = collating_symbol (wchar_t)
-					ifdef _LIBC we use the index if
-					_NL_COLLATE_SYMB_EXTRAMB instead of
-					wchar_t string.
-
-               charset[l+m+6]  = equivalence_classes (wchar_t)
-                              ...
-               charset[l+m+n+5]  = equivalence_classes (wchar_t)
-					ifdef _LIBC we use the index in
-					_NL_COLLATE_WEIGHT instead of
-					wchar_t string.
-
-	       charset[l+m+n+6] = range_start
-	       charset[l+m+n+7] = range_end
-	                       ...
-	       charset[l+m+n+2o+4] = range_start
-	       charset[l+m+n+2o+5] = range_end
-					ifdef _LIBC we use the value looked up
-					in _NL_COLLATE_COLLSEQ instead of
-					wchar_t character.
-
-	       charset[l+m+n+2o+6] = char
-	                          ...
-	       charset[l+m+n+2o+p+5] = char
-
-	     */
-
-	    /* We need at least 6 spaces: the opcode, the length of
-               char_classes, the length of collating_symbols, the length of
-               equivalence_classes, the length of char_ranges, the length of
-               chars.  */
-	    GET_BUFFER_SPACE (6);
-
-	    /* Save b as laststart. And We use laststart as the pointer
-	       to the first element of the charset here.
-	       In other words, laststart[i] indicates charset[i].  */
-            laststart = b;
-
-            /* We test `*p == '^' twice, instead of using an if
-               statement, so we only need one BUF_PUSH.  */
-            BUF_PUSH (*p == '^' ? charset_not : charset);
-            if (*p == '^')
-              p++;
-
-            /* Push the length of char_classes, the length of
-               collating_symbols, the length of equivalence_classes, the
-               length of char_ranges and the length of chars.  */
-            BUF_PUSH_3 (0, 0, 0);
-            BUF_PUSH_2 (0, 0);
-
-            /* Remember the first position in the bracket expression.  */
-            p1 = p;
-
-            /* charset_not matches newline according to a syntax bit.  */
-            if ((re_opcode_t) b[-6] == charset_not
-                && (syntax & RE_HAT_LISTS_NOT_NEWLINE))
-	      {
-		BUF_PUSH('\n');
-		laststart[5]++; /* Update the length of characters  */
-	      }
-
-            /* Read in characters and ranges, setting map bits.  */
-            for (;;)
-              {
-                if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
-
-                PATFETCH (c);
-
-                /* \ might escape characters inside [...] and [^...].  */
-                if ((syntax & RE_BACKSLASH_ESCAPE_IN_LISTS) && c == '\\')
-                  {
-                    if (p == pend) FREE_STACK_RETURN (REG_EESCAPE);
-
-                    PATFETCH (c1);
-		    BUF_PUSH(c1);
-		    laststart[5]++; /* Update the length of chars  */
-		    range_start = c1;
-                    continue;
-                  }
-
-                /* Could be the end of the bracket expression.  If it's
-                   not (i.e., when the bracket expression is `[]' so
-                   far), the ']' character bit gets set way below.  */
-                if (c == ']' && p != p1 + 1)
-                  break;
-
-                /* Look ahead to see if it's a range when the last thing
-                   was a character class.  */
-                if (had_char_class && c == '-' && *p != ']')
-                  FREE_STACK_RETURN (REG_ERANGE);
-
-                /* Look ahead to see if it's a range when the last thing
-                   was a character: if this is a hyphen not at the
-                   beginning or the end of a list, then it's the range
-                   operator.  */
-                if (c == '-'
-                    && !(p - 2 >= pattern && p[-2] == '[')
-                    && !(p - 3 >= pattern && p[-3] == '[' && p[-2] == '^')
-                    && *p != ']')
-                  {
-                    reg_errcode_t ret;
-		    /* Allocate the space for range_start and range_end.  */
-		    GET_BUFFER_SPACE (2);
-		    /* Update the pointer to indicate end of buffer.  */
-                    b += 2;
-                    ret = wcs_compile_range (range_start, &p, pend, translate,
-                                         syntax, b, laststart);
-                    if (ret != REG_NOERROR) FREE_STACK_RETURN (ret);
-                    range_start = 0xffffffff;
-                  }
-                else if (p[0] == '-' && p[1] != ']')
-                  { /* This handles ranges made up of characters only.  */
-                    reg_errcode_t ret;
-
-		    /* Move past the `-'.  */
-                    PATFETCH (c1);
-		    /* Allocate the space for range_start and range_end.  */
-		    GET_BUFFER_SPACE (2);
-		    /* Update the pointer to indicate end of buffer.  */
-                    b += 2;
-                    ret = wcs_compile_range (c, &p, pend, translate, syntax, b,
-                                         laststart);
-                    if (ret != REG_NOERROR) FREE_STACK_RETURN (ret);
-		    range_start = 0xffffffff;
-                  }
-
-                /* See if we're at the beginning of a possible character
-                   class.  */
-                else if (syntax & RE_CHAR_CLASSES && c == '[' && *p == ':')
-                  { /* Leave room for the null.  */
-                    char str[CHAR_CLASS_MAX_LENGTH + 1];
-
-                    PATFETCH (c);
-                    c1 = 0;
-
-                    /* If pattern is `[[:'.  */
-                    if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
-
-                    for (;;)
-                      {
-                        PATFETCH (c);
-                        if ((c == ':' && *p == ']') || p == pend)
-                          break;
-			if (c1 < CHAR_CLASS_MAX_LENGTH)
-			  str[c1++] = c;
-			else
-			  /* This is in any case an invalid class name.  */
-			  str[0] = '\0';
-                      }
-                    str[c1] = '\0';
-
-                    /* If isn't a word bracketed by `[:' and `:]':
-                       undo the ending character, the letters, and leave
-                       the leading `:' and `[' (but store them as character).  */
-                    if (c == ':' && *p == ']')
-                      {
-			wctype_t wt;
-			uintptr_t alignedp;
-
-			/* Query the character class as wctype_t.  */
-			wt = IS_CHAR_CLASS (str);
-			if (wt == 0)
-			  FREE_STACK_RETURN (REG_ECTYPE);
-
-                        /* Throw away the ] at the end of the character
-                           class.  */
-                        PATFETCH (c);
-
-                        if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
-
-			/* Allocate the space for character class.  */
-                        GET_BUFFER_SPACE(CHAR_CLASS_SIZE);
-			/* Update the pointer to indicate end of buffer.  */
-                        b += CHAR_CLASS_SIZE;
-			/* Move data which follow character classes
-			    not to violate the data.  */
-                        insert_space(CHAR_CLASS_SIZE,
-				     laststart + 6 + laststart[1],
-				     b - 1);
-			alignedp = ((uintptr_t)(laststart + 6 + laststart[1])
-				    + __alignof__(wctype_t) - 1)
-			  	    & ~(uintptr_t)(__alignof__(wctype_t) - 1);
-			/* Store the character class.  */
-                        *((wctype_t*)alignedp) = wt;
-                        /* Update length of char_classes */
-                        laststart[1] += CHAR_CLASS_SIZE;
-
-                        had_char_class = true;
-                      }
-                    else
-                      {
-                        c1++;
-                        while (c1--)
-                          PATUNFETCH;
-                        BUF_PUSH ('[');
-                        BUF_PUSH (':');
-                        laststart[5] += 2; /* Update the length of characters  */
-			range_start = ':';
-                        had_char_class = false;
-                      }
-                  }
-                else if (syntax & RE_CHAR_CLASSES && c == '[' && (*p == '='
-							  || *p == '.'))
-		  {
-		    CHAR_T str[128];	/* Should be large enough.  */
-		    CHAR_T delim = *p; /* '=' or '.'  */
-# ifdef _LIBC
-		    uint32_t nrules =
-		      _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
-# endif
-		    PATFETCH (c);
-		    c1 = 0;
-
-		    /* If pattern is `[[=' or '[[.'.  */
-		    if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
-
-		    for (;;)
-		      {
-			PATFETCH (c);
-			if ((c == delim && *p == ']') || p == pend)
-			  break;
-			if (c1 < sizeof (str) - 1)
-			  str[c1++] = c;
-			else
-			  /* This is in any case an invalid class name.  */
-			  str[0] = '\0';
-                      }
-		    str[c1] = '\0';
-
-		    if (c == delim && *p == ']' && str[0] != '\0')
-		      {
-                        unsigned int i, offset;
-			/* If we have no collation data we use the default
-			   collation in which each character is in a class
-			   by itself.  It also means that ASCII is the
-			   character set and therefore we cannot have character
-			   with more than one byte in the multibyte
-			   representation.  */
-
-                        /* If not defined _LIBC, we push the name and
-			   `\0' for the sake of matching performance.  */
-			int datasize = c1 + 1;
-
-# ifdef _LIBC
-			int32_t idx = 0;
-			if (nrules == 0)
-# endif
-			  {
-			    if (c1 != 1)
-			      FREE_STACK_RETURN (REG_ECOLLATE);
-			  }
-# ifdef _LIBC
-			else
-			  {
-			    const int32_t *table;
-			    const int32_t *weights;
-			    const int32_t *extra;
-			    const int32_t *indirect;
-			    wint_t *cp;
-
-			    /* This #include defines a local function!  */
-#  include <locale/weightwc.h>
-
-			    if(delim == '=')
-			      {
-				/* We push the index for equivalence class.  */
-				cp = (wint_t*)str;
-
-				table = (const int32_t *)
-				  _NL_CURRENT (LC_COLLATE,
-					       _NL_COLLATE_TABLEWC);
-				weights = (const int32_t *)
-				  _NL_CURRENT (LC_COLLATE,
-					       _NL_COLLATE_WEIGHTWC);
-				extra = (const int32_t *)
-				  _NL_CURRENT (LC_COLLATE,
-					       _NL_COLLATE_EXTRAWC);
-				indirect = (const int32_t *)
-				  _NL_CURRENT (LC_COLLATE,
-					       _NL_COLLATE_INDIRECTWC);
-
-				idx = findidx ((const wint_t**)&cp);
-				if (idx == 0 || cp < (wint_t*) str + c1)
-				  /* This is no valid character.  */
-				  FREE_STACK_RETURN (REG_ECOLLATE);
-
-				str[0] = (wchar_t)idx;
-			      }
-			    else /* delim == '.' */
-			      {
-				/* We push collation sequence value
-				   for collating symbol.  */
-				int32_t table_size;
-				const int32_t *symb_table;
-				const unsigned char *extra;
-				int32_t idx;
-				int32_t elem;
-				int32_t second;
-				int32_t hash;
-				char char_str[c1];
-
-				/* We have to convert the name to a single-byte
-				   string.  This is possible since the names
-				   consist of ASCII characters and the internal
-				   representation is UCS4.  */
-				for (i = 0; i < c1; ++i)
-				  char_str[i] = str[i];
-
-				table_size =
-				  _NL_CURRENT_WORD (LC_COLLATE,
-						    _NL_COLLATE_SYMB_HASH_SIZEMB);
-				symb_table = (const int32_t *)
-				  _NL_CURRENT (LC_COLLATE,
-					       _NL_COLLATE_SYMB_TABLEMB);
-				extra = (const unsigned char *)
-				  _NL_CURRENT (LC_COLLATE,
-					       _NL_COLLATE_SYMB_EXTRAMB);
-
-				/* Locate the character in the hashing table.  */
-				hash = elem_hash (char_str, c1);
-
-				idx = 0;
-				elem = hash % table_size;
-				second = hash % (table_size - 2);
-				while (symb_table[2 * elem] != 0)
-				  {
-				    /* First compare the hashing value.  */
-				    if (symb_table[2 * elem] == hash
-					&& c1 == extra[symb_table[2 * elem + 1]]
-					&& memcmp (char_str,
-						   &extra[symb_table[2 * elem + 1]
-							 + 1], c1) == 0)
-				      {
-					/* Yep, this is the entry.  */
-					idx = symb_table[2 * elem + 1];
-					idx += 1 + extra[idx];
-					break;
-				      }
-
-				    /* Next entry.  */
-				    elem += second;
-				  }
-
-				if (symb_table[2 * elem] != 0)
-				  {
-				    /* Compute the index of the byte sequence
-				       in the table.  */
-				    idx += 1 + extra[idx];
-				    /* Adjust for the alignment.  */
-				    idx = (idx + 3) & ~3;
-
-				    str[0] = (wchar_t) idx + 4;
-				  }
-				else if (symb_table[2 * elem] == 0 && c1 == 1)
-				  {
-				    /* No valid character.  Match it as a
-				       single byte character.  */
-				    had_char_class = false;
-				    BUF_PUSH(str[0]);
-				    /* Update the length of characters  */
-				    laststart[5]++;
-				    range_start = str[0];
-
-				    /* Throw away the ] at the end of the
-				       collating symbol.  */
-				    PATFETCH (c);
-				    /* exit from the switch block.  */
-				    continue;
-				  }
-				else
-				  FREE_STACK_RETURN (REG_ECOLLATE);
-			      }
-			    datasize = 1;
-			  }
-# endif
-                        /* Throw away the ] at the end of the equivalence
-                           class (or collating symbol).  */
-                        PATFETCH (c);
-
-			/* Allocate the space for the equivalence class
-			   (or collating symbol) (and '\0' if needed).  */
-                        GET_BUFFER_SPACE(datasize);
-			/* Update the pointer to indicate end of buffer.  */
-                        b += datasize;
-
-			if (delim == '=')
-			  { /* equivalence class  */
-			    /* Calculate the offset of char_ranges,
-			       which is next to equivalence_classes.  */
-			    offset = laststart[1] + laststart[2]
-			      + laststart[3] +6;
-			    /* Insert space.  */
-			    insert_space(datasize, laststart + offset, b - 1);
-
-			    /* Write the equivalence_class and \0.  */
-			    for (i = 0 ; i < datasize ; i++)
-			      laststart[offset + i] = str[i];
-
-			    /* Update the length of equivalence_classes.  */
-			    laststart[3] += datasize;
-			    had_char_class = true;
-			  }
-			else /* delim == '.' */
-			  { /* collating symbol  */
-			    /* Calculate the offset of the equivalence_classes,
-			       which is next to collating_symbols.  */
-			    offset = laststart[1] + laststart[2] + 6;
-			    /* Insert space and write the collationg_symbol
-			       and \0.  */
-			    insert_space(datasize, laststart + offset, b-1);
-			    for (i = 0 ; i < datasize ; i++)
-			      laststart[offset + i] = str[i];
-
-			    /* In re_match_2_internal if range_start < -1, we
-			       assume -range_start is the offset of the
-			       collating symbol which is specified as
-			       the character of the range start.  So we assign
-			       -(laststart[1] + laststart[2] + 6) to
-			       range_start.  */
-			    range_start = -(laststart[1] + laststart[2] + 6);
-			    /* Update the length of collating_symbol.  */
-			    laststart[2] += datasize;
-			    had_char_class = false;
-			  }
-		      }
-                    else
-                      {
-                        c1++;
-                        while (c1--)
-                          PATUNFETCH;
-                        BUF_PUSH ('[');
-                        BUF_PUSH (delim);
-                        laststart[5] += 2; /* Update the length of characters  */
-			range_start = delim;
-                        had_char_class = false;
-                      }
-		  }
-                else
-                  {
-                    had_char_class = false;
-		    BUF_PUSH(c);
-		    laststart[5]++;  /* Update the length of characters  */
-		    range_start = c;
-                  }
-	      }
-
-#else /* BYTE */
-            /* Ensure that we have enough space to push a charset: the
-               opcode, the length count, and the bitset; 34 bytes in all.  */
-	    GET_BUFFER_SPACE (34);
-
-            laststart = b;
-
-            /* We test `*p == '^' twice, instead of using an if
-               statement, so we only need one BUF_PUSH.  */
-            BUF_PUSH (*p == '^' ? charset_not : charset);
-            if (*p == '^')
-              p++;
-
-            /* Remember the first position in the bracket expression.  */
-            p1 = p;
-
-            /* Push the number of bytes in the bitmap.  */
-            BUF_PUSH ((1 << BYTEWIDTH) / BYTEWIDTH);
-
-            /* Clear the whole map.  */
-            bzero (b, (1 << BYTEWIDTH) / BYTEWIDTH);
-
-            /* charset_not matches newline according to a syntax bit.  */
-            if ((re_opcode_t) b[-2] == charset_not
-                && (syntax & RE_HAT_LISTS_NOT_NEWLINE))
-              SET_LIST_BIT ('\n');
-
-            /* Read in characters and ranges, setting map bits.  */
-            for (;;)
-              {
-                if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
-
-                PATFETCH (c);
-
-                /* \ might escape characters inside [...] and [^...].  */
-                if ((syntax & RE_BACKSLASH_ESCAPE_IN_LISTS) && c == '\\')
-                  {
-                    if (p == pend) FREE_STACK_RETURN (REG_EESCAPE);
-
-                    PATFETCH (c1);
-                    SET_LIST_BIT (c1);
-		    range_start = c1;
-                    continue;
-                  }
-
-                /* Could be the end of the bracket expression.  If it's
-                   not (i.e., when the bracket expression is `[]' so
-                   far), the ']' character bit gets set way below.  */
-                if (c == ']' && p != p1 + 1)
-                  break;
-
-                /* Look ahead to see if it's a range when the last thing
-                   was a character class.  */
-                if (had_char_class && c == '-' && *p != ']')
-                  FREE_STACK_RETURN (REG_ERANGE);
-
-                /* Look ahead to see if it's a range when the last thing
-                   was a character: if this is a hyphen not at the
-                   beginning or the end of a list, then it's the range
-                   operator.  */
-                if (c == '-'
-                    && !(p - 2 >= pattern && p[-2] == '[')
-                    && !(p - 3 >= pattern && p[-3] == '[' && p[-2] == '^')
-                    && *p != ']')
-                  {
-                    reg_errcode_t ret
-                      = byte_compile_range (range_start, &p, pend, translate,
-					    syntax, b);
-                    if (ret != REG_NOERROR) FREE_STACK_RETURN (ret);
-		    range_start = 0xffffffff;
-                  }
-
-                else if (p[0] == '-' && p[1] != ']')
-                  { /* This handles ranges made up of characters only.  */
-                    reg_errcode_t ret;
-
-		    /* Move past the `-'.  */
-                    PATFETCH (c1);
-
-                    ret = byte_compile_range (c, &p, pend, translate, syntax, b);
-                    if (ret != REG_NOERROR) FREE_STACK_RETURN (ret);
-		    range_start = 0xffffffff;
-                  }
-
-                /* See if we're at the beginning of a possible character
-                   class.  */
-
-                else if (syntax & RE_CHAR_CLASSES && c == '[' && *p == ':')
-                  { /* Leave room for the null.  */
-                    char str[CHAR_CLASS_MAX_LENGTH + 1];
-
-                    PATFETCH (c);
-                    c1 = 0;
-
-                    /* If pattern is `[[:'.  */
-                    if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
-
-                    for (;;)
-                      {
-                        PATFETCH (c);
-                        if ((c == ':' && *p == ']') || p == pend)
-                          break;
-			if (c1 < CHAR_CLASS_MAX_LENGTH)
-			  str[c1++] = c;
-			else
-			  /* This is in any case an invalid class name.  */
-			  str[0] = '\0';
-                      }
-                    str[c1] = '\0';
-
-                    /* If isn't a word bracketed by `[:' and `:]':
-                       undo the ending character, the letters, and leave
-                       the leading `:' and `[' (but set bits for them).  */
-                    if (c == ':' && *p == ']')
-                      {
-# if defined _LIBC || WIDE_CHAR_SUPPORT
-                        boolean is_lower = STREQ (str, "lower");
-                        boolean is_upper = STREQ (str, "upper");
-			wctype_t wt;
-                        int ch;
-
-			wt = IS_CHAR_CLASS (str);
-			if (wt == 0)
-			  FREE_STACK_RETURN (REG_ECTYPE);
-
-                        /* Throw away the ] at the end of the character
-                           class.  */
-                        PATFETCH (c);
-
-                        if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
-
-                        for (ch = 0; ch < 1 << BYTEWIDTH; ++ch)
-			  {
-#  ifdef _LIBC
-			    if (__iswctype (__btowc (ch), wt))
-			      SET_LIST_BIT (ch);
-#  else
-			    if (iswctype (btowc (ch), wt))
-			      SET_LIST_BIT (ch);
-#  endif
-
-			    if (translate && (is_upper || is_lower)
-				&& (ISUPPER (ch) || ISLOWER (ch)))
-			      SET_LIST_BIT (ch);
-			  }
-
-                        had_char_class = true;
-# else
-                        int ch;
-                        boolean is_alnum = STREQ (str, "alnum");
-                        boolean is_alpha = STREQ (str, "alpha");
-                        boolean is_blank = STREQ (str, "blank");
-                        boolean is_cntrl = STREQ (str, "cntrl");
-                        boolean is_digit = STREQ (str, "digit");
-                        boolean is_graph = STREQ (str, "graph");
-                        boolean is_lower = STREQ (str, "lower");
-                        boolean is_print = STREQ (str, "print");
-                        boolean is_punct = STREQ (str, "punct");
-                        boolean is_space = STREQ (str, "space");
-                        boolean is_upper = STREQ (str, "upper");
-                        boolean is_xdigit = STREQ (str, "xdigit");
-
-                        if (!IS_CHAR_CLASS (str))
-			  FREE_STACK_RETURN (REG_ECTYPE);
-
-                        /* Throw away the ] at the end of the character
-                           class.  */
-                        PATFETCH (c);
-
-                        if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
-
-                        for (ch = 0; ch < 1 << BYTEWIDTH; ch++)
-                          {
-			    /* This was split into 3 if's to
-			       avoid an arbitrary limit in some compiler.  */
-                            if (   (is_alnum  && ISALNUM (ch))
-                                || (is_alpha  && ISALPHA (ch))
-                                || (is_blank  && ISBLANK (ch))
-                                || (is_cntrl  && ISCNTRL (ch)))
-			      SET_LIST_BIT (ch);
-			    if (   (is_digit  && ISDIGIT (ch))
-                                || (is_graph  && ISGRAPH (ch))
-                                || (is_lower  && ISLOWER (ch))
-                                || (is_print  && ISPRINT (ch)))
-			      SET_LIST_BIT (ch);
-			    if (   (is_punct  && ISPUNCT (ch))
-                                || (is_space  && ISSPACE (ch))
-                                || (is_upper  && ISUPPER (ch))
-                                || (is_xdigit && ISXDIGIT (ch)))
-			      SET_LIST_BIT (ch);
-			    if (   translate && (is_upper || is_lower)
-				&& (ISUPPER (ch) || ISLOWER (ch)))
-			      SET_LIST_BIT (ch);
-                          }
-                        had_char_class = true;
-# endif	/* libc || wctype.h */
-                      }
-                    else
-                      {
-                        c1++;
-                        while (c1--)
-                          PATUNFETCH;
-                        SET_LIST_BIT ('[');
-                        SET_LIST_BIT (':');
-			range_start = ':';
-                        had_char_class = false;
-                      }
-                  }
-                else if (syntax & RE_CHAR_CLASSES && c == '[' && *p == '=')
-		  {
-		    unsigned char str[MB_LEN_MAX + 1];
-# ifdef _LIBC
-		    uint32_t nrules =
-		      _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
-# endif
-
-		    PATFETCH (c);
-		    c1 = 0;
-
-		    /* If pattern is `[[='.  */
-		    if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
-
-		    for (;;)
-		      {
-			PATFETCH (c);
-			if ((c == '=' && *p == ']') || p == pend)
-			  break;
-			if (c1 < MB_LEN_MAX)
-			  str[c1++] = c;
-			else
-			  /* This is in any case an invalid class name.  */
-			  str[0] = '\0';
-                      }
-		    str[c1] = '\0';
-
-		    if (c == '=' && *p == ']' && str[0] != '\0')
-		      {
-			/* If we have no collation data we use the default
-			   collation in which each character is in a class
-			   by itself.  It also means that ASCII is the
-			   character set and therefore we cannot have character
-			   with more than one byte in the multibyte
-			   representation.  */
-# ifdef _LIBC
-			if (nrules == 0)
-# endif
-			  {
-			    if (c1 != 1)
-			      FREE_STACK_RETURN (REG_ECOLLATE);
-
-			    /* Throw away the ] at the end of the equivalence
-			       class.  */
-			    PATFETCH (c);
-
-			    /* Set the bit for the character.  */
-			    SET_LIST_BIT (str[0]);
-			  }
-# ifdef _LIBC
-			else
-			  {
-			    /* Try to match the byte sequence in `str' against
-			       those known to the collate implementation.
-			       First find out whether the bytes in `str' are
-			       actually from exactly one character.  */
-			    const int32_t *table;
-			    const unsigned char *weights;
-			    const unsigned char *extra;
-			    const int32_t *indirect;
-			    int32_t idx;
-			    const unsigned char *cp = str;
-			    int ch;
-
-			    /* This #include defines a local function!  */
-#  include <locale/weight.h>
-
-			    table = (const int32_t *)
-			      _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB);
-			    weights = (const unsigned char *)
-			      _NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTMB);
-			    extra = (const unsigned char *)
-			      _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB);
-			    indirect = (const int32_t *)
-			      _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB);
-
-			    idx = findidx (&cp);
-			    if (idx == 0 || cp < str + c1)
-			      /* This is no valid character.  */
-			      FREE_STACK_RETURN (REG_ECOLLATE);
-
-			    /* Throw away the ] at the end of the equivalence
-			       class.  */
-			    PATFETCH (c);
-
-			    /* Now we have to go throught the whole table
-			       and find all characters which have the same
-			       first level weight.
-
-			       XXX Note that this is not entirely correct.
-			       we would have to match multibyte sequences
-			       but this is not possible with the current
-			       implementation.  */
-			    for (ch = 1; ch < 256; ++ch)
-			      /* XXX This test would have to be changed if we
-				 would allow matching multibyte sequences.  */
-			      if (table[ch] > 0)
-				{
-				  int32_t idx2 = table[ch];
-				  size_t len = weights[idx2];
-
-				  /* Test whether the lenghts match.  */
-				  if (weights[idx] == len)
-				    {
-				      /* They do.  New compare the bytes of
-					 the weight.  */
-				      size_t cnt = 0;
-
-				      while (cnt < len
-					     && (weights[idx + 1 + cnt]
-						 == weights[idx2 + 1 + cnt]))
-					++cnt;
-
-				      if (cnt == len)
-					/* They match.  Mark the character as
-					   acceptable.  */
-					SET_LIST_BIT (ch);
-				    }
-				}
-			  }
-# endif
-			had_char_class = true;
-		      }
-                    else
-                      {
-                        c1++;
-                        while (c1--)
-                          PATUNFETCH;
-                        SET_LIST_BIT ('[');
-                        SET_LIST_BIT ('=');
-			range_start = '=';
-                        had_char_class = false;
-                      }
-		  }
-                else if (syntax & RE_CHAR_CLASSES && c == '[' && *p == '.')
-		  {
-		    unsigned char str[128];	/* Should be large enough.  */
-# ifdef _LIBC
-		    uint32_t nrules =
-		      _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
-# endif
-
-		    PATFETCH (c);
-		    c1 = 0;
-
-		    /* If pattern is `[[.'.  */
-		    if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
-
-		    for (;;)
-		      {
-			PATFETCH (c);
-			if ((c == '.' && *p == ']') || p == pend)
-			  break;
-			if (c1 < sizeof (str))
-			  str[c1++] = c;
-			else
-			  /* This is in any case an invalid class name.  */
-			  str[0] = '\0';
-                      }
-		    str[c1] = '\0';
-
-		    if (c == '.' && *p == ']' && str[0] != '\0')
-		      {
-			/* If we have no collation data we use the default
-			   collation in which each character is the name
-			   for its own class which contains only the one
-			   character.  It also means that ASCII is the
-			   character set and therefore we cannot have character
-			   with more than one byte in the multibyte
-			   representation.  */
-# ifdef _LIBC
-			if (nrules == 0)
-# endif
-			  {
-			    if (c1 != 1)
-			      FREE_STACK_RETURN (REG_ECOLLATE);
-
-			    /* Throw away the ] at the end of the equivalence
-			       class.  */
-			    PATFETCH (c);
-
-			    /* Set the bit for the character.  */
-			    SET_LIST_BIT (str[0]);
-			    range_start = ((const unsigned char *) str)[0];
-			  }
-# ifdef _LIBC
-			else
-			  {
-			    /* Try to match the byte sequence in `str' against
-			       those known to the collate implementation.
-			       First find out whether the bytes in `str' are
-			       actually from exactly one character.  */
-			    int32_t table_size;
-			    const int32_t *symb_table;
-			    const unsigned char *extra;
-			    int32_t idx;
-			    int32_t elem;
-			    int32_t second;
-			    int32_t hash;
-
-			    table_size =
-			      _NL_CURRENT_WORD (LC_COLLATE,
-						_NL_COLLATE_SYMB_HASH_SIZEMB);
-			    symb_table = (const int32_t *)
-			      _NL_CURRENT (LC_COLLATE,
-					   _NL_COLLATE_SYMB_TABLEMB);
-			    extra = (const unsigned char *)
-			      _NL_CURRENT (LC_COLLATE,
-					   _NL_COLLATE_SYMB_EXTRAMB);
-
-			    /* Locate the character in the hashing table.  */
-			    hash = elem_hash (str, c1);
-
-			    idx = 0;
-			    elem = hash % table_size;
-			    second = hash % (table_size - 2);
-			    while (symb_table[2 * elem] != 0)
-			      {
-				/* First compare the hashing value.  */
-				if (symb_table[2 * elem] == hash
-				    && c1 == extra[symb_table[2 * elem + 1]]
-				    && memcmp (str,
-					       &extra[symb_table[2 * elem + 1]
-						     + 1],
-					       c1) == 0)
-				  {
-				    /* Yep, this is the entry.  */
-				    idx = symb_table[2 * elem + 1];
-				    idx += 1 + extra[idx];
-				    break;
-				  }
-
-				/* Next entry.  */
-				elem += second;
-			      }
-
-			    if (symb_table[2 * elem] == 0)
-			      /* This is no valid character.  */
-			      FREE_STACK_RETURN (REG_ECOLLATE);
-
-			    /* Throw away the ] at the end of the equivalence
-			       class.  */
-			    PATFETCH (c);
-
-			    /* Now add the multibyte character(s) we found
-			       to the accept list.
-
-			       XXX Note that this is not entirely correct.
-			       we would have to match multibyte sequences
-			       but this is not possible with the current
-			       implementation.  Also, we have to match
-			       collating symbols, which expand to more than
-			       one file, as a whole and not allow the
-			       individual bytes.  */
-			    c1 = extra[idx++];
-			    if (c1 == 1)
-			      range_start = extra[idx];
-			    while (c1-- > 0)
-			      {
-				SET_LIST_BIT (extra[idx]);
-				++idx;
-			      }
-			  }
-# endif
-			had_char_class = false;
-		      }
-                    else
-                      {
-                        c1++;
-                        while (c1--)
-                          PATUNFETCH;
-                        SET_LIST_BIT ('[');
-                        SET_LIST_BIT ('.');
-			range_start = '.';
-                        had_char_class = false;
-                      }
-		  }
-                else
-                  {
-                    had_char_class = false;
-                    SET_LIST_BIT (c);
-		    range_start = c;
-                  }
-              }
-
-            /* Discard any (non)matching list bytes that are all 0 at the
-               end of the map.  Decrease the map-length byte too.  */
-            while ((int) b[-1] > 0 && b[b[-1] - 1] == 0)
-              b[-1]--;
-            b += b[-1];
-#endif /* WCHAR */
-          }
-          break;
-
-
-	case '(':
-          if (syntax & RE_NO_BK_PARENS)
-            goto handle_open;
-          else
-            goto normal_char;
-
-
-        case ')':
-          if (syntax & RE_NO_BK_PARENS)
-            goto handle_close;
-          else
-            goto normal_char;
-
-
-        case '\n':
-          if (syntax & RE_NEWLINE_ALT)
-            goto handle_alt;
-          else
-            goto normal_char;
-
-
-	case '|':
-          if (syntax & RE_NO_BK_VBAR)
-            goto handle_alt;
-          else
-            goto normal_char;
-
-
-        case '{':
-           if (syntax & RE_INTERVALS && syntax & RE_NO_BK_BRACES)
-             goto handle_interval;
-           else
-             goto normal_char;
-
-
-        case '\\':
-          if (p == pend) FREE_STACK_RETURN (REG_EESCAPE);
-
-          /* Do not translate the character after the \, so that we can
-             distinguish, e.g., \B from \b, even if we normally would
-             translate, e.g., B to b.  */
-          PATFETCH_RAW (c);
-
-          switch (c)
-            {
-            case '(':
-              if (syntax & RE_NO_BK_PARENS)
-                goto normal_backslash;
-
-            handle_open:
-              bufp->re_nsub++;
-              regnum++;
-
-              if (COMPILE_STACK_FULL)
-                {
-                  RETALLOC (compile_stack.stack, compile_stack.size << 1,
-                            compile_stack_elt_t);
-                  if (compile_stack.stack == NULL) return REG_ESPACE;
-
-                  compile_stack.size <<= 1;
-                }
-
-              /* These are the values to restore when we hit end of this
-                 group.  They are all relative offsets, so that if the
-                 whole pattern moves because of realloc, they will still
-                 be valid.  */
-              COMPILE_STACK_TOP.begalt_offset = begalt - COMPILED_BUFFER_VAR;
-              COMPILE_STACK_TOP.fixup_alt_jump
-                = fixup_alt_jump ? fixup_alt_jump - COMPILED_BUFFER_VAR + 1 : 0;
-              COMPILE_STACK_TOP.laststart_offset = b - COMPILED_BUFFER_VAR;
-              COMPILE_STACK_TOP.regnum = regnum;
-
-              /* We will eventually replace the 0 with the number of
-                 groups inner to this one.  But do not push a
-                 start_memory for groups beyond the last one we can
-                 represent in the compiled pattern.  */
-              if (regnum <= MAX_REGNUM)
-                {
-                  COMPILE_STACK_TOP.inner_group_offset = b
-		    - COMPILED_BUFFER_VAR + 2;
-                  BUF_PUSH_3 (start_memory, regnum, 0);
-                }
-
-              compile_stack.avail++;
-
-              fixup_alt_jump = 0;
-              laststart = 0;
-              begalt = b;
-	      /* If we've reached MAX_REGNUM groups, then this open
-		 won't actually generate any code, so we'll have to
-		 clear pending_exact explicitly.  */
-	      pending_exact = 0;
-              break;
-
-
-            case ')':
-              if (syntax & RE_NO_BK_PARENS) goto normal_backslash;
-
-              if (COMPILE_STACK_EMPTY)
-		{
-		  if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)
-		    goto normal_backslash;
-		  else
-		    FREE_STACK_RETURN (REG_ERPAREN);
-		}
-
-            handle_close:
-              if (fixup_alt_jump)
-                { /* Push a dummy failure point at the end of the
-                     alternative for a possible future
-                     `pop_failure_jump' to pop.  See comments at
-                     `push_dummy_failure' in `re_match_2'.  */
-                  BUF_PUSH (push_dummy_failure);
-
-                  /* We allocated space for this jump when we assigned
-                     to `fixup_alt_jump', in the `handle_alt' case below.  */
-                  STORE_JUMP (jump_past_alt, fixup_alt_jump, b - 1);
-                }
-
-              /* See similar code for backslashed left paren above.  */
-              if (COMPILE_STACK_EMPTY)
-		{
-		  if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)
-		    goto normal_char;
-		  else
-		    FREE_STACK_RETURN (REG_ERPAREN);
-		}
-
-              /* Since we just checked for an empty stack above, this
-                 ``can't happen''.  */
-              assert (compile_stack.avail != 0);
-              {
-                /* We don't just want to restore into `regnum', because
-                   later groups should continue to be numbered higher,
-                   as in `(ab)c(de)' -- the second group is #2.  */
-                regnum_t this_group_regnum;
-
-                compile_stack.avail--;
-                begalt = COMPILED_BUFFER_VAR + COMPILE_STACK_TOP.begalt_offset;
-                fixup_alt_jump
-                  = COMPILE_STACK_TOP.fixup_alt_jump
-                    ? COMPILED_BUFFER_VAR + COMPILE_STACK_TOP.fixup_alt_jump - 1
-                    : 0;
-                laststart = COMPILED_BUFFER_VAR + COMPILE_STACK_TOP.laststart_offset;
-                this_group_regnum = COMPILE_STACK_TOP.regnum;
-		/* If we've reached MAX_REGNUM groups, then this open
-		   won't actually generate any code, so we'll have to
-		   clear pending_exact explicitly.  */
-		pending_exact = 0;
-
-                /* We're at the end of the group, so now we know how many
-                   groups were inside this one.  */
-                if (this_group_regnum <= MAX_REGNUM)
-                  {
-		    UCHAR_T *inner_group_loc
-                      = COMPILED_BUFFER_VAR + COMPILE_STACK_TOP.inner_group_offset;
-
-                    *inner_group_loc = regnum - this_group_regnum;
-                    BUF_PUSH_3 (stop_memory, this_group_regnum,
-                                regnum - this_group_regnum);
-                  }
-              }
-              break;
-
-
-            case '|':					/* `\|'.  */
-              if (syntax & RE_LIMITED_OPS || syntax & RE_NO_BK_VBAR)
-                goto normal_backslash;
-            handle_alt:
-              if (syntax & RE_LIMITED_OPS)
-                goto normal_char;
-
-              /* Insert before the previous alternative a jump which
-                 jumps to this alternative if the former fails.  */
-              GET_BUFFER_SPACE (1 + OFFSET_ADDRESS_SIZE);
-              INSERT_JUMP (on_failure_jump, begalt,
-			   b + 2 + 2 * OFFSET_ADDRESS_SIZE);
-              pending_exact = 0;
-              b += 1 + OFFSET_ADDRESS_SIZE;
-
-              /* The alternative before this one has a jump after it
-                 which gets executed if it gets matched.  Adjust that
-                 jump so it will jump to this alternative's analogous
-                 jump (put in below, which in turn will jump to the next
-                 (if any) alternative's such jump, etc.).  The last such
-                 jump jumps to the correct final destination.  A picture:
-                          _____ _____
-                          |   | |   |
-                          |   v |   v
-                         a | b   | c
-
-                 If we are at `b', then fixup_alt_jump right now points to a
-                 three-byte space after `a'.  We'll put in the jump, set
-                 fixup_alt_jump to right after `b', and leave behind three
-                 bytes which we'll fill in when we get to after `c'.  */
-
-              if (fixup_alt_jump)
-                STORE_JUMP (jump_past_alt, fixup_alt_jump, b);
-
-              /* Mark and leave space for a jump after this alternative,
-                 to be filled in later either by next alternative or
-                 when know we're at the end of a series of alternatives.  */
-              fixup_alt_jump = b;
-              GET_BUFFER_SPACE (1 + OFFSET_ADDRESS_SIZE);
-              b += 1 + OFFSET_ADDRESS_SIZE;
-
-              laststart = 0;
-              begalt = b;
-              break;
-
-
-            case '{':
-              /* If \{ is a literal.  */
-              if (!(syntax & RE_INTERVALS)
-                     /* If we're at `\{' and it's not the open-interval
-                        operator.  */
-		  || (syntax & RE_NO_BK_BRACES))
-                goto normal_backslash;
-
-            handle_interval:
-              {
-                /* If got here, then the syntax allows intervals.  */
-
-                /* At least (most) this many matches must be made.  */
-                int lower_bound = -1, upper_bound = -1;
-
-		/* Place in the uncompiled pattern (i.e., just after
-		   the '{') to go back to if the interval is invalid.  */
-		const CHAR_T *beg_interval = p;
-
-                if (p == pend)
-		  goto invalid_interval;
-
-                GET_UNSIGNED_NUMBER (lower_bound);
-
-                if (c == ',')
-                  {
-                    GET_UNSIGNED_NUMBER (upper_bound);
-		    if (upper_bound < 0)
-		      upper_bound = RE_DUP_MAX;
-                  }
-                else
-                  /* Interval such as `{1}' => match exactly once. */
-                  upper_bound = lower_bound;
-
-                if (! (0 <= lower_bound && lower_bound <= upper_bound))
-		  goto invalid_interval;
-
-                if (!(syntax & RE_NO_BK_BRACES))
-                  {
-		    if (c != '\\' || p == pend)
-		      goto invalid_interval;
-                    PATFETCH (c);
-                  }
-
-                if (c != '}')
-		  goto invalid_interval;
-
-                /* If it's invalid to have no preceding re.  */
-                if (!laststart)
-                  {
-		    if (syntax & RE_CONTEXT_INVALID_OPS
-			&& !(syntax & RE_INVALID_INTERVAL_ORD))
-                      FREE_STACK_RETURN (REG_BADRPT);
-                    else if (syntax & RE_CONTEXT_INDEP_OPS)
-                      laststart = b;
-                    else
-                      goto unfetch_interval;
-                  }
-
-                /* We just parsed a valid interval.  */
-
-                if (RE_DUP_MAX < upper_bound)
-		  FREE_STACK_RETURN (REG_BADBR);
-
-                /* If the upper bound is zero, don't want to succeed at
-                   all; jump from `laststart' to `b + 3', which will be
-		   the end of the buffer after we insert the jump.  */
-		/* ifdef WCHAR, 'b + 1 + OFFSET_ADDRESS_SIZE'
-		   instead of 'b + 3'.  */
-                 if (upper_bound == 0)
-                   {
-                     GET_BUFFER_SPACE (1 + OFFSET_ADDRESS_SIZE);
-                     INSERT_JUMP (jump, laststart, b + 1
-				  + OFFSET_ADDRESS_SIZE);
-                     b += 1 + OFFSET_ADDRESS_SIZE;
-                   }
-
-                 /* Otherwise, we have a nontrivial interval.  When
-                    we're all done, the pattern will look like:
-                      set_number_at <jump count> <upper bound>
-                      set_number_at <succeed_n count> <lower bound>
-                      succeed_n <after jump addr> <succeed_n count>
-                      <body of loop>
-                      jump_n <succeed_n addr> <jump count>
-                    (The upper bound and `jump_n' are omitted if
-                    `upper_bound' is 1, though.)  */
-                 else
-                   { /* If the upper bound is > 1, we need to insert
-                        more at the end of the loop.  */
-                     unsigned nbytes = 2 + 4 * OFFSET_ADDRESS_SIZE +
-		       (upper_bound > 1) * (2 + 4 * OFFSET_ADDRESS_SIZE);
-
-                     GET_BUFFER_SPACE (nbytes);
-
-                     /* Initialize lower bound of the `succeed_n', even
-                        though it will be set during matching by its
-                        attendant `set_number_at' (inserted next),
-                        because `re_compile_fastmap' needs to know.
-                        Jump to the `jump_n' we might insert below.  */
-                     INSERT_JUMP2 (succeed_n, laststart,
-                                   b + 1 + 2 * OFFSET_ADDRESS_SIZE
-				   + (upper_bound > 1) * (1 + 2 * OFFSET_ADDRESS_SIZE)
-				   , lower_bound);
-                     b += 1 + 2 * OFFSET_ADDRESS_SIZE;
-
-                     /* Code to initialize the lower bound.  Insert
-                        before the `succeed_n'.  The `5' is the last two
-                        bytes of this `set_number_at', plus 3 bytes of
-                        the following `succeed_n'.  */
-		     /* ifdef WCHAR, The '1+2*OFFSET_ADDRESS_SIZE'
-			is the 'set_number_at', plus '1+OFFSET_ADDRESS_SIZE'
-			of the following `succeed_n'.  */
-                     PREFIX(insert_op2) (set_number_at, laststart, 1
-				 + 2 * OFFSET_ADDRESS_SIZE, lower_bound, b);
-                     b += 1 + 2 * OFFSET_ADDRESS_SIZE;
-
-                     if (upper_bound > 1)
-                       { /* More than one repetition is allowed, so
-                            append a backward jump to the `succeed_n'
-                            that starts this interval.
-
-                            When we've reached this during matching,
-                            we'll have matched the interval once, so
-                            jump back only `upper_bound - 1' times.  */
-                         STORE_JUMP2 (jump_n, b, laststart
-				      + 2 * OFFSET_ADDRESS_SIZE + 1,
-                                      upper_bound - 1);
-                         b += 1 + 2 * OFFSET_ADDRESS_SIZE;
-
-                         /* The location we want to set is the second
-                            parameter of the `jump_n'; that is `b-2' as
-                            an absolute address.  `laststart' will be
-                            the `set_number_at' we're about to insert;
-                            `laststart+3' the number to set, the source
-                            for the relative address.  But we are
-                            inserting into the middle of the pattern --
-                            so everything is getting moved up by 5.
-                            Conclusion: (b - 2) - (laststart + 3) + 5,
-                            i.e., b - laststart.
-
-                            We insert this at the beginning of the loop
-                            so that if we fail during matching, we'll
-                            reinitialize the bounds.  */
-                         PREFIX(insert_op2) (set_number_at, laststart,
-					     b - laststart,
-					     upper_bound - 1, b);
-                         b += 1 + 2 * OFFSET_ADDRESS_SIZE;
-                       }
-                   }
-                pending_exact = 0;
-		break;
-
-	      invalid_interval:
-		if (!(syntax & RE_INVALID_INTERVAL_ORD))
-		  FREE_STACK_RETURN (p == pend ? REG_EBRACE : REG_BADBR);
-	      unfetch_interval:
-		/* Match the characters as literals.  */
-		p = beg_interval;
-		c = '{';
-		if (syntax & RE_NO_BK_BRACES)
-		  goto normal_char;
-		else
-		  goto normal_backslash;
-	      }
-
-#ifdef emacs
-            /* There is no way to specify the before_dot and after_dot
-               operators.  rms says this is ok.  --karl  */
-            case '=':
-              BUF_PUSH (at_dot);
-              break;
-
-            case 's':
-              laststart = b;
-              PATFETCH (c);
-              BUF_PUSH_2 (syntaxspec, syntax_spec_code[c]);
-              break;
-
-            case 'S':
-              laststart = b;
-              PATFETCH (c);
-              BUF_PUSH_2 (notsyntaxspec, syntax_spec_code[c]);
-              break;
-#endif /* emacs */
-
-
-            case 'w':
-	      if (syntax & RE_NO_GNU_OPS)
-		goto normal_char;
-              laststart = b;
-              BUF_PUSH (wordchar);
-              break;
-
-
-            case 'W':
-	      if (syntax & RE_NO_GNU_OPS)
-		goto normal_char;
-              laststart = b;
-              BUF_PUSH (notwordchar);
-              break;
-
-
-            case '<':
-	      if (syntax & RE_NO_GNU_OPS)
-		goto normal_char;
-              BUF_PUSH (wordbeg);
-              break;
-
-            case '>':
-	      if (syntax & RE_NO_GNU_OPS)
-		goto normal_char;
-              BUF_PUSH (wordend);
-              break;
-
-            case 'b':
-	      if (syntax & RE_NO_GNU_OPS)
-		goto normal_char;
-              BUF_PUSH (wordbound);
-              break;
-
-            case 'B':
-	      if (syntax & RE_NO_GNU_OPS)
-		goto normal_char;
-              BUF_PUSH (notwordbound);
-              break;
-
-            case '`':
-	      if (syntax & RE_NO_GNU_OPS)
-		goto normal_char;
-              BUF_PUSH (begbuf);
-              break;
-
-            case '\'':
-	      if (syntax & RE_NO_GNU_OPS)
-		goto normal_char;
-              BUF_PUSH (endbuf);
-              break;
-
-            case '1': case '2': case '3': case '4': case '5':
-            case '6': case '7': case '8': case '9':
-              if (syntax & RE_NO_BK_REFS)
-                goto normal_char;
-
-              c1 = c - '0';
-
-              if (c1 > regnum)
-                FREE_STACK_RETURN (REG_ESUBREG);
-
-              /* Can't back reference to a subexpression if inside of it.  */
-              if (group_in_compile_stack (compile_stack, (regnum_t) c1))
-                goto normal_char;
-
-              laststart = b;
-              BUF_PUSH_2 (duplicate, c1);
-              break;
-
-
-            case '+':
-            case '?':
-              if (syntax & RE_BK_PLUS_QM)
-                goto handle_plus;
-              else
-                goto normal_backslash;
-
-            default:
-            normal_backslash:
-              /* You might think it would be useful for \ to mean
-                 not to translate; but if we don't translate it
-                 it will never match anything.  */
-              c = TRANSLATE (c);
-              goto normal_char;
-            }
-          break;
-
-
-	default:
-        /* Expects the character in `c'.  */
-	normal_char:
-	      /* If no exactn currently being built.  */
-          if (!pending_exact
-#ifdef WCHAR
-	      /* If last exactn handle binary(or character) and
-		 new exactn handle character(or binary).  */
-	      || is_exactn_bin != is_binary[p - 1 - pattern]
-#endif /* WCHAR */
-
-              /* If last exactn not at current position.  */
-              || pending_exact + *pending_exact + 1 != b
-
-              /* We have only one byte following the exactn for the count.  */
-	      || *pending_exact == (1 << BYTEWIDTH) - 1
-
-              /* If followed by a repetition operator.  */
-              || *p == '*' || *p == '^'
-	      || ((syntax & RE_BK_PLUS_QM)
-		  ? *p == '\\' && (p[1] == '+' || p[1] == '?')
-		  : (*p == '+' || *p == '?'))
-	      || ((syntax & RE_INTERVALS)
-                  && ((syntax & RE_NO_BK_BRACES)
-		      ? *p == '{'
-                      : (p[0] == '\\' && p[1] == '{'))))
-	    {
-	      /* Start building a new exactn.  */
-
-              laststart = b;
-
-#ifdef WCHAR
-	      /* Is this exactn binary data or character? */
-	      is_exactn_bin = is_binary[p - 1 - pattern];
-	      if (is_exactn_bin)
-		  BUF_PUSH_2 (exactn_bin, 0);
-	      else
-		  BUF_PUSH_2 (exactn, 0);
-#else
-	      BUF_PUSH_2 (exactn, 0);
-#endif /* WCHAR */
-	      pending_exact = b - 1;
-            }
-
-	  BUF_PUSH (c);
-          (*pending_exact)++;
-	  break;
-        } /* switch (c) */
-    } /* while p != pend */
-
-
-  /* Through the pattern now.  */
-
-  if (fixup_alt_jump)
-    STORE_JUMP (jump_past_alt, fixup_alt_jump, b);
-
-  if (!COMPILE_STACK_EMPTY)
-    FREE_STACK_RETURN (REG_EPAREN);
-
-  /* If we don't want backtracking, force success
-     the first time we reach the end of the compiled pattern.  */
-  if (syntax & RE_NO_POSIX_BACKTRACKING)
-    BUF_PUSH (succeed);
-
-#ifdef WCHAR
-  free (pattern);
-  free (mbs_offset);
-  free (is_binary);
-#endif
-  free (compile_stack.stack);
-
-  /* We have succeeded; set the length of the buffer.  */
-#ifdef WCHAR
-  bufp->used = (uintptr_t) b - (uintptr_t) COMPILED_BUFFER_VAR;
-#else
-  bufp->used = b - bufp->buffer;
-#endif
-
-#ifdef DEBUG
-  if (debug)
-    {
-      DEBUG_PRINT1 ("\nCompiled pattern: \n");
-      PREFIX(print_compiled_pattern) (bufp);
-    }
-#endif /* DEBUG */
-
-#ifndef MATCH_MAY_ALLOCATE
-  /* Initialize the failure stack to the largest possible stack.  This
-     isn't necessary unless we're trying to avoid calling alloca in
-     the search and match routines.  */
-  {
-    int num_regs = bufp->re_nsub + 1;
-
-    /* Since DOUBLE_FAIL_STACK refuses to double only if the current size
-       is strictly greater than re_max_failures, the largest possible stack
-       is 2 * re_max_failures failure points.  */
-    if (fail_stack.size < (2 * re_max_failures * MAX_FAILURE_ITEMS))
-      {
-	fail_stack.size = (2 * re_max_failures * MAX_FAILURE_ITEMS);
-
-# ifdef emacs
-	if (! fail_stack.stack)
-	  fail_stack.stack
-	    = (PREFIX(fail_stack_elt_t) *) xmalloc (fail_stack.size
-				    * sizeof (PREFIX(fail_stack_elt_t)));
-	else
-	  fail_stack.stack
-	    = (PREFIX(fail_stack_elt_t) *) xrealloc (fail_stack.stack,
-				     (fail_stack.size
-				      * sizeof (PREFIX(fail_stack_elt_t))));
-# else /* not emacs */
-	if (! fail_stack.stack)
-	  fail_stack.stack
-	    = (PREFIX(fail_stack_elt_t) *) malloc (fail_stack.size
-				   * sizeof (PREFIX(fail_stack_elt_t)));
-	else
-	  fail_stack.stack
-	    = (PREFIX(fail_stack_elt_t) *) realloc (fail_stack.stack,
-					    (fail_stack.size
-				     * sizeof (PREFIX(fail_stack_elt_t))));
-# endif /* not emacs */
-      }
-
-   PREFIX(regex_grow_registers) (num_regs);
-  }
-#endif /* not MATCH_MAY_ALLOCATE */
-
-  return REG_NOERROR;
-} /* regex_compile */
-
-/* Subroutines for `regex_compile'.  */
-
-/* Store OP at LOC followed by two-byte integer parameter ARG.  */
-/* ifdef WCHAR, integer parameter is 1 wchar_t.  */
-
-static void
-PREFIX(store_op1) (re_opcode_t op, UCHAR_T *loc, int arg)
-{
-  *loc = (UCHAR_T) op;
-  STORE_NUMBER (loc + 1, arg);
-}
-
-
-/* Like `store_op1', but for two two-byte parameters ARG1 and ARG2.  */
-/* ifdef WCHAR, integer parameter is 1 wchar_t.  */
-
-static void
-PREFIX(store_op2) (re_opcode_t op, UCHAR_T *loc, int arg1, int arg2)
-{
-  *loc = (UCHAR_T) op;
-  STORE_NUMBER (loc + 1, arg1);
-  STORE_NUMBER (loc + 1 + OFFSET_ADDRESS_SIZE, arg2);
-}
-
-
-/* Copy the bytes from LOC to END to open up three bytes of space at LOC
-   for OP followed by two-byte integer parameter ARG.  */
-/* ifdef WCHAR, integer parameter is 1 wchar_t.  */
-
-static void
-PREFIX(insert_op1) (re_opcode_t op, UCHAR_T *loc, int arg, UCHAR_T *end)
-{
-  register UCHAR_T *pfrom = end;
-  register UCHAR_T *pto = end + 1 + OFFSET_ADDRESS_SIZE;
-
-  while (pfrom != loc)
-    *--pto = *--pfrom;
-
-  PREFIX(store_op1) (op, loc, arg);
-}
-
-
-/* Like `insert_op1', but for two two-byte parameters ARG1 and ARG2.  */
-/* ifdef WCHAR, integer parameter is 1 wchar_t.  */
-
-static void
-PREFIX(insert_op2) (re_opcode_t op, UCHAR_T *loc, int arg1,
-                    int arg2, UCHAR_T *end)
-{
-  register UCHAR_T *pfrom = end;
-  register UCHAR_T *pto = end + 1 + 2 * OFFSET_ADDRESS_SIZE;
-
-  while (pfrom != loc)
-    *--pto = *--pfrom;
-
-  PREFIX(store_op2) (op, loc, arg1, arg2);
-}
-
-
-/* P points to just after a ^ in PATTERN.  Return true if that ^ comes
-   after an alternative or a begin-subexpression.  We assume there is at
-   least one character before the ^.  */
-
-static boolean
-PREFIX(at_begline_loc_p) (const CHAR_T *pattern, const CHAR_T *p,
-                          reg_syntax_t syntax)
-{
-  const CHAR_T *prev = p - 2;
-  boolean prev_prev_backslash = prev > pattern && prev[-1] == '\\';
-
-  return
-       /* After a subexpression?  */
-       (*prev == '(' && (syntax & RE_NO_BK_PARENS || prev_prev_backslash))
-       /* After an alternative?  */
-    || (*prev == '|' && (syntax & RE_NO_BK_VBAR || prev_prev_backslash));
-}
-
-
-/* The dual of at_begline_loc_p.  This one is for $.  We assume there is
-   at least one character after the $, i.e., `P < PEND'.  */
-
-static boolean
-PREFIX(at_endline_loc_p) (const CHAR_T *p, const CHAR_T *pend,
-                          reg_syntax_t syntax)
-{
-  const CHAR_T *next = p;
-  boolean next_backslash = *next == '\\';
-  const CHAR_T *next_next = p + 1 < pend ? p + 1 : 0;
-
-  return
-       /* Before a subexpression?  */
-       (syntax & RE_NO_BK_PARENS ? *next == ')'
-        : next_backslash && next_next && *next_next == ')')
-       /* Before an alternative?  */
-    || (syntax & RE_NO_BK_VBAR ? *next == '|'
-        : next_backslash && next_next && *next_next == '|');
-}
-
-#else /* not INSIDE_RECURSION */
-
-/* Returns true if REGNUM is in one of COMPILE_STACK's elements and
-   false if it's not.  */
-
-static boolean
-group_in_compile_stack (compile_stack_type compile_stack, regnum_t regnum)
-{
-  int this_element;
-
-  for (this_element = compile_stack.avail - 1;
-       this_element >= 0;
-       this_element--)
-    if (compile_stack.stack[this_element].regnum == regnum)
-      return true;
-
-  return false;
-}
-#endif /* not INSIDE_RECURSION */
-
-#ifdef INSIDE_RECURSION
-
-#ifdef WCHAR
-/* This insert space, which size is "num", into the pattern at "loc".
-   "end" must point the end of the allocated buffer.  */
-static void
-insert_space (int num, CHAR_T *loc, CHAR_T *end)
-{
-  register CHAR_T *pto = end;
-  register CHAR_T *pfrom = end - num;
-
-  while (pfrom >= loc)
-    *pto-- = *pfrom--;
-}
-#endif /* WCHAR */
-
-#ifdef WCHAR
-static reg_errcode_t
-wcs_compile_range (CHAR_T range_start_char, const CHAR_T **p_ptr,
-                   const CHAR_T *pend, RE_TRANSLATE_TYPE translate,
-                   reg_syntax_t syntax, CHAR_T *b, CHAR_T *char_set)
-{
-  const CHAR_T *p = *p_ptr;
-  CHAR_T range_start, range_end;
-  reg_errcode_t ret;
-# ifdef _LIBC
-  uint32_t nrules;
-  uint32_t start_val, end_val;
-# endif
-  if (p == pend)
-    return REG_ERANGE;
-
-# ifdef _LIBC
-  nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
-  if (nrules != 0)
-    {
-      const char *collseq = (const char *) _NL_CURRENT(LC_COLLATE,
-						       _NL_COLLATE_COLLSEQWC);
-      const unsigned char *extra = (const unsigned char *)
-	_NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB);
-
-      if (range_start_char < -1)
-	{
-	  /* range_start is a collating symbol.  */
-	  int32_t *wextra;
-	  /* Retreive the index and get collation sequence value.  */
-	  wextra = (int32_t*)(extra + char_set[-range_start_char]);
-	  start_val = wextra[1 + *wextra];
-	}
-      else
-	start_val = collseq_table_lookup(collseq, TRANSLATE(range_start_char));
-
-      end_val = collseq_table_lookup (collseq, TRANSLATE (p[0]));
-
-      /* Report an error if the range is empty and the syntax prohibits
-	 this.  */
-      ret = ((syntax & RE_NO_EMPTY_RANGES)
-	     && (start_val > end_val))? REG_ERANGE : REG_NOERROR;
-
-      /* Insert space to the end of the char_ranges.  */
-      insert_space(2, b - char_set[5] - 2, b - 1);
-      *(b - char_set[5] - 2) = (wchar_t)start_val;
-      *(b - char_set[5] - 1) = (wchar_t)end_val;
-      char_set[4]++; /* ranges_index */
-    }
-  else
-# endif
-    {
-      range_start = (range_start_char >= 0)? TRANSLATE (range_start_char):
-	range_start_char;
-      range_end = TRANSLATE (p[0]);
-      /* Report an error if the range is empty and the syntax prohibits
-	 this.  */
-      ret = ((syntax & RE_NO_EMPTY_RANGES)
-	     && (range_start > range_end))? REG_ERANGE : REG_NOERROR;
-
-      /* Insert space to the end of the char_ranges.  */
-      insert_space(2, b - char_set[5] - 2, b - 1);
-      *(b - char_set[5] - 2) = range_start;
-      *(b - char_set[5] - 1) = range_end;
-      char_set[4]++; /* ranges_index */
-    }
-  /* Have to increment the pointer into the pattern string, so the
-     caller isn't still at the ending character.  */
-  (*p_ptr)++;
-
-  return ret;
-}
-#else /* BYTE */
-/* Read the ending character of a range (in a bracket expression) from the
-   uncompiled pattern *P_PTR (which ends at PEND).  We assume the
-   starting character is in `P[-2]'.  (`P[-1]' is the character `-'.)
-   Then we set the translation of all bits between the starting and
-   ending characters (inclusive) in the compiled pattern B.
-
-   Return an error code.
-
-   We use these short variable names so we can use the same macros as
-   `regex_compile' itself.  */
-
-static reg_errcode_t
-byte_compile_range (unsigned int range_start_char, const char **p_ptr,
-                    const char *pend, RE_TRANSLATE_TYPE translate,
-                    reg_syntax_t syntax, unsigned char *b)
-{
-  unsigned this_char;
-  const char *p = *p_ptr;
-  reg_errcode_t ret;
-# if _LIBC
-  const unsigned char *collseq;
-  unsigned int start_colseq;
-  unsigned int end_colseq;
-# else
-  unsigned end_char;
-# endif
-
-  if (p == pend)
-    return REG_ERANGE;
-
-  /* Have to increment the pointer into the pattern string, so the
-     caller isn't still at the ending character.  */
-  (*p_ptr)++;
-
-  /* Report an error if the range is empty and the syntax prohibits this.  */
-  ret = syntax & RE_NO_EMPTY_RANGES ? REG_ERANGE : REG_NOERROR;
-
-# if _LIBC
-  collseq = (const unsigned char *) _NL_CURRENT (LC_COLLATE,
-						 _NL_COLLATE_COLLSEQMB);
-
-  start_colseq = collseq[(unsigned char) TRANSLATE (range_start_char)];
-  end_colseq = collseq[(unsigned char) TRANSLATE (p[0])];
-  for (this_char = 0; this_char <= (unsigned char) -1; ++this_char)
-    {
-      unsigned int this_colseq = collseq[(unsigned char) TRANSLATE (this_char)];
-
-      if (start_colseq <= this_colseq && this_colseq <= end_colseq)
-	{
-	  SET_LIST_BIT (TRANSLATE (this_char));
-	  ret = REG_NOERROR;
-	}
-    }
-# else
-  /* Here we see why `this_char' has to be larger than an `unsigned
-     char' -- we would otherwise go into an infinite loop, since all
-     characters <= 0xff.  */
-  range_start_char = TRANSLATE (range_start_char);
-  /* TRANSLATE(p[0]) is casted to char (not unsigned char) in TRANSLATE,
-     and some compilers cast it to int implicitly, so following for_loop
-     may fall to (almost) infinite loop.
-     e.g. If translate[p[0]] = 0xff, end_char may equals to 0xffffffff.
-     To avoid this, we cast p[0] to unsigned int and truncate it.  */
-  end_char = ((unsigned)TRANSLATE(p[0]) & ((1 << BYTEWIDTH) - 1));
-
-  for (this_char = range_start_char; this_char <= end_char; ++this_char)
-    {
-      SET_LIST_BIT (TRANSLATE (this_char));
-      ret = REG_NOERROR;
-    }
-# endif
-
-  return ret;
-}
-#endif /* WCHAR */
-
-/* re_compile_fastmap computes a ``fastmap'' for the compiled pattern in
-   BUFP.  A fastmap records which of the (1 << BYTEWIDTH) possible
-   characters can start a string that matches the pattern.  This fastmap
-   is used by re_search to skip quickly over impossible starting points.
-
-   The caller must supply the address of a (1 << BYTEWIDTH)-byte data
-   area as BUFP->fastmap.
-
-   We set the `fastmap', `fastmap_accurate', and `can_be_null' fields in
-   the pattern buffer.
-
-   Returns 0 if we succeed, -2 if an internal error.   */
-
-#ifdef WCHAR
-/* local function for re_compile_fastmap.
-   truncate wchar_t character to char.  */
-static unsigned char truncate_wchar (CHAR_T c);
-
-static unsigned char
-truncate_wchar (CHAR_T c)
-{
-  unsigned char buf[MB_CUR_MAX];
-  mbstate_t state;
-  int retval;
-  memset (&state, '\0', sizeof (state));
-# ifdef _LIBC
-  retval = __wcrtomb (buf, c, &state);
-# else
-  retval = wcrtomb (buf, c, &state);
-# endif
-  return retval > 0 ? buf[0] : (unsigned char) c;
-}
-#endif /* WCHAR */
-
-static int
-PREFIX(re_compile_fastmap) (struct re_pattern_buffer *bufp)
-{
-  int j, k;
-#ifdef MATCH_MAY_ALLOCATE
-  PREFIX(fail_stack_type) fail_stack;
-#endif
-#ifndef REGEX_MALLOC
-  char *destination;
-#endif
-
-  register char *fastmap = bufp->fastmap;
-
-#ifdef WCHAR
-  /* We need to cast pattern to (wchar_t*), because we casted this compiled
-     pattern to (char*) in regex_compile.  */
-  UCHAR_T *pattern = (UCHAR_T*)bufp->buffer;
-  register UCHAR_T *pend = (UCHAR_T*) (bufp->buffer + bufp->used);
-#else /* BYTE */
-  UCHAR_T *pattern = bufp->buffer;
-  register UCHAR_T *pend = pattern + bufp->used;
-#endif /* WCHAR */
-  UCHAR_T *p = pattern;
-
-#ifdef REL_ALLOC
-  /* This holds the pointer to the failure stack, when
-     it is allocated relocatably.  */
-  fail_stack_elt_t *failure_stack_ptr;
-#endif
-
-  /* Assume that each path through the pattern can be null until
-     proven otherwise.  We set this false at the bottom of switch
-     statement, to which we get only if a particular path doesn't
-     match the empty string.  */
-  boolean path_can_be_null = true;
-
-  /* We aren't doing a `succeed_n' to begin with.  */
-  boolean succeed_n_p = false;
-
-  assert (fastmap != NULL && p != NULL);
-
-  INIT_FAIL_STACK ();
-  bzero (fastmap, 1 << BYTEWIDTH);  /* Assume nothing's valid.  */
-  bufp->fastmap_accurate = 1;	    /* It will be when we're done.  */
-  bufp->can_be_null = 0;
-
-  while (1)
-    {
-      if (p == pend || *p == (UCHAR_T) succeed)
-	{
-	  /* We have reached the (effective) end of pattern.  */
-	  if (!FAIL_STACK_EMPTY ())
-	    {
-	      bufp->can_be_null |= path_can_be_null;
-
-	      /* Reset for next path.  */
-	      path_can_be_null = true;
-
-	      p = fail_stack.stack[--fail_stack.avail].pointer;
-
-	      continue;
-	    }
-	  else
-	    break;
-	}
-
-      /* We should never be about to go beyond the end of the pattern.  */
-      assert (p < pend);
-
-      switch (SWITCH_ENUM_CAST ((re_opcode_t) *p++))
-	{
-
-        /* I guess the idea here is to simply not bother with a fastmap
-           if a backreference is used, since it's too hard to figure out
-           the fastmap for the corresponding group.  Setting
-           `can_be_null' stops `re_search_2' from using the fastmap, so
-           that is all we do.  */
-	case duplicate:
-	  bufp->can_be_null = 1;
-          goto done;
-
-
-      /* Following are the cases which match a character.  These end
-         with `break'.  */
-
-#ifdef WCHAR
-	case exactn:
-          fastmap[truncate_wchar(p[1])] = 1;
-	  break;
-#else /* BYTE */
-	case exactn:
-          fastmap[p[1]] = 1;
-	  break;
-#endif /* WCHAR */
-#ifdef MBS_SUPPORT
-	case exactn_bin:
-	  fastmap[p[1]] = 1;
-	  break;
-#endif
-
-#ifdef WCHAR
-        /* It is hard to distinguish fastmap from (multi byte) characters
-           which depends on current locale.  */
-        case charset:
-	case charset_not:
-	case wordchar:
-	case notwordchar:
-          bufp->can_be_null = 1;
-          goto done;
-#else /* BYTE */
-        case charset:
-          for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--)
-	    if (p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH)))
-              fastmap[j] = 1;
-	  break;
-
-
-	case charset_not:
-	  /* Chars beyond end of map must be allowed.  */
-	  for (j = *p * BYTEWIDTH; j < (1 << BYTEWIDTH); j++)
-            fastmap[j] = 1;
-
-	  for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--)
-	    if (!(p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH))))
-              fastmap[j] = 1;
-          break;
-
-
-	case wordchar:
-	  for (j = 0; j < (1 << BYTEWIDTH); j++)
-	    if (SYNTAX (j) == Sword)
-	      fastmap[j] = 1;
-	  break;
-
-
-	case notwordchar:
-	  for (j = 0; j < (1 << BYTEWIDTH); j++)
-	    if (SYNTAX (j) != Sword)
-	      fastmap[j] = 1;
-	  break;
-#endif /* WCHAR */
-
-        case anychar:
-	  {
-	    int fastmap_newline = fastmap['\n'];
-
-	    /* `.' matches anything ...  */
-	    for (j = 0; j < (1 << BYTEWIDTH); j++)
-	      fastmap[j] = 1;
-
-	    /* ... except perhaps newline.  */
-	    if (!(bufp->syntax & RE_DOT_NEWLINE))
-	      fastmap['\n'] = fastmap_newline;
-
-	    /* Return if we have already set `can_be_null'; if we have,
-	       then the fastmap is irrelevant.  Something's wrong here.  */
-	    else if (bufp->can_be_null)
-	      goto done;
-
-	    /* Otherwise, have to check alternative paths.  */
-	    break;
-	  }
-
-#ifdef emacs
-        case syntaxspec:
-	  k = *p++;
-	  for (j = 0; j < (1 << BYTEWIDTH); j++)
-	    if (SYNTAX (j) == (enum syntaxcode) k)
-	      fastmap[j] = 1;
-	  break;
-
-
-	case notsyntaxspec:
-	  k = *p++;
-	  for (j = 0; j < (1 << BYTEWIDTH); j++)
-	    if (SYNTAX (j) != (enum syntaxcode) k)
-	      fastmap[j] = 1;
-	  break;
-
-
-      /* All cases after this match the empty string.  These end with
-         `continue'.  */
-
-
-	case before_dot:
-	case at_dot:
-	case after_dot:
-          continue;
-#endif /* emacs */
-
-
-        case no_op:
-        case begline:
-        case endline:
-	case begbuf:
-	case endbuf:
-	case wordbound:
-	case notwordbound:
-	case wordbeg:
-	case wordend:
-        case push_dummy_failure:
-          continue;
-
-
-	case jump_n:
-        case pop_failure_jump:
-	case maybe_pop_jump:
-	case jump:
-        case jump_past_alt:
-	case dummy_failure_jump:
-          EXTRACT_NUMBER_AND_INCR (j, p);
-	  p += j;
-	  if (j > 0)
-	    continue;
-
-          /* Jump backward implies we just went through the body of a
-             loop and matched nothing.  Opcode jumped to should be
-             `on_failure_jump' or `succeed_n'.  Just treat it like an
-             ordinary jump.  For a * loop, it has pushed its failure
-             point already; if so, discard that as redundant.  */
-          if ((re_opcode_t) *p != on_failure_jump
-	      && (re_opcode_t) *p != succeed_n)
-	    continue;
-
-          p++;
-          EXTRACT_NUMBER_AND_INCR (j, p);
-          p += j;
-
-          /* If what's on the stack is where we are now, pop it.  */
-          if (!FAIL_STACK_EMPTY ()
-	      && fail_stack.stack[fail_stack.avail - 1].pointer == p)
-            fail_stack.avail--;
-
-          continue;
-
-
-        case on_failure_jump:
-        case on_failure_keep_string_jump:
-	handle_on_failure_jump:
-          EXTRACT_NUMBER_AND_INCR (j, p);
-
-          /* For some patterns, e.g., `(a?)?', `p+j' here points to the
-             end of the pattern.  We don't want to push such a point,
-             since when we restore it above, entering the switch will
-             increment `p' past the end of the pattern.  We don't need
-             to push such a point since we obviously won't find any more
-             fastmap entries beyond `pend'.  Such a pattern can match
-             the null string, though.  */
-          if (p + j < pend)
-            {
-              if (!PUSH_PATTERN_OP (p + j, fail_stack))
-		{
-		  RESET_FAIL_STACK ();
-		  return -2;
-		}
-            }
-          else
-            bufp->can_be_null = 1;
-
-          if (succeed_n_p)
-            {
-              EXTRACT_NUMBER_AND_INCR (k, p);	/* Skip the n.  */
-              succeed_n_p = false;
-	    }
-
-          continue;
-
-
-	case succeed_n:
-          /* Get to the number of times to succeed.  */
-          p += OFFSET_ADDRESS_SIZE;
-
-          /* Increment p past the n for when k != 0.  */
-          EXTRACT_NUMBER_AND_INCR (k, p);
-          if (k == 0)
-	    {
-              p -= 2 * OFFSET_ADDRESS_SIZE;
-  	      succeed_n_p = true;  /* Spaghetti code alert.  */
-              goto handle_on_failure_jump;
-            }
-          continue;
-
-
-	case set_number_at:
-          p += 2 * OFFSET_ADDRESS_SIZE;
-          continue;
-
-
-	case start_memory:
-        case stop_memory:
-	  p += 2;
-	  continue;
-
-
-	default:
-          abort (); /* We have listed all the cases.  */
-        } /* switch *p++ */
-
-      /* Getting here means we have found the possible starting
-         characters for one path of the pattern -- and that the empty
-         string does not match.  We need not follow this path further.
-         Instead, look at the next alternative (remembered on the
-         stack), or quit if no more.  The test at the top of the loop
-         does these things.  */
-      path_can_be_null = false;
-      p = pend;
-    } /* while p */
-
-  /* Set `can_be_null' for the last path (also the first path, if the
-     pattern is empty).  */
-  bufp->can_be_null |= path_can_be_null;
-
- done:
-  RESET_FAIL_STACK ();
-  return 0;
-}
-
-#else /* not INSIDE_RECURSION */
-
-int
-re_compile_fastmap (struct re_pattern_buffer *bufp)
-{
-# ifdef MBS_SUPPORT
-  if (MB_CUR_MAX != 1)
-    return wcs_re_compile_fastmap(bufp);
-  else
-# endif
-    return byte_re_compile_fastmap(bufp);
-} /* re_compile_fastmap */
-#ifdef _LIBC
-weak_alias (__re_compile_fastmap, re_compile_fastmap)
-#endif
-
-
-/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
-   ENDS.  Subsequent matches using PATTERN_BUFFER and REGS will use
-   this memory for recording register information.  STARTS and ENDS
-   must be allocated using the malloc library routine, and must each
-   be at least NUM_REGS * sizeof (regoff_t) bytes long.
-
-   If NUM_REGS == 0, then subsequent matches should allocate their own
-   register data.
-
-   Unless this function is called, the first search or match using
-   PATTERN_BUFFER will allocate its own register data, without
-   freeing the old data.  */
-
-void
-re_set_registers (struct re_pattern_buffer *bufp,
-                  struct re_registers *regs, unsigned num_regs,
-                  regoff_t *starts, regoff_t *ends)
-{
-  if (num_regs)
-    {
-      bufp->regs_allocated = REGS_REALLOCATE;
-      regs->num_regs = num_regs;
-      regs->start = starts;
-      regs->end = ends;
-    }
-  else
-    {
-      bufp->regs_allocated = REGS_UNALLOCATED;
-      regs->num_regs = 0;
-      regs->start = regs->end = (regoff_t *) 0;
-    }
-}
-#ifdef _LIBC
-weak_alias (__re_set_registers, re_set_registers)
-#endif
-
-/* Searching routines.  */
-
-/* Like re_search_2, below, but only one string is specified, and
-   doesn't let you say where to stop matching.  */
-
-int
-re_search (struct re_pattern_buffer *bufp, const char *string, int size,
-           int startpos, int range, struct re_registers *regs)
-{
-  return re_search_2 (bufp, NULL, 0, string, size, startpos, range,
-		      regs, size);
-}
-#ifdef _LIBC
-weak_alias (__re_search, re_search)
-#endif
-
-
-/* Using the compiled pattern in BUFP->buffer, first tries to match the
-   virtual concatenation of STRING1 and STRING2, starting first at index
-   STARTPOS, then at STARTPOS + 1, and so on.
-
-   STRING1 and STRING2 have length SIZE1 and SIZE2, respectively.
-
-   RANGE is how far to scan while trying to match.  RANGE = 0 means try
-   only at STARTPOS; in general, the last start tried is STARTPOS +
-   RANGE.
-
-   In REGS, return the indices of the virtual concatenation of STRING1
-   and STRING2 that matched the entire BUFP->buffer and its contained
-   subexpressions.
-
-   Do not consider matching one past the index STOP in the virtual
-   concatenation of STRING1 and STRING2.
-
-   We return either the position in the strings at which the match was
-   found, -1 if no match, or -2 if error (such as failure
-   stack overflow).  */
-
-int
-re_search_2 (struct re_pattern_buffer *bufp, const char *string1, int size1,
-             const char *string2, int size2, int startpos, int range,
-             struct re_registers *regs, int stop)
-{
-# ifdef MBS_SUPPORT
-  if (MB_CUR_MAX != 1)
-    return wcs_re_search_2 (bufp, string1, size1, string2, size2, startpos,
-			    range, regs, stop);
-  else
-# endif
-    return byte_re_search_2 (bufp, string1, size1, string2, size2, startpos,
-			     range, regs, stop);
-} /* re_search_2 */
-#ifdef _LIBC
-weak_alias (__re_search_2, re_search_2)
-#endif
-
-#endif /* not INSIDE_RECURSION */
-
-#ifdef INSIDE_RECURSION
-
-#ifdef MATCH_MAY_ALLOCATE
-# define FREE_VAR(var) if (var) REGEX_FREE (var); var = NULL
-#else
-# define FREE_VAR(var) if (var) free (var); var = NULL
-#endif
-
-#ifdef WCHAR
-# define MAX_ALLOCA_SIZE	2000
-
-# define FREE_WCS_BUFFERS() \
-  do {									      \
-    if (size1 > MAX_ALLOCA_SIZE)					      \
-      {									      \
-	free (wcs_string1);						      \
-	free (mbs_offset1);						      \
-      }									      \
-    else								      \
-      {									      \
-	FREE_VAR (wcs_string1);						      \
-	FREE_VAR (mbs_offset1);						      \
-      }									      \
-    if (size2 > MAX_ALLOCA_SIZE) 					      \
-      {									      \
-	free (wcs_string2);						      \
-	free (mbs_offset2);						      \
-      }									      \
-    else								      \
-      {									      \
-	FREE_VAR (wcs_string2);						      \
-	FREE_VAR (mbs_offset2);						      \
-      }									      \
-  } while (0)
-
-#endif
-
-
-static int
-PREFIX(re_search_2) (struct re_pattern_buffer *bufp, const char *string1,
-                     int size1, const char *string2, int size2,
-                     int startpos, int range,
-                     struct re_registers *regs, int stop)
-{
-  int val;
-  register char *fastmap = bufp->fastmap;
-  register RE_TRANSLATE_TYPE translate = bufp->translate;
-  int total_size = size1 + size2;
-  int endpos = startpos + range;
-#ifdef WCHAR
-  /* We need wchar_t* buffers correspond to cstring1, cstring2.  */
-  wchar_t *wcs_string1 = NULL, *wcs_string2 = NULL;
-  /* We need the size of wchar_t buffers correspond to csize1, csize2.  */
-  int wcs_size1 = 0, wcs_size2 = 0;
-  /* offset buffer for optimizatoin. See convert_mbs_to_wc.  */
-  int *mbs_offset1 = NULL, *mbs_offset2 = NULL;
-  /* They hold whether each wchar_t is binary data or not.  */
-  char *is_binary = NULL;
-#endif /* WCHAR */
-
-  /* Check for out-of-range STARTPOS.  */
-  if (startpos < 0 || startpos > total_size)
-    return -1;
-
-  /* Fix up RANGE if it might eventually take us outside
-     the virtual concatenation of STRING1 and STRING2.
-     Make sure we won't move STARTPOS below 0 or above TOTAL_SIZE.  */
-  if (endpos < 0)
-    range = 0 - startpos;
-  else if (endpos > total_size)
-    range = total_size - startpos;
-
-  /* If the search isn't to be a backwards one, don't waste time in a
-     search for a pattern that must be anchored.  */
-  if (bufp->used > 0 && range > 0
-      && ((re_opcode_t) bufp->buffer[0] == begbuf
-	  /* `begline' is like `begbuf' if it cannot match at newlines.  */
-	  || ((re_opcode_t) bufp->buffer[0] == begline
-	      && !bufp->newline_anchor)))
-    {
-      if (startpos > 0)
-	return -1;
-      else
-	range = 1;
-    }
-
-#ifdef emacs
-  /* In a forward search for something that starts with \=.
-     don't keep searching past point.  */
-  if (bufp->used > 0 && (re_opcode_t) bufp->buffer[0] == at_dot && range > 0)
-    {
-      range = PT - startpos;
-      if (range <= 0)
-	return -1;
-    }
-#endif /* emacs */
-
-  /* Update the fastmap now if not correct already.  */
-  if (fastmap && !bufp->fastmap_accurate)
-    if (re_compile_fastmap (bufp) == -2)
-      return -2;
-
-#ifdef WCHAR
-  /* Allocate wchar_t array for wcs_string1 and wcs_string2 and
-     fill them with converted string.  */
-  if (size1 != 0)
-    {
-      if (size1 > MAX_ALLOCA_SIZE)
-	{
-	  wcs_string1 = TALLOC (size1 + 1, CHAR_T);
-	  mbs_offset1 = TALLOC (size1 + 1, int);
-	  is_binary = TALLOC (size1 + 1, char);
-	}
-      else
-	{
-	  wcs_string1 = REGEX_TALLOC (size1 + 1, CHAR_T);
-	  mbs_offset1 = REGEX_TALLOC (size1 + 1, int);
-	  is_binary = REGEX_TALLOC (size1 + 1, char);
-	}
-      if (!wcs_string1 || !mbs_offset1 || !is_binary)
-	{
-	  if (size1 > MAX_ALLOCA_SIZE)
-	    {
-	      free (wcs_string1);
-	      free (mbs_offset1);
-	      free (is_binary);
-	    }
-	  else
-	    {
-	      FREE_VAR (wcs_string1);
-	      FREE_VAR (mbs_offset1);
-	      FREE_VAR (is_binary);
-	    }
-	  return -2;
-	}
-      wcs_size1 = convert_mbs_to_wcs(wcs_string1, string1, size1,
-				     mbs_offset1, is_binary);
-      wcs_string1[wcs_size1] = L'\0'; /* for a sentinel  */
-      if (size1 > MAX_ALLOCA_SIZE)
-	free (is_binary);
-      else
-	FREE_VAR (is_binary);
-    }
-  if (size2 != 0)
-    {
-      if (size2 > MAX_ALLOCA_SIZE)
-	{
-	  wcs_string2 = TALLOC (size2 + 1, CHAR_T);
-	  mbs_offset2 = TALLOC (size2 + 1, int);
-	  is_binary = TALLOC (size2 + 1, char);
-	}
-      else
-	{
-	  wcs_string2 = REGEX_TALLOC (size2 + 1, CHAR_T);
-	  mbs_offset2 = REGEX_TALLOC (size2 + 1, int);
-	  is_binary = REGEX_TALLOC (size2 + 1, char);
-	}
-      if (!wcs_string2 || !mbs_offset2 || !is_binary)
-	{
-	  FREE_WCS_BUFFERS ();
-	  if (size2 > MAX_ALLOCA_SIZE)
-	    free (is_binary);
-	  else
-	    FREE_VAR (is_binary);
-	  return -2;
-	}
-      wcs_size2 = convert_mbs_to_wcs(wcs_string2, string2, size2,
-				     mbs_offset2, is_binary);
-      wcs_string2[wcs_size2] = L'\0'; /* for a sentinel  */
-      if (size2 > MAX_ALLOCA_SIZE)
-	free (is_binary);
-      else
-	FREE_VAR (is_binary);
-    }
-#endif /* WCHAR */
-
-
-  /* Loop through the string, looking for a place to start matching.  */
-  for (;;)
-    {
-      /* If a fastmap is supplied, skip quickly over characters that
-         cannot be the start of a match.  If the pattern can match the
-         null string, however, we don't need to skip characters; we want
-         the first null string.  */
-      if (fastmap && startpos < total_size && !bufp->can_be_null)
-	{
-	  if (range > 0)	/* Searching forwards.  */
-	    {
-	      register const char *d;
-	      register int lim = 0;
-	      int irange = range;
-
-              if (startpos < size1 && startpos + range >= size1)
-                lim = range - (size1 - startpos);
-
-	      d = (startpos >= size1 ? string2 - size1 : string1) + startpos;
-
-              /* Written out as an if-else to avoid testing `translate'
-                 inside the loop.  */
-	      if (translate)
-                while (range > lim
-                       && !fastmap[(unsigned char)
-				   translate[(unsigned char) *d++]])
-                  range--;
-	      else
-                while (range > lim && !fastmap[(unsigned char) *d++])
-                  range--;
-
-	      startpos += irange - range;
-	    }
-	  else				/* Searching backwards.  */
-	    {
-	      register CHAR_T c = (size1 == 0 || startpos >= size1
-				      ? string2[startpos - size1]
-				      : string1[startpos]);
-
-	      if (!fastmap[(unsigned char) TRANSLATE (c)])
-		goto advance;
-	    }
-	}
-
-      /* If can't match the null string, and that's all we have left, fail.  */
-      if (range >= 0 && startpos == total_size && fastmap
-          && !bufp->can_be_null)
-       {
-#ifdef WCHAR
-         FREE_WCS_BUFFERS ();
-#endif
-         return -1;
-       }
-
-#ifdef WCHAR
-      val = wcs_re_match_2_internal (bufp, string1, size1, string2,
-				     size2, startpos, regs, stop,
-				     wcs_string1, wcs_size1,
-				     wcs_string2, wcs_size2,
-				     mbs_offset1, mbs_offset2);
-#else /* BYTE */
-      val = byte_re_match_2_internal (bufp, string1, size1, string2,
-				      size2, startpos, regs, stop);
-#endif /* BYTE */
-
-#ifndef REGEX_MALLOC
-# ifdef C_ALLOCA
-      alloca (0);
-# endif
-#endif
-
-      if (val >= 0)
-	{
-#ifdef WCHAR
-	  FREE_WCS_BUFFERS ();
-#endif
-	  return startpos;
-	}
-
-      if (val == -2)
-	{
-#ifdef WCHAR
-	  FREE_WCS_BUFFERS ();
-#endif
-	  return -2;
-	}
-
-    advance:
-      if (!range)
-        break;
-      else if (range > 0)
-        {
-          range--;
-          startpos++;
-        }
-      else
-        {
-          range++;
-          startpos--;
-        }
-    }
-#ifdef WCHAR
-  FREE_WCS_BUFFERS ();
-#endif
-  return -1;
-}
-
-#ifdef WCHAR
-/* This converts PTR, a pointer into one of the search wchar_t strings
-   `string1' and `string2' into an multibyte string offset from the
-   beginning of that string. We use mbs_offset to optimize.
-   See convert_mbs_to_wcs.  */
-# define POINTER_TO_OFFSET(ptr)						\
-  (FIRST_STRING_P (ptr)							\
-   ? ((regoff_t)(mbs_offset1 != NULL? mbs_offset1[(ptr)-string1] : 0))	\
-   : ((regoff_t)((mbs_offset2 != NULL? mbs_offset2[(ptr)-string2] : 0)	\
-		 + csize1)))
-#else /* BYTE */
-/* This converts PTR, a pointer into one of the search strings `string1'
-   and `string2' into an offset from the beginning of that string.  */
-# define POINTER_TO_OFFSET(ptr)			\
-  (FIRST_STRING_P (ptr)				\
-   ? ((regoff_t) ((ptr) - string1))		\
-   : ((regoff_t) ((ptr) - string2 + size1)))
-#endif /* WCHAR */
-
-/* Macros for dealing with the split strings in re_match_2.  */
-
-#define MATCHING_IN_FIRST_STRING  (dend == end_match_1)
-
-/* Call before fetching a character with *d.  This switches over to
-   string2 if necessary.  */
-#define PREFETCH()							\
-  while (d == dend)						    	\
-    {									\
-      /* End of string2 => fail.  */					\
-      if (dend == end_match_2) 						\
-        goto fail;							\
-      /* End of string1 => advance to string2.  */ 			\
-      d = string2;						        \
-      dend = end_match_2;						\
-    }
-
-/* Test if at very beginning or at very end of the virtual concatenation
-   of `string1' and `string2'.  If only one string, it's `string2'.  */
-#define AT_STRINGS_BEG(d) ((d) == (size1 ? string1 : string2) || !size2)
-#define AT_STRINGS_END(d) ((d) == end2)
-
-
-/* Test if D points to a character which is word-constituent.  We have
-   two special cases to check for: if past the end of string1, look at
-   the first character in string2; and if before the beginning of
-   string2, look at the last character in string1.  */
-#ifdef WCHAR
-/* Use internationalized API instead of SYNTAX.  */
-# define WORDCHAR_P(d)							\
-  (iswalnum ((wint_t)((d) == end1 ? *string2				\
-           : (d) == string2 - 1 ? *(end1 - 1) : *(d))) != 0		\
-   || ((d) == end1 ? *string2						\
-       : (d) == string2 - 1 ? *(end1 - 1) : *(d)) == L'_')
-#else /* BYTE */
-# define WORDCHAR_P(d)							\
-  (SYNTAX ((d) == end1 ? *string2					\
-           : (d) == string2 - 1 ? *(end1 - 1) : *(d))			\
-   == Sword)
-#endif /* WCHAR */
-
-/* Disabled due to a compiler bug -- see comment at case wordbound */
-#if 0
-/* Test if the character before D and the one at D differ with respect
-   to being word-constituent.  */
-#define AT_WORD_BOUNDARY(d)						\
-  (AT_STRINGS_BEG (d) || AT_STRINGS_END (d)				\
-   || WORDCHAR_P (d - 1) != WORDCHAR_P (d))
-#endif
-
-/* Free everything we malloc.  */
-#ifdef MATCH_MAY_ALLOCATE
-# ifdef WCHAR
-#  define FREE_VARIABLES()						\
-  do {									\
-    REGEX_FREE_STACK (fail_stack.stack);				\
-    FREE_VAR (regstart);						\
-    FREE_VAR (regend);							\
-    FREE_VAR (old_regstart);						\
-    FREE_VAR (old_regend);						\
-    FREE_VAR (best_regstart);						\
-    FREE_VAR (best_regend);						\
-    FREE_VAR (reg_info);						\
-    FREE_VAR (reg_dummy);						\
-    FREE_VAR (reg_info_dummy);						\
-    if (!cant_free_wcs_buf)						\
-      {									\
-        FREE_VAR (string1);						\
-        FREE_VAR (string2);						\
-        FREE_VAR (mbs_offset1);						\
-        FREE_VAR (mbs_offset2);						\
-      }									\
-  } while (0)
-# else /* BYTE */
-#  define FREE_VARIABLES()						\
-  do {									\
-    REGEX_FREE_STACK (fail_stack.stack);				\
-    FREE_VAR (regstart);						\
-    FREE_VAR (regend);							\
-    FREE_VAR (old_regstart);						\
-    FREE_VAR (old_regend);						\
-    FREE_VAR (best_regstart);						\
-    FREE_VAR (best_regend);						\
-    FREE_VAR (reg_info);						\
-    FREE_VAR (reg_dummy);						\
-    FREE_VAR (reg_info_dummy);						\
-  } while (0)
-# endif /* WCHAR */
-#else
-# ifdef WCHAR
-#  define FREE_VARIABLES()						\
-  do {									\
-    if (!cant_free_wcs_buf)						\
-      {									\
-        FREE_VAR (string1);						\
-        FREE_VAR (string2);						\
-        FREE_VAR (mbs_offset1);						\
-        FREE_VAR (mbs_offset2);						\
-      }									\
-  } while (0)
-# else /* BYTE */
-#  define FREE_VARIABLES() ((void)0) /* Do nothing!  But inhibit gcc warning. */
-# endif /* WCHAR */
-#endif /* not MATCH_MAY_ALLOCATE */
-
-/* These values must meet several constraints.  They must not be valid
-   register values; since we have a limit of 255 registers (because
-   we use only one byte in the pattern for the register number), we can
-   use numbers larger than 255.  They must differ by 1, because of
-   NUM_FAILURE_ITEMS above.  And the value for the lowest register must
-   be larger than the value for the highest register, so we do not try
-   to actually save any registers when none are active.  */
-#define NO_HIGHEST_ACTIVE_REG (1 << BYTEWIDTH)
-#define NO_LOWEST_ACTIVE_REG (NO_HIGHEST_ACTIVE_REG + 1)
-
-#else /* not INSIDE_RECURSION */
-/* Matching routines.  */
-
-#ifndef emacs   /* Emacs never uses this.  */
-/* re_match is like re_match_2 except it takes only a single string.  */
-
-int
-re_match (struct re_pattern_buffer *bufp, const char *string,
-          int size, int pos, struct re_registers *regs)
-{
-  int result;
-# ifdef MBS_SUPPORT
-  if (MB_CUR_MAX != 1)
-    result = wcs_re_match_2_internal (bufp, NULL, 0, string, size,
-				      pos, regs, size,
-				      NULL, 0, NULL, 0, NULL, NULL);
-  else
-# endif
-    result = byte_re_match_2_internal (bufp, NULL, 0, string, size,
-				  pos, regs, size);
-# ifndef REGEX_MALLOC
-#  ifdef C_ALLOCA
-  alloca (0);
-#  endif
-# endif
-  return result;
-}
-# ifdef _LIBC
-weak_alias (__re_match, re_match)
-# endif
-#endif /* not emacs */
-
-#endif /* not INSIDE_RECURSION */
-
-#ifdef INSIDE_RECURSION
-static boolean PREFIX(group_match_null_string_p) (UCHAR_T **p,
-                                                  UCHAR_T *end,
-					PREFIX(register_info_type) *reg_info);
-static boolean PREFIX(alt_match_null_string_p) (UCHAR_T *p,
-                                                UCHAR_T *end,
-					PREFIX(register_info_type) *reg_info);
-static boolean PREFIX(common_op_match_null_string_p) (UCHAR_T **p,
-                                                      UCHAR_T *end,
-					PREFIX(register_info_type) *reg_info);
-static int PREFIX(bcmp_translate) (const CHAR_T *s1, const CHAR_T *s2,
-                                   int len, char *translate);
-#else /* not INSIDE_RECURSION */
-
-/* re_match_2 matches the compiled pattern in BUFP against the
-   the (virtual) concatenation of STRING1 and STRING2 (of length SIZE1
-   and SIZE2, respectively).  We start matching at POS, and stop
-   matching at STOP.
-
-   If REGS is non-null and the `no_sub' field of BUFP is nonzero, we
-   store offsets for the substring each group matched in REGS.  See the
-   documentation for exactly how many groups we fill.
-
-   We return -1 if no match, -2 if an internal error (such as the
-   failure stack overflowing).  Otherwise, we return the length of the
-   matched substring.  */
-
-int
-re_match_2 (struct re_pattern_buffer *bufp, const char *string1, int size1,
-            const char *string2, int size2, int pos,
-            struct re_registers *regs, int stop)
-{
-  int result;
-# ifdef MBS_SUPPORT
-  if (MB_CUR_MAX != 1)
-    result = wcs_re_match_2_internal (bufp, string1, size1, string2, size2,
-				      pos, regs, stop,
-				      NULL, 0, NULL, 0, NULL, NULL);
-  else
-# endif
-    result = byte_re_match_2_internal (bufp, string1, size1, string2, size2,
-				  pos, regs, stop);
-
-#ifndef REGEX_MALLOC
-# ifdef C_ALLOCA
-  alloca (0);
-# endif
-#endif
-  return result;
-}
-#ifdef _LIBC
-weak_alias (__re_match_2, re_match_2)
-#endif
-
-#endif /* not INSIDE_RECURSION */
-
-#ifdef INSIDE_RECURSION
-
-#ifdef WCHAR
-static int count_mbs_length (int *, int);
-
-/* This check the substring (from 0, to length) of the multibyte string,
-   to which offset_buffer correspond. And count how many wchar_t_characters
-   the substring occupy. We use offset_buffer to optimization.
-   See convert_mbs_to_wcs.  */
-
-static int
-count_mbs_length(int *offset_buffer, int length)
-{
-  int upper, lower;
-
-  /* Check whether the size is valid.  */
-  if (length < 0)
-    return -1;
-
-  if (offset_buffer == NULL)
-    return 0;
-
-  /* If there are no multibyte character, offset_buffer[i] == i.
-   Optmize for this case.  */
-  if (offset_buffer[length] == length)
-    return length;
-
-  /* Set up upper with length. (because for all i, offset_buffer[i] >= i)  */
-  upper = length;
-  lower = 0;
-
-  while (true)
-    {
-      int middle = (lower + upper) / 2;
-      if (middle == lower || middle == upper)
-	break;
-      if (offset_buffer[middle] > length)
-	upper = middle;
-      else if (offset_buffer[middle] < length)
-	lower = middle;
-      else
-	return middle;
-    }
-
-  return -1;
-}
-#endif /* WCHAR */
-
-/* This is a separate function so that we can force an alloca cleanup
-   afterwards.  */
-#ifdef WCHAR
-static int
-wcs_re_match_2_internal (struct re_pattern_buffer *bufp,
-                         const char *cstring1, int csize1,
-                         const char *cstring2, int csize2,
-                         int pos,
-			 struct re_registers *regs,
-                         int stop,
-     /* string1 == string2 == NULL means string1/2, size1/2 and
-	mbs_offset1/2 need seting up in this function.  */
-     /* We need wchar_t* buffers correspond to cstring1, cstring2.  */
-                         wchar_t *string1, int size1,
-                         wchar_t *string2, int size2,
-     /* offset buffer for optimizatoin. See convert_mbs_to_wc.  */
-			 int *mbs_offset1, int *mbs_offset2)
-#else /* BYTE */
-static int
-byte_re_match_2_internal (struct re_pattern_buffer *bufp,
-                          const char *string1, int size1,
-                          const char *string2, int size2,
-                          int pos,
-			  struct re_registers *regs, int stop)
-#endif /* BYTE */
-{
-  /* General temporaries.  */
-  int mcnt;
-  UCHAR_T *p1;
-#ifdef WCHAR
-  /* They hold whether each wchar_t is binary data or not.  */
-  char *is_binary = NULL;
-  /* If true, we can't free string1/2, mbs_offset1/2.  */
-  int cant_free_wcs_buf = 1;
-#endif /* WCHAR */
-
-  /* Just past the end of the corresponding string.  */
-  const CHAR_T *end1, *end2;
-
-  /* Pointers into string1 and string2, just past the last characters in
-     each to consider matching.  */
-  const CHAR_T *end_match_1, *end_match_2;
-
-  /* Where we are in the data, and the end of the current string.  */
-  const CHAR_T *d, *dend;
-
-  /* Where we are in the pattern, and the end of the pattern.  */
-#ifdef WCHAR
-  UCHAR_T *pattern, *p;
-  register UCHAR_T *pend;
-#else /* BYTE */
-  UCHAR_T *p = bufp->buffer;
-  register UCHAR_T *pend = p + bufp->used;
-#endif /* WCHAR */
-
-  /* Mark the opcode just after a start_memory, so we can test for an
-     empty subpattern when we get to the stop_memory.  */
-  UCHAR_T *just_past_start_mem = 0;
-
-  /* We use this to map every character in the string.  */
-  RE_TRANSLATE_TYPE translate = bufp->translate;
-
-  /* Failure point stack.  Each place that can handle a failure further
-     down the line pushes a failure point on this stack.  It consists of
-     restart, regend, and reg_info for all registers corresponding to
-     the subexpressions we're currently inside, plus the number of such
-     registers, and, finally, two char *'s.  The first char * is where
-     to resume scanning the pattern; the second one is where to resume
-     scanning the strings.  If the latter is zero, the failure point is
-     a ``dummy''; if a failure happens and the failure point is a dummy,
-     it gets discarded and the next next one is tried.  */
-#ifdef MATCH_MAY_ALLOCATE /* otherwise, this is global.  */
-  PREFIX(fail_stack_type) fail_stack;
-#endif
-#ifdef DEBUG
-  static unsigned failure_id;
-  unsigned nfailure_points_pushed = 0, nfailure_points_popped = 0;
-#endif
-
-#ifdef REL_ALLOC
-  /* This holds the pointer to the failure stack, when
-     it is allocated relocatably.  */
-  fail_stack_elt_t *failure_stack_ptr;
-#endif
-
-  /* We fill all the registers internally, independent of what we
-     return, for use in backreferences.  The number here includes
-     an element for register zero.  */
-  size_t num_regs = bufp->re_nsub + 1;
-
-  /* The currently active registers.  */
-  active_reg_t lowest_active_reg = NO_LOWEST_ACTIVE_REG;
-  active_reg_t highest_active_reg = NO_HIGHEST_ACTIVE_REG;
-
-  /* Information on the contents of registers. These are pointers into
-     the input strings; they record just what was matched (on this
-     attempt) by a subexpression part of the pattern, that is, the
-     regnum-th regstart pointer points to where in the pattern we began
-     matching and the regnum-th regend points to right after where we
-     stopped matching the regnum-th subexpression.  (The zeroth register
-     keeps track of what the whole pattern matches.)  */
-#ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global.  */
-  const CHAR_T **regstart, **regend;
-#endif
-
-  /* If a group that's operated upon by a repetition operator fails to
-     match anything, then the register for its start will need to be
-     restored because it will have been set to wherever in the string we
-     are when we last see its open-group operator.  Similarly for a
-     register's end.  */
-#ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global.  */
-  const CHAR_T **old_regstart, **old_regend;
-#endif
-
-  /* The is_active field of reg_info helps us keep track of which (possibly
-     nested) subexpressions we are currently in. The matched_something
-     field of reg_info[reg_num] helps us tell whether or not we have
-     matched any of the pattern so far this time through the reg_num-th
-     subexpression.  These two fields get reset each time through any
-     loop their register is in.  */
-#ifdef MATCH_MAY_ALLOCATE /* otherwise, this is global.  */
-  PREFIX(register_info_type) *reg_info;
-#endif
-
-  /* The following record the register info as found in the above
-     variables when we find a match better than any we've seen before.
-     This happens as we backtrack through the failure points, which in
-     turn happens only if we have not yet matched the entire string. */
-  unsigned best_regs_set = false;
-#ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global.  */
-  const CHAR_T **best_regstart, **best_regend;
-#endif
-
-  /* Logically, this is `best_regend[0]'.  But we don't want to have to
-     allocate space for that if we're not allocating space for anything
-     else (see below).  Also, we never need info about register 0 for
-     any of the other register vectors, and it seems rather a kludge to
-     treat `best_regend' differently than the rest.  So we keep track of
-     the end of the best match so far in a separate variable.  We
-     initialize this to NULL so that when we backtrack the first time
-     and need to test it, it's not garbage.  */
-  const CHAR_T *match_end = NULL;
-
-  /* This helps SET_REGS_MATCHED avoid doing redundant work.  */
-  int set_regs_matched_done = 0;
-
-  /* Used when we pop values we don't care about.  */
-#ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global.  */
-  const CHAR_T **reg_dummy;
-  PREFIX(register_info_type) *reg_info_dummy;
-#endif
-
-#ifdef DEBUG
-  /* Counts the total number of registers pushed.  */
-  unsigned num_regs_pushed = 0;
-#endif
-
-  DEBUG_PRINT1 ("\n\nEntering re_match_2.\n");
-
-  INIT_FAIL_STACK ();
-
-#ifdef MATCH_MAY_ALLOCATE
-  /* Do not bother to initialize all the register variables if there are
-     no groups in the pattern, as it takes a fair amount of time.  If
-     there are groups, we include space for register 0 (the whole
-     pattern), even though we never use it, since it simplifies the
-     array indexing.  We should fix this.  */
-  if (bufp->re_nsub)
-    {
-      regstart = REGEX_TALLOC (num_regs, const CHAR_T *);
-      regend = REGEX_TALLOC (num_regs, const CHAR_T *);
-      old_regstart = REGEX_TALLOC (num_regs, const CHAR_T *);
-      old_regend = REGEX_TALLOC (num_regs, const CHAR_T *);
-      best_regstart = REGEX_TALLOC (num_regs, const CHAR_T *);
-      best_regend = REGEX_TALLOC (num_regs, const CHAR_T *);
-      reg_info = REGEX_TALLOC (num_regs, PREFIX(register_info_type));
-      reg_dummy = REGEX_TALLOC (num_regs, const CHAR_T *);
-      reg_info_dummy = REGEX_TALLOC (num_regs, PREFIX(register_info_type));
-
-      if (!(regstart && regend && old_regstart && old_regend && reg_info
-            && best_regstart && best_regend && reg_dummy && reg_info_dummy))
-        {
-          FREE_VARIABLES ();
-          return -2;
-        }
-    }
-  else
-    {
-      /* We must initialize all our variables to NULL, so that
-         `FREE_VARIABLES' doesn't try to free them.  */
-      regstart = regend = old_regstart = old_regend = best_regstart
-        = best_regend = reg_dummy = NULL;
-      reg_info = reg_info_dummy = (PREFIX(register_info_type) *) NULL;
-    }
-#endif /* MATCH_MAY_ALLOCATE */
-
-  /* The starting position is bogus.  */
-#ifdef WCHAR
-  if (pos < 0 || pos > csize1 + csize2)
-#else /* BYTE */
-  if (pos < 0 || pos > size1 + size2)
-#endif
-    {
-      FREE_VARIABLES ();
-      return -1;
-    }
-
-#ifdef WCHAR
-  /* Allocate wchar_t array for string1 and string2 and
-     fill them with converted string.  */
-  if (string1 == NULL && string2 == NULL)
-    {
-      /* We need seting up buffers here.  */
-
-      /* We must free wcs buffers in this function.  */
-      cant_free_wcs_buf = 0;
-
-      if (csize1 != 0)
-	{
-	  string1 = REGEX_TALLOC (csize1 + 1, CHAR_T);
-	  mbs_offset1 = REGEX_TALLOC (csize1 + 1, int);
-	  is_binary = REGEX_TALLOC (csize1 + 1, char);
-	  if (!string1 || !mbs_offset1 || !is_binary)
-	    {
-	      FREE_VAR (string1);
-	      FREE_VAR (mbs_offset1);
-	      FREE_VAR (is_binary);
-	      return -2;
-	    }
-	}
-      if (csize2 != 0)
-	{
-	  string2 = REGEX_TALLOC (csize2 + 1, CHAR_T);
-	  mbs_offset2 = REGEX_TALLOC (csize2 + 1, int);
-	  is_binary = REGEX_TALLOC (csize2 + 1, char);
-	  if (!string2 || !mbs_offset2 || !is_binary)
-	    {
-	      FREE_VAR (string1);
-	      FREE_VAR (mbs_offset1);
-	      FREE_VAR (string2);
-	      FREE_VAR (mbs_offset2);
-	      FREE_VAR (is_binary);
-	      return -2;
-	    }
-	  size2 = convert_mbs_to_wcs(string2, cstring2, csize2,
-				     mbs_offset2, is_binary);
-	  string2[size2] = L'\0'; /* for a sentinel  */
-	  FREE_VAR (is_binary);
-	}
-    }
-
-  /* We need to cast pattern to (wchar_t*), because we casted this compiled
-     pattern to (char*) in regex_compile.  */
-  p = pattern = (CHAR_T*)bufp->buffer;
-  pend = (CHAR_T*)(bufp->buffer + bufp->used);
-
-#endif /* WCHAR */
-
-  /* Initialize subexpression text positions to -1 to mark ones that no
-     start_memory/stop_memory has been seen for. Also initialize the
-     register information struct.  */
-  for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++)
-    {
-      regstart[mcnt] = regend[mcnt]
-        = old_regstart[mcnt] = old_regend[mcnt] = REG_UNSET_VALUE;
-
-      REG_MATCH_NULL_STRING_P (reg_info[mcnt]) = MATCH_NULL_UNSET_VALUE;
-      IS_ACTIVE (reg_info[mcnt]) = 0;
-      MATCHED_SOMETHING (reg_info[mcnt]) = 0;
-      EVER_MATCHED_SOMETHING (reg_info[mcnt]) = 0;
-    }
-
-  /* We move `string1' into `string2' if the latter's empty -- but not if
-     `string1' is null.  */
-  if (size2 == 0 && string1 != NULL)
-    {
-      string2 = string1;
-      size2 = size1;
-      string1 = 0;
-      size1 = 0;
-#ifdef WCHAR
-      mbs_offset2 = mbs_offset1;
-      csize2 = csize1;
-      mbs_offset1 = NULL;
-      csize1 = 0;
-#endif
-    }
-  end1 = string1 + size1;
-  end2 = string2 + size2;
-
-  /* Compute where to stop matching, within the two strings.  */
-#ifdef WCHAR
-  if (stop <= csize1)
-    {
-      mcnt = count_mbs_length(mbs_offset1, stop);
-      end_match_1 = string1 + mcnt;
-      end_match_2 = string2;
-    }
-  else
-    {
-      if (stop > csize1 + csize2)
-	stop = csize1 + csize2;
-      end_match_1 = end1;
-      mcnt = count_mbs_length(mbs_offset2, stop-csize1);
-      end_match_2 = string2 + mcnt;
-    }
-  if (mcnt < 0)
-    { /* count_mbs_length return error.  */
-      FREE_VARIABLES ();
-      return -1;
-    }
-#else
-  if (stop <= size1)
-    {
-      end_match_1 = string1 + stop;
-      end_match_2 = string2;
-    }
-  else
-    {
-      end_match_1 = end1;
-      end_match_2 = string2 + stop - size1;
-    }
-#endif /* WCHAR */
-
-  /* `p' scans through the pattern as `d' scans through the data.
-     `dend' is the end of the input string that `d' points within.  `d'
-     is advanced into the following input string whenever necessary, but
-     this happens before fetching; therefore, at the beginning of the
-     loop, `d' can be pointing at the end of a string, but it cannot
-     equal `string2'.  */
-#ifdef WCHAR
-  if (size1 > 0 && pos <= csize1)
-    {
-      mcnt = count_mbs_length(mbs_offset1, pos);
-      d = string1 + mcnt;
-      dend = end_match_1;
-    }
-  else
-    {
-      mcnt = count_mbs_length(mbs_offset2, pos-csize1);
-      d = string2 + mcnt;
-      dend = end_match_2;
-    }
-
-  if (mcnt < 0)
-    { /* count_mbs_length return error.  */
-      FREE_VARIABLES ();
-      return -1;
-    }
-#else
-  if (size1 > 0 && pos <= size1)
-    {
-      d = string1 + pos;
-      dend = end_match_1;
-    }
-  else
-    {
-      d = string2 + pos - size1;
-      dend = end_match_2;
-    }
-#endif /* WCHAR */
-
-  DEBUG_PRINT1 ("The compiled pattern is:\n");
-  DEBUG_PRINT_COMPILED_PATTERN (bufp, p, pend);
-  DEBUG_PRINT1 ("The string to match is: `");
-  DEBUG_PRINT_DOUBLE_STRING (d, string1, size1, string2, size2);
-  DEBUG_PRINT1 ("'\n");
-
-  /* This loops over pattern commands.  It exits by returning from the
-     function if the match is complete, or it drops through if the match
-     fails at this starting point in the input data.  */
-  for (;;)
-    {
-#ifdef _LIBC
-      DEBUG_PRINT2 ("\n%p: ", p);
-#else
-      DEBUG_PRINT2 ("\n0x%x: ", p);
-#endif
-
-      if (p == pend)
-	{ /* End of pattern means we might have succeeded.  */
-          DEBUG_PRINT1 ("end of pattern ... ");
-
-	  /* If we haven't matched the entire string, and we want the
-             longest match, try backtracking.  */
-          if (d != end_match_2)
-	    {
-	      /* 1 if this match ends in the same string (string1 or string2)
-		 as the best previous match.  */
-	      boolean same_str_p = (FIRST_STRING_P (match_end)
-				    == MATCHING_IN_FIRST_STRING);
-	      /* 1 if this match is the best seen so far.  */
-	      boolean best_match_p;
-
-	      /* AIX compiler got confused when this was combined
-		 with the previous declaration.  */
-	      if (same_str_p)
-		best_match_p = d > match_end;
-	      else
-		best_match_p = !MATCHING_IN_FIRST_STRING;
-
-              DEBUG_PRINT1 ("backtracking.\n");
-
-              if (!FAIL_STACK_EMPTY ())
-                { /* More failure points to try.  */
-
-                  /* If exceeds best match so far, save it.  */
-                  if (!best_regs_set || best_match_p)
-                    {
-                      best_regs_set = true;
-                      match_end = d;
-
-                      DEBUG_PRINT1 ("\nSAVING match as best so far.\n");
-
-                      for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++)
-                        {
-                          best_regstart[mcnt] = regstart[mcnt];
-                          best_regend[mcnt] = regend[mcnt];
-                        }
-                    }
-                  goto fail;
-                }
-
-              /* If no failure points, don't restore garbage.  And if
-                 last match is real best match, don't restore second
-                 best one. */
-              else if (best_regs_set && !best_match_p)
-                {
-  	        restore_best_regs:
-                  /* Restore best match.  It may happen that `dend ==
-                     end_match_1' while the restored d is in string2.
-                     For example, the pattern `x.*y.*z' against the
-                     strings `x-' and `y-z-', if the two strings are
-                     not consecutive in memory.  */
-                  DEBUG_PRINT1 ("Restoring best registers.\n");
-
-                  d = match_end;
-                  dend = ((d >= string1 && d <= end1)
-		           ? end_match_1 : end_match_2);
-
-		  for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++)
-		    {
-		      regstart[mcnt] = best_regstart[mcnt];
-		      regend[mcnt] = best_regend[mcnt];
-		    }
-                }
-            } /* d != end_match_2 */
-
-	succeed_label:
-          DEBUG_PRINT1 ("Accepting match.\n");
-          /* If caller wants register contents data back, do it.  */
-          if (regs && !bufp->no_sub)
-	    {
-	      /* Have the register data arrays been allocated?  */
-              if (bufp->regs_allocated == REGS_UNALLOCATED)
-                { /* No.  So allocate them with malloc.  We need one
-                     extra element beyond `num_regs' for the `-1' marker
-                     GNU code uses.  */
-                  regs->num_regs = MAX (RE_NREGS, num_regs + 1);
-                  regs->start = TALLOC (regs->num_regs, regoff_t);
-                  regs->end = TALLOC (regs->num_regs, regoff_t);
-                  if (regs->start == NULL || regs->end == NULL)
-		    {
-		      FREE_VARIABLES ();
-		      return -2;
-		    }
-                  bufp->regs_allocated = REGS_REALLOCATE;
-                }
-              else if (bufp->regs_allocated == REGS_REALLOCATE)
-                { /* Yes.  If we need more elements than were already
-                     allocated, reallocate them.  If we need fewer, just
-                     leave it alone.  */
-                  if (regs->num_regs < num_regs + 1)
-                    {
-                      regs->num_regs = num_regs + 1;
-                      RETALLOC (regs->start, regs->num_regs, regoff_t);
-                      RETALLOC (regs->end, regs->num_regs, regoff_t);
-                      if (regs->start == NULL || regs->end == NULL)
-			{
-			  FREE_VARIABLES ();
-			  return -2;
-			}
-                    }
-                }
-              else
-		{
-		  /* These braces fend off a "empty body in an else-statement"
-		     warning under GCC when assert expands to nothing.  */
-		  assert (bufp->regs_allocated == REGS_FIXED);
-		}
-
-              /* Convert the pointer data in `regstart' and `regend' to
-                 indices.  Register zero has to be set differently,
-                 since we haven't kept track of any info for it.  */
-              if (regs->num_regs > 0)
-                {
-                  regs->start[0] = pos;
-#ifdef WCHAR
-		  if (MATCHING_IN_FIRST_STRING)
-		    regs->end[0] = mbs_offset1 != NULL ?
-					mbs_offset1[d-string1] : 0;
-		  else
-		    regs->end[0] = csize1 + (mbs_offset2 != NULL ?
-					     mbs_offset2[d-string2] : 0);
-#else
-                  regs->end[0] = (MATCHING_IN_FIRST_STRING
-				  ? ((regoff_t) (d - string1))
-			          : ((regoff_t) (d - string2 + size1)));
-#endif /* WCHAR */
-                }
-
-              /* Go through the first `min (num_regs, regs->num_regs)'
-                 registers, since that is all we initialized.  */
-	      for (mcnt = 1; (unsigned) mcnt < MIN (num_regs, regs->num_regs);
-		   mcnt++)
-		{
-                  if (REG_UNSET (regstart[mcnt]) || REG_UNSET (regend[mcnt]))
-                    regs->start[mcnt] = regs->end[mcnt] = -1;
-                  else
-                    {
-		      regs->start[mcnt]
-			= (regoff_t) POINTER_TO_OFFSET (regstart[mcnt]);
-                      regs->end[mcnt]
-			= (regoff_t) POINTER_TO_OFFSET (regend[mcnt]);
-                    }
-		}
-
-              /* If the regs structure we return has more elements than
-                 were in the pattern, set the extra elements to -1.  If
-                 we (re)allocated the registers, this is the case,
-                 because we always allocate enough to have at least one
-                 -1 at the end.  */
-              for (mcnt = num_regs; (unsigned) mcnt < regs->num_regs; mcnt++)
-                regs->start[mcnt] = regs->end[mcnt] = -1;
-	    } /* regs && !bufp->no_sub */
-
-          DEBUG_PRINT4 ("%u failure points pushed, %u popped (%u remain).\n",
-                        nfailure_points_pushed, nfailure_points_popped,
-                        nfailure_points_pushed - nfailure_points_popped);
-          DEBUG_PRINT2 ("%u registers pushed.\n", num_regs_pushed);
-
-#ifdef WCHAR
-	  if (MATCHING_IN_FIRST_STRING)
-	    mcnt = mbs_offset1 != NULL ? mbs_offset1[d-string1] : 0;
-	  else
-	    mcnt = (mbs_offset2 != NULL ? mbs_offset2[d-string2] : 0) +
-			csize1;
-          mcnt -= pos;
-#else
-          mcnt = d - pos - (MATCHING_IN_FIRST_STRING
-			    ? string1
-			    : string2 - size1);
-#endif /* WCHAR */
-
-          DEBUG_PRINT2 ("Returning %d from re_match_2.\n", mcnt);
-
-          FREE_VARIABLES ();
-          return mcnt;
-        }
-
-      /* Otherwise match next pattern command.  */
-      switch (SWITCH_ENUM_CAST ((re_opcode_t) *p++))
-	{
-        /* Ignore these.  Used to ignore the n of succeed_n's which
-           currently have n == 0.  */
-        case no_op:
-          DEBUG_PRINT1 ("EXECUTING no_op.\n");
-          break;
-
-	case succeed:
-          DEBUG_PRINT1 ("EXECUTING succeed.\n");
-	  goto succeed_label;
-
-        /* Match the next n pattern characters exactly.  The following
-           byte in the pattern defines n, and the n bytes after that
-           are the characters to match.  */
-	case exactn:
-#ifdef MBS_SUPPORT
-	case exactn_bin:
-#endif
-	  mcnt = *p++;
-          DEBUG_PRINT2 ("EXECUTING exactn %d.\n", mcnt);
-
-          /* This is written out as an if-else so we don't waste time
-             testing `translate' inside the loop.  */
-          if (translate)
-	    {
-	      do
-		{
-		  PREFETCH ();
-#ifdef WCHAR
-		  if (*d <= 0xff)
-		    {
-		      if ((UCHAR_T) translate[(unsigned char) *d++]
-			  != (UCHAR_T) *p++)
-			goto fail;
-		    }
-		  else
-		    {
-		      if (*d++ != (CHAR_T) *p++)
-			goto fail;
-		    }
-#else
-		  if ((UCHAR_T) translate[(unsigned char) *d++]
-		      != (UCHAR_T) *p++)
-                    goto fail;
-#endif /* WCHAR */
-		}
-	      while (--mcnt);
-	    }
-	  else
-	    {
-	      do
-		{
-		  PREFETCH ();
-		  if (*d++ != (CHAR_T) *p++) goto fail;
-		}
-	      while (--mcnt);
-	    }
-	  SET_REGS_MATCHED ();
-          break;
-
-
-        /* Match any character except possibly a newline or a null.  */
-	case anychar:
-          DEBUG_PRINT1 ("EXECUTING anychar.\n");
-
-          PREFETCH ();
-
-          if ((!(bufp->syntax & RE_DOT_NEWLINE) && TRANSLATE (*d) == '\n')
-              || (bufp->syntax & RE_DOT_NOT_NULL && TRANSLATE (*d) == '\000'))
-	    goto fail;
-
-          SET_REGS_MATCHED ();
-          DEBUG_PRINT2 ("  Matched `%ld'.\n", (long int) *d);
-          d++;
-	  break;
-
-
-	case charset:
-	case charset_not:
-	  {
-	    register UCHAR_T c;
-#ifdef WCHAR
-	    unsigned int i, char_class_length, coll_symbol_length,
-              equiv_class_length, ranges_length, chars_length, length;
-	    CHAR_T *workp, *workp2, *charset_top;
-#define WORK_BUFFER_SIZE 128
-            CHAR_T str_buf[WORK_BUFFER_SIZE];
-# ifdef _LIBC
-	    uint32_t nrules;
-# endif /* _LIBC */
-#endif /* WCHAR */
-	    boolean negate = (re_opcode_t) *(p - 1) == charset_not;
-
-            DEBUG_PRINT2 ("EXECUTING charset%s.\n", negate ? "_not" : "");
-	    PREFETCH ();
-	    c = TRANSLATE (*d); /* The character to match.  */
-#ifdef WCHAR
-# ifdef _LIBC
-	    nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
-# endif /* _LIBC */
-	    charset_top = p - 1;
-	    char_class_length = *p++;
-	    coll_symbol_length = *p++;
-	    equiv_class_length = *p++;
-	    ranges_length = *p++;
-	    chars_length = *p++;
-	    /* p points charset[6], so the address of the next instruction
-	       (charset[l+m+n+2o+k+p']) equals p[l+m+n+2*o+p'],
-	       where l=length of char_classes, m=length of collating_symbol,
-	       n=equivalence_class, o=length of char_range,
-	       p'=length of character.  */
-	    workp = p;
-	    /* Update p to indicate the next instruction.  */
-	    p += char_class_length + coll_symbol_length+ equiv_class_length +
-              2*ranges_length + chars_length;
-
-            /* match with char_class?  */
-	    for (i = 0; i < char_class_length ; i += CHAR_CLASS_SIZE)
-	      {
-		wctype_t wctype;
-		uintptr_t alignedp = ((uintptr_t)workp
-				      + __alignof__(wctype_t) - 1)
-		  		      & ~(uintptr_t)(__alignof__(wctype_t) - 1);
-		wctype = *((wctype_t*)alignedp);
-		workp += CHAR_CLASS_SIZE;
-# ifdef _LIBC
-		if (__iswctype((wint_t)c, wctype))
-		  goto char_set_matched;
-# else
-		if (iswctype((wint_t)c, wctype))
-		  goto char_set_matched;
-# endif
-	      }
-
-            /* match with collating_symbol?  */
-# ifdef _LIBC
-	    if (nrules != 0)
-	      {
-		const unsigned char *extra = (const unsigned char *)
-		  _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB);
-
-		for (workp2 = workp + coll_symbol_length ; workp < workp2 ;
-		     workp++)
-		  {
-		    int32_t *wextra;
-		    wextra = (int32_t*)(extra + *workp++);
-		    for (i = 0; i < *wextra; ++i)
-		      if (TRANSLATE(d[i]) != wextra[1 + i])
-			break;
-
-		    if (i == *wextra)
-		      {
-			/* Update d, however d will be incremented at
-			   char_set_matched:, we decrement d here.  */
-			d += i - 1;
-			goto char_set_matched;
-		      }
-		  }
-	      }
-	    else /* (nrules == 0) */
-# endif
-	      /* If we can't look up collation data, we use wcscoll
-		 instead.  */
-	      {
-		for (workp2 = workp + coll_symbol_length ; workp < workp2 ;)
-		  {
-		    const CHAR_T *backup_d = d, *backup_dend = dend;
-# ifdef _LIBC
-		    length = __wcslen (workp);
-# else
-		    length = wcslen (workp);
-# endif
-
-		    /* If wcscoll(the collating symbol, whole string) > 0,
-		       any substring of the string never match with the
-		       collating symbol.  */
-# ifdef _LIBC
-		    if (__wcscoll (workp, d) > 0)
-# else
-		    if (wcscoll (workp, d) > 0)
-# endif
-		      {
-			workp += length + 1;
-			continue;
-		      }
-
-		    /* First, we compare the collating symbol with
-		       the first character of the string.
-		       If it don't match, we add the next character to
-		       the compare buffer in turn.  */
-		    for (i = 0 ; i < WORK_BUFFER_SIZE-1 ; i++, d++)
-		      {
-			int match;
-			if (d == dend)
-			  {
-			    if (dend == end_match_2)
-			      break;
-			    d = string2;
-			    dend = end_match_2;
-			  }
-
-			/* add next character to the compare buffer.  */
-			str_buf[i] = TRANSLATE(*d);
-			str_buf[i+1] = '\0';
-
-# ifdef _LIBC
-			match = __wcscoll (workp, str_buf);
-# else
-			match = wcscoll (workp, str_buf);
-# endif
-			if (match == 0)
-			  goto char_set_matched;
-
-			if (match < 0)
-			  /* (str_buf > workp) indicate (str_buf + X > workp),
-			     because for all X (str_buf + X > str_buf).
-			     So we don't need continue this loop.  */
-			  break;
-
-			/* Otherwise(str_buf < workp),
-			   (str_buf+next_character) may equals (workp).
-			   So we continue this loop.  */
-		      }
-		    /* not matched */
-		    d = backup_d;
-		    dend = backup_dend;
-		    workp += length + 1;
-		  }
-              }
-            /* match with equivalence_class?  */
-# ifdef _LIBC
-	    if (nrules != 0)
-	      {
-                const CHAR_T *backup_d = d, *backup_dend = dend;
-		/* Try to match the equivalence class against
-		   those known to the collate implementation.  */
-		const int32_t *table;
-		const int32_t *weights;
-		const int32_t *extra;
-		const int32_t *indirect;
-		int32_t idx, idx2;
-		wint_t *cp;
-		size_t len;
-
-		/* This #include defines a local function!  */
-#  include <locale/weightwc.h>
-
-		table = (const int32_t *)
-		  _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEWC);
-		weights = (const wint_t *)
-		  _NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTWC);
-		extra = (const wint_t *)
-		  _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAWC);
-		indirect = (const int32_t *)
-		  _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTWC);
-
-		/* Write 1 collating element to str_buf, and
-		   get its index.  */
-		idx2 = 0;
-
-		for (i = 0 ; idx2 == 0 && i < WORK_BUFFER_SIZE - 1; i++)
-		  {
-		    cp = (wint_t*)str_buf;
-		    if (d == dend)
-		      {
-			if (dend == end_match_2)
-			  break;
-			d = string2;
-			dend = end_match_2;
-		      }
-		    str_buf[i] = TRANSLATE(*(d+i));
-		    str_buf[i+1] = '\0'; /* sentinel */
-		    idx2 = findidx ((const wint_t**)&cp);
-		  }
-
-		/* Update d, however d will be incremented at
-		   char_set_matched:, we decrement d here.  */
-		d = backup_d + ((wchar_t*)cp - (wchar_t*)str_buf - 1);
-		if (d >= dend)
-		  {
-		    if (dend == end_match_2)
-			d = dend;
-		    else
-		      {
-			d = string2;
-			dend = end_match_2;
-		      }
-		  }
-
-		len = weights[idx2];
-
-		for (workp2 = workp + equiv_class_length ; workp < workp2 ;
-		     workp++)
-		  {
-		    idx = (int32_t)*workp;
-		    /* We already checked idx != 0 in regex_compile. */
-
-		    if (idx2 != 0 && len == weights[idx])
-		      {
-			int cnt = 0;
-			while (cnt < len && (weights[idx + 1 + cnt]
-					     == weights[idx2 + 1 + cnt]))
-			  ++cnt;
-
-			if (cnt == len)
-			  goto char_set_matched;
-		      }
-		  }
-		/* not matched */
-                d = backup_d;
-                dend = backup_dend;
-	      }
-	    else /* (nrules == 0) */
-# endif
-	      /* If we can't look up collation data, we use wcscoll
-		 instead.  */
-	      {
-		for (workp2 = workp + equiv_class_length ; workp < workp2 ;)
-		  {
-		    const CHAR_T *backup_d = d, *backup_dend = dend;
-# ifdef _LIBC
-		    length = __wcslen (workp);
-# else
-		    length = wcslen (workp);
-# endif
-
-		    /* If wcscoll(the collating symbol, whole string) > 0,
-		       any substring of the string never match with the
-		       collating symbol.  */
-# ifdef _LIBC
-		    if (__wcscoll (workp, d) > 0)
-# else
-		    if (wcscoll (workp, d) > 0)
-# endif
-		      {
-			workp += length + 1;
-			break;
-		      }
-
-		    /* First, we compare the equivalence class with
-		       the first character of the string.
-		       If it don't match, we add the next character to
-		       the compare buffer in turn.  */
-		    for (i = 0 ; i < WORK_BUFFER_SIZE - 1 ; i++, d++)
-		      {
-			int match;
-			if (d == dend)
-			  {
-			    if (dend == end_match_2)
-			      break;
-			    d = string2;
-			    dend = end_match_2;
-			  }
-
-			/* add next character to the compare buffer.  */
-			str_buf[i] = TRANSLATE(*d);
-			str_buf[i+1] = '\0';
-
-# ifdef _LIBC
-			match = __wcscoll (workp, str_buf);
-# else
-			match = wcscoll (workp, str_buf);
-# endif
-
-			if (match == 0)
-			  goto char_set_matched;
-
-			if (match < 0)
-			/* (str_buf > workp) indicate (str_buf + X > workp),
-			   because for all X (str_buf + X > str_buf).
-			   So we don't need continue this loop.  */
-			  break;
-
-			/* Otherwise(str_buf < workp),
-			   (str_buf+next_character) may equals (workp).
-			   So we continue this loop.  */
-		      }
-		    /* not matched */
-		    d = backup_d;
-		    dend = backup_dend;
-		    workp += length + 1;
-		  }
-	      }
-
-            /* match with char_range?  */
-# ifdef _LIBC
-	    if (nrules != 0)
-	      {
-		uint32_t collseqval;
-		const char *collseq = (const char *)
-		  _NL_CURRENT(LC_COLLATE, _NL_COLLATE_COLLSEQWC);
-
-		collseqval = collseq_table_lookup (collseq, c);
-
-		for (; workp < p - chars_length ;)
-		  {
-		    uint32_t start_val, end_val;
-
-		    /* We already compute the collation sequence value
-		       of the characters (or collating symbols).  */
-		    start_val = (uint32_t) *workp++; /* range_start */
-		    end_val = (uint32_t) *workp++; /* range_end */
-
-		    if (start_val <= collseqval && collseqval <= end_val)
-		      goto char_set_matched;
-		  }
-	      }
-	    else
-# endif
-	      {
-		/* We set range_start_char at str_buf[0], range_end_char
-		   at str_buf[4], and compared char at str_buf[2].  */
-		str_buf[1] = 0;
-		str_buf[2] = c;
-		str_buf[3] = 0;
-		str_buf[5] = 0;
-		for (; workp < p - chars_length ;)
-		  {
-		    wchar_t *range_start_char, *range_end_char;
-
-		    /* match if (range_start_char <= c <= range_end_char).  */
-
-		    /* If range_start(or end) < 0, we assume -range_start(end)
-		       is the offset of the collating symbol which is specified
-		       as the character of the range start(end).  */
-
-		    /* range_start */
-		    if (*workp < 0)
-		      range_start_char = charset_top - (*workp++);
-		    else
-		      {
-			str_buf[0] = *workp++;
-			range_start_char = str_buf;
-		      }
-
-		    /* range_end */
-		    if (*workp < 0)
-		      range_end_char = charset_top - (*workp++);
-		    else
-		      {
-			str_buf[4] = *workp++;
-			range_end_char = str_buf + 4;
-		      }
-
-# ifdef _LIBC
-		    if (__wcscoll (range_start_char, str_buf+2) <= 0
-			&& __wcscoll (str_buf+2, range_end_char) <= 0)
-# else
-		    if (wcscoll (range_start_char, str_buf+2) <= 0
-			&& wcscoll (str_buf+2, range_end_char) <= 0)
-# endif
-		      goto char_set_matched;
-		  }
-	      }
-
-            /* match with char?  */
-	    for (; workp < p ; workp++)
-	      if (c == *workp)
-		goto char_set_matched;
-
-	    negate = !negate;
-
-	  char_set_matched:
-	    if (negate) goto fail;
-#else
-            /* Cast to `unsigned' instead of `unsigned char' in case the
-               bit list is a full 32 bytes long.  */
-	    if (c < (unsigned) (*p * BYTEWIDTH)
-		&& p[1 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH)))
-	      negate = !negate;
-
-	    p += 1 + *p;
-
-	    if (!negate) goto fail;
-#undef WORK_BUFFER_SIZE
-#endif /* WCHAR */
-	    SET_REGS_MATCHED ();
-            d++;
-	    break;
-	  }
-
-
-        /* The beginning of a group is represented by start_memory.
-           The arguments are the register number in the next byte, and the
-           number of groups inner to this one in the next.  The text
-           matched within the group is recorded (in the internal
-           registers data structure) under the register number.  */
-        case start_memory:
-	  DEBUG_PRINT3 ("EXECUTING start_memory %ld (%ld):\n",
-			(long int) *p, (long int) p[1]);
-
-          /* Find out if this group can match the empty string.  */
-	  p1 = p;		/* To send to group_match_null_string_p.  */
-
-          if (REG_MATCH_NULL_STRING_P (reg_info[*p]) == MATCH_NULL_UNSET_VALUE)
-            REG_MATCH_NULL_STRING_P (reg_info[*p])
-              = PREFIX(group_match_null_string_p) (&p1, pend, reg_info);
-
-          /* Save the position in the string where we were the last time
-             we were at this open-group operator in case the group is
-             operated upon by a repetition operator, e.g., with `(a*)*b'
-             against `ab'; then we want to ignore where we are now in
-             the string in case this attempt to match fails.  */
-          old_regstart[*p] = REG_MATCH_NULL_STRING_P (reg_info[*p])
-                             ? REG_UNSET (regstart[*p]) ? d : regstart[*p]
-                             : regstart[*p];
-	  DEBUG_PRINT2 ("  old_regstart: %d\n",
-			 POINTER_TO_OFFSET (old_regstart[*p]));
-
-          regstart[*p] = d;
-	  DEBUG_PRINT2 ("  regstart: %d\n", POINTER_TO_OFFSET (regstart[*p]));
-
-          IS_ACTIVE (reg_info[*p]) = 1;
-          MATCHED_SOMETHING (reg_info[*p]) = 0;
-
-	  /* Clear this whenever we change the register activity status.  */
-	  set_regs_matched_done = 0;
-
-          /* This is the new highest active register.  */
-          highest_active_reg = *p;
-
-          /* If nothing was active before, this is the new lowest active
-             register.  */
-          if (lowest_active_reg == NO_LOWEST_ACTIVE_REG)
-            lowest_active_reg = *p;
-
-          /* Move past the register number and inner group count.  */
-          p += 2;
-	  just_past_start_mem = p;
-
-          break;
-
-
-        /* The stop_memory opcode represents the end of a group.  Its
-           arguments are the same as start_memory's: the register
-           number, and the number of inner groups.  */
-	case stop_memory:
-	  DEBUG_PRINT3 ("EXECUTING stop_memory %ld (%ld):\n",
-			(long int) *p, (long int) p[1]);
-
-          /* We need to save the string position the last time we were at
-             this close-group operator in case the group is operated
-             upon by a repetition operator, e.g., with `((a*)*(b*)*)*'
-             against `aba'; then we want to ignore where we are now in
-             the string in case this attempt to match fails.  */
-          old_regend[*p] = REG_MATCH_NULL_STRING_P (reg_info[*p])
-                           ? REG_UNSET (regend[*p]) ? d : regend[*p]
-			   : regend[*p];
-	  DEBUG_PRINT2 ("      old_regend: %d\n",
-			 POINTER_TO_OFFSET (old_regend[*p]));
-
-          regend[*p] = d;
-	  DEBUG_PRINT2 ("      regend: %d\n", POINTER_TO_OFFSET (regend[*p]));
-
-          /* This register isn't active anymore.  */
-          IS_ACTIVE (reg_info[*p]) = 0;
-
-	  /* Clear this whenever we change the register activity status.  */
-	  set_regs_matched_done = 0;
-
-          /* If this was the only register active, nothing is active
-             anymore.  */
-          if (lowest_active_reg == highest_active_reg)
-            {
-              lowest_active_reg = NO_LOWEST_ACTIVE_REG;
-              highest_active_reg = NO_HIGHEST_ACTIVE_REG;
-            }
-          else
-            { /* We must scan for the new highest active register, since
-                 it isn't necessarily one less than now: consider
-                 (a(b)c(d(e)f)g).  When group 3 ends, after the f), the
-                 new highest active register is 1.  */
-              UCHAR_T r = *p - 1;
-              while (r > 0 && !IS_ACTIVE (reg_info[r]))
-                r--;
-
-              /* If we end up at register zero, that means that we saved
-                 the registers as the result of an `on_failure_jump', not
-                 a `start_memory', and we jumped to past the innermost
-                 `stop_memory'.  For example, in ((.)*) we save
-                 registers 1 and 2 as a result of the *, but when we pop
-                 back to the second ), we are at the stop_memory 1.
-                 Thus, nothing is active.  */
-	      if (r == 0)
-                {
-                  lowest_active_reg = NO_LOWEST_ACTIVE_REG;
-                  highest_active_reg = NO_HIGHEST_ACTIVE_REG;
-                }
-              else
-                highest_active_reg = r;
-            }
-
-          /* If just failed to match something this time around with a
-             group that's operated on by a repetition operator, try to
-             force exit from the ``loop'', and restore the register
-             information for this group that we had before trying this
-             last match.  */
-          if ((!MATCHED_SOMETHING (reg_info[*p])
-               || just_past_start_mem == p - 1)
-	      && (p + 2) < pend)
-            {
-              boolean is_a_jump_n = false;
-
-              p1 = p + 2;
-              mcnt = 0;
-              switch ((re_opcode_t) *p1++)
-                {
-                  case jump_n:
-		    is_a_jump_n = true;
-                  case pop_failure_jump:
-		  case maybe_pop_jump:
-		  case jump:
-		  case dummy_failure_jump:
-                    EXTRACT_NUMBER_AND_INCR (mcnt, p1);
-		    if (is_a_jump_n)
-		      p1 += OFFSET_ADDRESS_SIZE;
-                    break;
-
-                  default:
-                    /* do nothing */ ;
-                }
-	      p1 += mcnt;
-
-              /* If the next operation is a jump backwards in the pattern
-	         to an on_failure_jump right before the start_memory
-                 corresponding to this stop_memory, exit from the loop
-                 by forcing a failure after pushing on the stack the
-                 on_failure_jump's jump in the pattern, and d.  */
-              if (mcnt < 0 && (re_opcode_t) *p1 == on_failure_jump
-                  && (re_opcode_t) p1[1+OFFSET_ADDRESS_SIZE] == start_memory
-		  && p1[2+OFFSET_ADDRESS_SIZE] == *p)
-		{
-                  /* If this group ever matched anything, then restore
-                     what its registers were before trying this last
-                     failed match, e.g., with `(a*)*b' against `ab' for
-                     regstart[1], and, e.g., with `((a*)*(b*)*)*'
-                     against `aba' for regend[3].
-
-                     Also restore the registers for inner groups for,
-                     e.g., `((a*)(b*))*' against `aba' (register 3 would
-                     otherwise get trashed).  */
-
-                  if (EVER_MATCHED_SOMETHING (reg_info[*p]))
-		    {
-		      unsigned r;
-
-                      EVER_MATCHED_SOMETHING (reg_info[*p]) = 0;
-
-		      /* Restore this and inner groups' (if any) registers.  */
-                      for (r = *p; r < (unsigned) *p + (unsigned) *(p + 1);
-			   r++)
-                        {
-                          regstart[r] = old_regstart[r];
-
-                          /* xx why this test?  */
-                          if (old_regend[r] >= regstart[r])
-                            regend[r] = old_regend[r];
-                        }
-                    }
-		  p1++;
-                  EXTRACT_NUMBER_AND_INCR (mcnt, p1);
-                  PUSH_FAILURE_POINT (p1 + mcnt, d, -2);
-
-                  goto fail;
-                }
-            }
-
-          /* Move past the register number and the inner group count.  */
-          p += 2;
-          break;
-
-
-	/* \<digit> has been turned into a `duplicate' command which is
-           followed by the numeric value of <digit> as the register number.  */
-        case duplicate:
-	  {
-	    register const CHAR_T *d2, *dend2;
-	    int regno = *p++;   /* Get which register to match against.  */
-	    DEBUG_PRINT2 ("EXECUTING duplicate %d.\n", regno);
-
-	    /* Can't back reference a group which we've never matched.  */
-            if (REG_UNSET (regstart[regno]) || REG_UNSET (regend[regno]))
-              goto fail;
-
-            /* Where in input to try to start matching.  */
-            d2 = regstart[regno];
-
-            /* Where to stop matching; if both the place to start and
-               the place to stop matching are in the same string, then
-               set to the place to stop, otherwise, for now have to use
-               the end of the first string.  */
-
-            dend2 = ((FIRST_STRING_P (regstart[regno])
-		      == FIRST_STRING_P (regend[regno]))
-		     ? regend[regno] : end_match_1);
-	    for (;;)
-	      {
-		/* If necessary, advance to next segment in register
-                   contents.  */
-		while (d2 == dend2)
-		  {
-		    if (dend2 == end_match_2) break;
-		    if (dend2 == regend[regno]) break;
-
-                    /* End of string1 => advance to string2. */
-                    d2 = string2;
-                    dend2 = regend[regno];
-		  }
-		/* At end of register contents => success */
-		if (d2 == dend2) break;
-
-		/* If necessary, advance to next segment in data.  */
-		PREFETCH ();
-
-		/* How many characters left in this segment to match.  */
-		mcnt = dend - d;
-
-		/* Want how many consecutive characters we can match in
-                   one shot, so, if necessary, adjust the count.  */
-                if (mcnt > dend2 - d2)
-		  mcnt = dend2 - d2;
-
-		/* Compare that many; failure if mismatch, else move
-                   past them.  */
-		if (translate
-                    ? PREFIX(bcmp_translate) (d, d2, mcnt, translate)
-                    : memcmp (d, d2, mcnt*sizeof(UCHAR_T)))
-		  goto fail;
-		d += mcnt, d2 += mcnt;
-
-		/* Do this because we've match some characters.  */
-		SET_REGS_MATCHED ();
-	      }
-	  }
-	  break;
-
-
-        /* begline matches the empty string at the beginning of the string
-           (unless `not_bol' is set in `bufp'), and, if
-           `newline_anchor' is set, after newlines.  */
-	case begline:
-          DEBUG_PRINT1 ("EXECUTING begline.\n");
-
-          if (AT_STRINGS_BEG (d))
-            {
-              if (!bufp->not_bol) break;
-            }
-          else if (d[-1] == '\n' && bufp->newline_anchor)
-            {
-              break;
-            }
-          /* In all other cases, we fail.  */
-          goto fail;
-
-
-        /* endline is the dual of begline.  */
-	case endline:
-          DEBUG_PRINT1 ("EXECUTING endline.\n");
-
-          if (AT_STRINGS_END (d))
-            {
-              if (!bufp->not_eol) break;
-            }
-
-          /* We have to ``prefetch'' the next character.  */
-          else if ((d == end1 ? *string2 : *d) == '\n'
-                   && bufp->newline_anchor)
-            {
-              break;
-            }
-          goto fail;
-
-
-	/* Match at the very beginning of the data.  */
-        case begbuf:
-          DEBUG_PRINT1 ("EXECUTING begbuf.\n");
-          if (AT_STRINGS_BEG (d))
-            break;
-          goto fail;
-
-
-	/* Match at the very end of the data.  */
-        case endbuf:
-          DEBUG_PRINT1 ("EXECUTING endbuf.\n");
-	  if (AT_STRINGS_END (d))
-	    break;
-          goto fail;
-
-
-        /* on_failure_keep_string_jump is used to optimize `.*\n'.  It
-           pushes NULL as the value for the string on the stack.  Then
-           `pop_failure_point' will keep the current value for the
-           string, instead of restoring it.  To see why, consider
-           matching `foo\nbar' against `.*\n'.  The .* matches the foo;
-           then the . fails against the \n.  But the next thing we want
-           to do is match the \n against the \n; if we restored the
-           string value, we would be back at the foo.
-
-           Because this is used only in specific cases, we don't need to
-           check all the things that `on_failure_jump' does, to make
-           sure the right things get saved on the stack.  Hence we don't
-           share its code.  The only reason to push anything on the
-           stack at all is that otherwise we would have to change
-           `anychar's code to do something besides goto fail in this
-           case; that seems worse than this.  */
-        case on_failure_keep_string_jump:
-          DEBUG_PRINT1 ("EXECUTING on_failure_keep_string_jump");
-
-          EXTRACT_NUMBER_AND_INCR (mcnt, p);
-#ifdef _LIBC
-          DEBUG_PRINT3 (" %d (to %p):\n", mcnt, p + mcnt);
-#else
-          DEBUG_PRINT3 (" %d (to 0x%x):\n", mcnt, p + mcnt);
-#endif
-
-          PUSH_FAILURE_POINT (p + mcnt, NULL, -2);
-          break;
-
-
-	/* Uses of on_failure_jump:
-
-           Each alternative starts with an on_failure_jump that points
-           to the beginning of the next alternative.  Each alternative
-           except the last ends with a jump that in effect jumps past
-           the rest of the alternatives.  (They really jump to the
-           ending jump of the following alternative, because tensioning
-           these jumps is a hassle.)
-
-           Repeats start with an on_failure_jump that points past both
-           the repetition text and either the following jump or
-           pop_failure_jump back to this on_failure_jump.  */
-	case on_failure_jump:
-        on_failure:
-          DEBUG_PRINT1 ("EXECUTING on_failure_jump");
-
-          EXTRACT_NUMBER_AND_INCR (mcnt, p);
-#ifdef _LIBC
-          DEBUG_PRINT3 (" %d (to %p)", mcnt, p + mcnt);
-#else
-          DEBUG_PRINT3 (" %d (to 0x%x)", mcnt, p + mcnt);
-#endif
-
-          /* If this on_failure_jump comes right before a group (i.e.,
-             the original * applied to a group), save the information
-             for that group and all inner ones, so that if we fail back
-             to this point, the group's information will be correct.
-             For example, in \(a*\)*\1, we need the preceding group,
-             and in \(zz\(a*\)b*\)\2, we need the inner group.  */
-
-          /* We can't use `p' to check ahead because we push
-             a failure point to `p + mcnt' after we do this.  */
-          p1 = p;
-
-          /* We need to skip no_op's before we look for the
-             start_memory in case this on_failure_jump is happening as
-             the result of a completed succeed_n, as in \(a\)\{1,3\}b\1
-             against aba.  */
-          while (p1 < pend && (re_opcode_t) *p1 == no_op)
-            p1++;
-
-          if (p1 < pend && (re_opcode_t) *p1 == start_memory)
-            {
-              /* We have a new highest active register now.  This will
-                 get reset at the start_memory we are about to get to,
-                 but we will have saved all the registers relevant to
-                 this repetition op, as described above.  */
-              highest_active_reg = *(p1 + 1) + *(p1 + 2);
-              if (lowest_active_reg == NO_LOWEST_ACTIVE_REG)
-                lowest_active_reg = *(p1 + 1);
-            }
-
-          DEBUG_PRINT1 (":\n");
-          PUSH_FAILURE_POINT (p + mcnt, d, -2);
-          break;
-
-
-        /* A smart repeat ends with `maybe_pop_jump'.
-	   We change it to either `pop_failure_jump' or `jump'.  */
-        case maybe_pop_jump:
-          EXTRACT_NUMBER_AND_INCR (mcnt, p);
-          DEBUG_PRINT2 ("EXECUTING maybe_pop_jump %d.\n", mcnt);
-          {
-	    register UCHAR_T *p2 = p;
-
-            /* Compare the beginning of the repeat with what in the
-               pattern follows its end. If we can establish that there
-               is nothing that they would both match, i.e., that we
-               would have to backtrack because of (as in, e.g., `a*a')
-               then we can change to pop_failure_jump, because we'll
-               never have to backtrack.
-
-               This is not true in the case of alternatives: in
-               `(a|ab)*' we do need to backtrack to the `ab' alternative
-               (e.g., if the string was `ab').  But instead of trying to
-               detect that here, the alternative has put on a dummy
-               failure point which is what we will end up popping.  */
-
-	    /* Skip over open/close-group commands.
-	       If what follows this loop is a ...+ construct,
-	       look at what begins its body, since we will have to
-	       match at least one of that.  */
-	    while (1)
-	      {
-		if (p2 + 2 < pend
-		    && ((re_opcode_t) *p2 == stop_memory
-			|| (re_opcode_t) *p2 == start_memory))
-		  p2 += 3;
-		else if (p2 + 2 + 2 * OFFSET_ADDRESS_SIZE < pend
-			 && (re_opcode_t) *p2 == dummy_failure_jump)
-		  p2 += 2 + 2 * OFFSET_ADDRESS_SIZE;
-		else
-		  break;
-	      }
-
-	    p1 = p + mcnt;
-	    /* p1[0] ... p1[2] are the `on_failure_jump' corresponding
-	       to the `maybe_finalize_jump' of this case.  Examine what
-	       follows.  */
-
-            /* If we're at the end of the pattern, we can change.  */
-            if (p2 == pend)
-	      {
-		/* Consider what happens when matching ":\(.*\)"
-		   against ":/".  I don't really understand this code
-		   yet.  */
-  	        p[-(1+OFFSET_ADDRESS_SIZE)] = (UCHAR_T)
-		  pop_failure_jump;
-                DEBUG_PRINT1
-                  ("  End of pattern: change to `pop_failure_jump'.\n");
-              }
-
-            else if ((re_opcode_t) *p2 == exactn
-#ifdef MBS_SUPPORT
-		     || (re_opcode_t) *p2 == exactn_bin
-#endif
-		     || (bufp->newline_anchor && (re_opcode_t) *p2 == endline))
-	      {
-		register UCHAR_T c
-                  = *p2 == (UCHAR_T) endline ? '\n' : p2[2];
-
-                if (((re_opcode_t) p1[1+OFFSET_ADDRESS_SIZE] == exactn
-#ifdef MBS_SUPPORT
-		     || (re_opcode_t) p1[1+OFFSET_ADDRESS_SIZE] == exactn_bin
-#endif
-		    ) && p1[3+OFFSET_ADDRESS_SIZE] != c)
-                  {
-  		    p[-(1+OFFSET_ADDRESS_SIZE)] = (UCHAR_T)
-		      pop_failure_jump;
-#ifdef WCHAR
-		      DEBUG_PRINT3 ("  %C != %C => pop_failure_jump.\n",
-				    (wint_t) c,
-				    (wint_t) p1[3+OFFSET_ADDRESS_SIZE]);
-#else
-		      DEBUG_PRINT3 ("  %c != %c => pop_failure_jump.\n",
-				    (char) c,
-				    (char) p1[3+OFFSET_ADDRESS_SIZE]);
-#endif
-                  }
-
-#ifndef WCHAR
-		else if ((re_opcode_t) p1[3] == charset
-			 || (re_opcode_t) p1[3] == charset_not)
-		  {
-		    int negate = (re_opcode_t) p1[3] == charset_not;
-
-		    if (c < (unsigned) (p1[4] * BYTEWIDTH)
-			&& p1[5 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH)))
-		      negate = !negate;
-
-                    /* `negate' is equal to 1 if c would match, which means
-                        that we can't change to pop_failure_jump.  */
-		    if (!negate)
-                      {
-  		        p[-3] = (unsigned char) pop_failure_jump;
-                        DEBUG_PRINT1 ("  No match => pop_failure_jump.\n");
-                      }
-		  }
-#endif /* not WCHAR */
-	      }
-#ifndef WCHAR
-            else if ((re_opcode_t) *p2 == charset)
-	      {
-		/* We win if the first character of the loop is not part
-                   of the charset.  */
-                if ((re_opcode_t) p1[3] == exactn
- 		    && ! ((int) p2[1] * BYTEWIDTH > (int) p1[5]
- 			  && (p2[2 + p1[5] / BYTEWIDTH]
- 			      & (1 << (p1[5] % BYTEWIDTH)))))
-		  {
-		    p[-3] = (unsigned char) pop_failure_jump;
-		    DEBUG_PRINT1 ("  No match => pop_failure_jump.\n");
-                  }
-
-		else if ((re_opcode_t) p1[3] == charset_not)
-		  {
-		    int idx;
-		    /* We win if the charset_not inside the loop
-		       lists every character listed in the charset after.  */
-		    for (idx = 0; idx < (int) p2[1]; idx++)
-		      if (! (p2[2 + idx] == 0
-			     || (idx < (int) p1[4]
-				 && ((p2[2 + idx] & ~ p1[5 + idx]) == 0))))
-			break;
-
-		    if (idx == p2[1])
-                      {
-  		        p[-3] = (unsigned char) pop_failure_jump;
-                        DEBUG_PRINT1 ("  No match => pop_failure_jump.\n");
-                      }
-		  }
-		else if ((re_opcode_t) p1[3] == charset)
-		  {
-		    int idx;
-		    /* We win if the charset inside the loop
-		       has no overlap with the one after the loop.  */
-		    for (idx = 0;
-			 idx < (int) p2[1] && idx < (int) p1[4];
-			 idx++)
-		      if ((p2[2 + idx] & p1[5 + idx]) != 0)
-			break;
-
-		    if (idx == p2[1] || idx == p1[4])
-                      {
-  		        p[-3] = (unsigned char) pop_failure_jump;
-                        DEBUG_PRINT1 ("  No match => pop_failure_jump.\n");
-                      }
-		  }
-	      }
-#endif /* not WCHAR */
-	  }
-	  p -= OFFSET_ADDRESS_SIZE;	/* Point at relative address again.  */
-	  if ((re_opcode_t) p[-1] != pop_failure_jump)
-	    {
-	      p[-1] = (UCHAR_T) jump;
-              DEBUG_PRINT1 ("  Match => jump.\n");
-	      goto unconditional_jump;
-	    }
-        /* Note fall through.  */
-
-
-	/* The end of a simple repeat has a pop_failure_jump back to
-           its matching on_failure_jump, where the latter will push a
-           failure point.  The pop_failure_jump takes off failure
-           points put on by this pop_failure_jump's matching
-           on_failure_jump; we got through the pattern to here from the
-           matching on_failure_jump, so didn't fail.  */
-        case pop_failure_jump:
-          {
-            /* We need to pass separate storage for the lowest and
-               highest registers, even though we don't care about the
-               actual values.  Otherwise, we will restore only one
-               register from the stack, since lowest will == highest in
-               `pop_failure_point'.  */
-            active_reg_t dummy_low_reg, dummy_high_reg;
-            UCHAR_T *pdummy = NULL;
-            const CHAR_T *sdummy = NULL;
-
-            DEBUG_PRINT1 ("EXECUTING pop_failure_jump.\n");
-            POP_FAILURE_POINT (sdummy, pdummy,
-                               dummy_low_reg, dummy_high_reg,
-                               reg_dummy, reg_dummy, reg_info_dummy);
-          }
-	  /* Note fall through.  */
-
-	unconditional_jump:
-#ifdef _LIBC
-	  DEBUG_PRINT2 ("\n%p: ", p);
-#else
-	  DEBUG_PRINT2 ("\n0x%x: ", p);
-#endif
-          /* Note fall through.  */
-
-        /* Unconditionally jump (without popping any failure points).  */
-        case jump:
-	  EXTRACT_NUMBER_AND_INCR (mcnt, p);	/* Get the amount to jump.  */
-          DEBUG_PRINT2 ("EXECUTING jump %d ", mcnt);
-	  p += mcnt;				/* Do the jump.  */
-#ifdef _LIBC
-          DEBUG_PRINT2 ("(to %p).\n", p);
-#else
-          DEBUG_PRINT2 ("(to 0x%x).\n", p);
-#endif
-	  break;
-
-
-        /* We need this opcode so we can detect where alternatives end
-           in `group_match_null_string_p' et al.  */
-        case jump_past_alt:
-          DEBUG_PRINT1 ("EXECUTING jump_past_alt.\n");
-          goto unconditional_jump;
-
-
-        /* Normally, the on_failure_jump pushes a failure point, which
-           then gets popped at pop_failure_jump.  We will end up at
-           pop_failure_jump, also, and with a pattern of, say, `a+', we
-           are skipping over the on_failure_jump, so we have to push
-           something meaningless for pop_failure_jump to pop.  */
-        case dummy_failure_jump:
-          DEBUG_PRINT1 ("EXECUTING dummy_failure_jump.\n");
-          /* It doesn't matter what we push for the string here.  What
-             the code at `fail' tests is the value for the pattern.  */
-          PUSH_FAILURE_POINT (NULL, NULL, -2);
-          goto unconditional_jump;
-
-
-        /* At the end of an alternative, we need to push a dummy failure
-           point in case we are followed by a `pop_failure_jump', because
-           we don't want the failure point for the alternative to be
-           popped.  For example, matching `(a|ab)*' against `aab'
-           requires that we match the `ab' alternative.  */
-        case push_dummy_failure:
-          DEBUG_PRINT1 ("EXECUTING push_dummy_failure.\n");
-          /* See comments just above at `dummy_failure_jump' about the
-             two zeroes.  */
-          PUSH_FAILURE_POINT (NULL, NULL, -2);
-          break;
-
-        /* Have to succeed matching what follows at least n times.
-           After that, handle like `on_failure_jump'.  */
-        case succeed_n:
-          EXTRACT_NUMBER (mcnt, p + OFFSET_ADDRESS_SIZE);
-          DEBUG_PRINT2 ("EXECUTING succeed_n %d.\n", mcnt);
-
-          assert (mcnt >= 0);
-          /* Originally, this is how many times we HAVE to succeed.  */
-          if (mcnt > 0)
-            {
-               mcnt--;
-	       p += OFFSET_ADDRESS_SIZE;
-               STORE_NUMBER_AND_INCR (p, mcnt);
-#ifdef _LIBC
-               DEBUG_PRINT3 ("  Setting %p to %d.\n", p - OFFSET_ADDRESS_SIZE
-			     , mcnt);
-#else
-               DEBUG_PRINT3 ("  Setting 0x%x to %d.\n", p - OFFSET_ADDRESS_SIZE
-			     , mcnt);
-#endif
-            }
-	  else if (mcnt == 0)
-            {
-#ifdef _LIBC
-              DEBUG_PRINT2 ("  Setting two bytes from %p to no_op.\n",
-			    p + OFFSET_ADDRESS_SIZE);
-#else
-              DEBUG_PRINT2 ("  Setting two bytes from 0x%x to no_op.\n",
-			    p + OFFSET_ADDRESS_SIZE);
-#endif /* _LIBC */
-
-#ifdef WCHAR
-	      p[1] = (UCHAR_T) no_op;
-#else
-	      p[2] = (UCHAR_T) no_op;
-              p[3] = (UCHAR_T) no_op;
-#endif /* WCHAR */
-              goto on_failure;
-            }
-          break;
-
-        case jump_n:
-          EXTRACT_NUMBER (mcnt, p + OFFSET_ADDRESS_SIZE);
-          DEBUG_PRINT2 ("EXECUTING jump_n %d.\n", mcnt);
-
-          /* Originally, this is how many times we CAN jump.  */
-          if (mcnt)
-            {
-               mcnt--;
-               STORE_NUMBER (p + OFFSET_ADDRESS_SIZE, mcnt);
-
-#ifdef _LIBC
-               DEBUG_PRINT3 ("  Setting %p to %d.\n", p + OFFSET_ADDRESS_SIZE,
-			     mcnt);
-#else
-               DEBUG_PRINT3 ("  Setting 0x%x to %d.\n", p + OFFSET_ADDRESS_SIZE,
-			     mcnt);
-#endif /* _LIBC */
-	       goto unconditional_jump;
-            }
-          /* If don't have to jump any more, skip over the rest of command.  */
-	  else
-	    p += 2 * OFFSET_ADDRESS_SIZE;
-          break;
-
-	case set_number_at:
-	  {
-            DEBUG_PRINT1 ("EXECUTING set_number_at.\n");
-
-            EXTRACT_NUMBER_AND_INCR (mcnt, p);
-            p1 = p + mcnt;
-            EXTRACT_NUMBER_AND_INCR (mcnt, p);
-#ifdef _LIBC
-            DEBUG_PRINT3 ("  Setting %p to %d.\n", p1, mcnt);
-#else
-            DEBUG_PRINT3 ("  Setting 0x%x to %d.\n", p1, mcnt);
-#endif
-	    STORE_NUMBER (p1, mcnt);
-            break;
-          }
-
-#if 0
-	/* The DEC Alpha C compiler 3.x generates incorrect code for the
-	   test  WORDCHAR_P (d - 1) != WORDCHAR_P (d)  in the expansion of
-	   AT_WORD_BOUNDARY, so this code is disabled.  Expanding the
-	   macro and introducing temporary variables works around the bug.  */
-
-	case wordbound:
-	  DEBUG_PRINT1 ("EXECUTING wordbound.\n");
-	  if (AT_WORD_BOUNDARY (d))
-	    break;
-	  goto fail;
-
-	case notwordbound:
-	  DEBUG_PRINT1 ("EXECUTING notwordbound.\n");
-	  if (AT_WORD_BOUNDARY (d))
-	    goto fail;
-	  break;
-#else
-	case wordbound:
-	{
-	  boolean prevchar, thischar;
-
-	  DEBUG_PRINT1 ("EXECUTING wordbound.\n");
-	  if (AT_STRINGS_BEG (d) || AT_STRINGS_END (d))
-	    break;
-
-	  prevchar = WORDCHAR_P (d - 1);
-	  thischar = WORDCHAR_P (d);
-	  if (prevchar != thischar)
-	    break;
-	  goto fail;
-	}
-
-      case notwordbound:
-	{
-	  boolean prevchar, thischar;
-
-	  DEBUG_PRINT1 ("EXECUTING notwordbound.\n");
-	  if (AT_STRINGS_BEG (d) || AT_STRINGS_END (d))
-	    goto fail;
-
-	  prevchar = WORDCHAR_P (d - 1);
-	  thischar = WORDCHAR_P (d);
-	  if (prevchar != thischar)
-	    goto fail;
-	  break;
-	}
-#endif
-
-	case wordbeg:
-          DEBUG_PRINT1 ("EXECUTING wordbeg.\n");
-	  if (!AT_STRINGS_END (d) && WORDCHAR_P (d)
-	      && (AT_STRINGS_BEG (d) || !WORDCHAR_P (d - 1)))
-	    break;
-          goto fail;
-
-	case wordend:
-          DEBUG_PRINT1 ("EXECUTING wordend.\n");
-	  if (!AT_STRINGS_BEG (d) && WORDCHAR_P (d - 1)
-              && (AT_STRINGS_END (d) || !WORDCHAR_P (d)))
-	    break;
-          goto fail;
-
-#ifdef emacs
-  	case before_dot:
-          DEBUG_PRINT1 ("EXECUTING before_dot.\n");
- 	  if (PTR_CHAR_POS ((unsigned char *) d) >= point)
-  	    goto fail;
-  	  break;
-
-  	case at_dot:
-          DEBUG_PRINT1 ("EXECUTING at_dot.\n");
- 	  if (PTR_CHAR_POS ((unsigned char *) d) != point)
-  	    goto fail;
-  	  break;
-
-  	case after_dot:
-          DEBUG_PRINT1 ("EXECUTING after_dot.\n");
-          if (PTR_CHAR_POS ((unsigned char *) d) <= point)
-  	    goto fail;
-  	  break;
-
-	case syntaxspec:
-          DEBUG_PRINT2 ("EXECUTING syntaxspec %d.\n", mcnt);
-	  mcnt = *p++;
-	  goto matchsyntax;
-
-        case wordchar:
-          DEBUG_PRINT1 ("EXECUTING Emacs wordchar.\n");
-	  mcnt = (int) Sword;
-        matchsyntax:
-	  PREFETCH ();
-	  /* Can't use *d++ here; SYNTAX may be an unsafe macro.  */
-	  d++;
-	  if (SYNTAX (d[-1]) != (enum syntaxcode) mcnt)
-	    goto fail;
-          SET_REGS_MATCHED ();
-	  break;
-
-	case notsyntaxspec:
-          DEBUG_PRINT2 ("EXECUTING notsyntaxspec %d.\n", mcnt);
-	  mcnt = *p++;
-	  goto matchnotsyntax;
-
-        case notwordchar:
-          DEBUG_PRINT1 ("EXECUTING Emacs notwordchar.\n");
-	  mcnt = (int) Sword;
-        matchnotsyntax:
-	  PREFETCH ();
-	  /* Can't use *d++ here; SYNTAX may be an unsafe macro.  */
-	  d++;
-	  if (SYNTAX (d[-1]) == (enum syntaxcode) mcnt)
-	    goto fail;
-	  SET_REGS_MATCHED ();
-          break;
-
-#else /* not emacs */
-	case wordchar:
-          DEBUG_PRINT1 ("EXECUTING non-Emacs wordchar.\n");
-	  PREFETCH ();
-          if (!WORDCHAR_P (d))
-            goto fail;
-	  SET_REGS_MATCHED ();
-          d++;
-	  break;
-
-	case notwordchar:
-          DEBUG_PRINT1 ("EXECUTING non-Emacs notwordchar.\n");
-	  PREFETCH ();
-	  if (WORDCHAR_P (d))
-            goto fail;
-          SET_REGS_MATCHED ();
-          d++;
-	  break;
-#endif /* not emacs */
-
-        default:
-          abort ();
-	}
-      continue;  /* Successfully executed one pattern command; keep going.  */
-
-
-    /* We goto here if a matching operation fails. */
-    fail:
-      if (!FAIL_STACK_EMPTY ())
-	{ /* A restart point is known.  Restore to that state.  */
-          DEBUG_PRINT1 ("\nFAIL:\n");
-          POP_FAILURE_POINT (d, p,
-                             lowest_active_reg, highest_active_reg,
-                             regstart, regend, reg_info);
-
-          /* If this failure point is a dummy, try the next one.  */
-          if (!p)
-	    goto fail;
-
-          /* If we failed to the end of the pattern, don't examine *p.  */
-	  assert (p <= pend);
-          if (p < pend)
-            {
-              boolean is_a_jump_n = false;
-
-              /* If failed to a backwards jump that's part of a repetition
-                 loop, need to pop this failure point and use the next one.  */
-              switch ((re_opcode_t) *p)
-                {
-                case jump_n:
-                  is_a_jump_n = true;
-                case maybe_pop_jump:
-                case pop_failure_jump:
-                case jump:
-                  p1 = p + 1;
-                  EXTRACT_NUMBER_AND_INCR (mcnt, p1);
-                  p1 += mcnt;
-
-                  if ((is_a_jump_n && (re_opcode_t) *p1 == succeed_n)
-                      || (!is_a_jump_n
-                          && (re_opcode_t) *p1 == on_failure_jump))
-                    goto fail;
-                  break;
-                default:
-                  /* do nothing */ ;
-                }
-            }
-
-          if (d >= string1 && d <= end1)
-	    dend = end_match_1;
-        }
-      else
-        break;   /* Matching at this starting point really fails.  */
-    } /* for (;;) */
-
-  if (best_regs_set)
-    goto restore_best_regs;
-
-  FREE_VARIABLES ();
-
-  return -1;         			/* Failure to match.  */
-} /* re_match_2 */
-
-/* Subroutine definitions for re_match_2.  */
-
-
-/* We are passed P pointing to a register number after a start_memory.
-
-   Return true if the pattern up to the corresponding stop_memory can
-   match the empty string, and false otherwise.
-
-   If we find the matching stop_memory, sets P to point to one past its number.
-   Otherwise, sets P to an undefined byte less than or equal to END.
-
-   We don't handle duplicates properly (yet).  */
-
-static boolean
-PREFIX(group_match_null_string_p) (UCHAR_T **p, UCHAR_T *end,
-                                   PREFIX(register_info_type) *reg_info)
-{
-  int mcnt;
-  /* Point to after the args to the start_memory.  */
-  UCHAR_T *p1 = *p + 2;
-
-  while (p1 < end)
-    {
-      /* Skip over opcodes that can match nothing, and return true or
-	 false, as appropriate, when we get to one that can't, or to the
-         matching stop_memory.  */
-
-      switch ((re_opcode_t) *p1)
-        {
-        /* Could be either a loop or a series of alternatives.  */
-        case on_failure_jump:
-          p1++;
-          EXTRACT_NUMBER_AND_INCR (mcnt, p1);
-
-          /* If the next operation is not a jump backwards in the
-	     pattern.  */
-
-	  if (mcnt >= 0)
-	    {
-              /* Go through the on_failure_jumps of the alternatives,
-                 seeing if any of the alternatives cannot match nothing.
-                 The last alternative starts with only a jump,
-                 whereas the rest start with on_failure_jump and end
-                 with a jump, e.g., here is the pattern for `a|b|c':
-
-                 /on_failure_jump/0/6/exactn/1/a/jump_past_alt/0/6
-                 /on_failure_jump/0/6/exactn/1/b/jump_past_alt/0/3
-                 /exactn/1/c
-
-                 So, we have to first go through the first (n-1)
-                 alternatives and then deal with the last one separately.  */
-
-
-              /* Deal with the first (n-1) alternatives, which start
-                 with an on_failure_jump (see above) that jumps to right
-                 past a jump_past_alt.  */
-
-              while ((re_opcode_t) p1[mcnt-(1+OFFSET_ADDRESS_SIZE)] ==
-		     jump_past_alt)
-                {
-                  /* `mcnt' holds how many bytes long the alternative
-                     is, including the ending `jump_past_alt' and
-                     its number.  */
-
-                  if (!PREFIX(alt_match_null_string_p) (p1, p1 + mcnt -
-						(1 + OFFSET_ADDRESS_SIZE),
-						reg_info))
-                    return false;
-
-                  /* Move to right after this alternative, including the
-		     jump_past_alt.  */
-                  p1 += mcnt;
-
-                  /* Break if it's the beginning of an n-th alternative
-                     that doesn't begin with an on_failure_jump.  */
-                  if ((re_opcode_t) *p1 != on_failure_jump)
-                    break;
-
-		  /* Still have to check that it's not an n-th
-		     alternative that starts with an on_failure_jump.  */
-		  p1++;
-                  EXTRACT_NUMBER_AND_INCR (mcnt, p1);
-                  if ((re_opcode_t) p1[mcnt-(1+OFFSET_ADDRESS_SIZE)] !=
-		      jump_past_alt)
-                    {
-		      /* Get to the beginning of the n-th alternative.  */
-                      p1 -= 1 + OFFSET_ADDRESS_SIZE;
-                      break;
-                    }
-                }
-
-              /* Deal with the last alternative: go back and get number
-                 of the `jump_past_alt' just before it.  `mcnt' contains
-                 the length of the alternative.  */
-              EXTRACT_NUMBER (mcnt, p1 - OFFSET_ADDRESS_SIZE);
-
-              if (!PREFIX(alt_match_null_string_p) (p1, p1 + mcnt, reg_info))
-                return false;
-
-              p1 += mcnt;	/* Get past the n-th alternative.  */
-            } /* if mcnt > 0 */
-          break;
-
-
-        case stop_memory:
-	  assert (p1[1] == **p);
-          *p = p1 + 2;
-          return true;
-
-
-        default:
-          if (!PREFIX(common_op_match_null_string_p) (&p1, end, reg_info))
-            return false;
-        }
-    } /* while p1 < end */
-
-  return false;
-} /* group_match_null_string_p */
-
-
-/* Similar to group_match_null_string_p, but doesn't deal with alternatives:
-   It expects P to be the first byte of a single alternative and END one
-   byte past the last. The alternative can contain groups.  */
-
-static boolean
-PREFIX(alt_match_null_string_p) (UCHAR_T *p, UCHAR_T *end,
-                                 PREFIX(register_info_type) *reg_info)
-{
-  int mcnt;
-  UCHAR_T *p1 = p;
-
-  while (p1 < end)
-    {
-      /* Skip over opcodes that can match nothing, and break when we get
-         to one that can't.  */
-
-      switch ((re_opcode_t) *p1)
-        {
-	/* It's a loop.  */
-        case on_failure_jump:
-          p1++;
-          EXTRACT_NUMBER_AND_INCR (mcnt, p1);
-          p1 += mcnt;
-          break;
-
-	default:
-          if (!PREFIX(common_op_match_null_string_p) (&p1, end, reg_info))
-            return false;
-        }
-    }  /* while p1 < end */
-
-  return true;
-} /* alt_match_null_string_p */
-
-
-/* Deals with the ops common to group_match_null_string_p and
-   alt_match_null_string_p.
-
-   Sets P to one after the op and its arguments, if any.  */
-
-static boolean
-PREFIX(common_op_match_null_string_p) (UCHAR_T **p, UCHAR_T *end,
-                                       PREFIX(register_info_type) *reg_info)
-{
-  int mcnt;
-  boolean ret;
-  int reg_no;
-  UCHAR_T *p1 = *p;
-
-  switch ((re_opcode_t) *p1++)
-    {
-    case no_op:
-    case begline:
-    case endline:
-    case begbuf:
-    case endbuf:
-    case wordbeg:
-    case wordend:
-    case wordbound:
-    case notwordbound:
-#ifdef emacs
-    case before_dot:
-    case at_dot:
-    case after_dot:
-#endif
-      break;
-
-    case start_memory:
-      reg_no = *p1;
-      assert (reg_no > 0 && reg_no <= MAX_REGNUM);
-      ret = PREFIX(group_match_null_string_p) (&p1, end, reg_info);
-
-      /* Have to set this here in case we're checking a group which
-         contains a group and a back reference to it.  */
-
-      if (REG_MATCH_NULL_STRING_P (reg_info[reg_no]) == MATCH_NULL_UNSET_VALUE)
-        REG_MATCH_NULL_STRING_P (reg_info[reg_no]) = ret;
-
-      if (!ret)
-        return false;
-      break;
-
-    /* If this is an optimized succeed_n for zero times, make the jump.  */
-    case jump:
-      EXTRACT_NUMBER_AND_INCR (mcnt, p1);
-      if (mcnt >= 0)
-        p1 += mcnt;
-      else
-        return false;
-      break;
-
-    case succeed_n:
-      /* Get to the number of times to succeed.  */
-      p1 += OFFSET_ADDRESS_SIZE;
-      EXTRACT_NUMBER_AND_INCR (mcnt, p1);
-
-      if (mcnt == 0)
-        {
-          p1 -= 2 * OFFSET_ADDRESS_SIZE;
-          EXTRACT_NUMBER_AND_INCR (mcnt, p1);
-          p1 += mcnt;
-        }
-      else
-        return false;
-      break;
-
-    case duplicate:
-      if (!REG_MATCH_NULL_STRING_P (reg_info[*p1]))
-        return false;
-      break;
-
-    case set_number_at:
-      p1 += 2 * OFFSET_ADDRESS_SIZE;
-
-    default:
-      /* All other opcodes mean we cannot match the empty string.  */
-      return false;
-  }
-
-  *p = p1;
-  return true;
-} /* common_op_match_null_string_p */
-
-
-/* Return zero if TRANSLATE[S1] and TRANSLATE[S2] are identical for LEN
-   bytes; nonzero otherwise.  */
-
-static int
-PREFIX(bcmp_translate) (const CHAR_T *s1, const CHAR_T *s2, register int len,
-                        RE_TRANSLATE_TYPE translate)
-{
-  register const UCHAR_T *p1 = (const UCHAR_T *) s1;
-  register const UCHAR_T *p2 = (const UCHAR_T *) s2;
-  while (len)
-    {
-#ifdef WCHAR
-      if (((*p1<=0xff)?translate[*p1++]:*p1++)
-	  != ((*p2<=0xff)?translate[*p2++]:*p2++))
-	return 1;
-#else /* BYTE */
-      if (translate[*p1++] != translate[*p2++]) return 1;
-#endif /* WCHAR */
-      len--;
-    }
-  return 0;
-}
-
-
-#else /* not INSIDE_RECURSION */
-
-/* Entry points for GNU code.  */
-
-/* re_compile_pattern is the GNU regular expression compiler: it
-   compiles PATTERN (of length SIZE) and puts the result in BUFP.
-   Returns 0 if the pattern was valid, otherwise an error string.
-
-   Assumes the `allocated' (and perhaps `buffer') and `translate' fields
-   are set in BUFP on entry.
-
-   We call regex_compile to do the actual compilation.  */
-
-const char *
-re_compile_pattern (const char *pattern, size_t length,
-                    struct re_pattern_buffer *bufp)
-{
-  reg_errcode_t ret;
-
-  /* GNU code is written to assume at least RE_NREGS registers will be set
-     (and at least one extra will be -1).  */
-  bufp->regs_allocated = REGS_UNALLOCATED;
-
-  /* And GNU code determines whether or not to get register information
-     by passing null for the REGS argument to re_match, etc., not by
-     setting no_sub.  */
-  bufp->no_sub = 0;
-
-  /* Match anchors at newline.  */
-  bufp->newline_anchor = 1;
-
-# ifdef MBS_SUPPORT
-  if (MB_CUR_MAX != 1)
-    ret = wcs_regex_compile (pattern, length, re_syntax_options, bufp);
-  else
-# endif
-    ret = byte_regex_compile (pattern, length, re_syntax_options, bufp);
-
-  if (!ret)
-    return NULL;
-  return gettext (re_error_msgid[(int) ret]);
-}
-#ifdef _LIBC
-weak_alias (__re_compile_pattern, re_compile_pattern)
-#endif
-
-/* Entry points compatible with 4.2 BSD regex library.  We don't define
-   them unless specifically requested.  */
-
-#if defined _REGEX_RE_COMP || defined _LIBC
-
-/* BSD has one and only one pattern buffer.  */
-static struct re_pattern_buffer re_comp_buf;
-
-char *
-#ifdef _LIBC
-/* Make these definitions weak in libc, so POSIX programs can redefine
-   these names if they don't use our functions, and still use
-   regcomp/regexec below without link errors.  */
-weak_function
-#endif
-re_comp (const char *s)
-{
-  reg_errcode_t ret;
-
-  if (!s)
-    {
-      if (!re_comp_buf.buffer)
-	return (char *) gettext ("No previous regular expression");
-      return 0;
-    }
-
-  if (!re_comp_buf.buffer)
-    {
-      re_comp_buf.buffer = (unsigned char *) malloc (200);
-      if (re_comp_buf.buffer == NULL)
-        return (char *) gettext (re_error_msgid[(int) REG_ESPACE]);
-      re_comp_buf.allocated = 200;
-
-      re_comp_buf.fastmap = (char *) malloc (1 << BYTEWIDTH);
-      if (re_comp_buf.fastmap == NULL)
-	return (char *) gettext (re_error_msgid[(int) REG_ESPACE]);
-    }
-
-  /* Since `re_exec' always passes NULL for the `regs' argument, we
-     don't need to initialize the pattern buffer fields which affect it.  */
-
-  /* Match anchors at newlines.  */
-  re_comp_buf.newline_anchor = 1;
-
-# ifdef MBS_SUPPORT
-  if (MB_CUR_MAX != 1)
-    ret = wcs_regex_compile (s, strlen (s), re_syntax_options, &re_comp_buf);
-  else
-# endif
-    ret = byte_regex_compile (s, strlen (s), re_syntax_options, &re_comp_buf);
-
-  if (!ret)
-    return NULL;
-
-  /* Yes, we're discarding `const' here if !HAVE_LIBINTL.  */
-  return (char *) gettext (re_error_msgid[(int) ret]);
-}
-
-
-int
-#ifdef _LIBC
-weak_function
-#endif
-re_exec (const char *s)
-{
-  const int len = strlen (s);
-  return
-    0 <= re_search (&re_comp_buf, s, len, 0, len, (struct re_registers *) 0);
-}
-
-#endif /* _REGEX_RE_COMP */
-
-/* POSIX.2 functions.  Don't define these for Emacs.  */
-
-#ifndef emacs
-
-/* regcomp takes a regular expression as a string and compiles it.
-
-   PREG is a regex_t *.  We do not expect any fields to be initialized,
-   since POSIX says we shouldn't.  Thus, we set
-
-     `buffer' to the compiled pattern;
-     `used' to the length of the compiled pattern;
-     `syntax' to RE_SYNTAX_POSIX_EXTENDED if the
-       REG_EXTENDED bit in CFLAGS is set; otherwise, to
-       RE_SYNTAX_POSIX_BASIC;
-     `newline_anchor' to REG_NEWLINE being set in CFLAGS;
-     `fastmap' to an allocated space for the fastmap;
-     `fastmap_accurate' to zero;
-     `re_nsub' to the number of subexpressions in PATTERN.
-
-   PATTERN is the address of the pattern string.
-
-   CFLAGS is a series of bits which affect compilation.
-
-     If REG_EXTENDED is set, we use POSIX extended syntax; otherwise, we
-     use POSIX basic syntax.
-
-     If REG_NEWLINE is set, then . and [^...] don't match newline.
-     Also, regexec will try a match beginning after every newline.
-
-     If REG_ICASE is set, then we considers upper- and lowercase
-     versions of letters to be equivalent when matching.
-
-     If REG_NOSUB is set, then when PREG is passed to regexec, that
-     routine will report only success or failure, and nothing about the
-     registers.
-
-   It returns 0 if it succeeds, nonzero if it doesn't.  (See regex.h for
-   the return codes and their meanings.)  */
-
-int
-regcomp (regex_t *preg, const char *pattern, int cflags)
-{
-  reg_errcode_t ret;
-  reg_syntax_t syntax
-    = (cflags & REG_EXTENDED) ?
-      RE_SYNTAX_POSIX_EXTENDED : RE_SYNTAX_POSIX_BASIC;
-
-  /* regex_compile will allocate the space for the compiled pattern.  */
-  preg->buffer = 0;
-  preg->allocated = 0;
-  preg->used = 0;
-
-  /* Try to allocate space for the fastmap.  */
-  preg->fastmap = (char *) malloc (1 << BYTEWIDTH);
-
-  if (cflags & REG_ICASE)
-    {
-      int i;
-
-      preg->translate
-	= (RE_TRANSLATE_TYPE) malloc (CHAR_SET_SIZE
-				      * sizeof (*(RE_TRANSLATE_TYPE)0));
-      if (preg->translate == NULL)
-        return (int) REG_ESPACE;
-
-      /* Map uppercase characters to corresponding lowercase ones.  */
-      for (i = 0; i < CHAR_SET_SIZE; i++)
-        preg->translate[i] = ISUPPER (i) ? TOLOWER (i) : i;
-    }
-  else
-    preg->translate = NULL;
-
-  /* If REG_NEWLINE is set, newlines are treated differently.  */
-  if (cflags & REG_NEWLINE)
-    { /* REG_NEWLINE implies neither . nor [^...] match newline.  */
-      syntax &= ~RE_DOT_NEWLINE;
-      syntax |= RE_HAT_LISTS_NOT_NEWLINE;
-      /* It also changes the matching behavior.  */
-      preg->newline_anchor = 1;
-    }
-  else
-    preg->newline_anchor = 0;
-
-  preg->no_sub = !!(cflags & REG_NOSUB);
-
-  /* POSIX says a null character in the pattern terminates it, so we
-     can use strlen here in compiling the pattern.  */
-# ifdef MBS_SUPPORT
-  if (MB_CUR_MAX != 1)
-    ret = wcs_regex_compile (pattern, strlen (pattern), syntax, preg);
-  else
-# endif
-    ret = byte_regex_compile (pattern, strlen (pattern), syntax, preg);
-
-  /* POSIX doesn't distinguish between an unmatched open-group and an
-     unmatched close-group: both are REG_EPAREN.  */
-  if (ret == REG_ERPAREN) ret = REG_EPAREN;
-
-  if (ret == REG_NOERROR && preg->fastmap)
-    {
-      /* Compute the fastmap now, since regexec cannot modify the pattern
-	 buffer.  */
-      if (re_compile_fastmap (preg) == -2)
-	{
-	  /* Some error occurred while computing the fastmap, just forget
-	     about it.  */
-	  free (preg->fastmap);
-	  preg->fastmap = NULL;
-	}
-    }
-
-  return (int) ret;
-}
-#ifdef _LIBC
-weak_alias (__regcomp, regcomp)
-#endif
-
-
-/* regexec searches for a given pattern, specified by PREG, in the
-   string STRING.
-
-   If NMATCH is zero or REG_NOSUB was set in the cflags argument to
-   `regcomp', we ignore PMATCH.  Otherwise, we assume PMATCH has at
-   least NMATCH elements, and we set them to the offsets of the
-   corresponding matched substrings.
-
-   EFLAGS specifies `execution flags' which affect matching: if
-   REG_NOTBOL is set, then ^ does not match at the beginning of the
-   string; if REG_NOTEOL is set, then $ does not match at the end.
-
-   We return 0 if we find a match and REG_NOMATCH if not.  */
-
-int
-regexec (const regex_t *preg, const char *string, size_t nmatch,
-         regmatch_t pmatch[], int eflags)
-{
-  int ret;
-  struct re_registers regs;
-  regex_t private_preg;
-  int len = strlen (string);
-  boolean want_reg_info = !preg->no_sub && nmatch > 0;
-
-  private_preg = *preg;
-
-  private_preg.not_bol = !!(eflags & REG_NOTBOL);
-  private_preg.not_eol = !!(eflags & REG_NOTEOL);
-
-  /* The user has told us exactly how many registers to return
-     information about, via `nmatch'.  We have to pass that on to the
-     matching routines.  */
-  private_preg.regs_allocated = REGS_FIXED;
-
-  if (want_reg_info)
-    {
-      regs.num_regs = nmatch;
-      regs.start = TALLOC (nmatch * 2, regoff_t);
-      if (regs.start == NULL)
-        return (int) REG_NOMATCH;
-      regs.end = regs.start + nmatch;
-    }
-
-  /* Perform the searching operation.  */
-  ret = re_search (&private_preg, string, len,
-                   /* start: */ 0, /* range: */ len,
-                   want_reg_info ? &regs : (struct re_registers *) 0);
-
-  /* Copy the register information to the POSIX structure.  */
-  if (want_reg_info)
-    {
-      if (ret >= 0)
-        {
-          unsigned r;
-
-          for (r = 0; r < nmatch; r++)
-            {
-              pmatch[r].rm_so = regs.start[r];
-              pmatch[r].rm_eo = regs.end[r];
-            }
-        }
-
-      /* If we needed the temporary register info, free the space now.  */
-      free (regs.start);
-    }
-
-  /* We want zero return to mean success, unlike `re_search'.  */
-  return ret >= 0 ? (int) REG_NOERROR : (int) REG_NOMATCH;
-}
-#ifdef _LIBC
-weak_alias (__regexec, regexec)
-#endif
-
-
-/* Returns a message corresponding to an error code, ERRCODE, returned
-   from either regcomp or regexec.   We don't use PREG here.  */
-
-size_t
-regerror (int errcode, const regex_t *preg ATTRIBUTE_UNUSED,
-          char *errbuf, size_t errbuf_size)
-{
-  const char *msg;
-  size_t msg_size;
-
-  if (errcode < 0
-      || errcode >= (int) (sizeof (re_error_msgid)
-			   / sizeof (re_error_msgid[0])))
-    /* Only error codes returned by the rest of the code should be passed
-       to this routine.  If we are given anything else, or if other regex
-       code generates an invalid error code, then the program has a bug.
-       Dump core so we can fix it.  */
-    abort ();
-
-  msg = gettext (re_error_msgid[errcode]);
-
-  msg_size = strlen (msg) + 1; /* Includes the null.  */
-
-  if (errbuf_size != 0)
-    {
-      if (msg_size > errbuf_size)
-        {
-#if defined HAVE_MEMPCPY || defined _LIBC
-	  *((char *) mempcpy (errbuf, msg, errbuf_size - 1)) = '\0';
-#else
-          memcpy (errbuf, msg, errbuf_size - 1);
-          errbuf[errbuf_size - 1] = 0;
-#endif
-        }
-      else
-        memcpy (errbuf, msg, msg_size);
-    }
-
-  return msg_size;
-}
-#ifdef _LIBC
-weak_alias (__regerror, regerror)
-#endif
-
-
-/* Free dynamically allocated space used by PREG.  */
-
-void
-regfree (regex_t *preg)
-{
-  if (preg->buffer != NULL)
-    free (preg->buffer);
-  preg->buffer = NULL;
-
-  preg->allocated = 0;
-  preg->used = 0;
-
-  if (preg->fastmap != NULL)
-    free (preg->fastmap);
-  preg->fastmap = NULL;
-  preg->fastmap_accurate = 0;
-
-  if (preg->translate != NULL)
-    free (preg->translate);
-  preg->translate = NULL;
-}
-#ifdef _LIBC
-weak_alias (__regfree, regfree)
-#endif
-
-#endif /* not emacs  */
-
-#endif /* not INSIDE_RECURSION */
-
-
-#undef STORE_NUMBER
-#undef STORE_NUMBER_AND_INCR
-#undef EXTRACT_NUMBER
-#undef EXTRACT_NUMBER_AND_INCR
-
-#undef DEBUG_PRINT_COMPILED_PATTERN
-#undef DEBUG_PRINT_DOUBLE_STRING
-
-#undef INIT_FAIL_STACK
-#undef RESET_FAIL_STACK
-#undef DOUBLE_FAIL_STACK
-#undef PUSH_PATTERN_OP
-#undef PUSH_FAILURE_POINTER
-#undef PUSH_FAILURE_INT
-#undef PUSH_FAILURE_ELT
-#undef POP_FAILURE_POINTER
-#undef POP_FAILURE_INT
-#undef POP_FAILURE_ELT
-#undef DEBUG_PUSH
-#undef DEBUG_POP
-#undef PUSH_FAILURE_POINT
-#undef POP_FAILURE_POINT
-
-#undef REG_UNSET_VALUE
-#undef REG_UNSET
-
-#undef PATFETCH
-#undef PATFETCH_RAW
-#undef PATUNFETCH
-#undef TRANSLATE
-
-#undef INIT_BUF_SIZE
-#undef GET_BUFFER_SPACE
-#undef BUF_PUSH
-#undef BUF_PUSH_2
-#undef BUF_PUSH_3
-#undef STORE_JUMP
-#undef STORE_JUMP2
-#undef INSERT_JUMP
-#undef INSERT_JUMP2
-#undef EXTEND_BUFFER
-#undef GET_UNSIGNED_NUMBER
-#undef FREE_STACK_RETURN
-
-# undef POINTER_TO_OFFSET
-# undef MATCHING_IN_FRST_STRING
-# undef PREFETCH
-# undef AT_STRINGS_BEG
-# undef AT_STRINGS_END
-# undef WORDCHAR_P
-# undef FREE_VAR
-# undef FREE_VARIABLES
-# undef NO_HIGHEST_ACTIVE_REG
-# undef NO_LOWEST_ACTIVE_REG
-
-# undef CHAR_T
-# undef UCHAR_T
-# undef COMPILED_BUFFER_VAR
-# undef OFFSET_ADDRESS_SIZE
-# undef CHAR_CLASS_SIZE
-# undef PREFIX
-# undef ARG_PREFIX
-# undef PUT_CHAR
-# undef BYTE
-# undef WCHAR
-
-# define DEFINED_ONCE
diff --git a/libiberty/rename.c b/libiberty/rename.c
deleted file mode 100644
index ad342ff..0000000
--- a/libiberty/rename.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* rename -- rename a file
-   This function is in the public domain. */
-
-/*
-
-@deftypefn Supplemental int rename (const char *@var{old}, const char *@var{new})
-
-Renames a file from @var{old} to @var{new}.  If @var{new} already
-exists, it is removed.
-
-@end deftypefn
-
-*/
-
-#include "ansidecl.h"
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <errno.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-int
-rename (const char *zfrom, const char *zto)
-{
-  if (link (zfrom, zto) < 0)
-    {
-      if (errno != EEXIST)
-	return -1;
-      if (unlink (zto) < 0
-	  || link (zfrom, zto) < 0)
-	return -1;
-    }
-  return unlink (zfrom);
-}
diff --git a/libiberty/rindex.c b/libiberty/rindex.c
deleted file mode 100644
index 194ef9f..0000000
--- a/libiberty/rindex.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Stub implementation of (obsolete) rindex(). */
-
-/*
-
-@deftypefn Supplemental char* rindex (const char *@var{s}, int @var{c})
-
-Returns a pointer to the last occurrence of the character @var{c} in
-the string @var{s}, or @code{NULL} if not found.  The use of @code{rindex} is
-deprecated in new programs in favor of @code{strrchr}.
-
-@end deftypefn
-
-*/
-
-extern char *strrchr (const char *, int);
-
-char *
-rindex (const char *s, int c)
-{
-  return strrchr (s, c);
-}
diff --git a/libiberty/safe-ctype.c b/libiberty/safe-ctype.c
deleted file mode 100644
index 0972b4b..0000000
--- a/libiberty/safe-ctype.c
+++ /dev/null
@@ -1,255 +0,0 @@
-/* <ctype.h> replacement macros.
-
-   Copyright (C) 2000, 2001, 2002, 2003, 2004,
-   2005 Free Software Foundation, Inc.
-   Contributed by Zack Weinberg <zackw@stanford.edu>.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-/*
-
-@defvr Extension HOST_CHARSET
-This macro indicates the basic character set and encoding used by the
-host: more precisely, the encoding used for character constants in
-preprocessor @samp{#if} statements (the C "execution character set").
-It is defined by @file{safe-ctype.h}, and will be an integer constant
-with one of the following values:
-
-@ftable @code
-@item HOST_CHARSET_UNKNOWN
-The host character set is unknown - that is, not one of the next two
-possibilities.
-
-@item HOST_CHARSET_ASCII
-The host character set is ASCII.
-
-@item HOST_CHARSET_EBCDIC
-The host character set is some variant of EBCDIC.  (Only one of the
-nineteen EBCDIC varying characters is tested; exercise caution.)
-@end ftable
-@end defvr
-
-@deffn  Extension ISALPHA  (@var{c})
-@deffnx Extension ISALNUM  (@var{c})
-@deffnx Extension ISBLANK  (@var{c})
-@deffnx Extension ISCNTRL  (@var{c})
-@deffnx Extension ISDIGIT  (@var{c})
-@deffnx Extension ISGRAPH  (@var{c})
-@deffnx Extension ISLOWER  (@var{c})
-@deffnx Extension ISPRINT  (@var{c})
-@deffnx Extension ISPUNCT  (@var{c})
-@deffnx Extension ISSPACE  (@var{c})
-@deffnx Extension ISUPPER  (@var{c})
-@deffnx Extension ISXDIGIT (@var{c})
-
-These twelve macros are defined by @file{safe-ctype.h}.  Each has the
-same meaning as the corresponding macro (with name in lowercase)
-defined by the standard header @file{ctype.h}.  For example,
-@code{ISALPHA} returns true for alphabetic characters and false for
-others.  However, there are two differences between these macros and
-those provided by @file{ctype.h}:
-
-@itemize @bullet
-@item These macros are guaranteed to have well-defined behavior for all 
-values representable by @code{signed char} and @code{unsigned char}, and
-for @code{EOF}.
-
-@item These macros ignore the current locale; they are true for these
-fixed sets of characters:
-@multitable {@code{XDIGIT}} {yada yada yada yada yada yada yada yada}
-@item @code{ALPHA}  @tab @kbd{A-Za-z}
-@item @code{ALNUM}  @tab @kbd{A-Za-z0-9}
-@item @code{BLANK}  @tab @kbd{space tab}
-@item @code{CNTRL}  @tab @code{!PRINT}
-@item @code{DIGIT}  @tab @kbd{0-9}
-@item @code{GRAPH}  @tab @code{ALNUM || PUNCT}
-@item @code{LOWER}  @tab @kbd{a-z}
-@item @code{PRINT}  @tab @code{GRAPH ||} @kbd{space}
-@item @code{PUNCT}  @tab @kbd{`~!@@#$%^&*()_-=+[@{]@}\|;:'",<.>/?}
-@item @code{SPACE}  @tab @kbd{space tab \n \r \f \v}
-@item @code{UPPER}  @tab @kbd{A-Z}
-@item @code{XDIGIT} @tab @kbd{0-9A-Fa-f}
-@end multitable
-
-Note that, if the host character set is ASCII or a superset thereof,
-all these macros will return false for all values of @code{char} outside
-the range of 7-bit ASCII.  In particular, both ISPRINT and ISCNTRL return
-false for characters with numeric values from 128 to 255.
-@end itemize
-@end deffn
-
-@deffn  Extension ISIDNUM         (@var{c})
-@deffnx Extension ISIDST          (@var{c})
-@deffnx Extension IS_VSPACE       (@var{c})
-@deffnx Extension IS_NVSPACE      (@var{c})
-@deffnx Extension IS_SPACE_OR_NUL (@var{c})
-@deffnx Extension IS_ISOBASIC     (@var{c})
-These six macros are defined by @file{safe-ctype.h} and provide
-additional character classes which are useful when doing lexical
-analysis of C or similar languages.  They are true for the following
-sets of characters:
-
-@multitable {@code{SPACE_OR_NUL}} {yada yada yada yada yada yada yada yada}
-@item @code{IDNUM}        @tab @kbd{A-Za-z0-9_}
-@item @code{IDST}         @tab @kbd{A-Za-z_}
-@item @code{VSPACE}       @tab @kbd{\r \n}
-@item @code{NVSPACE}      @tab @kbd{space tab \f \v \0}
-@item @code{SPACE_OR_NUL} @tab @code{VSPACE || NVSPACE}
-@item @code{ISOBASIC}     @tab @code{VSPACE || NVSPACE || PRINT}
-@end multitable
-@end deffn
-
-*/
-
-#include "ansidecl.h"
-#include <safe-ctype.h>
-#include <stdio.h>  /* for EOF */
-
-#if EOF != -1
- #error "<safe-ctype.h> requires EOF == -1"
-#endif
-
-/* Shorthand */
-#define bl _sch_isblank
-#define cn _sch_iscntrl
-#define di _sch_isdigit
-#define is _sch_isidst
-#define lo _sch_islower
-#define nv _sch_isnvsp
-#define pn _sch_ispunct
-#define pr _sch_isprint
-#define sp _sch_isspace
-#define up _sch_isupper
-#define vs _sch_isvsp
-#define xd _sch_isxdigit
-
-/* Masks.  */
-#define L  (const unsigned short) (lo|is   |pr)	/* lower case letter */
-#define XL (const unsigned short) (lo|is|xd|pr)	/* lowercase hex digit */
-#define U  (const unsigned short) (up|is   |pr)	/* upper case letter */
-#define XU (const unsigned short) (up|is|xd|pr)	/* uppercase hex digit */
-#define D  (const unsigned short) (di   |xd|pr)	/* decimal digit */
-#define P  (const unsigned short) (pn      |pr)	/* punctuation */
-#define _  (const unsigned short) (pn|is   |pr)	/* underscore */
-
-#define C  (const unsigned short) (         cn)	/* control character */
-#define Z  (const unsigned short) (nv      |cn)	/* NUL */
-#define M  (const unsigned short) (nv|sp   |cn)	/* cursor movement: \f \v */
-#define V  (const unsigned short) (vs|sp   |cn)	/* vertical space: \r \n */
-#define T  (const unsigned short) (nv|sp|bl|cn)	/* tab */
-#define S  (const unsigned short) (nv|sp|bl|pr)	/* space */
-
-/* Are we ASCII? */
-#if HOST_CHARSET == HOST_CHARSET_ASCII
-
-const unsigned short _sch_istable[256] =
-{
-  Z,  C,  C,  C,   C,  C,  C,  C,   /* NUL SOH STX ETX  EOT ENQ ACK BEL */
-  C,  T,  V,  M,   M,  V,  C,  C,   /* BS  HT  LF  VT   FF  CR  SO  SI  */
-  C,  C,  C,  C,   C,  C,  C,  C,   /* DLE DC1 DC2 DC3  DC4 NAK SYN ETB */
-  C,  C,  C,  C,   C,  C,  C,  C,   /* CAN EM  SUB ESC  FS  GS  RS  US  */
-  S,  P,  P,  P,   P,  P,  P,  P,   /* SP  !   "   #    $   %   &   '   */
-  P,  P,  P,  P,   P,  P,  P,  P,   /* (   )   *   +    ,   -   .   /   */
-  D,  D,  D,  D,   D,  D,  D,  D,   /* 0   1   2   3    4   5   6   7   */
-  D,  D,  P,  P,   P,  P,  P,  P,   /* 8   9   :   ;    <   =   >   ?   */
-  P, XU, XU, XU,  XU, XU, XU,  U,   /* @   A   B   C    D   E   F   G   */
-  U,  U,  U,  U,   U,  U,  U,  U,   /* H   I   J   K    L   M   N   O   */
-  U,  U,  U,  U,   U,  U,  U,  U,   /* P   Q   R   S    T   U   V   W   */
-  U,  U,  U,  P,   P,  P,  P,  _,   /* X   Y   Z   [    \   ]   ^   _   */
-  P, XL, XL, XL,  XL, XL, XL,  L,   /* `   a   b   c    d   e   f   g   */
-  L,  L,  L,  L,   L,  L,  L,  L,   /* h   i   j   k    l   m   n   o   */
-  L,  L,  L,  L,   L,  L,  L,  L,   /* p   q   r   s    t   u   v   w   */
-  L,  L,  L,  P,   P,  P,  P,  C,   /* x   y   z   {    |   }   ~   DEL */
-
-  /* high half of unsigned char is locale-specific, so all tests are
-     false in "C" locale */
-  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
-  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
-  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
-  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
-
-  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
-  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
-  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
-  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
-};
-
-const unsigned char _sch_tolower[256] =
-{
-   0,  1,  2,  3,   4,  5,  6,  7,   8,  9, 10, 11,  12, 13, 14, 15,
-  16, 17, 18, 19,  20, 21, 22, 23,  24, 25, 26, 27,  28, 29, 30, 31,
-  32, 33, 34, 35,  36, 37, 38, 39,  40, 41, 42, 43,  44, 45, 46, 47,
-  48, 49, 50, 51,  52, 53, 54, 55,  56, 57, 58, 59,  60, 61, 62, 63,
-  64,
-
-  'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
-  'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
-
-  91, 92, 93, 94, 95, 96,
-
-  'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
-  'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
-
- 123,124,125,126,127,
-
- 128,129,130,131, 132,133,134,135, 136,137,138,139, 140,141,142,143,
- 144,145,146,147, 148,149,150,151, 152,153,154,155, 156,157,158,159,
- 160,161,162,163, 164,165,166,167, 168,169,170,171, 172,173,174,175,
- 176,177,178,179, 180,181,182,183, 184,185,186,187, 188,189,190,191,
-
- 192,193,194,195, 196,197,198,199, 200,201,202,203, 204,205,206,207,
- 208,209,210,211, 212,213,214,215, 216,217,218,219, 220,221,222,223,
- 224,225,226,227, 228,229,230,231, 232,233,234,235, 236,237,238,239,
- 240,241,242,243, 244,245,246,247, 248,249,250,251, 252,253,254,255,
-};
-
-const unsigned char _sch_toupper[256] =
-{
-   0,  1,  2,  3,   4,  5,  6,  7,   8,  9, 10, 11,  12, 13, 14, 15,
-  16, 17, 18, 19,  20, 21, 22, 23,  24, 25, 26, 27,  28, 29, 30, 31,
-  32, 33, 34, 35,  36, 37, 38, 39,  40, 41, 42, 43,  44, 45, 46, 47,
-  48, 49, 50, 51,  52, 53, 54, 55,  56, 57, 58, 59,  60, 61, 62, 63,
-  64,
-
-  'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
-  'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
-
-  91, 92, 93, 94, 95, 96,
-
-  'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
-  'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
-
- 123,124,125,126,127,
-
- 128,129,130,131, 132,133,134,135, 136,137,138,139, 140,141,142,143,
- 144,145,146,147, 148,149,150,151, 152,153,154,155, 156,157,158,159,
- 160,161,162,163, 164,165,166,167, 168,169,170,171, 172,173,174,175,
- 176,177,178,179, 180,181,182,183, 184,185,186,187, 188,189,190,191,
-
- 192,193,194,195, 196,197,198,199, 200,201,202,203, 204,205,206,207,
- 208,209,210,211, 212,213,214,215, 216,217,218,219, 220,221,222,223,
- 224,225,226,227, 228,229,230,231, 232,233,234,235, 236,237,238,239,
- 240,241,242,243, 244,245,246,247, 248,249,250,251, 252,253,254,255,
-};
-
-#else
-# if HOST_CHARSET == HOST_CHARSET_EBCDIC
-  #error "FIXME: write tables for EBCDIC"
-# else
-  #error "Unrecognized host character set"
-# endif
-#endif
diff --git a/libiberty/setenv.c b/libiberty/setenv.c
deleted file mode 100644
index 355af5a..0000000
--- a/libiberty/setenv.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/* Copyright (C) 1992, 1995, 1996, 1997, 2002 Free Software Foundation, Inc.
-   This file based on setenv.c in the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library 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
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
-
-
-/*
-
-@deftypefn Supplemental int setenv (const char *@var{name}, const char *@var{value}, int @var{overwrite})
-@deftypefnx Supplemental void unsetenv (const char *@var{name})
-
-@code{setenv} adds @var{name} to the environment with value
-@var{value}.  If the name was already present in the environment,
-the new value will be stored only if @var{overwrite} is nonzero.
-The companion @code{unsetenv} function removes @var{name} from the
-environment.  This implementation is not safe for multithreaded code.
-
-@end deftypefn
-
-*/
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#define setenv libiberty_setenv
-#define unsetenv libiberty_unsetenv
-
-#include "ansidecl.h"
-#include <sys/types.h> /* For `size_t' */
-#include <stdio.h>     /* For `NULL' */
-
-#include <errno.h>
-#if !defined(errno) && !defined(HAVE_ERRNO_DECL)
-extern int errno;
-#endif
-#define __set_errno(ev) ((errno) = (ev))
-
-#if HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-#if HAVE_STRING_H
-# include <string.h>
-#endif
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#define __environ	environ
-#ifndef HAVE_ENVIRON_DECL
-extern char **environ;
-#endif
-
-#undef setenv
-#undef unsetenv
-
-/* LOCK and UNLOCK are defined as no-ops.  This makes the libiberty
- * implementation MT-Unsafe. */
-#define LOCK
-#define UNLOCK
-
-/* Below this point, it's verbatim code from the glibc-2.0 implementation */
-
-/* If this variable is not a null pointer we allocated the current
-   environment.  */
-static char **last_environ;
-
-
-int
-setenv (const char *name, const char *value, int replace)
-{
-  register char **ep = 0;
-  register size_t size;
-  const size_t namelen = strlen (name);
-  const size_t vallen = strlen (value) + 1;
-
-  LOCK;
-
-  size = 0;
-  if (__environ != NULL)
-    {
-      for (ep = __environ; *ep != NULL; ++ep)
-	if (!strncmp (*ep, name, namelen) && (*ep)[namelen] == '=')
-	  break;
-	else
-	  ++size;
-    }
-
-  if (__environ == NULL || *ep == NULL)
-    {
-      char **new_environ;
-      if (__environ == last_environ && __environ != NULL)
-	/* We allocated this space; we can extend it.  */
-	new_environ = (char **) realloc (last_environ,
-					 (size + 2) * sizeof (char *));
-      else
-	new_environ = (char **) malloc ((size + 2) * sizeof (char *));
-
-      if (new_environ == NULL)
-	{
-	  UNLOCK;
-	  return -1;
-	}
-
-      new_environ[size] = (char *) malloc (namelen + 1 + vallen);
-      if (new_environ[size] == NULL)
-	{
-	  free ((char *) new_environ);
-	  __set_errno (ENOMEM);
-	  UNLOCK;
-	  return -1;
-	}
-
-      if (__environ != last_environ)
-	memcpy ((char *) new_environ, (char *) __environ,
-		size * sizeof (char *));
-
-      memcpy (new_environ[size], name, namelen);
-      new_environ[size][namelen] = '=';
-      memcpy (&new_environ[size][namelen + 1], value, vallen);
-
-      new_environ[size + 1] = NULL;
-
-      last_environ = __environ = new_environ;
-    }
-  else if (replace)
-    {
-      size_t len = strlen (*ep);
-      if (len + 1 < namelen + 1 + vallen)
-	{
-	  /* The existing string is too short; malloc a new one.  */
-	  char *new_string = (char *) malloc (namelen + 1 + vallen);
-	  if (new_string == NULL)
-	    {
-	      UNLOCK;
-	      return -1;
-	    }
-	  *ep = new_string;
-	}
-      memcpy (*ep, name, namelen);
-      (*ep)[namelen] = '=';
-      memcpy (&(*ep)[namelen + 1], value, vallen);
-    }
-
-  UNLOCK;
-
-  return 0;
-}
-
-void
-unsetenv (const char *name)
-{
-  const size_t len = strlen (name);
-  char **ep;
-
-  LOCK;
-
-  for (ep = __environ; *ep; ++ep)
-    if (!strncmp (*ep, name, len) && (*ep)[len] == '=')
-      {
-	/* Found it.  Remove this pointer by moving later ones back.  */
-	char **dp = ep;
-	do
-	  dp[0] = dp[1];
-	while (*dp++);
-	/* Continue the loop in case NAME appears again.  */
-      }
-
-  UNLOCK;
-}
diff --git a/libiberty/sigsetmask.c b/libiberty/sigsetmask.c
deleted file mode 100644
index 3b708b1..0000000
--- a/libiberty/sigsetmask.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Version of sigsetmask.c
-   Written by Steve Chamberlain (sac@cygnus.com).
-   Contributed by Cygnus Support.
-   This file is in the public doamin. */
-
-/*
-
-@deftypefn Supplemental int sigsetmask (int @var{set})
-
-Sets the signal mask to the one provided in @var{set} and returns
-the old mask (which, for libiberty's implementation, will always
-be the value @code{1}).
-
-@end deftypefn
-
-*/
-
-#define _POSIX_SOURCE
-#include <ansidecl.h>
-/* Including <sys/types.h> seems to be needed by ISC. */
-#include <sys/types.h>
-#include <signal.h>
-
-extern void abort (void) ATTRIBUTE_NORETURN;
-
-#ifdef SIG_SETMASK
-int
-sigsetmask (int set)
-{
-    sigset_t new_sig;
-    sigset_t old_sig;
-    
-    sigemptyset (&new_sig);
-    if (set != 0) {
-      abort();	/* FIXME, we don't know how to translate old mask to new */
-    }
-    sigprocmask(SIG_SETMASK, &new_sig, &old_sig);
-    return 1;	/* FIXME, we always return 1 as old value.  */
-}
-#endif
diff --git a/libiberty/snprintf.c b/libiberty/snprintf.c
deleted file mode 100644
index f1ba49f..0000000
--- a/libiberty/snprintf.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Implement the snprintf function.
-   Copyright (C) 2003 Free Software Foundation, Inc.
-   Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>.
-
-This file is part of the libiberty library.  This library 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.
-
-This library 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 GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-As a special exception, if you link this library with files
-compiled with a GNU compiler to produce an executable, this does not cause
-the resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why
-the executable file might be covered by the GNU General Public License. */
-
-/*
-
-@deftypefn Supplemental int snprintf (char *@var{buf}, size_t @var{n}, const char *@var{format}, ...)
-
-This function is similar to sprintf, but it will print at most @var{n}
-characters.  On error the return value is -1, otherwise it returns the
-number of characters that would have been printed had @var{n} been
-sufficiently large, regardless of the actual value of @var{n}.  Note
-some pre-C99 system libraries do not implement this correctly so users
-cannot generally rely on the return value if the system version of
-this function is used.
-
-@end deftypefn
-
-*/
-
-#include "ansidecl.h"
-
-#include <stdarg.h>
-#include <stddef.h>
-
-int vsnprintf (char *, size_t, const char *, va_list);
-
-int
-snprintf (char *s, size_t n, const char *format, ...)
-{
-  int result;
-  VA_OPEN (ap, format);
-  VA_FIXEDARG (ap, char *, s);
-  VA_FIXEDARG (ap, size_t, n);
-  VA_FIXEDARG (ap, const char *, format);
-  result = vsnprintf (s, n, format, ap);
-  VA_CLOSE (ap);
-  return result;
-}
diff --git a/libiberty/sort.c b/libiberty/sort.c
deleted file mode 100644
index 3738dd7..0000000
--- a/libiberty/sort.c
+++ /dev/null
@@ -1,186 +0,0 @@
-/* Sorting algorithms.
-   Copyright (C) 2000 Free Software Foundation, Inc.
-   Contributed by Mark Mitchell <mark@codesourcery.com>.
-
-This file is part of GNU CC.
-   
-GNU CC 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.
-
-GNU CC 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 GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include "libiberty.h"
-#include "sort.h"
-#ifdef HAVE_LIMITS_H
-#include <limits.h>
-#endif
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-
-#ifndef UCHAR_MAX
-#define UCHAR_MAX ((unsigned char)(-1))
-#endif
-
-/* POINTERS and WORK are both arrays of N pointers.  When this
-   function returns POINTERS will be sorted in ascending order.  */
-
-void sort_pointers (size_t n, void **pointers, void **work)
-{
-  /* The type of a single digit.  This can be any unsigned integral
-     type.  When changing this, DIGIT_MAX should be changed as 
-     well.  */
-  typedef unsigned char digit_t;
-
-  /* The maximum value a single digit can have.  */
-#define DIGIT_MAX (UCHAR_MAX + 1)
-
-  /* The Ith entry is the number of elements in *POINTERSP that have I
-     in the digit on which we are currently sorting.  */
-  unsigned int count[DIGIT_MAX];
-  /* Nonzero if we are running on a big-endian machine.  */
-  int big_endian_p;
-  size_t i;
-  size_t j;
-
-  /* The algorithm used here is radix sort which takes time linear in
-     the number of elements in the array.  */
-
-  /* The algorithm here depends on being able to swap the two arrays
-     an even number of times.  */
-  if ((sizeof (void *) / sizeof (digit_t)) % 2 != 0)
-    abort ();
-
-  /* Figure out the endianness of the machine.  */
-  for (i = 0, j = 0; i < sizeof (size_t); ++i)
-    {
-      j *= (UCHAR_MAX + 1);
-      j += i;
-    }
-  big_endian_p = (((char *)&j)[0] == 0);
-
-  /* Move through the pointer values from least significant to most
-     significant digits.  */
-  for (i = 0; i < sizeof (void *) / sizeof (digit_t); ++i)
-    {
-      digit_t *digit;
-      digit_t *bias;
-      digit_t *top;
-      unsigned int *countp;
-      void **pointerp;
-
-      /* The offset from the start of the pointer will depend on the
-	 endianness of the machine.  */
-      if (big_endian_p)
-	j = sizeof (void *) / sizeof (digit_t) - i;
-      else
-	j = i;
-	
-      /* Now, perform a stable sort on this digit.  We use counting
-	 sort.  */
-      memset (count, 0, DIGIT_MAX * sizeof (unsigned int));
-
-      /* Compute the address of the appropriate digit in the first and
-	 one-past-the-end elements of the array.  On a little-endian
-	 machine, the least-significant digit is closest to the front.  */
-      bias = ((digit_t *) pointers) + j;
-      top = ((digit_t *) (pointers + n)) + j;
-
-      /* Count how many there are of each value.  At the end of this
-	 loop, COUNT[K] will contain the number of pointers whose Ith
-	 digit is K.  */
-      for (digit = bias; 
-	   digit < top; 
-	   digit += sizeof (void *) / sizeof (digit_t))
-	++count[*digit];
-
-      /* Now, make COUNT[K] contain the number of pointers whose Ith
-	 digit is less than or equal to K.  */
-      for (countp = count + 1; countp < count + DIGIT_MAX; ++countp)
-	*countp += countp[-1];
-
-      /* Now, drop the pointers into their correct locations.  */
-      for (pointerp = pointers + n - 1; pointerp >= pointers; --pointerp)
-	work[--count[((digit_t *) pointerp)[j]]] = *pointerp;
-
-      /* Swap WORK and POINTERS so that POINTERS contains the sorted
-	 array.  */
-      pointerp = pointers;
-      pointers = work;
-      work = pointerp;
-    }
-}
-
-/* Everything below here is a unit test for the routines in this
-   file.  */
-
-#ifdef UNIT_TEST
-
-#include <stdio.h>
-
-void *xmalloc (size_t n)
-{
-  return malloc (n);
-}
-
-int main (int argc, char **argv)
-{
-  int k;
-  int result;
-  size_t i;
-  void **pointers;
-  void **work;
-
-  if (argc > 1)
-    k = atoi (argv[1]);
-  else
-    k = 10;
-
-  pointers = XNEWVEC (void*, k);
-  work = XNEWVEC (void*, k);
-
-  for (i = 0; i < k; ++i)
-    {
-      pointers[i] = (void *) random ();
-      printf ("%x\n", pointers[i]);
-    }
-
-  sort_pointers (k, pointers, work);
-
-  printf ("\nSorted\n\n");
-
-  result = 0;
-
-  for (i = 0; i < k; ++i)
-    {
-      printf ("%x\n", pointers[i]);
-      if (i > 0 && (char*) pointers[i] < (char*) pointers[i - 1])
-	result = 1;
-    }
-
-  free (pointers);
-  free (work);
-
-  return result;
-}
-
-#endif
diff --git a/libiberty/spaces.c b/libiberty/spaces.c
deleted file mode 100644
index 67481c9..0000000
--- a/libiberty/spaces.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Allocate memory region filled with spaces.
-   Copyright (C) 1991 Free Software Foundation, Inc.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-/*
-
-@deftypefn Extension char* spaces (int @var{count})
-
-Returns a pointer to a memory region filled with the specified
-number of spaces and null terminated.  The returned pointer is
-valid until at least the next call.
-
-@end deftypefn
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include "ansidecl.h"
-#include "libiberty.h"
-
-#if VMS
-#include <stdlib.h>
-#include <unixlib.h>
-#else
-/* For systems with larger pointers than ints, these must be declared.  */
-extern PTR malloc (size_t);
-extern void free (PTR);
-#endif
-
-const char *
-spaces (int count)
-{
-  register char *t;
-  static char *buf;
-  static int maxsize;
-
-  if (count > maxsize)
-    {
-      if (buf)
-	{
-	  free (buf);
-	}
-      buf = (char *) malloc (count + 1);
-      if (buf == (char *) 0)
-	return 0;
-      for (t = buf + count ; t != buf ; )
-	{
-	  *--t = ' ';
-	}
-      maxsize = count;
-      buf[count] = '\0';
-    }
-  return (const char *) (buf + maxsize - count);
-}
-
diff --git a/libiberty/splay-tree.c b/libiberty/splay-tree.c
deleted file mode 100644
index 060f900..0000000
--- a/libiberty/splay-tree.c
+++ /dev/null
@@ -1,526 +0,0 @@
-/* A splay-tree datatype.  
-   Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
-   Contributed by Mark Mitchell (mark@markmitchell.com).
-
-This file is part of GNU CC.
-   
-GNU CC 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.
-
-GNU CC 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 GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-/* For an easily readable description of splay-trees, see:
-
-     Lewis, Harry R. and Denenberg, Larry.  Data Structures and Their
-     Algorithms.  Harper-Collins, Inc.  1991.  */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-#include <stdio.h>
-
-#include "libiberty.h"
-#include "splay-tree.h"
-
-static void splay_tree_delete_helper (splay_tree, splay_tree_node);
-static inline void rotate_left (splay_tree_node *,
-				splay_tree_node, splay_tree_node);
-static inline void rotate_right (splay_tree_node *,
-				splay_tree_node, splay_tree_node);
-static void splay_tree_splay (splay_tree, splay_tree_key);
-static int splay_tree_foreach_helper (splay_tree, splay_tree_node,
-                                      splay_tree_foreach_fn, void*);
-
-/* Deallocate NODE (a member of SP), and all its sub-trees.  */
-
-static void 
-splay_tree_delete_helper (splay_tree sp, splay_tree_node node)
-{
-  splay_tree_node pending = 0;
-  splay_tree_node active = 0;
-
-  if (!node)
-    return;
-
-#define KDEL(x)  if (sp->delete_key) (*sp->delete_key)(x);
-#define VDEL(x)  if (sp->delete_value) (*sp->delete_value)(x);
-
-  KDEL (node->key);
-  VDEL (node->value);
-
-  /* We use the "key" field to hold the "next" pointer.  */
-  node->key = (splay_tree_key)pending;
-  pending = (splay_tree_node)node;
-
-  /* Now, keep processing the pending list until there aren't any
-     more.  This is a little more complicated than just recursing, but
-     it doesn't toast the stack for large trees.  */
-
-  while (pending)
-    {
-      active = pending;
-      pending = 0;
-      while (active)
-	{
-	  splay_tree_node temp;
-
-	  /* active points to a node which has its key and value
-	     deallocated, we just need to process left and right.  */
-
-	  if (active->left)
-	    {
-	      KDEL (active->left->key);
-	      VDEL (active->left->value);
-	      active->left->key = (splay_tree_key)pending;
-	      pending = (splay_tree_node)(active->left);
-	    }
-	  if (active->right)
-	    {
-	      KDEL (active->right->key);
-	      VDEL (active->right->value);
-	      active->right->key = (splay_tree_key)pending;
-	      pending = (splay_tree_node)(active->right);
-	    }
-
-	  temp = active;
-	  active = (splay_tree_node)(temp->key);
-	  (*sp->deallocate) ((char*) temp, sp->allocate_data);
-	}
-    }
-#undef KDEL
-#undef VDEL
-}
-
-/* Rotate the edge joining the left child N with its parent P.  PP is the
-   grandparents pointer to P.  */
-
-static inline void
-rotate_left (splay_tree_node *pp, splay_tree_node p, splay_tree_node n)
-{
-  splay_tree_node tmp;
-  tmp = n->right;
-  n->right = p;
-  p->left = tmp;
-  *pp = n;
-}
-
-/* Rotate the edge joining the right child N with its parent P.  PP is the
-   grandparents pointer to P.  */
-
-static inline void
-rotate_right (splay_tree_node *pp, splay_tree_node p, splay_tree_node n)
-{
-  splay_tree_node tmp;
-  tmp = n->left;
-  n->left = p;
-  p->right = tmp;
-  *pp = n;
-}
-
-/* Bottom up splay of key.  */
-
-static void
-splay_tree_splay (splay_tree sp, splay_tree_key key)
-{
-  if (sp->root == 0)
-    return;
-
-  do {
-    int cmp1, cmp2;
-    splay_tree_node n, c;
-
-    n = sp->root;
-    cmp1 = (*sp->comp) (key, n->key);
-
-    /* Found.  */
-    if (cmp1 == 0)
-      return;
-
-    /* Left or right?  If no child, then we're done.  */
-    if (cmp1 < 0)
-      c = n->left;
-    else
-      c = n->right;
-    if (!c)
-      return;
-
-    /* Next one left or right?  If found or no child, we're done
-       after one rotation.  */
-    cmp2 = (*sp->comp) (key, c->key);
-    if (cmp2 == 0
-        || (cmp2 < 0 && !c->left)
-        || (cmp2 > 0 && !c->right))
-      {
-	if (cmp1 < 0)
-	  rotate_left (&sp->root, n, c);
-	else
-	  rotate_right (&sp->root, n, c);
-        return;
-      }
-
-    /* Now we have the four cases of double-rotation.  */
-    if (cmp1 < 0 && cmp2 < 0)
-      {
-	rotate_left (&n->left, c, c->left);
-	rotate_left (&sp->root, n, n->left);
-      }
-    else if (cmp1 > 0 && cmp2 > 0)
-      {
-	rotate_right (&n->right, c, c->right);
-	rotate_right (&sp->root, n, n->right);
-      }
-    else if (cmp1 < 0 && cmp2 > 0)
-      {
-	rotate_right (&n->left, c, c->right);
-	rotate_left (&sp->root, n, n->left);
-      }
-    else if (cmp1 > 0 && cmp2 < 0)
-      {
-	rotate_left (&n->right, c, c->left);
-	rotate_right (&sp->root, n, n->right);
-      }
-  } while (1);
-}
-
-/* Call FN, passing it the DATA, for every node below NODE, all of
-   which are from SP, following an in-order traversal.  If FN every
-   returns a non-zero value, the iteration ceases immediately, and the
-   value is returned.  Otherwise, this function returns 0.  */
-
-static int
-splay_tree_foreach_helper (splay_tree sp, splay_tree_node node,
-                           splay_tree_foreach_fn fn, void *data)
-{
-  int val;
-
-  if (!node)
-    return 0;
-
-  val = splay_tree_foreach_helper (sp, node->left, fn, data);
-  if (val)
-    return val;
-
-  val = (*fn)(node, data);
-  if (val)
-    return val;
-
-  return splay_tree_foreach_helper (sp, node->right, fn, data);
-}
-
-
-/* An allocator and deallocator based on xmalloc.  */
-static void *
-splay_tree_xmalloc_allocate (int size, void *data ATTRIBUTE_UNUSED)
-{
-  return (void *) xmalloc (size);
-}
-
-static void
-splay_tree_xmalloc_deallocate (void *object, void *data ATTRIBUTE_UNUSED)
-{
-  free (object);
-}
-
-
-/* Allocate a new splay tree, using COMPARE_FN to compare nodes,
-   DELETE_KEY_FN to deallocate keys, and DELETE_VALUE_FN to deallocate
-   values.  Use xmalloc to allocate the splay tree structure, and any
-   nodes added.  */
-
-splay_tree 
-splay_tree_new (splay_tree_compare_fn compare_fn,
-                splay_tree_delete_key_fn delete_key_fn,
-                splay_tree_delete_value_fn delete_value_fn)
-{
-  return (splay_tree_new_with_allocator
-          (compare_fn, delete_key_fn, delete_value_fn,
-           splay_tree_xmalloc_allocate, splay_tree_xmalloc_deallocate, 0));
-}
-
-
-/* Allocate a new splay tree, using COMPARE_FN to compare nodes,
-   DELETE_KEY_FN to deallocate keys, and DELETE_VALUE_FN to deallocate
-   values.  */
-
-splay_tree 
-splay_tree_new_with_allocator (splay_tree_compare_fn compare_fn,
-                               splay_tree_delete_key_fn delete_key_fn,
-                               splay_tree_delete_value_fn delete_value_fn,
-                               splay_tree_allocate_fn allocate_fn,
-                               splay_tree_deallocate_fn deallocate_fn,
-                               void *allocate_data)
-{
-  splay_tree sp = (splay_tree) (*allocate_fn) (sizeof (struct splay_tree_s),
-                                               allocate_data);
-  sp->root = 0;
-  sp->comp = compare_fn;
-  sp->delete_key = delete_key_fn;
-  sp->delete_value = delete_value_fn;
-  sp->allocate = allocate_fn;
-  sp->deallocate = deallocate_fn;
-  sp->allocate_data = allocate_data;
-
-  return sp;
-}
-
-/* Deallocate SP.  */
-
-void 
-splay_tree_delete (splay_tree sp)
-{
-  splay_tree_delete_helper (sp, sp->root);
-  (*sp->deallocate) ((char*) sp, sp->allocate_data);
-}
-
-/* Insert a new node (associating KEY with DATA) into SP.  If a
-   previous node with the indicated KEY exists, its data is replaced
-   with the new value.  Returns the new node.  */
-
-splay_tree_node
-splay_tree_insert (splay_tree sp, splay_tree_key key, splay_tree_value value)
-{
-  int comparison = 0;
-
-  splay_tree_splay (sp, key);
-
-  if (sp->root)
-    comparison = (*sp->comp)(sp->root->key, key);
-
-  if (sp->root && comparison == 0)
-    {
-      /* If the root of the tree already has the indicated KEY, just
-	 replace the value with VALUE.  */
-      if (sp->delete_value)
-	(*sp->delete_value)(sp->root->value);
-      sp->root->value = value;
-    } 
-  else 
-    {
-      /* Create a new node, and insert it at the root.  */
-      splay_tree_node node;
-      
-      node = ((splay_tree_node)
-              (*sp->allocate) (sizeof (struct splay_tree_node_s),
-                               sp->allocate_data));
-      node->key = key;
-      node->value = value;
-      
-      if (!sp->root)
-	node->left = node->right = 0;
-      else if (comparison < 0)
-	{
-	  node->left = sp->root;
-	  node->right = node->left->right;
-	  node->left->right = 0;
-	}
-      else
-	{
-	  node->right = sp->root;
-	  node->left = node->right->left;
-	  node->right->left = 0;
-	}
-
-      sp->root = node;
-    }
-
-  return sp->root;
-}
-
-/* Remove KEY from SP.  It is not an error if it did not exist.  */
-
-void
-splay_tree_remove (splay_tree sp, splay_tree_key key)
-{
-  splay_tree_splay (sp, key);
-
-  if (sp->root && (*sp->comp) (sp->root->key, key) == 0)
-    {
-      splay_tree_node left, right;
-
-      left = sp->root->left;
-      right = sp->root->right;
-
-      /* Delete the root node itself.  */
-      if (sp->delete_value)
-	(*sp->delete_value) (sp->root->value);
-      (*sp->deallocate) (sp->root, sp->allocate_data);
-
-      /* One of the children is now the root.  Doesn't matter much
-	 which, so long as we preserve the properties of the tree.  */
-      if (left)
-	{
-	  sp->root = left;
-
-	  /* If there was a right child as well, hang it off the 
-	     right-most leaf of the left child.  */
-	  if (right)
-	    {
-	      while (left->right)
-		left = left->right;
-	      left->right = right;
-	    }
-	}
-      else
-	sp->root = right;
-    }
-}
-
-/* Lookup KEY in SP, returning VALUE if present, and NULL 
-   otherwise.  */
-
-splay_tree_node
-splay_tree_lookup (splay_tree sp, splay_tree_key key)
-{
-  splay_tree_splay (sp, key);
-
-  if (sp->root && (*sp->comp)(sp->root->key, key) == 0)
-    return sp->root;
-  else
-    return 0;
-}
-
-/* Return the node in SP with the greatest key.  */
-
-splay_tree_node
-splay_tree_max (splay_tree sp)
-{
-  splay_tree_node n = sp->root;
-
-  if (!n)
-    return NULL;
-
-  while (n->right)
-    n = n->right;
-
-  return n;
-}
-
-/* Return the node in SP with the smallest key.  */
-
-splay_tree_node
-splay_tree_min (splay_tree sp)
-{
-  splay_tree_node n = sp->root;
-
-  if (!n)
-    return NULL;
-
-  while (n->left)
-    n = n->left;
-
-  return n;
-}
-
-/* Return the immediate predecessor KEY, or NULL if there is no
-   predecessor.  KEY need not be present in the tree.  */
-
-splay_tree_node
-splay_tree_predecessor (splay_tree sp, splay_tree_key key)
-{
-  int comparison;
-  splay_tree_node node;
-
-  /* If the tree is empty, there is certainly no predecessor.  */
-  if (!sp->root)
-    return NULL;
-
-  /* Splay the tree around KEY.  That will leave either the KEY
-     itself, its predecessor, or its successor at the root.  */
-  splay_tree_splay (sp, key);
-  comparison = (*sp->comp)(sp->root->key, key);
-
-  /* If the predecessor is at the root, just return it.  */
-  if (comparison < 0)
-    return sp->root;
-
-  /* Otherwise, find the rightmost element of the left subtree.  */
-  node = sp->root->left;
-  if (node)
-    while (node->right)
-      node = node->right;
-
-  return node;
-}
-
-/* Return the immediate successor KEY, or NULL if there is no
-   successor.  KEY need not be present in the tree.  */
-
-splay_tree_node
-splay_tree_successor (splay_tree sp, splay_tree_key key)
-{
-  int comparison;
-  splay_tree_node node;
-
-  /* If the tree is empty, there is certainly no successor.  */
-  if (!sp->root)
-    return NULL;
-
-  /* Splay the tree around KEY.  That will leave either the KEY
-     itself, its predecessor, or its successor at the root.  */
-  splay_tree_splay (sp, key);
-  comparison = (*sp->comp)(sp->root->key, key);
-
-  /* If the successor is at the root, just return it.  */
-  if (comparison > 0)
-    return sp->root;
-
-  /* Otherwise, find the leftmost element of the right subtree.  */
-  node = sp->root->right;
-  if (node)
-    while (node->left)
-      node = node->left;
-
-  return node;
-}
-
-/* Call FN, passing it the DATA, for every node in SP, following an
-   in-order traversal.  If FN every returns a non-zero value, the
-   iteration ceases immediately, and the value is returned.
-   Otherwise, this function returns 0.  */
-
-int
-splay_tree_foreach (splay_tree sp, splay_tree_foreach_fn fn, void *data)
-{
-  return splay_tree_foreach_helper (sp, sp->root, fn, data);
-}
-
-/* Splay-tree comparison function, treating the keys as ints.  */
-
-int
-splay_tree_compare_ints (splay_tree_key k1, splay_tree_key k2)
-{
-  if ((int) k1 < (int) k2)
-    return -1;
-  else if ((int) k1 > (int) k2)
-    return 1;
-  else 
-    return 0;
-}
-
-/* Splay-tree comparison function, treating the keys as pointers.  */
-
-int
-splay_tree_compare_pointers (splay_tree_key k1, splay_tree_key k2)
-{
-  if ((char*) k1 < (char*) k2)
-    return -1;
-  else if ((char*) k1 > (char*) k2)
-    return 1;
-  else 
-    return 0;
-}
diff --git a/libiberty/stpcpy.c b/libiberty/stpcpy.c
deleted file mode 100644
index 57b32d1..0000000
--- a/libiberty/stpcpy.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Implement the stpcpy function.
-   Copyright (C) 2003 Free Software Foundation, Inc.
-   Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-/*
-
-@deftypefn Supplemental char* stpcpy (char *@var{dst}, const char *@var{src})
-
-Copies the string @var{src} into @var{dst}.  Returns a pointer to
-@var{dst} + strlen(@var{src}).
-
-@end deftypefn
-
-*/
-
-#include <ansidecl.h>
-#include <stddef.h>
-
-extern size_t strlen (const char *);
-extern PTR memcpy (PTR, const PTR, size_t);
-
-char *
-stpcpy (char *dst, const char *src)
-{
-  const size_t len = strlen (src);
-  return (char *) memcpy (dst, src, len + 1) + len;
-}
diff --git a/libiberty/stpncpy.c b/libiberty/stpncpy.c
deleted file mode 100644
index f97206a..0000000
--- a/libiberty/stpncpy.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Implement the stpncpy function.
-   Copyright (C) 2003 Free Software Foundation, Inc.
-   Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-/*
-
-@deftypefn Supplemental char* stpncpy (char *@var{dst}, const char *@var{src}, size_t @var{len})
-
-Copies the string @var{src} into @var{dst}, copying exactly @var{len}
-and padding with zeros if necessary.  If @var{len} < strlen(@var{src})
-then return @var{dst} + @var{len}, otherwise returns @var{dst} +
-strlen(@var{src}).
-
-@end deftypefn
-
-*/
-
-#include <ansidecl.h>
-#include <stddef.h>
-
-extern size_t strlen (const char *);
-extern char *strncpy (char *, const char *, size_t);
-
-char *
-stpncpy (char *dst, const char *src, size_t len)
-{
-  size_t n = strlen (src);
-  if (n > len)
-    n = len;
-  return strncpy (dst, src, len) + n;
-}
diff --git a/libiberty/strcasecmp.c b/libiberty/strcasecmp.c
deleted file mode 100644
index 131d81c..0000000
--- a/libiberty/strcasecmp.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (c) 1987 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that this notice is preserved and that due credit is given
- * to the University of California at Berkeley. The name of the University
- * may not be used to endorse or promote products derived from this
- * software without specific written prior permission. This software
- * is provided ``as is'' without express or implied warranty.
- */
-
-/*
-  
-@deftypefn Supplemental int strcasecmp (const char *@var{s1}, const char *@var{s2})
-
-A case-insensitive @code{strcmp}.
-
-@end deftypefn
-
-*/
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)strcasecmp.c	5.5 (Berkeley) 11/24/87";
-#endif /* LIBC_SCCS and not lint */
-
-#include <ansidecl.h>
-#include <stddef.h>
-
-/*
- * This array is designed for mapping upper and lower case letter
- * together for a case independent comparison.  The mappings are
- * based upon ascii character sequences.
- */
-typedef unsigned char uc;
-static const unsigned char charmap[] = {
-	(uc)'\000',(uc)'\001',(uc)'\002',(uc)'\003',(uc)'\004',(uc)'\005',(uc)'\006',(uc)'\007',
-	(uc)'\010',(uc)'\011',(uc)'\012',(uc)'\013',(uc)'\014',(uc)'\015',(uc)'\016',(uc)'\017',
-	(uc)'\020',(uc)'\021',(uc)'\022',(uc)'\023',(uc)'\024',(uc)'\025',(uc)'\026',(uc)'\027',
-	(uc)'\030',(uc)'\031',(uc)'\032',(uc)'\033',(uc)'\034',(uc)'\035',(uc)'\036',(uc)'\037',
-	(uc)'\040',(uc)'\041',(uc)'\042',(uc)'\043',(uc)'\044',(uc)'\045',(uc)'\046',(uc)'\047',
-	(uc)'\050',(uc)'\051',(uc)'\052',(uc)'\053',(uc)'\054',(uc)'\055',(uc)'\056',(uc)'\057',
-	(uc)'\060',(uc)'\061',(uc)'\062',(uc)'\063',(uc)'\064',(uc)'\065',(uc)'\066',(uc)'\067',
-	(uc)'\070',(uc)'\071',(uc)'\072',(uc)'\073',(uc)'\074',(uc)'\075',(uc)'\076',(uc)'\077',
-	(uc)'\100',(uc)'\141',(uc)'\142',(uc)'\143',(uc)'\144',(uc)'\145',(uc)'\146',(uc)'\147',
-	(uc)'\150',(uc)'\151',(uc)'\152',(uc)'\153',(uc)'\154',(uc)'\155',(uc)'\156',(uc)'\157',
-	(uc)'\160',(uc)'\161',(uc)'\162',(uc)'\163',(uc)'\164',(uc)'\165',(uc)'\166',(uc)'\167',
-	(uc)'\170',(uc)'\171',(uc)'\172',(uc)'\133',(uc)'\134',(uc)'\135',(uc)'\136',(uc)'\137',
-	(uc)'\140',(uc)'\141',(uc)'\142',(uc)'\143',(uc)'\144',(uc)'\145',(uc)'\146',(uc)'\147',
-	(uc)'\150',(uc)'\151',(uc)'\152',(uc)'\153',(uc)'\154',(uc)'\155',(uc)'\156',(uc)'\157',
-	(uc)'\160',(uc)'\161',(uc)'\162',(uc)'\163',(uc)'\164',(uc)'\165',(uc)'\166',(uc)'\167',
-	(uc)'\170',(uc)'\171',(uc)'\172',(uc)'\173',(uc)'\174',(uc)'\175',(uc)'\176',(uc)'\177',
-	(uc)'\200',(uc)'\201',(uc)'\202',(uc)'\203',(uc)'\204',(uc)'\205',(uc)'\206',(uc)'\207',
-	(uc)'\210',(uc)'\211',(uc)'\212',(uc)'\213',(uc)'\214',(uc)'\215',(uc)'\216',(uc)'\217',
-	(uc)'\220',(uc)'\221',(uc)'\222',(uc)'\223',(uc)'\224',(uc)'\225',(uc)'\226',(uc)'\227',
-	(uc)'\230',(uc)'\231',(uc)'\232',(uc)'\233',(uc)'\234',(uc)'\235',(uc)'\236',(uc)'\237',
-	(uc)'\240',(uc)'\241',(uc)'\242',(uc)'\243',(uc)'\244',(uc)'\245',(uc)'\246',(uc)'\247',
-	(uc)'\250',(uc)'\251',(uc)'\252',(uc)'\253',(uc)'\254',(uc)'\255',(uc)'\256',(uc)'\257',
-	(uc)'\260',(uc)'\261',(uc)'\262',(uc)'\263',(uc)'\264',(uc)'\265',(uc)'\266',(uc)'\267',
-	(uc)'\270',(uc)'\271',(uc)'\272',(uc)'\273',(uc)'\274',(uc)'\275',(uc)'\276',(uc)'\277',
-	(uc)'\300',(uc)'\341',(uc)'\342',(uc)'\343',(uc)'\344',(uc)'\345',(uc)'\346',(uc)'\347',
-	(uc)'\350',(uc)'\351',(uc)'\352',(uc)'\353',(uc)'\354',(uc)'\355',(uc)'\356',(uc)'\357',
-	(uc)'\360',(uc)'\361',(uc)'\362',(uc)'\363',(uc)'\364',(uc)'\365',(uc)'\366',(uc)'\367',
-	(uc)'\370',(uc)'\371',(uc)'\372',(uc)'\333',(uc)'\334',(uc)'\335',(uc)'\336',(uc)'\337',
-	(uc)'\340',(uc)'\341',(uc)'\342',(uc)'\343',(uc)'\344',(uc)'\345',(uc)'\346',(uc)'\347',
-	(uc)'\350',(uc)'\351',(uc)'\352',(uc)'\353',(uc)'\354',(uc)'\355',(uc)'\356',(uc)'\357',
-	(uc)'\360',(uc)'\361',(uc)'\362',(uc)'\363',(uc)'\364',(uc)'\365',(uc)'\366',(uc)'\367',
-	(uc)'\370',(uc)'\371',(uc)'\372',(uc)'\373',(uc)'\374',(uc)'\375',(uc)'\376',(uc)'\377',
-};
-
-int
-strcasecmp(const char *s1, const char *s2)
-{
-    register unsigned char u1, u2;
-
-    for (;;) {
-	u1 = (unsigned char) *s1++;
-	u2 = (unsigned char) *s2++;
-	if (charmap[u1] != charmap[u2]) {
-	    return charmap[u1] - charmap[u2];
-	}
-	if (u1 == '\0') {
-	    return 0;
-	}
-    }
-}
-
diff --git a/libiberty/strchr.c b/libiberty/strchr.c
deleted file mode 100644
index 935805e..0000000
--- a/libiberty/strchr.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Portable version of strchr()
-   This function is in the public domain.  */
-
-/*
-
-@deftypefn Supplemental char* strchr (const char *@var{s}, int @var{c})
-
-Returns a pointer to the first occurrence of the character @var{c} in
-the string @var{s}, or @code{NULL} if not found.  If @var{c} is itself the
-null character, the results are undefined.
-
-@end deftypefn
-
-*/
-
-#include <ansidecl.h>
-
-char *
-strchr (register const char *s, int c)
-{
-  do {
-    if (*s == c)
-      {
-	return (char*)s;
-      }
-  } while (*s++);
-  return (0);
-}
diff --git a/libiberty/strdup.c b/libiberty/strdup.c
deleted file mode 100644
index 78c2093..0000000
--- a/libiberty/strdup.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-
-@deftypefn Supplemental char* strdup (const char *@var{s})
-
-Returns a pointer to a copy of @var{s} in memory obtained from
-@code{malloc}, or @code{NULL} if insufficient memory was available.
-
-@end deftypefn
-
-*/
-
-#include <ansidecl.h>
-#include <stddef.h>
-
-extern size_t	strlen (const char*);
-extern PTR	malloc (size_t);
-extern PTR	memcpy (PTR, const PTR, size_t);
-
-char *
-strdup(const char *s)
-{
-  size_t len = strlen (s) + 1;
-  char *result = (char*) malloc (len);
-  if (result == (char*) 0)
-    return (char*) 0;
-  return (char*) memcpy (result, s, len);
-}
diff --git a/libiberty/strerror.c b/libiberty/strerror.c
deleted file mode 100644
index 0efadc3..0000000
--- a/libiberty/strerror.c
+++ /dev/null
@@ -1,809 +0,0 @@
-/* Extended support for using errno values.
-   Written by Fred Fish.  fnf@cygnus.com
-   This file is in the public domain.  --Per Bothner.  */
-
-#include "config.h"
-
-#ifdef HAVE_SYS_ERRLIST
-/* Note that errno.h (not sure what OS) or stdio.h (BSD 4.4, at least)
-   might declare sys_errlist in a way that the compiler might consider
-   incompatible with our later declaration, perhaps by using const
-   attributes.  So we hide the declaration in errno.h (if any) using a
-   macro. */
-#define sys_nerr sys_nerr__
-#define sys_errlist sys_errlist__
-#endif
-
-#include "ansidecl.h"
-#include "libiberty.h"
-
-#include <stdio.h>
-#include <errno.h>
-
-#ifdef HAVE_SYS_ERRLIST
-#undef sys_nerr
-#undef sys_errlist
-#endif
-
-/*  Routines imported from standard C runtime libraries. */
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#else
-extern PTR malloc ();
-#endif
-
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-extern PTR memset ();
-#endif
-
-#ifndef MAX
-#  define MAX(a,b) ((a) > (b) ? (a) : (b))
-#endif
-
-static void init_error_tables (void);
-
-/* Translation table for errno values.  See intro(2) in most UNIX systems
-   Programmers Reference Manuals.
-
-   Note that this table is generally only accessed when it is used at runtime
-   to initialize errno name and message tables that are indexed by errno
-   value.
-
-   Not all of these errnos will exist on all systems.  This table is the only
-   thing that should have to be updated as new error numbers are introduced.
-   It's sort of ugly, but at least its portable. */
-
-struct error_info
-{
-  const int value;		/* The numeric value from <errno.h> */
-  const char *const name;	/* The equivalent symbolic value */
-#ifndef HAVE_SYS_ERRLIST
-  const char *const msg;	/* Short message about this value */
-#endif
-};
-
-#ifndef HAVE_SYS_ERRLIST
-#   define ENTRY(value, name, msg)	{value, name, msg}
-#else
-#   define ENTRY(value, name, msg)	{value, name}
-#endif
-
-static const struct error_info error_table[] =
-{
-#if defined (EPERM)
-  ENTRY(EPERM, "EPERM", "Not owner"),
-#endif
-#if defined (ENOENT)
-  ENTRY(ENOENT, "ENOENT", "No such file or directory"),
-#endif
-#if defined (ESRCH)
-  ENTRY(ESRCH, "ESRCH", "No such process"),
-#endif
-#if defined (EINTR)
-  ENTRY(EINTR, "EINTR", "Interrupted system call"),
-#endif
-#if defined (EIO)
-  ENTRY(EIO, "EIO", "I/O error"),
-#endif
-#if defined (ENXIO)
-  ENTRY(ENXIO, "ENXIO", "No such device or address"),
-#endif
-#if defined (E2BIG)
-  ENTRY(E2BIG, "E2BIG", "Arg list too long"),
-#endif
-#if defined (ENOEXEC)
-  ENTRY(ENOEXEC, "ENOEXEC", "Exec format error"),
-#endif
-#if defined (EBADF)
-  ENTRY(EBADF, "EBADF", "Bad file number"),
-#endif
-#if defined (ECHILD)
-  ENTRY(ECHILD, "ECHILD", "No child processes"),
-#endif
-#if defined (EWOULDBLOCK)	/* Put before EAGAIN, sometimes aliased */
-  ENTRY(EWOULDBLOCK, "EWOULDBLOCK", "Operation would block"),
-#endif
-#if defined (EAGAIN)
-  ENTRY(EAGAIN, "EAGAIN", "No more processes"),
-#endif
-#if defined (ENOMEM)
-  ENTRY(ENOMEM, "ENOMEM", "Not enough space"),
-#endif
-#if defined (EACCES)
-  ENTRY(EACCES, "EACCES", "Permission denied"),
-#endif
-#if defined (EFAULT)
-  ENTRY(EFAULT, "EFAULT", "Bad address"),
-#endif
-#if defined (ENOTBLK)
-  ENTRY(ENOTBLK, "ENOTBLK", "Block device required"),
-#endif
-#if defined (EBUSY)
-  ENTRY(EBUSY, "EBUSY", "Device busy"),
-#endif
-#if defined (EEXIST)
-  ENTRY(EEXIST, "EEXIST", "File exists"),
-#endif
-#if defined (EXDEV)
-  ENTRY(EXDEV, "EXDEV", "Cross-device link"),
-#endif
-#if defined (ENODEV)
-  ENTRY(ENODEV, "ENODEV", "No such device"),
-#endif
-#if defined (ENOTDIR)
-  ENTRY(ENOTDIR, "ENOTDIR", "Not a directory"),
-#endif
-#if defined (EISDIR)
-  ENTRY(EISDIR, "EISDIR", "Is a directory"),
-#endif
-#if defined (EINVAL)
-  ENTRY(EINVAL, "EINVAL", "Invalid argument"),
-#endif
-#if defined (ENFILE)
-  ENTRY(ENFILE, "ENFILE", "File table overflow"),
-#endif
-#if defined (EMFILE)
-  ENTRY(EMFILE, "EMFILE", "Too many open files"),
-#endif
-#if defined (ENOTTY)
-  ENTRY(ENOTTY, "ENOTTY", "Not a typewriter"),
-#endif
-#if defined (ETXTBSY)
-  ENTRY(ETXTBSY, "ETXTBSY", "Text file busy"),
-#endif
-#if defined (EFBIG)
-  ENTRY(EFBIG, "EFBIG", "File too large"),
-#endif
-#if defined (ENOSPC)
-  ENTRY(ENOSPC, "ENOSPC", "No space left on device"),
-#endif
-#if defined (ESPIPE)
-  ENTRY(ESPIPE, "ESPIPE", "Illegal seek"),
-#endif
-#if defined (EROFS)
-  ENTRY(EROFS, "EROFS", "Read-only file system"),
-#endif
-#if defined (EMLINK)
-  ENTRY(EMLINK, "EMLINK", "Too many links"),
-#endif
-#if defined (EPIPE)
-  ENTRY(EPIPE, "EPIPE", "Broken pipe"),
-#endif
-#if defined (EDOM)
-  ENTRY(EDOM, "EDOM", "Math argument out of domain of func"),
-#endif
-#if defined (ERANGE)
-  ENTRY(ERANGE, "ERANGE", "Math result not representable"),
-#endif
-#if defined (ENOMSG)
-  ENTRY(ENOMSG, "ENOMSG", "No message of desired type"),
-#endif
-#if defined (EIDRM)
-  ENTRY(EIDRM, "EIDRM", "Identifier removed"),
-#endif
-#if defined (ECHRNG)
-  ENTRY(ECHRNG, "ECHRNG", "Channel number out of range"),
-#endif
-#if defined (EL2NSYNC)
-  ENTRY(EL2NSYNC, "EL2NSYNC", "Level 2 not synchronized"),
-#endif
-#if defined (EL3HLT)
-  ENTRY(EL3HLT, "EL3HLT", "Level 3 halted"),
-#endif
-#if defined (EL3RST)
-  ENTRY(EL3RST, "EL3RST", "Level 3 reset"),
-#endif
-#if defined (ELNRNG)
-  ENTRY(ELNRNG, "ELNRNG", "Link number out of range"),
-#endif
-#if defined (EUNATCH)
-  ENTRY(EUNATCH, "EUNATCH", "Protocol driver not attached"),
-#endif
-#if defined (ENOCSI)
-  ENTRY(ENOCSI, "ENOCSI", "No CSI structure available"),
-#endif
-#if defined (EL2HLT)
-  ENTRY(EL2HLT, "EL2HLT", "Level 2 halted"),
-#endif
-#if defined (EDEADLK)
-  ENTRY(EDEADLK, "EDEADLK", "Deadlock condition"),
-#endif
-#if defined (ENOLCK)
-  ENTRY(ENOLCK, "ENOLCK", "No record locks available"),
-#endif
-#if defined (EBADE)
-  ENTRY(EBADE, "EBADE", "Invalid exchange"),
-#endif
-#if defined (EBADR)
-  ENTRY(EBADR, "EBADR", "Invalid request descriptor"),
-#endif
-#if defined (EXFULL)
-  ENTRY(EXFULL, "EXFULL", "Exchange full"),
-#endif
-#if defined (ENOANO)
-  ENTRY(ENOANO, "ENOANO", "No anode"),
-#endif
-#if defined (EBADRQC)
-  ENTRY(EBADRQC, "EBADRQC", "Invalid request code"),
-#endif
-#if defined (EBADSLT)
-  ENTRY(EBADSLT, "EBADSLT", "Invalid slot"),
-#endif
-#if defined (EDEADLOCK)
-  ENTRY(EDEADLOCK, "EDEADLOCK", "File locking deadlock error"),
-#endif
-#if defined (EBFONT)
-  ENTRY(EBFONT, "EBFONT", "Bad font file format"),
-#endif
-#if defined (ENOSTR)
-  ENTRY(ENOSTR, "ENOSTR", "Device not a stream"),
-#endif
-#if defined (ENODATA)
-  ENTRY(ENODATA, "ENODATA", "No data available"),
-#endif
-#if defined (ETIME)
-  ENTRY(ETIME, "ETIME", "Timer expired"),
-#endif
-#if defined (ENOSR)
-  ENTRY(ENOSR, "ENOSR", "Out of streams resources"),
-#endif
-#if defined (ENONET)
-  ENTRY(ENONET, "ENONET", "Machine is not on the network"),
-#endif
-#if defined (ENOPKG)
-  ENTRY(ENOPKG, "ENOPKG", "Package not installed"),
-#endif
-#if defined (EREMOTE)
-  ENTRY(EREMOTE, "EREMOTE", "Object is remote"),
-#endif
-#if defined (ENOLINK)
-  ENTRY(ENOLINK, "ENOLINK", "Link has been severed"),
-#endif
-#if defined (EADV)
-  ENTRY(EADV, "EADV", "Advertise error"),
-#endif
-#if defined (ESRMNT)
-  ENTRY(ESRMNT, "ESRMNT", "Srmount error"),
-#endif
-#if defined (ECOMM)
-  ENTRY(ECOMM, "ECOMM", "Communication error on send"),
-#endif
-#if defined (EPROTO)
-  ENTRY(EPROTO, "EPROTO", "Protocol error"),
-#endif
-#if defined (EMULTIHOP)
-  ENTRY(EMULTIHOP, "EMULTIHOP", "Multihop attempted"),
-#endif
-#if defined (EDOTDOT)
-  ENTRY(EDOTDOT, "EDOTDOT", "RFS specific error"),
-#endif
-#if defined (EBADMSG)
-  ENTRY(EBADMSG, "EBADMSG", "Not a data message"),
-#endif
-#if defined (ENAMETOOLONG)
-  ENTRY(ENAMETOOLONG, "ENAMETOOLONG", "File name too long"),
-#endif
-#if defined (EOVERFLOW)
-  ENTRY(EOVERFLOW, "EOVERFLOW", "Value too large for defined data type"),
-#endif
-#if defined (ENOTUNIQ)
-  ENTRY(ENOTUNIQ, "ENOTUNIQ", "Name not unique on network"),
-#endif
-#if defined (EBADFD)
-  ENTRY(EBADFD, "EBADFD", "File descriptor in bad state"),
-#endif
-#if defined (EREMCHG)
-  ENTRY(EREMCHG, "EREMCHG", "Remote address changed"),
-#endif
-#if defined (ELIBACC)
-  ENTRY(ELIBACC, "ELIBACC", "Can not access a needed shared library"),
-#endif
-#if defined (ELIBBAD)
-  ENTRY(ELIBBAD, "ELIBBAD", "Accessing a corrupted shared library"),
-#endif
-#if defined (ELIBSCN)
-  ENTRY(ELIBSCN, "ELIBSCN", ".lib section in a.out corrupted"),
-#endif
-#if defined (ELIBMAX)
-  ENTRY(ELIBMAX, "ELIBMAX", "Attempting to link in too many shared libraries"),
-#endif
-#if defined (ELIBEXEC)
-  ENTRY(ELIBEXEC, "ELIBEXEC", "Cannot exec a shared library directly"),
-#endif
-#if defined (EILSEQ)
-  ENTRY(EILSEQ, "EILSEQ", "Illegal byte sequence"),
-#endif
-#if defined (ENOSYS)
-  ENTRY(ENOSYS, "ENOSYS", "Operation not applicable"),
-#endif
-#if defined (ELOOP)
-  ENTRY(ELOOP, "ELOOP", "Too many symbolic links encountered"),
-#endif
-#if defined (ERESTART)
-  ENTRY(ERESTART, "ERESTART", "Interrupted system call should be restarted"),
-#endif
-#if defined (ESTRPIPE)
-  ENTRY(ESTRPIPE, "ESTRPIPE", "Streams pipe error"),
-#endif
-#if defined (ENOTEMPTY)
-  ENTRY(ENOTEMPTY, "ENOTEMPTY", "Directory not empty"),
-#endif
-#if defined (EUSERS)
-  ENTRY(EUSERS, "EUSERS", "Too many users"),
-#endif
-#if defined (ENOTSOCK)
-  ENTRY(ENOTSOCK, "ENOTSOCK", "Socket operation on non-socket"),
-#endif
-#if defined (EDESTADDRREQ)
-  ENTRY(EDESTADDRREQ, "EDESTADDRREQ", "Destination address required"),
-#endif
-#if defined (EMSGSIZE)
-  ENTRY(EMSGSIZE, "EMSGSIZE", "Message too long"),
-#endif
-#if defined (EPROTOTYPE)
-  ENTRY(EPROTOTYPE, "EPROTOTYPE", "Protocol wrong type for socket"),
-#endif
-#if defined (ENOPROTOOPT)
-  ENTRY(ENOPROTOOPT, "ENOPROTOOPT", "Protocol not available"),
-#endif
-#if defined (EPROTONOSUPPORT)
-  ENTRY(EPROTONOSUPPORT, "EPROTONOSUPPORT", "Protocol not supported"),
-#endif
-#if defined (ESOCKTNOSUPPORT)
-  ENTRY(ESOCKTNOSUPPORT, "ESOCKTNOSUPPORT", "Socket type not supported"),
-#endif
-#if defined (EOPNOTSUPP)
-  ENTRY(EOPNOTSUPP, "EOPNOTSUPP", "Operation not supported on transport endpoint"),
-#endif
-#if defined (EPFNOSUPPORT)
-  ENTRY(EPFNOSUPPORT, "EPFNOSUPPORT", "Protocol family not supported"),
-#endif
-#if defined (EAFNOSUPPORT)
-  ENTRY(EAFNOSUPPORT, "EAFNOSUPPORT", "Address family not supported by protocol"),
-#endif
-#if defined (EADDRINUSE)
-  ENTRY(EADDRINUSE, "EADDRINUSE", "Address already in use"),
-#endif
-#if defined (EADDRNOTAVAIL)
-  ENTRY(EADDRNOTAVAIL, "EADDRNOTAVAIL","Cannot assign requested address"),
-#endif
-#if defined (ENETDOWN)
-  ENTRY(ENETDOWN, "ENETDOWN", "Network is down"),
-#endif
-#if defined (ENETUNREACH)
-  ENTRY(ENETUNREACH, "ENETUNREACH", "Network is unreachable"),
-#endif
-#if defined (ENETRESET)
-  ENTRY(ENETRESET, "ENETRESET", "Network dropped connection because of reset"),
-#endif
-#if defined (ECONNABORTED)
-  ENTRY(ECONNABORTED, "ECONNABORTED", "Software caused connection abort"),
-#endif
-#if defined (ECONNRESET)
-  ENTRY(ECONNRESET, "ECONNRESET", "Connection reset by peer"),
-#endif
-#if defined (ENOBUFS)
-  ENTRY(ENOBUFS, "ENOBUFS", "No buffer space available"),
-#endif
-#if defined (EISCONN)
-  ENTRY(EISCONN, "EISCONN", "Transport endpoint is already connected"),
-#endif
-#if defined (ENOTCONN)
-  ENTRY(ENOTCONN, "ENOTCONN", "Transport endpoint is not connected"),
-#endif
-#if defined (ESHUTDOWN)
-  ENTRY(ESHUTDOWN, "ESHUTDOWN", "Cannot send after transport endpoint shutdown"),
-#endif
-#if defined (ETOOMANYREFS)
-  ENTRY(ETOOMANYREFS, "ETOOMANYREFS", "Too many references: cannot splice"),
-#endif
-#if defined (ETIMEDOUT)
-  ENTRY(ETIMEDOUT, "ETIMEDOUT", "Connection timed out"),
-#endif
-#if defined (ECONNREFUSED)
-  ENTRY(ECONNREFUSED, "ECONNREFUSED", "Connection refused"),
-#endif
-#if defined (EHOSTDOWN)
-  ENTRY(EHOSTDOWN, "EHOSTDOWN", "Host is down"),
-#endif
-#if defined (EHOSTUNREACH)
-  ENTRY(EHOSTUNREACH, "EHOSTUNREACH", "No route to host"),
-#endif
-#if defined (EALREADY)
-  ENTRY(EALREADY, "EALREADY", "Operation already in progress"),
-#endif
-#if defined (EINPROGRESS)
-  ENTRY(EINPROGRESS, "EINPROGRESS", "Operation now in progress"),
-#endif
-#if defined (ESTALE)
-  ENTRY(ESTALE, "ESTALE", "Stale NFS file handle"),
-#endif
-#if defined (EUCLEAN)
-  ENTRY(EUCLEAN, "EUCLEAN", "Structure needs cleaning"),
-#endif
-#if defined (ENOTNAM)
-  ENTRY(ENOTNAM, "ENOTNAM", "Not a XENIX named type file"),
-#endif
-#if defined (ENAVAIL)
-  ENTRY(ENAVAIL, "ENAVAIL", "No XENIX semaphores available"),
-#endif
-#if defined (EISNAM)
-  ENTRY(EISNAM, "EISNAM", "Is a named type file"),
-#endif
-#if defined (EREMOTEIO)
-  ENTRY(EREMOTEIO, "EREMOTEIO", "Remote I/O error"),
-#endif
-  ENTRY(0, NULL, NULL)
-};
-
-#ifdef EVMSERR
-/* This is not in the table, because the numeric value of EVMSERR (32767)
-   lies outside the range of sys_errlist[].  */
-static struct { int value; const char *name, *msg; }
-  evmserr = { EVMSERR, "EVMSERR", "VMS-specific error" };
-#endif
-
-/* Translation table allocated and initialized at runtime.  Indexed by the
-   errno value to find the equivalent symbolic value. */
-
-static const char **error_names;
-static int num_error_names = 0;
-
-/* Translation table allocated and initialized at runtime, if it does not
-   already exist in the host environment.  Indexed by the errno value to find
-   the descriptive string.
-
-   We don't export it for use in other modules because even though it has the
-   same name, it differs from other implementations in that it is dynamically
-   initialized rather than statically initialized. */
-
-#ifndef HAVE_SYS_ERRLIST
-
-#define sys_nerr sys_nerr__
-#define sys_errlist sys_errlist__
-static int sys_nerr;
-static const char **sys_errlist;
-
-#else
-
-extern int sys_nerr;
-extern char *sys_errlist[];
-
-#endif
-
-/*
-
-NAME
-
-	init_error_tables -- initialize the name and message tables
-
-SYNOPSIS
-
-	static void init_error_tables ();
-
-DESCRIPTION
-
-	Using the error_table, which is initialized at compile time, generate
-	the error_names and the sys_errlist (if needed) tables, which are
-	indexed at runtime by a specific errno value.
-
-BUGS
-
-	The initialization of the tables may fail under low memory conditions,
-	in which case we don't do anything particularly useful, but we don't
-	bomb either.  Who knows, it might succeed at a later point if we free
-	some memory in the meantime.  In any case, the other routines know
-	how to deal with lack of a table after trying to initialize it.  This
-	may or may not be considered to be a bug, that we don't specifically
-	warn about this particular failure mode.
-
-*/
-
-static void
-init_error_tables (void)
-{
-  const struct error_info *eip;
-  int nbytes;
-
-  /* If we haven't already scanned the error_table once to find the maximum
-     errno value, then go find it now. */
-
-  if (num_error_names == 0)
-    {
-      for (eip = error_table; eip -> name != NULL; eip++)
-	{
-	  if (eip -> value >= num_error_names)
-	    {
-	      num_error_names = eip -> value + 1;
-	    }
-	}
-    }
-
-  /* Now attempt to allocate the error_names table, zero it out, and then
-     initialize it from the statically initialized error_table. */
-
-  if (error_names == NULL)
-    {
-      nbytes = num_error_names * sizeof (char *);
-      if ((error_names = (const char **) malloc (nbytes)) != NULL)
-	{
-	  memset (error_names, 0, nbytes);
-	  for (eip = error_table; eip -> name != NULL; eip++)
-	    {
-	      error_names[eip -> value] = eip -> name;
-	    }
-	}
-    }
-
-#ifndef HAVE_SYS_ERRLIST
-
-  /* Now attempt to allocate the sys_errlist table, zero it out, and then
-     initialize it from the statically initialized error_table. */
-
-  if (sys_errlist == NULL)
-    {
-      nbytes = num_error_names * sizeof (char *);
-      if ((sys_errlist = (const char **) malloc (nbytes)) != NULL)
-	{
-	  memset (sys_errlist, 0, nbytes);
-	  sys_nerr = num_error_names;
-	  for (eip = error_table; eip -> name != NULL; eip++)
-	    {
-	      sys_errlist[eip -> value] = eip -> msg;
-	    }
-	}
-    }
-
-#endif
-
-}
-
-/*
-
-
-@deftypefn Extension int errno_max (void)
-
-Returns the maximum @code{errno} value for which a corresponding
-symbolic name or message is available.  Note that in the case where we
-use the @code{sys_errlist} supplied by the system, it is possible for
-there to be more symbolic names than messages, or vice versa.  In
-fact, the manual page for @code{perror(3C)} explicitly warns that one
-should check the size of the table (@code{sys_nerr}) before indexing
-it, since new error codes may be added to the system before they are
-added to the table.  Thus @code{sys_nerr} might be smaller than value
-implied by the largest @code{errno} value defined in @code{<errno.h>}.
-
-We return the maximum value that can be used to obtain a meaningful
-symbolic name or message.
-
-@end deftypefn
-
-*/
-
-int
-errno_max (void)
-{
-  int maxsize;
-
-  if (error_names == NULL)
-    {
-      init_error_tables ();
-    }
-  maxsize = MAX (sys_nerr, num_error_names);
-  return (maxsize - 1);
-}
-
-#ifndef HAVE_STRERROR
-
-/*
-
-@deftypefn Supplemental char* strerror (int @var{errnoval})
-
-Maps an @code{errno} number to an error message string, the contents
-of which are implementation defined.  On systems which have the
-external variables @code{sys_nerr} and @code{sys_errlist}, these
-strings will be the same as the ones used by @code{perror}.
-
-If the supplied error number is within the valid range of indices for
-the @code{sys_errlist}, but no message is available for the particular
-error number, then returns the string @samp{Error @var{num}}, where
-@var{num} is the error number.
-
-If the supplied error number is not a valid index into
-@code{sys_errlist}, returns @code{NULL}.
-
-The returned string is only guaranteed to be valid only until the
-next call to @code{strerror}.
-
-@end deftypefn
-
-*/
-
-char *
-strerror (int errnoval)
-{
-  const char *msg;
-  static char buf[32];
-
-#ifndef HAVE_SYS_ERRLIST
-
-  if (error_names == NULL)
-    {
-      init_error_tables ();
-    }
-
-#endif
-
-  if ((errnoval < 0) || (errnoval >= sys_nerr))
-    {
-#ifdef EVMSERR
-      if (errnoval == evmserr.value)
-	msg = evmserr.msg;
-      else
-#endif
-      /* Out of range, just return NULL */
-      msg = NULL;
-    }
-  else if ((sys_errlist == NULL) || (sys_errlist[errnoval] == NULL))
-    {
-      /* In range, but no sys_errlist or no entry at this index. */
-      sprintf (buf, "Error %d", errnoval);
-      msg = buf;
-    }
-  else
-    {
-      /* In range, and a valid message.  Just return the message. */
-      msg = (char *) sys_errlist[errnoval];
-    }
-  
-  return (msg);
-}
-
-#endif	/* ! HAVE_STRERROR */
-
-
-/*
-
-@deftypefn Replacement {const char*} strerrno (int @var{errnum})
-
-Given an error number returned from a system call (typically returned
-in @code{errno}), returns a pointer to a string containing the
-symbolic name of that error number, as found in @code{<errno.h>}.
-
-If the supplied error number is within the valid range of indices for
-symbolic names, but no name is available for the particular error
-number, then returns the string @samp{Error @var{num}}, where @var{num}
-is the error number.
-
-If the supplied error number is not within the range of valid
-indices, then returns @code{NULL}.
-
-The contents of the location pointed to are only guaranteed to be
-valid until the next call to @code{strerrno}.
-
-@end deftypefn
-
-*/
-
-const char *
-strerrno (int errnoval)
-{
-  const char *name;
-  static char buf[32];
-
-  if (error_names == NULL)
-    {
-      init_error_tables ();
-    }
-
-  if ((errnoval < 0) || (errnoval >= num_error_names))
-    {
-#ifdef EVMSERR
-      if (errnoval == evmserr.value)
-	name = evmserr.name;
-      else
-#endif
-      /* Out of range, just return NULL */
-      name = NULL;
-    }
-  else if ((error_names == NULL) || (error_names[errnoval] == NULL))
-    {
-      /* In range, but no error_names or no entry at this index. */
-      sprintf (buf, "Error %d", errnoval);
-      name = (const char *) buf;
-    }
-  else
-    {
-      /* In range, and a valid name.  Just return the name. */
-      name = error_names[errnoval];
-    }
-
-  return (name);
-}
-
-/*
-
-@deftypefn Extension int strtoerrno (const char *@var{name})
-
-Given the symbolic name of a error number (e.g., @code{EACCES}), map it
-to an errno value.  If no translation is found, returns 0.
-
-@end deftypefn
-
-*/
-
-int
-strtoerrno (const char *name)
-{
-  int errnoval = 0;
-
-  if (name != NULL)
-    {
-      if (error_names == NULL)
-	{
-	  init_error_tables ();
-	}
-      for (errnoval = 0; errnoval < num_error_names; errnoval++)
-	{
-	  if ((error_names[errnoval] != NULL) &&
-	      (strcmp (name, error_names[errnoval]) == 0))
-	    {
-	      break;
-	    }
-	}
-      if (errnoval == num_error_names)
-	{
-#ifdef EVMSERR
-	  if (strcmp (name, evmserr.name) == 0)
-	    errnoval = evmserr.value;
-	  else
-#endif
-	  errnoval = 0;
-	}
-    }
-  return (errnoval);
-}
-
-
-/* A simple little main that does nothing but print all the errno translations
-   if MAIN is defined and this file is compiled and linked. */
-
-#ifdef MAIN
-
-#include <stdio.h>
-
-int
-main (void)
-{
-  int errn;
-  int errnmax;
-  const char *name;
-  const char *msg;
-  char *strerror ();
-
-  errnmax = errno_max ();
-  printf ("%d entries in names table.\n", num_error_names);
-  printf ("%d entries in messages table.\n", sys_nerr);
-  printf ("%d is max useful index.\n", errnmax);
-
-  /* Keep printing values until we get to the end of *both* tables, not
-     *either* table.  Note that knowing the maximum useful index does *not*
-     relieve us of the responsibility of testing the return pointer for
-     NULL. */
-
-  for (errn = 0; errn <= errnmax; errn++)
-    {
-      name = strerrno (errn);
-      name = (name == NULL) ? "<NULL>" : name;
-      msg = strerror (errn);
-      msg = (msg == NULL) ? "<NULL>" : msg;
-      printf ("%-4d%-18s%s\n", errn, name, msg);
-    }
-
-  return 0;
-}
-
-#endif
diff --git a/libiberty/strncasecmp.c b/libiberty/strncasecmp.c
deleted file mode 100644
index 47700dd..0000000
--- a/libiberty/strncasecmp.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 1987 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that this notice is preserved and that due credit is given
- * to the University of California at Berkeley. The name of the University
- * may not be used to endorse or promote products derived from this
- * software without specific written prior permission. This software
- * is provided ``as is'' without express or implied warranty.
- */
-
-/*
-  
-@deftypefn Supplemental int strncasecmp (const char *@var{s1}, const char *@var{s2})
-
-A case-insensitive @code{strncmp}.
-
-@end deftypefn
-
-*/
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)strcasecmp.c	5.5 (Berkeley) 11/24/87";
-#endif /* LIBC_SCCS and not lint */
-
-#include <ansidecl.h>
-#include <stddef.h>
-
-/*
- * This array is designed for mapping upper and lower case letter
- * together for a case independent comparison.  The mappings are
- * based upon ascii character sequences.
- */
-static const unsigned char charmap[] = {
-	'\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',
-	'\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',
-	'\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',
-	'\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',
-	'\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',
-	'\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',
-	'\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',
-	'\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',
-	'\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
-	'\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
-	'\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
-	'\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',
-	'\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
-	'\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
-	'\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
-	'\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',
-	'\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',
-	'\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',
-	'\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',
-	'\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',
-	'\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',
-	'\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',
-	'\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
-	'\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',
-	'\300', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
-	'\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
-	'\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
-	'\370', '\371', '\372', '\333', '\334', '\335', '\336', '\337',
-	'\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
-	'\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
-	'\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
-	'\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',
-};
-
-int
-strncasecmp(const char *s1, const char *s2, register size_t n)
-{
-    register unsigned char u1, u2;
-
-    for (; n != 0; --n) {
-	u1 = (unsigned char) *s1++;
-	u2 = (unsigned char) *s2++;
-	if (charmap[u1] != charmap[u2]) {
-	    return charmap[u1] - charmap[u2];
-	}
-	if (u1 == '\0') {
-	    return 0;
-	}
-    }
-    return 0;
-}
diff --git a/libiberty/strncmp.c b/libiberty/strncmp.c
deleted file mode 100644
index 916c2f0..0000000
--- a/libiberty/strncmp.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* strncmp -- compare two strings, stop after n bytes.
-   This function is in the public domain.  */
-
-/*
-
-@deftypefn Supplemental int strncmp (const char *@var{s1}, const char *@var{s2}, size_t @var{n})
-
-Compares the first @var{n} bytes of two strings, returning a value as
-@code{strcmp}.
-
-@end deftypefn
-
-*/
-
-#include <ansidecl.h>
-#include <stddef.h>
-
-int
-strncmp(const char *s1, const char *s2, register size_t n)
-{
-  register unsigned char u1, u2;
-
-  while (n-- > 0)
-    {
-      u1 = (unsigned char) *s1++;
-      u2 = (unsigned char) *s2++;
-      if (u1 != u2)
-	return u1 - u2;
-      if (u1 == '\0')
-	return 0;
-    }
-  return 0;
-}
diff --git a/libiberty/strndup.c b/libiberty/strndup.c
deleted file mode 100644
index 9e9b4e2..0000000
--- a/libiberty/strndup.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Implement the strndup function.
-   Copyright (C) 2005 Free Software Foundation, Inc.
-   Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-/*
-
-@deftypefn Extension char* strndup (const char *@var{s}, size_t @var{n})
-
-Returns a pointer to a copy of @var{s} with at most @var{n} characters
-in memory obtained from @code{malloc}, or @code{NULL} if insufficient
-memory was available.  The result is always NUL terminated.
-
-@end deftypefn
-
-*/
-
-#include "ansidecl.h"
-#include <stddef.h>
-
-extern size_t	strlen (const char*);
-extern PTR	malloc (size_t);
-extern PTR	memcpy (PTR, const PTR, size_t);
-
-char *
-strndup (const char *s, size_t n)
-{
-  char *result;
-  size_t len = strlen (s);
-
-  if (n < len)
-    len = n;
-
-  result = (char *) malloc (len + 1);
-  if (!result)
-    return 0;
-
-  result[len] = '\0';
-  return (char *) memcpy (result, s, len);
-}
diff --git a/libiberty/strrchr.c b/libiberty/strrchr.c
deleted file mode 100644
index 5cf7c14..0000000
--- a/libiberty/strrchr.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Portable version of strrchr().
-   This function is in the public domain. */
-
-/*
-
-@deftypefn Supplemental char* strrchr (const char *@var{s}, int @var{c})
-
-Returns a pointer to the last occurrence of the character @var{c} in
-the string @var{s}, or @code{NULL} if not found.  If @var{c} is itself the
-null character, the results are undefined.
-
-@end deftypefn
-
-*/
-
-#include <ansidecl.h>
-
-char *
-strrchr (register const char *s, int c)
-{
-  char *rtnval = 0;
-
-  do {
-    if (*s == c)
-      rtnval = (char*) s;
-  } while (*s++);
-  return (rtnval);
-}
diff --git a/libiberty/strsignal.c b/libiberty/strsignal.c
deleted file mode 100644
index c3a16ab..0000000
--- a/libiberty/strsignal.c
+++ /dev/null
@@ -1,608 +0,0 @@
-/* Extended support for using signal values.
-   Written by Fred Fish.  fnf@cygnus.com
-   This file is in the public domain.  */
-
-#include "config.h"
-#include "ansidecl.h"
-#include "libiberty.h"
-
-/* We need to declare sys_siglist, because even if the system provides
-   it we can't assume that it is declared in <signal.h> (for example,
-   SunOS provides sys_siglist, but it does not declare it in any
-   header file).  fHowever, we can't declare sys_siglist portably,
-   because on some systems it is declared with const and on some
-   systems it is declared without const.  If we were using autoconf,
-   we could work out the right declaration.  Until, then we just
-   ignore any declaration in the system header files, and always
-   declare it ourselves.  With luck, this will always work.  */
-#define sys_siglist no_such_symbol
-#define sys_nsig sys_nsig__no_such_symbol
-
-#include <stdio.h>
-#include <signal.h>
-
-/*  Routines imported from standard C runtime libraries. */
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#else
-extern PTR malloc ();
-#endif
-
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-extern PTR memset ();
-#endif
-
-/* Undefine the macro we used to hide the definition of sys_siglist
-   found in the system header files.  */
-#undef sys_siglist
-#undef sys_nsig
-
-#ifndef NULL
-#  define NULL (void *) 0
-#endif
-
-#ifndef MAX
-#  define MAX(a,b) ((a) > (b) ? (a) : (b))
-#endif
-
-static void init_signal_tables (void);
-
-/* Translation table for signal values.
-
-   Note that this table is generally only accessed when it is used at runtime
-   to initialize signal name and message tables that are indexed by signal
-   value.
-
-   Not all of these signals will exist on all systems.  This table is the only
-   thing that should have to be updated as new signal numbers are introduced.
-   It's sort of ugly, but at least its portable. */
-
-struct signal_info
-{
-  const int value;		/* The numeric value from <signal.h> */
-  const char *const name;	/* The equivalent symbolic value */
-#ifndef HAVE_SYS_SIGLIST
-  const char *const msg;	/* Short message about this value */
-#endif
-};
-
-#ifndef HAVE_SYS_SIGLIST
-#   define ENTRY(value, name, msg)	{value, name, msg}
-#else
-#   define ENTRY(value, name, msg)	{value, name}
-#endif
-
-static const struct signal_info signal_table[] =
-{
-#if defined (SIGHUP)
-  ENTRY(SIGHUP, "SIGHUP", "Hangup"),
-#endif
-#if defined (SIGINT)
-  ENTRY(SIGINT, "SIGINT", "Interrupt"),
-#endif
-#if defined (SIGQUIT)
-  ENTRY(SIGQUIT, "SIGQUIT", "Quit"),
-#endif
-#if defined (SIGILL)
-  ENTRY(SIGILL, "SIGILL", "Illegal instruction"),
-#endif
-#if defined (SIGTRAP)
-  ENTRY(SIGTRAP, "SIGTRAP", "Trace/breakpoint trap"),
-#endif
-/* Put SIGIOT before SIGABRT, so that if SIGIOT==SIGABRT then SIGABRT
-   overrides SIGIOT.  SIGABRT is in ANSI and POSIX.1, and SIGIOT isn't. */
-#if defined (SIGIOT)
-  ENTRY(SIGIOT, "SIGIOT", "IOT trap"),
-#endif
-#if defined (SIGABRT)
-  ENTRY(SIGABRT, "SIGABRT", "Aborted"),
-#endif
-#if defined (SIGEMT)
-  ENTRY(SIGEMT, "SIGEMT", "Emulation trap"),
-#endif
-#if defined (SIGFPE)
-  ENTRY(SIGFPE, "SIGFPE", "Arithmetic exception"),
-#endif
-#if defined (SIGKILL)
-  ENTRY(SIGKILL, "SIGKILL", "Killed"),
-#endif
-#if defined (SIGBUS)
-  ENTRY(SIGBUS, "SIGBUS", "Bus error"),
-#endif
-#if defined (SIGSEGV)
-  ENTRY(SIGSEGV, "SIGSEGV", "Segmentation fault"),
-#endif
-#if defined (SIGSYS)
-  ENTRY(SIGSYS, "SIGSYS", "Bad system call"),
-#endif
-#if defined (SIGPIPE)
-  ENTRY(SIGPIPE, "SIGPIPE", "Broken pipe"),
-#endif
-#if defined (SIGALRM)
-  ENTRY(SIGALRM, "SIGALRM", "Alarm clock"),
-#endif
-#if defined (SIGTERM)
-  ENTRY(SIGTERM, "SIGTERM", "Terminated"),
-#endif
-#if defined (SIGUSR1)
-  ENTRY(SIGUSR1, "SIGUSR1", "User defined signal 1"),
-#endif
-#if defined (SIGUSR2)
-  ENTRY(SIGUSR2, "SIGUSR2", "User defined signal 2"),
-#endif
-/* Put SIGCLD before SIGCHLD, so that if SIGCLD==SIGCHLD then SIGCHLD
-   overrides SIGCLD.  SIGCHLD is in POXIX.1 */
-#if defined (SIGCLD)
-  ENTRY(SIGCLD, "SIGCLD", "Child status changed"),
-#endif
-#if defined (SIGCHLD)
-  ENTRY(SIGCHLD, "SIGCHLD", "Child status changed"),
-#endif
-#if defined (SIGPWR)
-  ENTRY(SIGPWR, "SIGPWR", "Power fail/restart"),
-#endif
-#if defined (SIGWINCH)
-  ENTRY(SIGWINCH, "SIGWINCH", "Window size changed"),
-#endif
-#if defined (SIGURG)
-  ENTRY(SIGURG, "SIGURG", "Urgent I/O condition"),
-#endif
-#if defined (SIGIO)
-  /* "I/O pending" has also been suggested, but is misleading since the
-     signal only happens when the process has asked for it, not everytime
-     I/O is pending. */
-  ENTRY(SIGIO, "SIGIO", "I/O possible"),
-#endif
-#if defined (SIGPOLL)
-  ENTRY(SIGPOLL, "SIGPOLL", "Pollable event occurred"),
-#endif
-#if defined (SIGSTOP)
-  ENTRY(SIGSTOP, "SIGSTOP", "Stopped (signal)"),
-#endif
-#if defined (SIGTSTP)
-  ENTRY(SIGTSTP, "SIGTSTP", "Stopped (user)"),
-#endif
-#if defined (SIGCONT)
-  ENTRY(SIGCONT, "SIGCONT", "Continued"),
-#endif
-#if defined (SIGTTIN)
-  ENTRY(SIGTTIN, "SIGTTIN", "Stopped (tty input)"),
-#endif
-#if defined (SIGTTOU)
-  ENTRY(SIGTTOU, "SIGTTOU", "Stopped (tty output)"),
-#endif
-#if defined (SIGVTALRM)
-  ENTRY(SIGVTALRM, "SIGVTALRM", "Virtual timer expired"),
-#endif
-#if defined (SIGPROF)
-  ENTRY(SIGPROF, "SIGPROF", "Profiling timer expired"),
-#endif
-#if defined (SIGXCPU)
-  ENTRY(SIGXCPU, "SIGXCPU", "CPU time limit exceeded"),
-#endif
-#if defined (SIGXFSZ)
-  ENTRY(SIGXFSZ, "SIGXFSZ", "File size limit exceeded"),
-#endif
-#if defined (SIGWIND)
-  ENTRY(SIGWIND, "SIGWIND", "SIGWIND"),
-#endif
-#if defined (SIGPHONE)
-  ENTRY(SIGPHONE, "SIGPHONE", "SIGPHONE"),
-#endif
-#if defined (SIGLOST)
-  ENTRY(SIGLOST, "SIGLOST", "Resource lost"),
-#endif
-#if defined (SIGWAITING)
-  ENTRY(SIGWAITING, "SIGWAITING", "Process's LWPs are blocked"),
-#endif
-#if defined (SIGLWP)
-  ENTRY(SIGLWP, "SIGLWP", "Signal LWP"),
-#endif
-#if defined (SIGDANGER)
-  ENTRY(SIGDANGER, "SIGDANGER", "Swap space dangerously low"),
-#endif
-#if defined (SIGGRANT)
-  ENTRY(SIGGRANT, "SIGGRANT", "Monitor mode granted"),
-#endif
-#if defined (SIGRETRACT)
-  ENTRY(SIGRETRACT, "SIGRETRACT", "Need to relinguish monitor mode"),
-#endif
-#if defined (SIGMSG)
-  ENTRY(SIGMSG, "SIGMSG", "Monitor mode data available"),
-#endif
-#if defined (SIGSOUND)
-  ENTRY(SIGSOUND, "SIGSOUND", "Sound completed"),
-#endif
-#if defined (SIGSAK)
-  ENTRY(SIGSAK, "SIGSAK", "Secure attention"),
-#endif
-  ENTRY(0, NULL, NULL)
-};
-
-/* Translation table allocated and initialized at runtime.  Indexed by the
-   signal value to find the equivalent symbolic value. */
-
-static const char **signal_names;
-static int num_signal_names = 0;
-
-/* Translation table allocated and initialized at runtime, if it does not
-   already exist in the host environment.  Indexed by the signal value to find
-   the descriptive string.
-
-   We don't export it for use in other modules because even though it has the
-   same name, it differs from other implementations in that it is dynamically
-   initialized rather than statically initialized. */
-
-#ifndef HAVE_SYS_SIGLIST
-
-static int sys_nsig;
-static const char **sys_siglist;
-
-#else
-
-#ifdef NSIG
-static int sys_nsig = NSIG;
-#else
-#ifdef _NSIG
-static int sys_nsig = _NSIG;
-#endif
-#endif
-extern const char * const sys_siglist[];
-
-#endif
-
-
-/*
-
-NAME
-
-	init_signal_tables -- initialize the name and message tables
-
-SYNOPSIS
-
-	static void init_signal_tables ();
-
-DESCRIPTION
-
-	Using the signal_table, which is initialized at compile time, generate
-	the signal_names and the sys_siglist (if needed) tables, which are
-	indexed at runtime by a specific signal value.
-
-BUGS
-
-	The initialization of the tables may fail under low memory conditions,
-	in which case we don't do anything particularly useful, but we don't
-	bomb either.  Who knows, it might succeed at a later point if we free
-	some memory in the meantime.  In any case, the other routines know
-	how to deal with lack of a table after trying to initialize it.  This
-	may or may not be considered to be a bug, that we don't specifically
-	warn about this particular failure mode.
-
-*/
-
-static void
-init_signal_tables (void)
-{
-  const struct signal_info *eip;
-  int nbytes;
-
-  /* If we haven't already scanned the signal_table once to find the maximum
-     signal value, then go find it now. */
-
-  if (num_signal_names == 0)
-    {
-      for (eip = signal_table; eip -> name != NULL; eip++)
-	{
-	  if (eip -> value >= num_signal_names)
-	    {
-	      num_signal_names = eip -> value + 1;
-	    }
-	}
-    }
-
-  /* Now attempt to allocate the signal_names table, zero it out, and then
-     initialize it from the statically initialized signal_table. */
-
-  if (signal_names == NULL)
-    {
-      nbytes = num_signal_names * sizeof (char *);
-      if ((signal_names = (const char **) malloc (nbytes)) != NULL)
-	{
-	  memset (signal_names, 0, nbytes);
-	  for (eip = signal_table; eip -> name != NULL; eip++)
-	    {
-	      signal_names[eip -> value] = eip -> name;
-	    }
-	}
-    }
-
-#ifndef HAVE_SYS_SIGLIST
-
-  /* Now attempt to allocate the sys_siglist table, zero it out, and then
-     initialize it from the statically initialized signal_table. */
-
-  if (sys_siglist == NULL)
-    {
-      nbytes = num_signal_names * sizeof (char *);
-      if ((sys_siglist = (const char **) malloc (nbytes)) != NULL)
-	{
-	  memset (sys_siglist, 0, nbytes);
-	  sys_nsig = num_signal_names;
-	  for (eip = signal_table; eip -> name != NULL; eip++)
-	    {
-	      sys_siglist[eip -> value] = eip -> msg;
-	    }
-	}
-    }
-
-#endif
-
-}
-
-
-/*
-
-@deftypefn Extension int signo_max (void)
-
-Returns the maximum signal value for which a corresponding symbolic
-name or message is available.  Note that in the case where we use the
-@code{sys_siglist} supplied by the system, it is possible for there to
-be more symbolic names than messages, or vice versa.  In fact, the
-manual page for @code{psignal(3b)} explicitly warns that one should
-check the size of the table (@code{NSIG}) before indexing it, since
-new signal codes may be added to the system before they are added to
-the table.  Thus @code{NSIG} might be smaller than value implied by
-the largest signo value defined in @code{<signal.h>}.
-
-We return the maximum value that can be used to obtain a meaningful
-symbolic name or message.
-
-@end deftypefn
-
-*/
-
-int
-signo_max (void)
-{
-  int maxsize;
-
-  if (signal_names == NULL)
-    {
-      init_signal_tables ();
-    }
-  maxsize = MAX (sys_nsig, num_signal_names);
-  return (maxsize - 1);
-}
-
-
-/*
-
-@deftypefn Supplemental {const char *} strsignal (int @var{signo})
-
-Maps an signal number to an signal message string, the contents of
-which are implementation defined.  On systems which have the external
-variable @code{sys_siglist}, these strings will be the same as the
-ones used by @code{psignal()}.
-
-If the supplied signal number is within the valid range of indices for
-the @code{sys_siglist}, but no message is available for the particular
-signal number, then returns the string @samp{Signal @var{num}}, where
-@var{num} is the signal number.
-
-If the supplied signal number is not a valid index into
-@code{sys_siglist}, returns @code{NULL}.
-
-The returned string is only guaranteed to be valid only until the next
-call to @code{strsignal}.
-
-@end deftypefn
-
-*/
-
-#ifndef HAVE_STRSIGNAL
-
-const char *
-strsignal (int signo)
-{
-  const char *msg;
-  static char buf[32];
-
-#ifndef HAVE_SYS_SIGLIST
-
-  if (signal_names == NULL)
-    {
-      init_signal_tables ();
-    }
-
-#endif
-
-  if ((signo < 0) || (signo >= sys_nsig))
-    {
-      /* Out of range, just return NULL */
-      msg = NULL;
-    }
-  else if ((sys_siglist == NULL) || (sys_siglist[signo] == NULL))
-    {
-      /* In range, but no sys_siglist or no entry at this index. */
-      sprintf (buf, "Signal %d", signo);
-      msg = (const char *) buf;
-    }
-  else
-    {
-      /* In range, and a valid message.  Just return the message. */
-      msg = (const char *) sys_siglist[signo];
-    }
-  
-  return (msg);
-}
-
-#endif /* ! HAVE_STRSIGNAL */
-
-/*
-
-@deftypefn Extension {const char*} strsigno (int @var{signo})
-
-Given an signal number, returns a pointer to a string containing the
-symbolic name of that signal number, as found in @code{<signal.h>}.
-
-If the supplied signal number is within the valid range of indices for
-symbolic names, but no name is available for the particular signal
-number, then returns the string @samp{Signal @var{num}}, where
-@var{num} is the signal number.
-
-If the supplied signal number is not within the range of valid
-indices, then returns @code{NULL}.
-
-The contents of the location pointed to are only guaranteed to be
-valid until the next call to @code{strsigno}.
-
-@end deftypefn
-
-*/
-
-const char *
-strsigno (int signo)
-{
-  const char *name;
-  static char buf[32];
-
-  if (signal_names == NULL)
-    {
-      init_signal_tables ();
-    }
-
-  if ((signo < 0) || (signo >= num_signal_names))
-    {
-      /* Out of range, just return NULL */
-      name = NULL;
-    }
-  else if ((signal_names == NULL) || (signal_names[signo] == NULL))
-    {
-      /* In range, but no signal_names or no entry at this index. */
-      sprintf (buf, "Signal %d", signo);
-      name = (const char *) buf;
-    }
-  else
-    {
-      /* In range, and a valid name.  Just return the name. */
-      name = signal_names[signo];
-    }
-
-  return (name);
-}
-
-
-/*
-
-@deftypefn Extension int strtosigno (const char *@var{name})
-
-Given the symbolic name of a signal, map it to a signal number.  If no
-translation is found, returns 0.
-
-@end deftypefn
-
-*/
-
-int
-strtosigno (const char *name)
-{
-  int signo = 0;
-
-  if (name != NULL)
-    {
-      if (signal_names == NULL)
-	{
-	  init_signal_tables ();
-	}
-      for (signo = 0; signo < num_signal_names; signo++)
-	{
-	  if ((signal_names[signo] != NULL) &&
-	      (strcmp (name, signal_names[signo]) == 0))
-	    {
-	      break;
-	    }
-	}
-      if (signo == num_signal_names)
-	{
-	  signo = 0;
-	}
-    }
-  return (signo);
-}
-
-
-/*
-
-@deftypefn Supplemental void psignal (unsigned @var{signo}, char *@var{message})
-
-Print @var{message} to the standard error, followed by a colon,
-followed by the description of the signal specified by @var{signo},
-followed by a newline.
-
-@end deftypefn
-
-*/
-
-#ifndef HAVE_PSIGNAL
-
-void
-psignal (unsigned signo, char *message)
-{
-  if (signal_names == NULL)
-    {
-      init_signal_tables ();
-    }
-  if ((signo <= 0) || (signo >= sys_nsig))
-    {
-      fprintf (stderr, "%s: unknown signal\n", message);
-    }
-  else
-    {
-      fprintf (stderr, "%s: %s\n", message, sys_siglist[signo]);
-    }
-}
-
-#endif	/* ! HAVE_PSIGNAL */
-
-
-/* A simple little main that does nothing but print all the signal translations
-   if MAIN is defined and this file is compiled and linked. */
-
-#ifdef MAIN
-
-#include <stdio.h>
-
-int
-main (void)
-{
-  int signo;
-  int maxsigno;
-  const char *name;
-  const char *msg;
-
-  maxsigno = signo_max ();
-  printf ("%d entries in names table.\n", num_signal_names);
-  printf ("%d entries in messages table.\n", sys_nsig);
-  printf ("%d is max useful index.\n", maxsigno);
-
-  /* Keep printing values until we get to the end of *both* tables, not
-     *either* table.  Note that knowing the maximum useful index does *not*
-     relieve us of the responsibility of testing the return pointer for
-     NULL. */
-
-  for (signo = 0; signo <= maxsigno; signo++)
-    {
-      name = strsigno (signo);
-      name = (name == NULL) ? "<NULL>" : name;
-      msg = strsignal (signo);
-      msg = (msg == NULL) ? "<NULL>" : msg;
-      printf ("%-4d%-18s%s\n", signo, name, msg);
-    }
-
-  return 0;
-}
-
-#endif
diff --git a/libiberty/strstr.c b/libiberty/strstr.c
deleted file mode 100644
index 60902ea..0000000
--- a/libiberty/strstr.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Simple implementation of strstr for systems without it.
-   This function is in the public domain.  */
-
-/*
-
-@deftypefn Supplemental char* strstr (const char *@var{string}, const char *@var{sub})
-
-This function searches for the substring @var{sub} in the string
-@var{string}, not including the terminating null characters.  A pointer
-to the first occurrence of @var{sub} is returned, or @code{NULL} if the
-substring is absent.  If @var{sub} points to a string with zero
-length, the function returns @var{string}.
-
-@end deftypefn
-
-
-*/
-
-
-/* FIXME:  The above description is ANSI compiliant.  This routine has not
-   been validated to comply with it.  -fnf */
-
-#include <stddef.h>
-
-extern char *strchr (const char *, int);
-extern int strncmp (const void *, const void *, size_t);
-extern size_t strlen (const char *);
-
-char *
-strstr (const char *s1, const char *s2)
-{
-  const char *p = s1;
-  const size_t len = strlen (s2);
-
-  for (; (p = strchr (p, *s2)) != 0; p++)
-    {
-      if (strncmp (p, s2, len) == 0)
-	return (char *)p;
-    }
-  return (0);
-}
diff --git a/libiberty/strtod.c b/libiberty/strtod.c
deleted file mode 100644
index adbc33b..0000000
--- a/libiberty/strtod.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/* Implementation of strtod for systems with atof.
-   Copyright (C) 1991, 1995, 2002 Free Software Foundation, Inc.
-
-This file is part of the libiberty library.  This library 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.
-
-This library 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 GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-As a special exception, if you link this library with files
-compiled with a GNU compiler to produce an executable, this does not cause
-the resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why
-the executable file might be covered by the GNU General Public License. */
-
-/*
-
-@deftypefn Supplemental double strtod (const char *@var{string}, char **@var{endptr})
-
-This ISO C function converts the initial portion of @var{string} to a
-@code{double}.  If @var{endptr} is not @code{NULL}, a pointer to the
-character after the last character used in the conversion is stored in
-the location referenced by @var{endptr}.  If no conversion is
-performed, zero is returned and the value of @var{string} is stored in
-the location referenced by @var{endptr}.
-
-@end deftypefn
-
-*/
-
-#include "ansidecl.h"
-#include "safe-ctype.h"
-
-extern double atof (const char *);
-
-/* Disclaimer: this is currently just used by CHILL in GDB and therefore
-   has not been tested well.  It may have been tested for nothing except
-   that it compiles.  */
-
-double
-strtod (char *str, char **ptr)
-{
-  char *p;
-
-  if (ptr == (char **)0)
-    return atof (str);
-  
-  p = str;
-  
-  while (ISSPACE (*p))
-    ++p;
-  
-  if (*p == '+' || *p == '-')
-    ++p;
-
-  /* INF or INFINITY.  */
-  if ((p[0] == 'i' || p[0] == 'I')
-      && (p[1] == 'n' || p[1] == 'N')
-      && (p[2] == 'f' || p[2] == 'F'))
-    {
-      if ((p[3] == 'i' || p[3] == 'I')
-	  && (p[4] == 'n' || p[4] == 'N')
-	  && (p[5] == 'i' || p[5] == 'I')
-	  && (p[6] == 't' || p[6] == 'T')
-	  && (p[7] == 'y' || p[7] == 'Y'))
-	{
-	  *ptr = p + 8;
-	  return atof (str);
-	}
-      else
-	{
-	  *ptr = p + 3;
-	  return atof (str);
-	}
-    }
-
-  /* NAN or NAN(foo).  */
-  if ((p[0] == 'n' || p[0] == 'N')
-      && (p[1] == 'a' || p[1] == 'A')
-      && (p[2] == 'n' || p[2] == 'N'))
-    {
-      p += 3;
-      if (*p == '(')
-	{
-	  ++p;
-	  while (*p != '\0' && *p != ')')
-	    ++p;
-	  if (*p == ')')
-	    ++p;
-	}
-      *ptr = p;
-      return atof (str);
-    }
-
-  /* digits, with 0 or 1 periods in it.  */
-  if (ISDIGIT (*p) || *p == '.')
-    {
-      int got_dot = 0;
-      while (ISDIGIT (*p) || (!got_dot && *p == '.'))
-	{
-	  if (*p == '.')
-	    got_dot = 1;
-	  ++p;
-	}
-
-      /* Exponent.  */
-      if (*p == 'e' || *p == 'E')
-	{
-	  int i;
-	  i = 1;
-	  if (p[i] == '+' || p[i] == '-')
-	    ++i;
-	  if (ISDIGIT (p[i]))
-	    {
-	      while (ISDIGIT (p[i]))
-		++i;
-	      *ptr = p + i;
-	      return atof (str);
-	    }
-	}
-      *ptr = p;
-      return atof (str);
-    }
-  /* Didn't find any digits.  Doesn't look like a number.  */
-  *ptr = str;
-  return 0.0;
-}
diff --git a/libiberty/strtol.c b/libiberty/strtol.c
deleted file mode 100644
index acc7882..0000000
--- a/libiberty/strtol.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. [rescinded 22 July 1999]
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
-
-@deftypefn Supplemental {long int} strtol (const char *@var{string}, char **@var{endptr}, int @var{base})
-@deftypefnx Supplemental {unsigned long int} strtoul (const char *@var{string}, char **@var{endptr}, int @var{base})
-
-The @code{strtol} function converts the string in @var{string} to a
-long integer value according to the given @var{base}, which must be
-between 2 and 36 inclusive, or be the special value 0.  If @var{base}
-is 0, @code{strtol} will look for the prefixes @code{0} and @code{0x}
-to indicate bases 8 and 16, respectively, else default to base 10.
-When the base is 16 (either explicitly or implicitly), a prefix of
-@code{0x} is allowed.  The handling of @var{endptr} is as that of
-@code{strtod} above.  The @code{strtoul} function is the same, except
-that the converted value is unsigned.
-
-@end deftypefn
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#ifdef HAVE_LIMITS_H
-#include <limits.h>
-#endif
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#include <errno.h>
-#ifdef NEED_DECLARATION_ERRNO
-extern int errno;
-#endif
-#include "safe-ctype.h"
-
-/* FIXME: It'd be nice to configure around these, but the include files are too
-   painful.  These macros should at least be more portable than hardwired hex
-   constants. */
-
-#ifndef ULONG_MAX
-#define	ULONG_MAX	((unsigned long)(~0L))		/* 0xFFFFFFFF */
-#endif
-
-#ifndef LONG_MAX
-#define	LONG_MAX	((long)(ULONG_MAX >> 1))	/* 0x7FFFFFFF */
-#endif
-
-#ifndef LONG_MIN
-#define	LONG_MIN	((long)(~LONG_MAX))		/* 0x80000000 */
-#endif
-
-/*
- * Convert a string to a long integer.
- *
- * Ignores `locale' stuff.  Assumes that the upper and lower case
- * alphabets and digits are each contiguous.
- */
-long
-strtol(const char *nptr, char **endptr, register int base)
-{
-	register const char *s = nptr;
-	register unsigned long acc;
-	register int c;
-	register unsigned long cutoff;
-	register int neg = 0, any, cutlim;
-
-	/*
-	 * Skip white space and pick up leading +/- sign if any.
-	 * If base is 0, allow 0x for hex and 0 for octal, else
-	 * assume decimal; if base is already 16, allow 0x.
-	 */
-	do {
-		c = *s++;
-	} while (ISSPACE(c));
-	if (c == '-') {
-		neg = 1;
-		c = *s++;
-	} else if (c == '+')
-		c = *s++;
-	if ((base == 0 || base == 16) &&
-	    c == '0' && (*s == 'x' || *s == 'X')) {
-		c = s[1];
-		s += 2;
-		base = 16;
-	}
-	if (base == 0)
-		base = c == '0' ? 8 : 10;
-
-	/*
-	 * Compute the cutoff value between legal numbers and illegal
-	 * numbers.  That is the largest legal value, divided by the
-	 * base.  An input number that is greater than this value, if
-	 * followed by a legal input character, is too big.  One that
-	 * is equal to this value may be valid or not; the limit
-	 * between valid and invalid numbers is then based on the last
-	 * digit.  For instance, if the range for longs is
-	 * [-2147483648..2147483647] and the input base is 10,
-	 * cutoff will be set to 214748364 and cutlim to either
-	 * 7 (neg==0) or 8 (neg==1), meaning that if we have accumulated
-	 * a value > 214748364, or equal but the next digit is > 7 (or 8),
-	 * the number is too big, and we will return a range error.
-	 *
-	 * Set any if any `digits' consumed; make it negative to indicate
-	 * overflow.
-	 */
-	cutoff = neg ? -(unsigned long)LONG_MIN : LONG_MAX;
-	cutlim = cutoff % (unsigned long)base;
-	cutoff /= (unsigned long)base;
-	for (acc = 0, any = 0;; c = *s++) {
-		if (ISDIGIT(c))
-			c -= '0';
-		else if (ISALPHA(c))
-			c -= ISUPPER(c) ? 'A' - 10 : 'a' - 10;
-		else
-			break;
-		if (c >= base)
-			break;
-		if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim))
-			any = -1;
-		else {
-			any = 1;
-			acc *= base;
-			acc += c;
-		}
-	}
-	if (any < 0) {
-		acc = neg ? LONG_MIN : LONG_MAX;
-		errno = ERANGE;
-	} else if (neg)
-		acc = -acc;
-	if (endptr != 0)
-		*endptr = (char *) (any ? s - 1 : nptr);
-	return (acc);
-}
diff --git a/libiberty/strtoul.c b/libiberty/strtoul.c
deleted file mode 100644
index ba80063..0000000
--- a/libiberty/strtoul.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (c) 1990 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. [rescinded 22 July 1999]
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#ifdef HAVE_LIMITS_H
-#include <limits.h>
-#endif
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#include <errno.h>
-#ifdef NEED_DECLARATION_ERRNO
-extern int errno;
-#endif
-#if 0
-#include <stdlib.h>
-#endif
-#include "ansidecl.h"
-#include "safe-ctype.h"
-
-#ifndef ULONG_MAX
-#define	ULONG_MAX	((unsigned long)(~0L))		/* 0xFFFFFFFF */
-#endif
-
-/*
- * Convert a string to an unsigned long integer.
- *
- * Ignores `locale' stuff.  Assumes that the upper and lower case
- * alphabets and digits are each contiguous.
- */
-unsigned long
-strtoul(const char *nptr, char **endptr, register int base)
-{
-	register const char *s = nptr;
-	register unsigned long acc;
-	register int c;
-	register unsigned long cutoff;
-	register int neg = 0, any, cutlim;
-
-	/*
-	 * See strtol for comments as to the logic used.
-	 */
-	do {
-		c = *s++;
-	} while (ISSPACE(c));
-	if (c == '-') {
-		neg = 1;
-		c = *s++;
-	} else if (c == '+')
-		c = *s++;
-	if ((base == 0 || base == 16) &&
-	    c == '0' && (*s == 'x' || *s == 'X')) {
-		c = s[1];
-		s += 2;
-		base = 16;
-	}
-	if (base == 0)
-		base = c == '0' ? 8 : 10;
-	cutoff = (unsigned long)ULONG_MAX / (unsigned long)base;
-	cutlim = (unsigned long)ULONG_MAX % (unsigned long)base;
-	for (acc = 0, any = 0;; c = *s++) {
-		if (ISDIGIT(c))
-			c -= '0';
-		else if (ISALPHA(c))
-			c -= ISUPPER(c) ? 'A' - 10 : 'a' - 10;
-		else
-			break;
-		if (c >= base)
-			break;
-		if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim))
-			any = -1;
-		else {
-			any = 1;
-			acc *= base;
-			acc += c;
-		}
-	}
-	if (any < 0) {
-		acc = ULONG_MAX;
-		errno = ERANGE;
-	} else if (neg)
-		acc = -acc;
-	if (endptr != 0)
-		*endptr = (char *) (any ? s - 1 : nptr);
-	return (acc);
-}
diff --git a/libiberty/strverscmp.c b/libiberty/strverscmp.c
deleted file mode 100644
index 04e1e4ae..0000000
--- a/libiberty/strverscmp.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/* Compare strings while treating digits characters numerically.
-   Copyright (C) 1997, 2002, 2005 Free Software Foundation, Inc.
-   This file is part of the libiberty library.
-   Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997.
-
-   Libiberty is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   Libiberty 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
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-   02110-1301 USA.  */
-
-#include "libiberty.h"
-#include "safe-ctype.h"
-
-/* 
-@deftypefun int strverscmp (const char *@var{s1}, const char *@var{s2})
-The @code{strverscmp} function compares the string @var{s1} against
-@var{s2}, considering them as holding indices/version numbers.  Return
-value follows the same conventions as found in the @code{strverscmp}
-function.  In fact, if @var{s1} and @var{s2} contain no digits,
-@code{strverscmp} behaves like @code{strcmp}.
-
-Basically, we compare strings normally (character by character), until
-we find a digit in each string - then we enter a special comparison
-mode, where each sequence of digits is taken as a whole.  If we reach the
-end of these two parts without noticing a difference, we return to the
-standard comparison mode.  There are two types of numeric parts:
-"integral" and "fractional" (those  begin with a '0'). The types
-of the numeric parts affect the way we sort them:
-
-@itemize @bullet
-@item
-integral/integral: we compare values as you would expect.
-
-@item
-fractional/integral: the fractional part is less than the integral one.
-Again, no surprise.
-
-@item
-fractional/fractional: the things become a bit more complex.
-If the common prefix contains only leading zeroes, the longest part is less
-than the other one; else the comparison behaves normally.
-@end itemize
-
-@smallexample
-strverscmp ("no digit", "no digit")
-    @result{} 0    // @r{same behavior as strcmp.}
-strverscmp ("item#99", "item#100")
-    @result{} <0   // @r{same prefix, but 99 < 100.}
-strverscmp ("alpha1", "alpha001")
-    @result{} >0   // @r{fractional part inferior to integral one.}
-strverscmp ("part1_f012", "part1_f01")
-    @result{} >0   // @r{two fractional parts.}
-strverscmp ("foo.009", "foo.0")
-    @result{} <0   // @r{idem, but with leading zeroes only.}
-@end smallexample
-
-This function is especially useful when dealing with filename sorting,
-because filenames frequently hold indices/version numbers.
-@end deftypefun
-
-*/
-
-/* states: S_N: normal, S_I: comparing integral part, S_F: comparing
-           fractional parts, S_Z: idem but with leading Zeroes only */
-#define  S_N    0x0
-#define  S_I    0x4
-#define  S_F    0x8
-#define  S_Z    0xC
-
-/* result_type: CMP: return diff; LEN: compare using len_diff/diff */
-#define  CMP    2
-#define  LEN    3
-
-
-/* Compare S1 and S2 as strings holding indices/version numbers,
-   returning less than, equal to or greater than zero if S1 is less than,
-   equal to or greater than S2 (for more info, see the Glibc texinfo doc).  */
-
-int
-strverscmp (const char *s1, const char *s2)
-{
-  const unsigned char *p1 = (const unsigned char *) s1;
-  const unsigned char *p2 = (const unsigned char *) s2;
-  unsigned char c1, c2;
-  int state;
-  int diff;
-
-  /* Symbol(s)    0       [1-9]   others  (padding)
-     Transition   (10) 0  (01) d  (00) x  (11) -   */
-  static const unsigned int next_state[] =
-    {
-      /* state    x    d    0    - */
-      /* S_N */  S_N, S_I, S_Z, S_N,
-      /* S_I */  S_N, S_I, S_I, S_I,
-      /* S_F */  S_N, S_F, S_F, S_F,
-      /* S_Z */  S_N, S_F, S_Z, S_Z
-    };
-
-  static const int result_type[] =
-    {
-      /* state   x/x  x/d  x/0  x/-  d/x  d/d  d/0  d/-
-                 0/x  0/d  0/0  0/-  -/x  -/d  -/0  -/- */
-
-      /* S_N */  CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP,
-                 CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP,
-      /* S_I */  CMP, -1,  -1,  CMP, +1,  LEN, LEN, CMP,
-                 +1,  LEN, LEN, CMP, CMP, CMP, CMP, CMP,
-      /* S_F */  CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP,
-                 CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP,
-      /* S_Z */  CMP, +1,  +1,  CMP, -1,  CMP, CMP, CMP,
-                 -1,  CMP, CMP, CMP
-    };
-
-  if (p1 == p2)
-    return 0;
-
-  c1 = *p1++;
-  c2 = *p2++;
-  /* Hint: '0' is a digit too.  */
-  state = S_N | ((c1 == '0') + (ISDIGIT (c1) != 0));
-
-  while ((diff = c1 - c2) == 0 && c1 != '\0')
-    {
-      state = next_state[state];
-      c1 = *p1++;
-      c2 = *p2++;
-      state |= (c1 == '0') + (ISDIGIT (c1) != 0);
-    }
-
-  state = result_type[state << 2 | (((c2 == '0') + (ISDIGIT (c2) != 0)))];
-
-  switch (state)
-    {
-    case CMP:
-      return diff;
-      
-    case LEN:
-      while (ISDIGIT (*p1++))
-	if (!ISDIGIT (*p2++))
-	  return 1;
-      
-      return ISDIGIT (*p2) ? -1 : diff;
-      
-    default:
-      return state;
-    }
-}
diff --git a/libiberty/ternary.c b/libiberty/ternary.c
deleted file mode 100644
index 8fc561a..0000000
--- a/libiberty/ternary.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/* ternary.c - Ternary Search Trees
-   Copyright (C) 2001 Free Software Foundation, Inc.
-
-   Contributed by Daniel Berlin (dan@cgsoftware.com)
-
-   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, 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301,
-   USA.  */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-#include <stdio.h>
-
-#include "libiberty.h"
-#include "ternary.h"
-
-/* Non-recursive so we don't waste stack space/time on large
-   insertions. */
-
-PTR
-ternary_insert (ternary_tree *root, const char *s, PTR data, int replace)
-{
-  int diff;
-  ternary_tree curr, *pcurr;
-
-  /* Start at the root. */
-  pcurr = root;
-  /* Loop until we find the right position */
-  while ((curr = *pcurr))
-    {
-      /* Calculate the difference */
-      diff = *s - curr->splitchar;
-      /* Handle current char equal to node splitchar */
-      if (diff == 0)
-	{
-	  /* Handle the case of a string we already have */
-	  if (*s++ == 0)
-	    {
-	      if (replace)
-		curr->eqkid = (ternary_tree) data;
-	      return (PTR) curr->eqkid;
-	    }
-	  pcurr = &(curr->eqkid);
-	}
-      /* Handle current char less than node splitchar */
-      else if (diff < 0)
-	{
-	  pcurr = &(curr->lokid);
-	}
-      /* Handle current char greater than node splitchar */
-      else
-	{
-	  pcurr = &(curr->hikid);
-	}
-    }
-  /* It's not a duplicate string, and we should insert what's left of
-     the string, into the tree rooted at curr */
-  for (;;)
-    {
-      /* Allocate the memory for the node, and fill it in */
-      *pcurr = XNEW (ternary_node);
-      curr = *pcurr;
-      curr->splitchar = *s;
-      curr->lokid = curr->hikid = curr->eqkid = 0;
-
-      /* Place nodes until we hit the end of the string.
-         When we hit it, place the data in the right place, and
-         return.
-       */
-      if (*s++ == 0)
-	{
-	  curr->eqkid = (ternary_tree) data;
-	  return data;
-	}
-      pcurr = &(curr->eqkid);
-    }
-}
-
-/* Free the ternary search tree rooted at p. */
-void
-ternary_cleanup (ternary_tree p)
-{
-  if (p)
-    {
-      ternary_cleanup (p->lokid);
-      if (p->splitchar)
-	ternary_cleanup (p->eqkid);
-      ternary_cleanup (p->hikid);
-      free (p);
-    }
-}
-
-/* Non-recursive find of a string in the ternary tree */
-PTR
-ternary_search (const ternary_node *p, const char *s)
-{
-  const ternary_node *curr;
-  int diff, spchar;
-  spchar = *s;
-  curr = p;
-  /* Loop while we haven't hit a NULL node or returned */
-  while (curr)
-    {
-      /* Calculate the difference */
-      diff = spchar - curr->splitchar;
-      /* Handle the equal case */
-      if (diff == 0)
-	{
-	  if (spchar == 0)
-	    return (PTR) curr->eqkid;
-	  spchar = *++s;
-	  curr = curr->eqkid;
-	}
-      /* Handle the less than case */
-      else if (diff < 0)
-	curr = curr->lokid;
-      /* All that's left is greater than */
-      else
-	curr = curr->hikid;
-    }
-  return NULL;
-}
-
-/* For those who care, the recursive version of the search. Useful if
-   you want a starting point for pmsearch or nearsearch. */
-static PTR
-ternary_recursivesearch (const ternary_node *p, const char *s)
-{
-  if (!p)
-    return 0;
-  if (*s < p->splitchar)
-    return ternary_recursivesearch (p->lokid, s);
-  else if (*s > p->splitchar)
-    return ternary_recursivesearch (p->hikid, s);
-  else
-    {
-      if (*s == 0)
-	return (PTR) p->eqkid;
-      return ternary_recursivesearch (p->eqkid, ++s);
-    }
-}
diff --git a/libiberty/testsuite/Makefile.in b/libiberty/testsuite/Makefile.in
deleted file mode 100644
index 534626e..0000000
--- a/libiberty/testsuite/Makefile.in
+++ /dev/null
@@ -1,90 +0,0 @@
-#
-# Makefile
-#   Copyright (C) 1999, 2002, 2006
-#   Free Software Foundation
-#
-# This file is part of the libiberty library.
-# Libiberty is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# Libiberty 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
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with libiberty; see the file COPYING.LIB.  If not,
-# write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-# Boston, MA 02110-1301, USA.
-#
-
-# This file was written by Tom Tromey <tromey@cygnus.com>.
-
-#
-# Makefile for libiberty/testsuite directory
-#
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-SHELL = @SHELL@
-
-CC = @CC@
-CFLAGS = @CFLAGS@
-LIBCFLAGS = $(CFLAGS)
-
-# Multilib support variables.
-MULTISRCTOP =
-
-INCDIR=$(srcdir)/../$(MULTISRCTOP)../include
-
-all:
-
-# CHECK is set to "really_check" or the empty string by configure.
-check: @CHECK@
-
-really-check: check-cplus-dem check-pexecute check-expandargv
-
-# Run some tests of the demangler.
-check-cplus-dem: test-demangle $(srcdir)/demangle-expected
-	./test-demangle < $(srcdir)/demangle-expected
-
-# Check the pexecute code.
-check-pexecute: test-pexecute
-	./test-pexecute
-
-# Check the expandargv functionality
-check-expandargv: test-expandargv
-	./test-expandargv
-
-TEST_COMPILE = $(CC) @DEFS@ $(LIBCFLAGS) -I.. -I$(INCDIR) $(HDEFINES)
-test-demangle: $(srcdir)/test-demangle.c ../libiberty.a
-	$(TEST_COMPILE) -o test-demangle \
-		$(srcdir)/test-demangle.c ../libiberty.a
-
-test-pexecute: $(srcdir)/test-pexecute.c ../libiberty.a
-	$(TEST_COMPILE) -DHAVE_CONFIG_H -I.. -o test-pexecute \
-		$(srcdir)/test-pexecute.c ../libiberty.a
-		
-test-expandargv: $(srcdir)/test-expandargv.c ../libiberty.a
-	$(TEST_COMPILE) -DHAVE_CONFIG_H -I.. -o test-expandargv \
-		$(srcdir)/test-expandargv.c ../libiberty.a
-
-# Standard (either GNU or Cygnus) rules we don't use.
-html install-html info install-info clean-info dvi install etags tags installcheck:
-
-# The standard clean rules.
-mostlyclean:
-	rm -f test-demangle
-	rm -f test-pexecute
-	rm -f test-expandargv
-clean: mostlyclean
-distclean: clean
-	rm -f Makefile
-maintainer-clean realclean: distclean
-
-Makefile: $(srcdir)/Makefile.in ../config.status
-	CONFIG_FILES=testsuite/Makefile CONFIG_HEADERS= \
-	  cd .. && $(SHELL) ./config.status
diff --git a/libiberty/testsuite/demangle-expected b/libiberty/testsuite/demangle-expected
deleted file mode 100644
index fa2a2fe..0000000
--- a/libiberty/testsuite/demangle-expected
+++ /dev/null
@@ -1,3807 +0,0 @@
-# This file holds test cases for the demangler.
-# Each test case looks like this:
-#  options
-#  input to be demangled
-#  expected output
-#
-#  Supported options:
-#    --format=<name>     Sets the demangling style.
-#    --no-params         There are two lines of expected output; the first
-#                        is with DMGL_PARAMS, the second is without it.
-#    --is-v3-ctor        Calls is_gnu_v3_mangled_ctor on input; expected
-#                        output is an integer representing ctor_kind.
-#    --is-v3-dtor        Likewise, but for dtors.
-#    --ret-postfix       Passes the DMGL_RET_POSTFIX option
-#
-#  For compatibility, just in case it matters, the options line may be
-#  empty, to mean --format=auto.  If it doesn't start with --, then it
-#  may contain only a format name.
-#
-# A line starting with `#' is ignored.
-# However, blank lines in this file are NOT ignored.
-#
---format=gnu --no-params
-AddAlignment__9ivTSolverUiP12ivInteractorP7ivTGlue
-ivTSolver::AddAlignment(unsigned int, ivInteractor *, ivTGlue *)
-ivTSolver::AddAlignment
-#
---format=gnu --no-params
-ArrowheadIntersects__9ArrowLineP9ArrowheadR6BoxObjP7Graphic
-ArrowLine::ArrowheadIntersects(Arrowhead *, BoxObj &, Graphic *)
-ArrowLine::ArrowheadIntersects
-#
---format=gnu --no-params
-AtEnd__13ivRubberGroup
-ivRubberGroup::AtEnd(void)
-ivRubberGroup::AtEnd
-#
---format=gnu --no-params
-BgFilter__9ivTSolverP12ivInteractor
-ivTSolver::BgFilter(ivInteractor *)
-ivTSolver::BgFilter
-#
---format=gnu --no-params
-Check__6UArrayi
-UArray::Check(int)
-UArray::Check
-#
---format=gnu --no-params
-CoreConstDecls__8TextCodeR7ostream
-TextCode::CoreConstDecls(ostream &)
-TextCode::CoreConstDecls
-#
---format=gnu --no-params
-Detach__8StateVarP12StateVarView
-StateVar::Detach(StateVarView *)
-StateVar::Detach
-#
---format=gnu --no-params
-Done__9ComponentG8Iterator
-Component::Done(Iterator)
-Component::Done
-#
---format=gnu --no-params
-Effect__11RelateManipR7ivEvent
-RelateManip::Effect(ivEvent &)
-RelateManip::Effect
-#
---format=gnu --no-params
-FindFixed__FRP4CNetP4CNet
-FindFixed(CNet *&, CNet *)
-FindFixed
-#
---format=gnu --no-params
-Fix48_abort__FR8twolongs
-Fix48_abort(twolongs &)
-Fix48_abort
-#
---format=gnu --no-params
-GetBarInfo__15iv2_6_VScrollerP13ivPerspectiveRiT2
-iv2_6_VScroller::GetBarInfo(ivPerspective *, int &, int &)
-iv2_6_VScroller::GetBarInfo
-#
---format=gnu --no-params
-GetBgColor__C9ivPainter
-ivPainter::GetBgColor(void) const
-ivPainter::GetBgColor
-#
---format=gnu --no-params
-InsertBody__15H_PullrightMenuii
-H_PullrightMenu::InsertBody(int, int)
-H_PullrightMenu::InsertBody
-#
---format=gnu --no-params
-InsertCharacter__9TextManipc
-TextManip::InsertCharacter(char)
-TextManip::InsertCharacter
-#
---format=gnu --no-params
-InsertToplevel__7ivWorldP12ivInteractorT1
-ivWorld::InsertToplevel(ivInteractor *, ivInteractor *)
-ivWorld::InsertToplevel
-#
---format=gnu --no-params
-InsertToplevel__7ivWorldP12ivInteractorT1iiUi
-ivWorld::InsertToplevel(ivInteractor *, ivInteractor *, int, int, unsigned int)
-ivWorld::InsertToplevel
-#
---format=gnu --no-params
-IsAGroup__FP11GraphicViewP11GraphicComp
-IsAGroup(GraphicView *, GraphicComp *)
-IsAGroup
-#
---format=gnu --no-params
-IsA__10ButtonCodeUl
-ButtonCode::IsA(unsigned long)
-ButtonCode::IsA
-#
---format=gnu --no-params
-ReadName__FR7istreamPc
-ReadName(istream &, char *)
-ReadName
-#
---format=gnu --no-params
-Redraw__13StringBrowseriiii
-StringBrowser::Redraw(int, int, int, int)
-StringBrowser::Redraw
-#
---format=gnu --no-params
-Rotate__13ivTransformerf
-ivTransformer::Rotate(float)
-ivTransformer::Rotate
-#
---format=gnu --no-params
-Rotated__C13ivTransformerf
-ivTransformer::Rotated(float) const
-ivTransformer::Rotated
-#
---format=gnu --no-params
-Round__Ff
-Round(float)
-Round
-#
---format=gnu --no-params
-SetExport__16MemberSharedNameUi
-MemberSharedName::SetExport(unsigned int)
-MemberSharedName::SetExport
-#
---format=gnu --no-params
-Set__14ivControlState13ControlStatusUi
-ivControlState::Set(ControlStatus, unsigned int)
-ivControlState::Set
-#
---format=gnu --no-params
-Set__5DFacePcii
-DFace::Set(char *, int, int)
-DFace::Set
-#
---format=gnu --no-params
-VConvert__9ivTSolverP12ivInteractorRP8TElementT2
-ivTSolver::VConvert(ivInteractor *, TElement *&, TElement *&)
-ivTSolver::VConvert
-#
---format=gnu --no-params
-VConvert__9ivTSolverP7ivTGlueRP8TElement
-ivTSolver::VConvert(ivTGlue *, TElement *&)
-ivTSolver::VConvert
-#
---format=gnu --no-params
-VOrder__9ivTSolverUiRP12ivInteractorT2
-ivTSolver::VOrder(unsigned int, ivInteractor *&, ivInteractor *&)
-ivTSolver::VOrder
-#
---format=gnu --no-params
-_10PageButton$__both
-PageButton::__both
-PageButton::__both
-#
---format=gnu --no-params
-_3RNG$singleMantissa
-RNG::singleMantissa
-RNG::singleMantissa
-#
---format=gnu --no-params
-_5IComp$_release
-IComp::_release
-IComp::_release
-#
---format=gnu --no-params
-_$_10BitmapComp
-BitmapComp::~BitmapComp(void)
-BitmapComp::~BitmapComp
-#
---format=gnu --no-params
-_$_9__io_defs
-__io_defs::~__io_defs(void)
-__io_defs::~__io_defs
-#
---format=gnu --no-params
-_$_Q23foo3bar
-foo::bar::~bar(void)
-foo::bar::~bar
-#
---format=gnu --no-params
-_$_Q33foo3bar4bell
-foo::bar::bell::~bell(void)
-foo::bar::bell::~bell
-#
---format=gnu --no-params
-__10ivTelltaleiP7ivGlyph
-ivTelltale::ivTelltale(int, ivGlyph *)
-ivTelltale::ivTelltale
-#
---format=gnu --no-params
-__10ivViewportiP12ivInteractorUi
-ivViewport::ivViewport(int, ivInteractor *, unsigned int)
-ivViewport::ivViewport
-#
---format=gnu --no-params
-__10ostrstream
-ostrstream::ostrstream(void)
-ostrstream::ostrstream
-#
---format=gnu --no-params
-__10ostrstreamPcii
-ostrstream::ostrstream(char *, int, int)
-ostrstream::ostrstream
-#
---format=gnu --no-params
-__11BitmapTablei
-BitmapTable::BitmapTable(int)
-BitmapTable::BitmapTable
-#
---format=gnu --no-params
-__12ViewportCodeP12ViewportComp
-ViewportCode::ViewportCode(ViewportComp *)
-ViewportCode::ViewportCode
-#
---format=gnu --no-params
-__12iv2_6_Borderii
-iv2_6_Border::iv2_6_Border(int, int)
-iv2_6_Border::iv2_6_Border
-#
---format=gnu --no-params
-__12ivBreak_Listl
-ivBreak_List::ivBreak_List(long)
-ivBreak_List::ivBreak_List
-#
---format=gnu --no-params
-__14iv2_6_MenuItemiP12ivInteractor
-iv2_6_MenuItem::iv2_6_MenuItem(int, ivInteractor *)
-iv2_6_MenuItem::iv2_6_MenuItem
-#
---format=gnu --no-params
-__20DisplayList_IteratorR11DisplayList
-DisplayList_Iterator::DisplayList_Iterator(DisplayList &)
-DisplayList_Iterator::DisplayList_Iterator
-#
---format=gnu --no-params
-__3fooRT0
-foo::foo(foo &)
-foo::foo
-#
---format=gnu --no-params
-__3fooiN31
-foo::foo(int, int, int, int)
-foo::foo
-#
---format=gnu --no-params
-__3fooiRT0iT2iT2
-foo::foo(int, foo &, int, foo &, int, foo &)
-foo::foo
-#
---format=gnu --no-params
-__6KeyMapPT0
-KeyMap::KeyMap(KeyMap *)
-KeyMap::KeyMap
-#
---format=gnu --no-params
-__8ArrowCmdP6EditorUiUi
-ArrowCmd::ArrowCmd(Editor *, unsigned int, unsigned int)
-ArrowCmd::ArrowCmd
-#
---format=gnu --no-params
-__9F_EllipseiiiiP7Graphic
-F_Ellipse::F_Ellipse(int, int, int, int, Graphic *)
-F_Ellipse::F_Ellipse
-#
---format=gnu --no-params
-__9FrameDataP9FrameCompi
-FrameData::FrameData(FrameComp *, int)
-FrameData::FrameData
-#
---format=gnu --no-params
-__9HVGraphicP9CanvasVarP7Graphic
-HVGraphic::HVGraphic(CanvasVar *, Graphic *)
-HVGraphic::HVGraphic
-#
---format=gnu --no-params
-__Q23foo3bar
-foo::bar::bar(void)
-foo::bar::bar
-#
---format=gnu --no-params
-__Q33foo3bar4bell
-foo::bar::bell::bell(void)
-foo::bar::bell::bell
-#
---format=gnu --no-params
-__aa__3fooRT0
-foo::operator&&(foo &)
-foo::operator&&
-#
---format=gnu --no-params
-__aad__3fooRT0
-foo::operator&=(foo &)
-foo::operator&=
-#
---format=gnu --no-params
-__ad__3fooRT0
-foo::operator&(foo &)
-foo::operator&
-#
---format=gnu --no-params
-__adv__3fooRT0
-foo::operator/=(foo &)
-foo::operator/=
-#
---format=gnu --no-params
-__aer__3fooRT0
-foo::operator^=(foo &)
-foo::operator^=
-#
---format=gnu --no-params
-__als__3fooRT0
-foo::operator<<=(foo &)
-foo::operator<<=
-#
---format=gnu --no-params
-__amd__3fooRT0
-foo::operator%=(foo &)
-foo::operator%=
-#
---format=gnu --no-params
-__ami__3fooRT0
-foo::operator-=(foo &)
-foo::operator-=
-#
---format=gnu --no-params
-__aml__3FixRT0
-Fix::operator*=(Fix &)
-Fix::operator*=
-#
---format=gnu --no-params
-__aml__5Fix16i
-Fix16::operator*=(int)
-Fix16::operator*=
-#
---format=gnu --no-params
-__aml__5Fix32RT0
-Fix32::operator*=(Fix32 &)
-Fix32::operator*=
-#
---format=gnu --no-params
-__aor__3fooRT0
-foo::operator|=(foo &)
-foo::operator|=
-#
---format=gnu --no-params
-__apl__3fooRT0
-foo::operator+=(foo &)
-foo::operator+=
-#
---format=gnu --no-params
-__ars__3fooRT0
-foo::operator>>=(foo &)
-foo::operator>>=
-#
---format=gnu --no-params
-__as__3fooRT0
-foo::operator=(foo &)
-foo::operator=
-#
---format=gnu --no-params
-__cl__3fooRT0
-foo::operator()(foo &)
-foo::operator()
-#
---format=gnu --no-params
-__cl__6Normal
-Normal::operator()(void)
-Normal::operator()
-#
---format=gnu --no-params
-__cl__6Stringii
-String::operator()(int, int)
-String::operator()
-#
---format=gnu --no-params
-__cm__3fooRT0
-foo::operator, (foo &)
-foo::operator, 
-#
---format=gnu --no-params
-__co__3foo
-foo::operator~(void)
-foo::operator~
-#
---format=gnu --no-params
-__dl__3fooPv
-foo::operator delete(void *)
-foo::operator delete
-#
---format=gnu --no-params
-__dv__3fooRT0
-foo::operator/(foo &)
-foo::operator/
-#
---format=gnu --no-params
-__eq__3fooRT0
-foo::operator==(foo &)
-foo::operator==
-#
---format=gnu --no-params
-__er__3fooRT0
-foo::operator^(foo &)
-foo::operator^
-#
---format=gnu --no-params
-__ge__3fooRT0
-foo::operator>=(foo &)
-foo::operator>=
-#
---format=gnu --no-params
-__gt__3fooRT0
-foo::operator>(foo &)
-foo::operator>
-#
---format=gnu --no-params
-__le__3fooRT0
-foo::operator<=(foo &)
-foo::operator<=
-#
---format=gnu --no-params
-__ls__3fooRT0
-foo::operator<<(foo &)
-foo::operator<<
-#
---format=gnu --no-params
-__ls__FR7ostreamPFR3ios_R3ios
-operator<<(ostream &, ios &(*)(ios &))
-operator<<
-#
---format=gnu --no-params
-__ls__FR7ostreamR3Fix
-operator<<(ostream &, Fix &)
-operator<<
-#
---format=gnu --no-params
-__lt__3fooRT0
-foo::operator<(foo &)
-foo::operator<
-#
---format=gnu --no-params
-__md__3fooRT0
-foo::operator%(foo &)
-foo::operator%
-#
---format=gnu --no-params
-__mi__3fooRT0
-foo::operator-(foo &)
-foo::operator-
-#
---format=gnu --no-params
-__ml__3fooRT0
-foo::operator*(foo &)
-foo::operator*
-#
---format=gnu --no-params
-__mm__3fooi
-foo::operator--(int)
-foo::operator--
-#
---format=gnu --no-params
-__ne__3fooRT0
-foo::operator!=(foo &)
-foo::operator!=
-#
---format=gnu --no-params
-__nt__3foo
-foo::operator!(void)
-foo::operator!
-#
---format=gnu --no-params
-__nw__3fooi
-foo::operator new(int)
-foo::operator new
-#
---format=gnu --no-params
-__oo__3fooRT0
-foo::operator||(foo &)
-foo::operator||
-#
---format=gnu --no-params
-__opPc__3foo
-foo::operator char *(void)
-foo::operator char *
-#
---format=gnu --no-params
-__opi__3foo
-foo::operator int(void)
-foo::operator int
-#
---format=gnu --no-params
-__or__3fooRT0
-foo::operator|(foo &)
-foo::operator|
-#
---format=gnu --no-params
-__pl__3fooRT0
-foo::operator+(foo &)
-foo::operator+
-#
---format=gnu --no-params
-__pp__3fooi
-foo::operator++(int)
-foo::operator++
-#
---format=gnu --no-params
-__rf__3foo
-foo::operator->(void)
-foo::operator->
-#
---format=gnu --no-params
-__rm__3fooRT0
-foo::operator->*(foo &)
-foo::operator->*
-#
---format=gnu --no-params
-__rs__3fooRT0
-foo::operator>>(foo &)
-foo::operator>>
-#
---format=gnu --no-params
-_new_Fix__FUs
-_new_Fix(unsigned short)
-_new_Fix
-#
---format=gnu --no-params
-_vt.foo
-foo virtual table
-foo virtual table
-#
---format=gnu --no-params
-_vt.foo.bar
-foo::bar virtual table
-foo::bar virtual table
-#
---format=gnu --no-params
-_vt$foo
-foo virtual table
-foo virtual table
-#
---format=gnu --no-params
-_vt$foo$bar
-foo::bar virtual table
-foo::bar virtual table
-#
---format=gnu --no-params
-append__7ivGlyphPT0
-ivGlyph::append(ivGlyph *)
-ivGlyph::append
-#
---format=gnu --no-params
-clearok__FP7_win_sti
-clearok(_win_st *, int)
-clearok
-#
---format=gnu --no-params
-complexfunc2__FPFPc_i
-complexfunc2(int (*)(char *))
-complexfunc2
-#
---format=gnu --no-params
-complexfunc3__FPFPFPl_s_i
-complexfunc3(int (*)(short (*)(long *)))
-complexfunc3
-#
---format=gnu --no-params
-complexfunc4__FPFPFPc_s_i
-complexfunc4(int (*)(short (*)(char *)))
-complexfunc4
-#
---format=gnu --no-params
-complexfunc5__FPFPc_PFl_i
-complexfunc5(int (*(*)(char *))(long))
-complexfunc5
-#
---format=gnu --no-params
-complexfunc6__FPFPi_PFl_i
-complexfunc6(int (*(*)(int *))(long))
-complexfunc6
-#
---format=gnu --no-params
-complexfunc7__FPFPFPc_i_PFl_i
-complexfunc7(int (*(*)(int (*)(char *)))(long))
-complexfunc7
-#
---format=gnu --no-params
-foo__FiN30
-foo(int, int, int, int)
-foo
-#
---format=gnu --no-params
-foo__FiR3fooiT1iT1
-foo(int, foo &, int, foo &, int, foo &)
-foo
-#
---format=gnu --no-params
-foo___3barl
-bar::foo_(long)
-bar::foo_
-#
---format=gnu --no-params
-insert__15ivClippingStacklRP8_XRegion
-ivClippingStack::insert(long, _XRegion *&)
-ivClippingStack::insert
-#
---format=gnu --no-params
-insert__16ChooserInfo_ListlR11ChooserInfo
-ChooserInfo_List::insert(long, ChooserInfo &)
-ChooserInfo_List::insert
-#
---format=gnu --no-params
-insert__17FontFamilyRepListlRP15ivFontFamilyRep
-FontFamilyRepList::insert(long, ivFontFamilyRep *&)
-FontFamilyRepList::insert
-#
---format=gnu --no-params
-leaveok__FP7_win_stc
-leaveok(_win_st *, char)
-leaveok
-#
---format=gnu --no-params
-left_mover__C7ivMFKitP12ivAdjustableP7ivStyle
-ivMFKit::left_mover(ivAdjustable *, ivStyle *) const
-ivMFKit::left_mover
-#
---format=gnu --no-params
-overload1arg__FSc
-overload1arg(signed char)
-overload1arg
-#
---format=gnu --no-params
-overload1arg__FUc
-overload1arg(unsigned char)
-overload1arg
-#
---format=gnu --no-params
-overload1arg__FUi
-overload1arg(unsigned int)
-overload1arg
-#
---format=gnu --no-params
-overload1arg__FUl
-overload1arg(unsigned long)
-overload1arg
-#
---format=gnu --no-params
-overload1arg__FUs
-overload1arg(unsigned short)
-overload1arg
-#
---format=gnu --no-params
-overload1arg__Fc
-overload1arg(char)
-overload1arg
-#
---format=gnu --no-params
-overload1arg__Fd
-overload1arg(double)
-overload1arg
-#
---format=gnu --no-params
-overload1arg__Ff
-overload1arg(float)
-overload1arg
-#
---format=gnu --no-params
-overload1arg__Fi
-overload1arg(int)
-overload1arg
-#
---format=gnu --no-params
-overload1arg__Fl
-overload1arg(long)
-overload1arg
-#
---format=gnu --no-params
-overload1arg__Fs
-overload1arg(short)
-overload1arg
-#
---format=gnu --no-params
-overload1arg__Fv
-overload1arg(void)
-overload1arg
-#
---format=gnu --no-params
-overloadargs__Fi
-overloadargs(int)
-overloadargs
-#
---format=gnu --no-params
-overloadargs__Fii
-overloadargs(int, int)
-overloadargs
-#
---format=gnu --no-params
-overloadargs__Fiii
-overloadargs(int, int, int)
-overloadargs
-#
---format=gnu --no-params
-overloadargs__Fiiii
-overloadargs(int, int, int, int)
-overloadargs
-#
---format=gnu --no-params
-overloadargs__Fiiiii
-overloadargs(int, int, int, int, int)
-overloadargs
-#
---format=gnu --no-params
-overloadargs__Fiiiiii
-overloadargs(int, int, int, int, int, int)
-overloadargs
-#
---format=gnu --no-params
-overloadargs__Fiiiiiii
-overloadargs(int, int, int, int, int, int, int)
-overloadargs
-#
---format=gnu --no-params
-overloadargs__Fiiiiiiii
-overloadargs(int, int, int, int, int, int, int, int)
-overloadargs
-#
---format=gnu --no-params
-overloadargs__Fiiiiiiiii
-overloadargs(int, int, int, int, int, int, int, int, int)
-overloadargs
-#
---format=gnu --no-params
-overloadargs__Fiiiiiiiiii
-overloadargs(int, int, int, int, int, int, int, int, int, int)
-overloadargs
-#
---format=gnu --no-params
-overloadargs__Fiiiiiiiiiii
-overloadargs(int, int, int, int, int, int, int, int, int, int, int)
-overloadargs
-#
---format=gnu --no-params
-poke__8ivRasterUlUlffff
-ivRaster::poke(unsigned long, unsigned long, float, float, float, float)
-ivRaster::poke
-#
---format=gnu --no-params
-polar__Fdd
-polar(double, double)
-polar
-#
---format=gnu --no-params
-scale__13ivTransformerff
-ivTransformer::scale(float, float)
-ivTransformer::scale
-#
---format=gnu --no-params
-sgetn__7filebufPci
-filebuf::sgetn(char *, int)
-filebuf::sgetn
-#
---format=gnu --no-params
-shift__FP5_FrepiT0
-shift(_Frep *, int, _Frep *)
-shift
-#
---format=gnu --no-params
-test__C6BitSeti
-BitSet::test(int) const
-BitSet::test
-#
---format=gnu --no-params
-test__C6BitSetii
-BitSet::test(int, int) const
-BitSet::test
-#
---format=gnu --no-params
-text_source__8Documentl
-Document::text_source(long)
-Document::text_source
-#
---format=gnu --no-params
-variance__6Erlangd
-Erlang::variance(double)
-Erlang::variance
-#
---format=gnu --no-params
-view__14DocumentViewerP8ItemViewP11TabularItem
-DocumentViewer::view(ItemView *, TabularItem *)
-DocumentViewer::view
-#
---format=gnu --no-params
-xy_extents__11ivExtensionffff
-ivExtension::xy_extents(float, float, float, float)
-ivExtension::xy_extents
-#
---format=gnu --no-params
-zero__8osMemoryPvUi
-osMemory::zero(void *, unsigned int)
-osMemory::zero
-#
---format=gnu --no-params
-_2T4$N
-T4::N
-T4::N
-#
---format=gnu --no-params
-_Q22T42t1$N
-T4::t1::N
-T4::t1::N
-#
---format=gnu --no-params
-get__2T1
-T1::get(void)
-T1::get
-#
---format=gnu --no-params
-get__Q22T11a
-T1::a::get(void)
-T1::a::get
-#
---format=gnu --no-params
-get__Q32T11a1b
-T1::a::b::get(void)
-T1::a::b::get
-#
---format=gnu --no-params
-get__Q42T11a1b1c
-T1::a::b::c::get(void)
-T1::a::b::c::get
-#
---format=gnu --no-params
-get__Q52T11a1b1c1d
-T1::a::b::c::d::get(void)
-T1::a::b::c::d::get
-#
---format=gnu --no-params
-put__2T1i
-T1::put(int)
-T1::put
-#
---format=gnu --no-params
-put__Q22T11ai
-T1::a::put(int)
-T1::a::put
-#
---format=gnu --no-params
-put__Q32T11a1bi
-T1::a::b::put(int)
-T1::a::b::put
-#
---format=gnu --no-params
-put__Q42T11a1b1ci
-T1::a::b::c::put(int)
-T1::a::b::c::put
-#
---format=gnu --no-params
-put__Q52T11a1b1c1di
-T1::a::b::c::d::put(int)
-T1::a::b::c::d::put
-#
---format=gnu --no-params
-bar__3fooPv
-foo::bar(void *)
-foo::bar
-#
---format=gnu --no-params
-bar__C3fooPv
-foo::bar(void *) const
-foo::bar
-#
---format=gnu --no-params
-__eq__3fooRT0
-foo::operator==(foo &)
-foo::operator==
-#
---format=gnu --no-params
-__eq__C3fooR3foo
-foo::operator==(foo &) const
-foo::operator==
-#
---format=gnu --no-params
-elem__t6vector1Zdi
-vector<double>::elem(int)
-vector<double>::elem
-#
---format=gnu --no-params
-elem__t6vector1Zii
-vector<int>::elem(int)
-vector<int>::elem
-#
---format=gnu --no-params
-__t6vector1Zdi
-vector<double>::vector(int)
-vector<double>::vector
-#
---format=gnu --no-params
-__t6vector1Zii
-vector<int>::vector(int)
-vector<int>::vector
-#
---format=gnu --no-params
-_$_t6vector1Zdi
-vector<double>::~vector(int)
-vector<double>::~vector
-#
---format=gnu --no-params
-_$_t6vector1Zii
-vector<int>::~vector(int)
-vector<int>::~vector
-#
---format=gnu --no-params
-__nw__t2T11ZcUi
-T1<char>::operator new(unsigned int)
-T1<char>::operator new
-#
---format=gnu --no-params
-__nw__t2T11Z1tUi
-T1<t>::operator new(unsigned int)
-T1<t>::operator new
-#
---format=gnu --no-params
-__dl__t2T11ZcPv
-T1<char>::operator delete(void *)
-T1<char>::operator delete
-#
---format=gnu --no-params
-__dl__t2T11Z1tPv
-T1<t>::operator delete(void *)
-T1<t>::operator delete
-#
---format=gnu --no-params
-__t2T11Zci
-T1<char>::T1(int)
-T1<char>::T1
-#
---format=gnu --no-params
-__t2T11Zc
-T1<char>::T1(void)
-T1<char>::T1
-#
---format=gnu --no-params
-__t2T11Z1ti
-T1<t>::T1(int)
-T1<t>::T1
-#
---format=gnu --no-params
-__t2T11Z1t
-T1<t>::T1(void)
-T1<t>::T1
-#
---format=gnu --no-params
-__Q2t4List1Z10VHDLEntity3Pix
-List<VHDLEntity>::Pix::Pix(void)
-List<VHDLEntity>::Pix::Pix
-#
---format=gnu --no-params
-__Q2t4List1Z10VHDLEntity3PixPQ2t4List1Z10VHDLEntity7element
-List<VHDLEntity>::Pix::Pix(List<VHDLEntity>::element *)
-List<VHDLEntity>::Pix::Pix
-#
---format=gnu --no-params
-__Q2t4List1Z10VHDLEntity3PixRCQ2t4List1Z10VHDLEntity3Pix
-List<VHDLEntity>::Pix::Pix(List<VHDLEntity>::Pix const &)
-List<VHDLEntity>::Pix::Pix
-#
---format=gnu --no-params
-__Q2t4List1Z10VHDLEntity7elementRC10VHDLEntityPT0
-List<VHDLEntity>::element::element(VHDLEntity const &, List<VHDLEntity>::element *)
-List<VHDLEntity>::element::element
-#
---format=gnu --no-params
-__Q2t4List1Z10VHDLEntity7elementRCQ2t4List1Z10VHDLEntity7element
-List<VHDLEntity>::element::element(List<VHDLEntity>::element const &)
-List<VHDLEntity>::element::element
-#
---format=gnu --no-params
-__cl__C11VHDLLibraryGt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity
-VHDLLibrary::operator()(PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> >) const
-VHDLLibrary::operator()
-#
---format=gnu --no-params
-__cl__Ct4List1Z10VHDLEntityRCQ2t4List1Z10VHDLEntity3Pix
-List<VHDLEntity>::operator()(List<VHDLEntity>::Pix const &) const
-List<VHDLEntity>::operator()
-#
---format=gnu --no-params
-__ne__FPvRCQ2t4List1Z10VHDLEntity3Pix
-operator!=(void *, List<VHDLEntity>::Pix const &)
-operator!=
-#
---format=gnu --no-params
-__ne__FPvRCt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity
-operator!=(void *, PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> > const &)
-operator!=
-#
---format=gnu --no-params
-__t4List1Z10VHDLEntityRCt4List1Z10VHDLEntity
-List<VHDLEntity>::List(List<VHDLEntity> const &)
-List<VHDLEntity>::List
-#
---format=gnu --no-params
-__t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity
-PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> >::PixX(void)
-PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> >::PixX
-#
---format=gnu --no-params
-__t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntityP14VHDLLibraryRepGQ2t4List1Z10VHDLEntity3Pix
-PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> >::PixX(VHDLLibraryRep *, List<VHDLEntity>::Pix)
-PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> >::PixX
-#
---format=gnu --no-params
-__t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntityRCt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity
-PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> >::PixX(PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> > const &)
-PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> >::PixX
-#
---format=gnu --no-params
-nextE__C11VHDLLibraryRt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity
-VHDLLibrary::nextE(PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> > &) const
-VHDLLibrary::nextE
-#
---format=gnu --no-params
-next__Ct4List1Z10VHDLEntityRQ2t4List1Z10VHDLEntity3Pix
-List<VHDLEntity>::next(List<VHDLEntity>::Pix &) const
-List<VHDLEntity>::next
-#
---format=gnu --no-params
-_GLOBAL_$D$set
-global destructors keyed to set
-global destructors keyed to set
-#
---format=gnu --no-params
-_GLOBAL_$I$set
-global constructors keyed to set
-global constructors keyed to set
-#
---format=gnu --no-params
-__as__t5ListS1ZUiRCt5ListS1ZUi
-ListS<unsigned int>::operator=(ListS<unsigned int> const &)
-ListS<unsigned int>::operator=
-#
---format=gnu --no-params
-__cl__Ct5ListS1ZUiRCQ2t5ListS1ZUi3Vix
-ListS<unsigned int>::operator()(ListS<unsigned int>::Vix const &) const
-ListS<unsigned int>::operator()
-#
---format=gnu --no-params
-__cl__Ct5SetLS1ZUiRCQ2t5SetLS1ZUi3Vix
-SetLS<unsigned int>::operator()(SetLS<unsigned int>::Vix const &) const
-SetLS<unsigned int>::operator()
-#
---format=gnu --no-params
-__t10ListS_link1ZUiRCUiPT0
-ListS_link<unsigned int>::ListS_link(unsigned int const &, ListS_link<unsigned int> *)
-ListS_link<unsigned int>::ListS_link
-#
---format=gnu --no-params
-__t10ListS_link1ZUiRCt10ListS_link1ZUi
-ListS_link<unsigned int>::ListS_link(ListS_link<unsigned int> const &)
-ListS_link<unsigned int>::ListS_link
-#
---format=gnu --no-params
-__t5ListS1ZUiRCt5ListS1ZUi
-ListS<unsigned int>::ListS(ListS<unsigned int> const &)
-ListS<unsigned int>::ListS
-#
---format=gnu --no-params
-next__Ct5ListS1ZUiRQ2t5ListS1ZUi3Vix
-ListS<unsigned int>::next(ListS<unsigned int>::Vix &) const
-ListS<unsigned int>::next
-#
---format=gnu --no-params
-__ne__FPvRCQ2t5SetLS1ZUi3Vix
-operator!=(void *, SetLS<unsigned int>::Vix const &)
-operator!=
-#
---format=gnu --no-params
-__t8ListElem1Z5LabelRt4List1Z5Label
-ListElem<Label>::ListElem(List<Label> &)
-ListElem<Label>::ListElem
-#
---format=gnu --no-params
-__t8BDDHookV1ZPcRCPc
-BDDHookV<char *>::BDDHookV(char *const &)
-BDDHookV<char *>::BDDHookV
-#
---format=gnu --no-params
-_vt$t8BDDHookV1ZPc
-BDDHookV<char *> virtual table
-BDDHookV<char *> virtual table
-#
---format=gnu --no-params
-__ne__FPvRCQ211BDDFunction4VixB
-operator!=(void *, BDDFunction::VixB const &)
-operator!=
-#
---format=gnu --no-params
-__eq__FPvRCQ211BDDFunction4VixB
-operator==(void *, BDDFunction::VixB const &)
-operator==
-#
---format=gnu --no-params
-relativeId__CQ36T_phi210T_preserve8FPC_nextRCQ26T_phi210T_preserveRC10Parameters
-T_phi2::T_preserve::FPC_next::relativeId(T_phi2::T_preserve const &, Parameters const &) const
-T_phi2::T_preserve::FPC_next::relativeId
-#
---format=lucid --no-params
-WS__FR7istream
-WS(istream &)
-WS
-#
---format=lucid --no-params
-__aa__3fooFR3foo
-foo::operator&&(foo &)
-foo::operator&&
-#
---format=lucid --no-params
-__aad__3fooFR3foo
-foo::operator&=(foo &)
-foo::operator&=
-#
---format=lucid --no-params
-__ad__3fooFR3foo
-foo::operator&(foo &)
-foo::operator&
-#
---format=lucid --no-params
-__adv__3fooFR3foo
-foo::operator/=(foo &)
-foo::operator/=
-#
---format=lucid --no-params
-__adv__7complexF7complex
-complex::operator/=(complex)
-complex::operator/=
-#
---format=lucid --no-params
-__aer__3fooFR3foo
-foo::operator^=(foo &)
-foo::operator^=
-#
---format=lucid --no-params
-__als__3fooFR3foo
-foo::operator<<=(foo &)
-foo::operator<<=
-#
---format=lucid --no-params
-__amd__3fooFR3foo
-foo::operator%=(foo &)
-foo::operator%=
-#
---format=lucid --no-params
-__ami__3fooFR3foo
-foo::operator-=(foo &)
-foo::operator-=
-#
---format=lucid --no-params
-__amu__3fooFR3foo
-foo::operator*=(foo &)
-foo::operator*=
-#
---format=lucid --no-params
-__amu__7complexF7complex
-complex::operator*=(complex)
-complex::operator*=
-#
---format=lucid --no-params
-__aor__3fooFR3foo
-foo::operator|=(foo &)
-foo::operator|=
-#
---format=lucid --no-params
-__apl__3fooFR3foo
-foo::operator+=(foo &)
-foo::operator+=
-#
---format=lucid --no-params
-__ars__3fooFR3foo
-foo::operator>>=(foo &)
-foo::operator>>=
-#
---format=lucid --no-params
-__as__18istream_withassignFP9streambuf
-istream_withassign::operator=(streambuf *)
-istream_withassign::operator=
-#
---format=lucid --no-params
-__as__18istream_withassignFR7istream
-istream_withassign::operator=(istream &)
-istream_withassign::operator=
-#
---format=lucid --no-params
-__as__3fooFR3foo
-foo::operator=(foo &)
-foo::operator=
-#
---format=lucid --no-params
-__as__3iosFR3ios
-ios::operator=(ios &)
-ios::operator=
-#
---format=lucid --no-params
-__cl__3fooFR3foo
-foo::operator()(foo &)
-foo::operator()
-#
---format=lucid --no-params
-__cm__3fooFR3foo
-foo::operator, (foo &)
-foo::operator, 
-#
---format=lucid --no-params
-__co__3fooFv
-foo::operator~(void)
-foo::operator~
-#
---format=lucid --no-params
-__ct__10istrstreamFPc
-istrstream::istrstream(char *)
-istrstream::istrstream
-#
---format=lucid --no-params
-__ct__10istrstreamFPci
-istrstream::istrstream(char *, int)
-istrstream::istrstream
-#
---format=lucid --no-params
-__ct__10ostrstreamFPciT2
-ostrstream::ostrstream(char *, int, int)
-ostrstream::ostrstream
-#
---format=lucid --no-params
-__ct__10ostrstreamFv
-ostrstream::ostrstream(void)
-ostrstream::ostrstream
-#
---format=lucid --no-params
-__ct__10smanip_intFPFR3iosi_R3iosi
-smanip_int::smanip_int(ios &(*)(ios &, int), int)
-smanip_int::smanip_int
-#
---format=lucid --no-params
-__ct__11fstreambaseFi
-fstreambase::fstreambase(int)
-fstreambase::fstreambase
-#
---format=lucid --no-params
-__ct__11fstreambaseFiPcT1
-fstreambase::fstreambase(int, char *, int)
-fstreambase::fstreambase
-#
---format=lucid --no-params
-__ct__11fstreambaseFv
-fstreambase::fstreambase(void)
-fstreambase::fstreambase
-#
---format=lucid --no-params
-__ct__11smanip_longFPFR3iosl_R3iosl
-smanip_long::smanip_long(ios &(*)(ios &, long), long)
-smanip_long::smanip_long
-#
---format=lucid --no-params
-__ct__11stdiostreamFP4FILE
-stdiostream::stdiostream(FILE *)
-stdiostream::stdiostream
-#
---format=lucid --no-params
-__ct__12strstreambufFPFl_PvPFPv_v
-strstreambuf::strstreambuf(void *(*)(long), void (*)(void *))
-strstreambuf::strstreambuf
-#
---format=lucid --no-params
-__ct__12strstreambufFPUciT1
-strstreambuf::strstreambuf(unsigned char *, int, unsigned char *)
-strstreambuf::strstreambuf
-#
---format=lucid --no-params
-__ct__12strstreambufFPciT1
-strstreambuf::strstreambuf(char *, int, char *)
-strstreambuf::strstreambuf
-#
---format=lucid --no-params
-__ct__12strstreambufFi
-strstreambuf::strstreambuf(int)
-strstreambuf::strstreambuf
-#
---format=lucid --no-params
-__ct__12strstreambufFv
-strstreambuf::strstreambuf(void)
-strstreambuf::strstreambuf
-#
---format=lucid --no-params
-__ct__13strstreambaseFPciT1
-strstreambase::strstreambase(char *, int, char *)
-strstreambase::strstreambase
-#
---format=lucid --no-params
-__ct__3fooFR3foo
-foo::foo(foo &)
-foo::foo
-#
---format=lucid --no-params
-__ct__3fooFi
-foo::foo(int)
-foo::foo
-#
---format=lucid --no-params
-__ct__3fooFiN31
-foo::foo(int, int, int, int)
-foo::foo
-#
---format=lucid --no-params
-__ct__3fooFiR3fooT1T2T1T2
-foo::foo(int, foo &, int, foo &, int, foo &)
-foo::foo
-#
---format=lucid --no-params
-__ct__3iosFP9streambuf
-ios::ios(streambuf *)
-ios::ios
-#
---format=lucid --no-params
-__ct__7filebufFiPcT1
-filebuf::filebuf(int, char *, int)
-filebuf::filebuf
-#
---format=lucid --no-params
-__ct__7fstreamFiPcT1
-fstream::fstream(int, char *, int)
-fstream::fstream
-#
---format=lucid --no-params
-__ct__7istreamFP9streambuf
-istream::istream(streambuf *)
-istream::istream
-#
---format=lucid --no-params
-__ct__7istreamFP9streambufiP7ostream
-istream::istream(streambuf *, int, ostream *)
-istream::istream
-#
---format=lucid --no-params
-__ct__7istreamFiPcT1
-istream::istream(int, char *, int)
-istream::istream
-#
---format=lucid --no-params
-__ct__7istreamFiT1P7ostream
-istream::istream(int, int, ostream *)
-istream::istream
-#
---format=lucid --no-params
-__ct__7ostreamFP9streambuf
-ostream::ostream(streambuf *)
-ostream::ostream
-#
---format=lucid --no-params
-__ct__7ostreamFiPc
-ostream::ostream(int, char *)
-ostream::ostream
-#
---format=lucid --no-params
-__ct__8ifstreamFiPcT1
-ifstream::ifstream(int, char *, int)
-ifstream::ifstream
-#
---format=lucid --no-params
-__ct__Q23foo3barFv
-foo::bar::bar(void)
-foo::bar::bar
-#
---format=lucid --no-params
-__ct__Q33foo3bar4bellFv
-foo::bar::bell::bell(void)
-foo::bar::bell::bell
-#
---format=lucid --no-params
-__dl__3fooSFPv
-foo::operator delete(void *) static
-foo::operator delete
-#
---format=lucid --no-params
-__dl__FPv
-operator delete(void *)
-operator delete
-#
---format=lucid --no-params
-__dt__10istrstreamFv
-istrstream::~istrstream(void)
-istrstream::~istrstream
-#
---format=lucid --no-params
-__dt__Q23foo3barFv
-foo::bar::~bar(void)
-foo::bar::~bar
-#
---format=lucid --no-params
-__dt__Q33foo3bar4bellFv
-foo::bar::bell::~bell(void)
-foo::bar::bell::~bell
-#
---format=lucid --no-params
-__dv__3fooFR3foo
-foo::operator/(foo &)
-foo::operator/
-#
---format=lucid --no-params
-__dv__F7complexT1
-operator/(complex, complex)
-operator/
-#
---format=lucid --no-params
-__eq__3fooFR3foo
-foo::operator==(foo &)
-foo::operator==
-#
---format=lucid --no-params
-__er__3fooFR3foo
-foo::operator^(foo &)
-foo::operator^
-#
---format=lucid --no-params
-__ge__3fooFR3foo
-foo::operator>=(foo &)
-foo::operator>=
-#
---format=lucid --no-params
-__gt__3fooFR3foo
-foo::operator>(foo &)
-foo::operator>
-#
---format=lucid --no-params
-__le__3fooFR3foo
-foo::operator<=(foo &)
-foo::operator<=
-#
---format=lucid --no-params
-__ls__3fooFR3foo
-foo::operator<<(foo &)
-foo::operator<<
-#
---format=lucid --no-params
-__ls__7ostreamFP9streambuf
-ostream::operator<<(streambuf *)
-ostream::operator<<
-#
---format=lucid --no-params
-__ls__7ostreamFPFR3ios_R3ios
-ostream::operator<<(ios &(*)(ios &))
-ostream::operator<<
-#
---format=lucid --no-params
-__ls__7ostreamFPv
-ostream::operator<<(void *)
-ostream::operator<<
-#
---format=lucid --no-params
-__ls__7ostreamFUi
-ostream::operator<<(unsigned int)
-ostream::operator<<
-#
---format=lucid --no-params
-__ls__7ostreamFUl
-ostream::operator<<(unsigned long)
-ostream::operator<<
-#
---format=lucid --no-params
-__ls__7ostreamFd
-ostream::operator<<(double)
-ostream::operator<<
-#
---format=lucid --no-params
-__ls__7ostreamFf
-ostream::operator<<(float)
-ostream::operator<<
-#
---format=lucid --no-params
-__ls__7ostreamFi
-ostream::operator<<(int)
-ostream::operator<<
-#
---format=lucid --no-params
-__ls__7ostreamFl
-ostream::operator<<(long)
-ostream::operator<<
-#
---format=lucid --no-params
-__ls__FR7ostream7complex
-operator<<(ostream &, complex)
-operator<<
-#
---format=lucid --no-params
-__lt__3fooFR3foo
-foo::operator<(foo &)
-foo::operator<
-#
---format=lucid --no-params
-__md__3fooFR3foo
-foo::operator%(foo &)
-foo::operator%
-#
---format=lucid --no-params
-__mi__3fooFR3foo
-foo::operator-(foo &)
-foo::operator-
-#
---format=lucid --no-params
-__ml__3fooFR3foo
-foo::operator*(foo &)
-foo::operator*
-#
---format=lucid --no-params
-__ml__F7complexT1
-operator*(complex, complex)
-operator*
-#
---format=lucid --no-params
-__mm__3fooFi
-foo::operator--(int)
-foo::operator--
-#
---format=lucid --no-params
-__ne__3fooFR3foo
-foo::operator!=(foo &)
-foo::operator!=
-#
---format=lucid --no-params
-__nt__3fooFv
-foo::operator!(void)
-foo::operator!
-#
---format=lucid --no-params
-__nw__3fooSFi
-foo::operator new(int) static
-foo::operator new
-#
---format=lucid --no-params
-__nw__FUi
-operator new(unsigned int)
-operator new
-#
---format=lucid --no-params
-__nw__FUiPv
-operator new(unsigned int, void *)
-operator new
-#
---format=lucid --no-params
-__oo__3fooFR3foo
-foo::operator||(foo &)
-foo::operator||
-#
---format=lucid --no-params
-__opPc__3fooFv
-foo::operator char *(void)
-foo::operator char *
-#
---format=lucid --no-params
-__opi__3fooFv
-foo::operator int(void)
-foo::operator int
-#
---format=lucid --no-params
-__or__3fooFR3foo
-foo::operator|(foo &)
-foo::operator|
-#
---format=lucid --no-params
-__pl__3fooFR3foo
-foo::operator+(foo &)
-foo::operator+
-#
---format=lucid --no-params
-__pp__3fooFi
-foo::operator++(int)
-foo::operator++
-#
---format=lucid --no-params
-__pt__3fooFv
-foo::operator->(void)
-foo::operator->
-#
---format=lucid --no-params
-__rm__3fooFR3foo
-foo::operator->*(foo &)
-foo::operator->*
-#
---format=lucid --no-params
-__rs__3fooFR3foo
-foo::operator>>(foo &)
-foo::operator>>
-#
---format=lucid --no-params
-__rs__7istreamFP9streambuf
-istream::operator>>(streambuf *)
-istream::operator>>
-#
---format=lucid --no-params
-__rs__7istreamFPFR3ios_R3ios
-istream::operator>>(ios &(*)(ios &))
-istream::operator>>
-#
---format=lucid --no-params
-__rs__7istreamFPFR7istream_R7istream
-istream::operator>>(istream &(*)(istream &))
-istream::operator>>
-#
---format=lucid --no-params
-__rs__7istreamFPUc
-istream::operator>>(unsigned char *)
-istream::operator>>
-#
---format=lucid --no-params
-__rs__7istreamFPc
-istream::operator>>(char *)
-istream::operator>>
-#
---format=lucid --no-params
-__rs__7istreamFRUi
-istream::operator>>(unsigned int &)
-istream::operator>>
-#
---format=lucid --no-params
-__rs__7istreamFRUl
-istream::operator>>(unsigned long &)
-istream::operator>>
-#
---format=lucid --no-params
-__rs__7istreamFRUs
-istream::operator>>(unsigned short &)
-istream::operator>>
-#
---format=lucid --no-params
-__rs__7istreamFRd
-istream::operator>>(double &)
-istream::operator>>
-#
---format=lucid --no-params
-__rs__7istreamFRf
-istream::operator>>(float &)
-istream::operator>>
-#
---format=lucid --no-params
-__rs__7istreamFRi
-istream::operator>>(int &)
-istream::operator>>
-#
---format=lucid --no-params
-__rs__7istreamFRl
-istream::operator>>(long &)
-istream::operator>>
-#
---format=lucid --no-params
-__rs__7istreamFRs
-istream::operator>>(short &)
-istream::operator>>
-#
---format=lucid --no-params
-__rs__FR7istreamR7complex
-operator>>(istream &, complex &)
-operator>>
-#
---format=lucid --no-params
-__vtbl__10istrstream
-istrstream virtual table
-istrstream virtual table
-#
---format=lucid --no-params
-__vtbl__17ostream__iostream__19iostream_withassign
-iostream_withassign::ostream__iostream virtual table
-iostream_withassign::ostream__iostream virtual table
-#
---format=lucid --no-params
-__vtbl__3ios
-ios virtual table
-ios virtual table
-#
---format=lucid --no-params
-__vtbl__3ios__13strstreambase
-strstreambase::ios virtual table
-strstreambase::ios virtual table
-#
---format=lucid --no-params
-abs__F7complex
-abs(complex)
-abs
-#
---format=lucid --no-params
-allocate__9streambufFv
-streambuf::allocate(void)
-streambuf::allocate
-#
---format=lucid --no-params
-attach__11fstreambaseFi
-fstreambase::attach(int)
-fstreambase::attach
-#
---format=lucid --no-params
-bitalloc__3iosSFv
-ios::bitalloc(void) static
-ios::bitalloc
-#
---format=lucid --no-params
-chr__FiT1
-chr(int, int)
-chr
-#
---format=lucid --no-params
-complex_error__FR11c_exception
-complex_error(c_exception &)
-complex_error
-#
---format=lucid --no-params
-complexfunc2__FPFPc_i
-complexfunc2(int (*)(char *))
-complexfunc2
-#
---format=lucid --no-params
-complexfunc3__FPFPFPl_s_i
-complexfunc3(int (*)(short (*)(long *)))
-complexfunc3
-#
---format=lucid --no-params
-complexfunc4__FPFPFPc_s_i
-complexfunc4(int (*)(short (*)(char *)))
-complexfunc4
-#
---format=lucid --no-params
-complexfunc5__FPFPc_PFl_i
-complexfunc5(int (*(*)(char *))(long))
-complexfunc5
-#
---format=lucid --no-params
-complexfunc6__FPFPi_PFl_i
-complexfunc6(int (*(*)(int *))(long))
-complexfunc6
-#
---format=lucid --no-params
-complexfunc7__FPFPFPc_i_PFl_i
-complexfunc7(int (*(*)(int (*)(char *)))(long))
-complexfunc7
-#
---format=lucid --no-params
-complicated_put__7ostreamFc
-ostream::complicated_put(char)
-ostream::complicated_put
-#
---format=lucid --no-params
-conv10__FlPc
-conv10(long, char *)
-conv10
-#
---format=lucid --no-params
-conv16__FUlPc
-conv16(unsigned long, char *)
-conv16
-#
---format=lucid --no-params
-dec__FR3ios
-dec(ios &)
-dec
-#
---format=lucid --no-params
-dec__Fli
-dec(long, int)
-dec
-#
---format=lucid --no-params
-dofield__FP7ostreamPciT2T3
-dofield(ostream *, char *, int, char *, int)
-dofield
-#
---format=lucid --no-params
-flags__3iosFl
-ios::flags(long)
-ios::flags
-#
---format=lucid --no-params
-flags__3iosFv
-ios::flags(void)
-ios::flags
-#
---format=lucid --no-params
-foo__FiN31
-foo(int, int, int, int)
-foo
-#
---format=lucid --no-params
-foo__FiR3fooT1T2T1T2
-foo(int, foo &, int, foo &, int, foo &)
-foo
-#
---format=lucid --no-params
-foo___3barFl
-bar::foo_(long)
-bar::foo_
-#
---format=lucid --no-params
-get__7istreamFPcic
-istream::get(char *, int, char)
-istream::get
-#
---format=lucid --no-params
-get__7istreamFR9streambufc
-istream::get(streambuf &, char)
-istream::get
-#
---format=lucid --no-params
-get_complicated__7istreamFRUc
-istream::get_complicated(unsigned char &)
-istream::get_complicated
-#
---format=lucid --no-params
-get_complicated__7istreamFRc
-istream::get_complicated(char &)
-istream::get_complicated
-#
---format=lucid --no-params
-getline__7istreamFPUcic
-istream::getline(unsigned char *, int, char)
-istream::getline
-#
---format=lucid --no-params
-getline__7istreamFPcic
-istream::getline(char *, int, char)
-istream::getline
-#
---format=lucid --no-params
-ignore__7istreamFiT1
-istream::ignore(int, int)
-istream::ignore
-#
---format=lucid --no-params
-init__12strstreambufFPciT1
-strstreambuf::init(char *, int, char *)
-strstreambuf::init
-#
---format=lucid --no-params
-init__3iosFP9streambuf
-ios::init(streambuf *)
-ios::init
-#
---format=lucid --no-params
-initcount__13Iostream_init
-Iostream_init::initcount
-Iostream_init::initcount
-#
---format=lucid --no-params
-ipfx__7istreamFi
-istream::ipfx(int)
-istream::ipfx
-#
---format=lucid --no-params
-ls_complicated__7ostreamFUc
-ostream::ls_complicated(unsigned char)
-ostream::ls_complicated
-#
---format=lucid --no-params
-ls_complicated__7ostreamFc
-ostream::ls_complicated(char)
-ostream::ls_complicated
-#
---format=lucid --no-params
-overload1arg__FSc
-overload1arg(signed char)
-overload1arg
-#
---format=lucid --no-params
-overload1arg__FUc
-overload1arg(unsigned char)
-overload1arg
-#
---format=lucid --no-params
-overload1arg__FUi
-overload1arg(unsigned int)
-overload1arg
-#
---format=lucid --no-params
-overload1arg__FUl
-overload1arg(unsigned long)
-overload1arg
-#
---format=lucid --no-params
-overload1arg__FUs
-overload1arg(unsigned short)
-overload1arg
-#
---format=lucid --no-params
-overload1arg__Fc
-overload1arg(char)
-overload1arg
-#
---format=lucid --no-params
-overload1arg__Fd
-overload1arg(double)
-overload1arg
-#
---format=lucid --no-params
-overload1arg__Ff
-overload1arg(float)
-overload1arg
-#
---format=lucid --no-params
-overload1arg__Fi
-overload1arg(int)
-overload1arg
-#
---format=lucid --no-params
-overload1arg__Fl
-overload1arg(long)
-overload1arg
-#
---format=lucid --no-params
-overload1arg__Fs
-overload1arg(short)
-overload1arg
-#
---format=lucid --no-params
-overload1arg__Fv
-overload1arg(void)
-overload1arg
-#
---format=lucid --no-params
-overloadargs__FiN21
-overloadargs(int, int, int)
-overloadargs
-#
---format=lucid --no-params
-overloadargs__FiN31
-overloadargs(int, int, int, int)
-overloadargs
-#
---format=lucid --no-params
-overloadargs__FiN41
-overloadargs(int, int, int, int, int)
-overloadargs
-#
---format=lucid --no-params
-overloadargs__FiN51
-overloadargs(int, int, int, int, int, int)
-overloadargs
-#
---format=lucid --no-params
-overloadargs__FiN61
-overloadargs(int, int, int, int, int, int, int)
-overloadargs
-#
---format=lucid --no-params
-overloadargs__FiN71
-overloadargs(int, int, int, int, int, int, int, int)
-overloadargs
-#
---format=lucid --no-params
-overloadargs__FiN81
-overloadargs(int, int, int, int, int, int, int, int, int)
-overloadargs
-#
---format=lucid --no-params
-overloadargs__FiN91
-overloadargs(int, int, int, int, int, int, int, int, int, int)
-overloadargs
-#
---format=lucid --no-params
-overloadargs__FiN91N11
-overloadargs(int, int, int, int, int, int, int, int, int, int, int)
-overloadargs
-#
---format=lucid --no-params
-overloadargs__FiT1
-overloadargs(int, int)
-overloadargs
-#
---format=lucid --no-params
-polar__FdT1
-polar(double, double)
-polar
-#
---format=lucid --no-params
-pow__F7complexT1
-pow(complex, complex)
-pow
-#
---format=lucid --no-params
-pow__F7complexd
-pow(complex, double)
-pow
-#
---format=lucid --no-params
-pow__F7complexi
-pow(complex, int)
-pow
-#
---format=lucid --no-params
-pow__Fd7complex
-pow(double, complex)
-pow
-#
---format=lucid --no-params
-pstart__FPciT2
-pstart(char *, int, int)
-pstart
-#
---format=lucid --no-params
-put__7ostreamFc
-ostream::put(char)
-ostream::put
-#
---format=lucid --no-params
-read__7istreamFPci
-istream::read(char *, int)
-istream::read
-#
---format=lucid --no-params
-resetiosflags__FR3iosl
-resetiosflags(ios &, long)
-resetiosflags
-#
---format=lucid --no-params
-restore_errno__FRi
-restore_errno(int &)
-restore_errno
-#
---format=lucid --no-params
-rs_complicated__7istreamFRUc
-istream::rs_complicated(unsigned char &)
-istream::rs_complicated
-#
---format=lucid --no-params
-rs_complicated__7istreamFRc
-istream::rs_complicated(char &)
-istream::rs_complicated
-#
---format=lucid --no-params
-seekg__7istreamFl8seek_dir
-istream::seekg(long, seek_dir)
-istream::seekg
-#
---format=lucid --no-params
-seekoff__12strstreambufFl8seek_diri
-strstreambuf::seekoff(long, seek_dir, int)
-strstreambuf::seekoff
-#
---format=lucid --no-params
-seekoff__9streambufFlQ2_3ios12ios_seek_diri
-streambuf::seekoff(long, ios::ios_seek_dir, int)
-streambuf::seekoff
-#
---format=lucid --no-params
-seekpos__9streambufFli
-streambuf::seekpos(long, int)
-streambuf::seekpos
-#
---format=lucid --no-params
-set_new_handler__FPFv_v
-set_new_handler(void (*)(void))
-set_new_handler
-#
---format=lucid --no-params
-setb__9streambufFPcT1i
-streambuf::setb(char *, char *, int)
-streambuf::setb
-#
---format=lucid --no-params
-setb__FR3iosi
-setb(ios &, int)
-setb
-#
---format=lucid --no-params
-setbuf__11fstreambaseFPci
-fstreambase::setbuf(char *, int)
-fstreambase::setbuf
-#
---format=lucid --no-params
-setbuf__9streambufFPUci
-streambuf::setbuf(unsigned char *, int)
-streambuf::setbuf
-#
---format=lucid --no-params
-setbuf__9streambufFPciT2
-streambuf::setbuf(char *, int, int)
-streambuf::setbuf
-#
---format=lucid --no-params
-setf__3iosFlT1
-ios::setf(long, long)
-ios::setf
-#
---format=lucid --no-params
-setfill__FR3iosi
-setfill(ios &, int)
-setfill
-#
---format=lucid --no-params
-setg__9streambufFPcN21
-streambuf::setg(char *, char *, char *)
-streambuf::setg
-#
---format=lucid --no-params
-setp__9streambufFPcT1
-streambuf::setp(char *, char *)
-streambuf::setp
-#
---format=lucid --no-params
-tie__3iosFP7ostream
-ios::tie(ostream *)
-ios::tie
-#
---format=lucid --no-params
-uconv10__FUlPc
-uconv10(unsigned long, char *)
-uconv10
-#
---format=lucid --no-params
-xget__7istreamFPc
-istream::xget(char *)
-istream::xget
-#
---format=lucid --no-params
-xsgetn__9streambufFPci
-streambuf::xsgetn(char *, int)
-streambuf::xsgetn
-#
---format=arm --no-params
-__dt__21T5__pt__11_PFiPPdPv_iFv
-T5<int (*)(int, double **, void *)>::~T5(void)
-T5<int (*)(int, double **, void *)>::~T5
-#
---format=arm --no-params
-__ct__1cFi
-c::c(int)
-c::c
-#
---format=arm --no-params
-__dt__11T5__pt__2_iFv
-T5<int>::~T5(void)
-T5<int>::~T5
-#
---format=arm --no-params
-__dt__11T5__pt__2_cFv
-T5<char>::~T5(void)
-T5<char>::~T5
-#
---format=arm --no-params
-__ct__2T2Fi
-T2::T2(int)
-T2::T2
-#
---format=arm --no-params
-__dt__2T1Fv
-T1::~T1(void)
-T1::~T1
-#
---format=arm --no-params
-__dt__12T5__pt__3_1xFv
-T5<x>::~T5(void)
-T5<x>::~T5
-#
---format=arm --no-params
-__dt__17T5__pt__8_PFcPv_iFv
-T5<int (*)(char, void *)>::~T5(void)
-T5<int (*)(char, void *)>::~T5
-#
---format=arm --no-params
-__ct__21T5__pt__11_PFiPPdPv_iFi
-T5<int (*)(int, double **, void *)>::T5(int)
-T5<int (*)(int, double **, void *)>::T5
-#
---format=arm --no-params
-__amd__FR2T2i
-operator%=(T2 &, int)
-operator%=
-#
---format=arm --no-params
-__adv__FR2T2i
-operator/=(T2 &, int)
-operator/=
-#
---format=arm --no-params
-__amu__FR2T2i
-operator*=(T2 &, int)
-operator*=
-#
---format=arm --no-params
-__ami__FR2T2i
-operator-=(T2 &, int)
-operator-=
-#
---format=arm --no-params
-__apl__FR2T2i
-operator+=(T2 &, int)
-operator+=
-#
---format=arm --no-params
-__nw__2T1SFUi
-T1::operator new(unsigned int) static
-T1::operator new
-#
---format=arm --no-params
-__dl__2T1SFPv
-T1::operator delete(void *) static
-T1::operator delete
-#
---format=arm --no-params
-put__2T7SFi
-T7::put(int) static
-T7::put
-#
---format=arm --no-params
-__dl__12T5__pt__3_1xSFPv
-T5<x>::operator delete(void *) static
-T5<x>::operator delete
-#
---format=arm --no-params
-h__FUc
-h(unsigned char)
-h
-#
---format=arm --no-params
-f__Fic
-f(int, char)
-f
-#
---format=arm --no-params
-h__FUi
-h(unsigned int)
-h
-#
---format=arm --no-params
-h__Fci
-h(char, int)
-h
-#
---format=arm --no-params
-h__FUl
-h(unsigned long)
-h
-#
---format=arm --no-params
-h__Fcl
-h(char, long)
-h
-#
---format=arm --no-params
-h__FUs
-h(unsigned short)
-h
-#
---format=arm --no-params
-h__Fcs
-h(char, short)
-h
-#
---format=arm --no-params
-X__12T5__pt__3_1x
-T5<x>::X
-T5<x>::X
-#
---format=arm --no-params
-__ct__11T5__pt__2_iFi
-T5<int>::T5(int)
-T5<int>::T5
-#
---format=arm --no-params
-__ct__11T5__pt__2_cFi
-T5<char>::T5(int)
-T5<char>::T5
-#
---format=arm --no-params
-h__FcT1
-h(char, char)
-h
-#
---format=arm --no-params
-f__Ficd
-f(int, char, double)
-f
-#
---format=arm --no-params
-__dl__17T5__pt__8_PFcPv_iSFPv
-T5<int (*)(char, void *)>::operator delete(void *) static
-T5<int (*)(char, void *)>::operator delete
-#
---format=arm --no-params
-X__17T5__pt__8_PFcPv_i
-T5<int (*)(char, void *)>::X
-T5<int (*)(char, void *)>::X
-#
---format=arm --no-params
-__ct__12T5__pt__3_1xFi
-T5<x>::T5(int)
-T5<x>::T5
-#
---format=arm --no-params
-__dl__21T5__pt__11_PFiPPdPv_iSFPv
-T5<int (*)(int, double **, void *)>::operator delete(void *) static
-T5<int (*)(int, double **, void *)>::operator delete
-#
---format=arm --no-params
-__std__foo
-global destructors keyed to foo
-global destructors keyed to foo
-#
---format=arm --no-params
-__sti__bar
-global constructors keyed to bar
-global constructors keyed to bar
-#
---format=arm --no-params
-f__FicdPcPFci_v
-f(int, char, double, char *, void (*)(char, int))
-f
-#
---format=arm --no-params
-f__FicdPcPFic_v
-f(int, char, double, char *, void (*)(int, char))
-f
-#
---format=arm --no-params
-get__2T7SFv
-T7::get(void) static
-T7::get
-#
---format=arm --no-params
-X__21T5__pt__11_PFiPPdPv_i
-T5<int (*)(int, double **, void *)>::X
-T5<int (*)(int, double **, void *)>::X
-#
---format=arm --no-params
-__dl__11T5__pt__2_iSFPv
-T5<int>::operator delete(void *) static
-T5<int>::operator delete
-#
---format=arm --no-params
-__dl__11T5__pt__2_cSFPv
-T5<char>::operator delete(void *) static
-T5<char>::operator delete
-#
---format=arm --no-params
-h__Fc
-h(char)
-h
-#
---format=arm --no-params
-h__Fd
-h(double)
-h
-#
---format=arm --no-params
-h__Ff
-h(float)
-h
-#
---format=arm --no-params
-h__Fi
-h(int)
-h
-#
---format=arm --no-params
-f__Fi
-f(int)
-f
-#
---format=arm --no-params
-h__Fl
-h(long)
-h
-#
---format=arm --no-params
-h__Fs
-h(short)
-h
-#
---format=arm --no-params
-X__11T5__pt__2_c
-T5<char>::X
-T5<char>::X
-#
---format=arm --no-params
-X__11T5__pt__2_i
-T5<int>::X
-T5<int>::X
-#
---format=arm --no-params
-__ct__17T5__pt__8_PFcPv_iFi
-T5<int (*)(char, void *)>::T5(int)
-T5<int (*)(char, void *)>::T5
-#
---format=arm --no-params
-f__FicdPc
-f(int, char, double, char *)
-f
-#
---format=arm --no-params
-__nw__FUi
-operator new(unsigned int)
-operator new
-#
---format=arm --no-params
-__ct__Q3_2T11a1bSFi
-T1::a::b::b(int) static
-T1::a::b::b
-#
---format=arm --no-params
-__dt__Q3_2T11a1bSFi
-T1::a::b::~b(int) static
-T1::a::b::~b
-#
---format=arm --no-params
-put__Q3_2T11a1bSFi
-T1::a::b::put(int) static
-T1::a::b::put
-#
---format=arm --no-params
-get__Q2_2T11aSFv
-T1::a::get(void) static
-T1::a::get
-#
---format=arm --no-params
-put__2T1SFi
-T1::put(int) static
-T1::put
-#
---format=arm --no-params
-put__Q5_2T11a1b1c1dSFi
-T1::a::b::c::d::put(int) static
-T1::a::b::c::d::put
-#
---format=arm --no-params
-get__Q4_2T11a1b1cSFv
-T1::a::b::c::get(void) static
-T1::a::b::c::get
-#
---format=arm --no-params
-put__Q2_2T11aSFi
-T1::a::put(int) static
-T1::a::put
-#
---format=arm --no-params
-put__Q4_2T11a1b1cSFi
-T1::a::b::c::put(int) static
-T1::a::b::c::put
-#
---format=arm --no-params
-get__Q3_2T11a1bSFv
-T1::a::b::get(void) static
-T1::a::b::get
-#
---format=arm --no-params
-get__2T1SFv
-T1::get(void) static
-T1::get
-#
---format=arm --no-params
-get__Q5_2T11a1b1c1dSFv
-T1::a::b::c::d::get(void) static
-T1::a::b::c::d::get
-#
---format=arm --no-params
-__dt__11T1__pt__2_cFv
-T1<char>::~T1(void)
-T1<char>::~T1
-#
---format=arm --no-params
-__dt__12T1__pt__3_1tFv
-T1<t>::~T1(void)
-T1<t>::~T1
-#
---format=arm --no-params
-__dl__12T1__pt__3_1tSFPv
-T1<t>::operator delete(void *) static
-T1<t>::operator delete
-#
---format=arm --no-params
-__ct__11T1__pt__2_cFi
-T1<char>::T1(int)
-T1<char>::T1
-#
---format=arm --no-params
-__ct__11T1__pt__2_cFv
-T1<char>::T1(void)
-T1<char>::T1
-#
---format=arm --no-params
-__ct__12T1__pt__3_1tFi
-T1<t>::T1(int)
-T1<t>::T1
-#
---format=arm --no-params
-__ct__12T1__pt__3_1tFv
-T1<t>::T1(void)
-T1<t>::T1
-#
---format=arm --no-params
-__dl__11T1__pt__2_cSFPv
-T1<char>::operator delete(void *) static
-T1<char>::operator delete
-#
---format=arm --no-params
-bar__3fooFPv
-foo::bar(void *)
-foo::bar
-#
---format=arm --no-params
-bar__3fooCFPv
-foo::bar(void *) const
-foo::bar
-#
---format=arm --no-params
-__eq__3fooFR3foo
-foo::operator==(foo &)
-foo::operator==
-#
---format=arm --no-params
-__eq__3fooCFR3foo
-foo::operator==(foo &) const
-foo::operator==
-#
---format=arm --no-params
-elem__15vector__pt__2_dFi
-vector<double>::elem(int)
-vector<double>::elem
-#
---format=arm --no-params
-elem__15vector__pt__2_iFi
-vector<int>::elem(int)
-vector<int>::elem
-#
---format=arm --no-params
-__ct__15vector__pt__2_dFi
-vector<double>::vector(int)
-vector<double>::vector
-#
---format=arm --no-params
-__ct__15vector__pt__2_iFi
-vector<int>::vector(int)
-vector<int>::vector
-#
---format=arm --no-params
-__ct__25DListNode__pt__9_R6RLabelFR6RLabelP25DListNode__pt__9_R6RLabelT2
-DListNode<RLabel &>::DListNode(RLabel &, DListNode<RLabel &> *, DListNode<RLabel &> *)
-DListNode<RLabel &>::DListNode
-#
---format=arm --no-params
-bar__3fooFiT16FooBar
-foo::bar(int, int, FooBar)
-foo::bar
-#
---format=arm --no-params
-bar__3fooFPiN51PdN37PcN211T1iN215
-foo::bar(int *, int *, int *, int *, int *, int *, double *, double *, double *, double *, char *, char *, char *, int *, int, int, int)
-foo::bar
-#
---format=hp --no-params
-__amd__FR2T2i
-operator%=(T2 &, int)
-operator%=
-#
---format=hp --no-params
-__adv__FR2T2i
-operator/=(T2 &, int)
-operator/=
-#
---format=hp --no-params
-__amu__FR2T2i
-operator*=(T2 &, int)
-operator*=
-#
---format=hp --no-params
-__ami__FR2T2i
-operator-=(T2 &, int)
-operator-=
-#
---format=hp --no-params
-__apl__FR2T2i
-operator+=(T2 &, int)
-operator+=
-#
---format=hp --no-params
-__nw__2T1SFUi
-T1::operator new(unsigned int) static
-T1::operator new
-#
---format=hp --no-params
-__dl__2T1SFPv
-T1::operator delete(void *) static
-T1::operator delete
-#
---format=hp --no-params
-put__2T7SFi
-T7::put(int) static
-T7::put
-#
---format=hp --no-params
-h__FUc
-h(unsigned char)
-h
-#
---format=hp --no-params
-f__Fic
-f(int, char)
-f
-#
---format=hp --no-params
-h__FUi
-h(unsigned int)
-h
-#
---format=hp --no-params
-h__Fci
-h(char, int)
-h
-#
---format=hp --no-params
-h__FUl
-h(unsigned long)
-h
-#
---format=hp --no-params
-h__Fcl
-h(char, long)
-h
-#
---format=hp --no-params
-h__FUs
-h(unsigned short)
-h
-#
---format=hp --no-params
-h__Fcs
-h(char, short)
-h
-#
---format=hp --no-params
-h__FcT1
-h(char, char)
-h
-#
---format=hp --no-params
-f__Ficd
-f(int, char, double)
-f
-#
---format=hp --no-params
-f__FicdPcPFci_v
-f(int, char, double, char *, void (*)(char, int))
-f
-#
---format=hp --no-params
-f__FicdPcPFic_v
-f(int, char, double, char *, void (*)(int, char))
-f
-#
---format=hp --no-params
-get__2T7SFv
-T7::get(void) static
-T7::get
-#
---format=hp --no-params
-h__Fc
-h(char)
-h
-#
---format=hp --no-params
-h__Fd
-h(double)
-h
-#
---format=hp --no-params
-h__Ff
-h(float)
-h
-#
---format=hp --no-params
-h__Fi
-h(int)
-h
-#
---format=hp --no-params
-f__Fi
-f(int)
-f
-#
---format=hp --no-params
-h__Fl
-h(long)
-h
-#
---format=hp --no-params
-h__Fs
-h(short)
-h
-#
---format=hp --no-params
-f__FicdPc
-f(int, char, double, char *)
-f
-#
---format=hp --no-params
-__nw__FUi
-operator new(unsigned int)
-operator new
-#
---format=hp --no-params
-__ct__Q3_2T11a1bSFi
-T1::a::b::b(int) static
-T1::a::b::b
-#
---format=hp --no-params
-__dt__Q3_2T11a1bSFi
-T1::a::b::~b(int) static
-T1::a::b::~b
-#
---format=hp --no-params
-put__Q3_2T11a1bSFi
-T1::a::b::put(int) static
-T1::a::b::put
-#
---format=hp --no-params
-get__Q2_2T11aSFv
-T1::a::get(void) static
-T1::a::get
-#
---format=hp --no-params
-put__2T1SFi
-T1::put(int) static
-T1::put
-#
---format=hp --no-params
-put__Q5_2T11a1b1c1dSFi
-T1::a::b::c::d::put(int) static
-T1::a::b::c::d::put
-#
---format=hp --no-params
-get__Q4_2T11a1b1cSFv
-T1::a::b::c::get(void) static
-T1::a::b::c::get
-#
---format=hp --no-params
-put__Q2_2T11aSFi
-T1::a::put(int) static
-T1::a::put
-#
---format=hp --no-params
-put__Q4_2T11a1b1cSFi
-T1::a::b::c::put(int) static
-T1::a::b::c::put
-#
---format=hp --no-params
-get__Q3_2T11a1bSFv
-T1::a::b::get(void) static
-T1::a::b::get
-#
---format=hp --no-params
-get__2T1SFv
-T1::get(void) static
-T1::get
-#
---format=hp --no-params
-get__Q5_2T11a1b1c1dSFv
-T1::a::b::c::d::get(void) static
-T1::a::b::c::d::get
-#
---format=hp --no-params
-bar__3fooFPv
-foo::bar(void *)
-foo::bar
-#
---format=hp --no-params
-bar__3fooCFPv
-foo::bar(void *) const
-foo::bar
-#
---format=hp --no-params
-__eq__3fooFR3foo
-foo::operator==(foo &)
-foo::operator==
-#
---format=hp --no-params
-__eq__3fooCFR3foo
-foo::operator==(foo &) const
-foo::operator==
-#
---format=hp --no-params
-bar__3fooFiT16FooBar
-foo::bar(int, int, FooBar)
-foo::bar
-#
---format=hp --no-params
-bar__3fooFPiN51PdN37PcN211T1iN215
-foo::bar(int *, int *, int *, int *, int *, int *, double *, double *, double *, double *, char *, char *, char *, int *, int, int, int)
-foo::bar
-#
---format=hp --no-params
-__dt__2T5XTPFiPPdPv_i__Fv
-T5<int (*)(int, double **, void *)>::~T5(void)
-T5<int (*)(int, double **, void *)>::~T5
-#
---format=hp --no-params
-__ct__1cFi
-c::c(int)
-c::c
-#
---format=hp --no-params
-__dt__2T5XTi__Fv
-T5<int>::~T5(void)
-T5<int>::~T5
-#
---format=hp --no-params
-__dt__2T5XTc__Fv
-T5<char>::~T5(void)
-T5<char>::~T5
-#
---format=hp --no-params
-__ct__2T2Fi
-T2::T2(int)
-T2::T2
-#
---format=hp --no-params
-__dt__2T1Fv
-T1::~T1(void)
-T1::~T1
-#
---format=hp --no-params
-__dt__2T5XT1x__Fv
-T5<x>::~T5(void)
-T5<x>::~T5
-#
---format=hp --no-params
-__dt__2T5XTPFcPv_i__Fv
-T5<int (*)(char, void *)>::~T5(void)
-T5<int (*)(char, void *)>::~T5
-#
---format=hp --no-params
-__ct__2T5XTPFiPPdPv_i__Fi
-T5<int (*)(int, double **, void *)>::T5(int)
-T5<int (*)(int, double **, void *)>::T5
-#
---format=hp --no-params
-__dl__2T5XT1x__SFPv
-T5<x>::operator delete(void *) static
-T5<x>::operator delete
-#
---format=hp --no-params
-X__2T5XT1x
-T5<x>::X
-T5<x>::X
-#
---format=hp --no-params
-__ct__2T5XTi__Fi
-T5<int>::T5(int)
-T5<int>::T5
-#
---format=hp --no-params
-__ct__2T5XTc__Fi
-T5<char>::T5(int)
-T5<char>::T5
-#
---format=hp --no-params
-__dl__2T5XTPFcPv_i__SFPv
-T5<int (*)(char, void *)>::operator delete(void *) static
-T5<int (*)(char, void *)>::operator delete
-#
---format=hp --no-params
-X__2T5XTPFcPv_i
-T5<int (*)(char, void *)>::X
-T5<int (*)(char, void *)>::X
-#
---format=hp --no-params
-__ct__2T5XT1x__Fi
-T5<x>::T5(int)
-T5<x>::T5
-#
---format=hp --no-params
-__dl__2T5XTPFiPPdPv_i__SFPv
-T5<int (*)(int, double **, void *)>::operator delete(void *) static
-T5<int (*)(int, double **, void *)>::operator delete
-#
---format=hp --no-params
-X__2T5XTPFiPPdPv_i
-T5<int (*)(int, double **, void *)>::X
-T5<int (*)(int, double **, void *)>::X
-#
---format=hp --no-params
-__dl__2T5XTi__SFPv
-T5<int>::operator delete(void *) static
-T5<int>::operator delete
-#
---format=hp --no-params
-__dl__2T5XTc__SFPv
-T5<char>::operator delete(void *) static
-T5<char>::operator delete
-#
---format=hp --no-params
-X__2T5XTc
-T5<char>::X
-T5<char>::X
-#
---format=hp --no-params
-X__2T5XTi
-T5<int>::X
-T5<int>::X
-#
---format=hp --no-params
-__ct__2T5XTPFcPv_i__Fi
-T5<int (*)(char, void *)>::T5(int)
-T5<int (*)(char, void *)>::T5
-#
---format=hp --no-params
-__dt__2T1XTc__Fv
-T1<char>::~T1(void)
-T1<char>::~T1
-#
---format=hp --no-params
-__dt__2T1XT1t__Fv
-T1<t>::~T1(void)
-T1<t>::~T1
-#
---format=hp --no-params
-__dl__2T1XT1t__SFPv
-T1<t>::operator delete(void *) static
-T1<t>::operator delete
-#
---format=hp --no-params
-__ct__2T1XTc__Fi
-T1<char>::T1(int)
-T1<char>::T1
-#
---format=hp --no-params
-__ct__2T1XTc__Fv
-T1<char>::T1(void)
-T1<char>::T1
-#
---format=hp --no-params
-__ct__2T1XT1t__Fi
-T1<t>::T1(int)
-T1<t>::T1
-#
---format=hp --no-params
-__ct__2T1XT1t__Fv
-T1<t>::T1(void)
-T1<t>::T1
-#
---format=hp --no-params
-__dl__2T1XTc__SFPv
-T1<char>::operator delete(void *) static
-T1<char>::operator delete
-#
---format=hp --no-params
-elem__6vectorXTd__Fi
-vector<double>::elem(int)
-vector<double>::elem
-#
---format=hp --no-params
-elem__6vectorXTi__Fi
-vector<int>::elem(int)
-vector<int>::elem
-#
---format=hp --no-params
-__ct__6vectorXTd__Fi
-vector<double>::vector(int)
-vector<double>::vector
-#
---format=hp --no-params
-__ct__6vectorXTi__Fi
-vector<int>::vector(int)
-vector<int>::vector
-#
---format=hp --no-params
-__ct__9DListNodeXTR6RLabel__FR6RLabelP9DListNodeXTR6RLabel_T2
-DListNode<RLabel &>::DListNode(RLabel &, DListNode<RLabel &> *, DListNode<RLabel &> *)
-DListNode<RLabel &>::DListNode
-#
---format=hp --no-params
-elem__6vectorXTiUP34__Fi
-vector<int,34U>::elem(int)
-vector<int,34U>::elem
-#
---format=hp --no-params
-elem__6vectorXUP2701Td__Fi
-vector<2701U,double>::elem(int)
-vector<2701U,double>::elem
-#
---format=hp --no-params
-elem__6vectorXTiSP334__Fi
-vector<int,334>::elem(int)
-vector<int,334>::elem
-#
---format=hp --no-params
-elem__6vectorXTiSN67__Fi
-vector<int,-67>::elem(int)
-vector<int,-67>::elem
-#
---format=hp --no-params
-elem__6vectorXTiSM__SCFPPd
-vector<int,-2147483648>::elem(double **) static const
-vector<int,-2147483648>::elem
-#
---format=hp --no-params
-elem__6vectorXTiSN67UP4000TRs__Fi
-vector<int,-67,4000U,short &>::elem(int)
-vector<int,-67,4000U,short &>::elem
-#
---format=hp --no-params
-elem__6vectorXTiSN67TRdTFPv_i__Fi
-vector<int,-67,double &,int (void *)>::elem(int)
-vector<int,-67,double &,int (void *)>::elem
-#
---format=hp --no-params
-X__6vectorXTiSN67TdTPvUP5TRs
-vector<int,-67,double,void *,5U,short &>::X
-vector<int,-67,double,void *,5U,short &>::X
-#
---format=hp --no-params
-elem__6vectorXTiA3foo__Fi
-vector<int,&foo>::elem(int)
-vector<int,&foo>::elem
-#
---format=hp --no-params
-elem__6vectorXTiA3fooTPvA5Label__FiPPvT2
-vector<int,&foo,void *,&Label>::elem(int, void **, void **)
-vector<int,&foo,void *,&Label>::elem
-#
---format=hp --no-params
-elem__6vectorXTiSN42A3foo__Fi
-vector<int,-42,&foo>::elem(int)
-vector<int,-42,&foo>::elem
-#
---format=hp --no-params
-__ct__2T5XTPFcPv_i__Fi_2
-T5<int (*)(char, void *)>::T5(int)
-T5<int (*)(char, void *)>::T5
-#
---format=hp --no-params
-__ct__2T5XTPFcPv_i__Fi_19
-T5<int (*)(char, void *)>::T5(int)
-T5<int (*)(char, void *)>::T5
-#
---format=hp --no-params
-f__FicdPcPFci_v_34
-f(int, char, double, char *, void (*)(char, int))
-f
-#
---format=hp --no-params
-spec__13Spec<#1,#1.*>XTiTPi_FPi
-Spec<int,int *>::spec(int *)
-Spec<int,int *>::spec
-#
---format=hp --no-params
-spec__16Spec<#1,#1.&,#1>XTiTRiTi_FPi
-Spec<int,int &,int>::spec(int *)
-Spec<int,int &,int>::spec
-#
---format=hp --no-params
-add__XTc_FcT1
-add<char>(char, char)
-add<char>
-#
---format=hp --no-params
-add__XTcSP9A5label_FcPPlT1
-add<char,9,&label>(char, long **, char)
-add<char,9,&label>
-#
---format=hp --no-params
-add__XTPfTFPd_f_FcT1
-add<float *,float (double *)>(char, char)
-add<float *,float (double *)>
-#
---format=hp --no-params
-unLink__12basic_stringXTcT18string_char_traitsXTc_T9allocator_Fv
-basic_string<char,string_char_traits<char>,allocator>::unLink(void)
-basic_string<char,string_char_traits<char>,allocator>::unLink
-#
-# A regression test with no args.  This used to cause a segv.
-
-_Utf390_1__1_9223372036854775807__9223372036854775
-_Utf390_1__1_9223372036854775807__9223372036854775
-#
---format=gnu --no-params
-call__H1Z4Test_RX01_t1C2ZX01PMX01FPX01i_vQ2X016output
-C<Test, Test::output> call<Test>(Test &)
-C<Test, Test::output> call<Test>
-#
---format=gnu --no-params
-fn__FPQ21n1cPMQ21n1cFPQ21n1c_i
-fn(n::c *, int (n::c::*)(n::c *))
-fn
-#
---format=gnu --no-params
-f__FGt3Bar1i2G1i
-f(Bar<2>, i)
-f
-#
---format=gnu --no-params
-f__FGt3Bar1i21i
-f(Bar<21>, int)
-f
-#
---format=gnu --no-params
-f__FGt3Bar1i2G4XY_t
-f(Bar<2>, XY_t)
-f
-#
---format=gnu --no-params
-foo__H1Zt2TA2ZRCiZt2NA1Ui9_X01_i
-int foo<TA<int const &, NA<9> > >(TA<int const &, NA<9> >)
-int foo<TA<int const &, NA<9> > >
-#
---format=gnu --no-params
-foo__H1Zt2TA2ZcZt2NA1Ui20_X01_i
-int foo<TA<char, NA<20> > >(TA<char, NA<20> >)
-int foo<TA<char, NA<20> > >
-#
---format=gnu --no-params
-foo__H1Zt2TA2ZiZt8N___A___1Ui99_X01_i
-int foo<TA<int, N___A___<99> > >(TA<int, N___A___<99> >)
-int foo<TA<int, N___A___<99> > >
-#
---format=gnu --no-params
-foo__H1Zt2TA2ZRCiZt2NA1im1_X01_i
-int foo<TA<int const &, NA<-1> > >(TA<int const &, NA<-1> >)
-int foo<TA<int const &, NA<-1> > >
-#
---format=gnu --no-params
-foo__H1Zt2TA2ZRCiZt2NA1im9_X01_i
-int foo<TA<int const &, NA<-9> > >(TA<int const &, NA<-9> >)
-int foo<TA<int const &, NA<-9> > >
-#
---format=gnu --no-params
-foo__H1Zt2TA2ZcZt2NA1i_m20__X01_i
-int foo<TA<char, NA<-20> > >(TA<char, NA<-20> >)
-int foo<TA<char, NA<-20> > >
-#
---format=gnu --no-params
-foo__H1Zt2TA2ZcZt2NA1im1_X01_i
-int foo<TA<char, NA<-1> > >(TA<char, NA<-1> >)
-int foo<TA<char, NA<-1> > >
-#
---format=gnu --no-params
-foo__H1Zt2TA2ZiZt4N__A1im9_X01_i
-int foo<TA<int, N__A<-9> > >(TA<int, N__A<-9> >)
-int foo<TA<int, N__A<-9> > >
-#
---format=gnu --no-params
-foo__H1Zt2TA2ZiZt4N__A1i_m99__X01_i
-int foo<TA<int, N__A<-99> > >(TA<int, N__A<-99> >)
-int foo<TA<int, N__A<-99> > >
-#
---format=gnu --no-params
-__opi__t2TA2ZiZt4N__A1i9
-TA<int, N__A<9> >::operator int(void)
-TA<int, N__A<9> >::operator int
-#
---format=gnu --no-params
-__opi__t2TA2ZiZt8N___A___1i_m99_
-TA<int, N___A___<-99> >::operator int(void)
-TA<int, N___A___<-99> >::operator int
-#
---format=gnu --no-params
-foo___bar__baz_____H1Zt2TA2ZiZt8N___A___1i99_X01_i
-int foo___bar__baz___<TA<int, N___A___<99> > >(TA<int, N___A___<99> >)
-int foo___bar__baz___<TA<int, N___A___<99> > >
-#
---format=gnu --no-params
-foo__bar___foobar_____t2TA2ZiZt8N___A___1i_m99_
-TA<int, N___A___<-99> >::foo__bar___foobar___(void)
-TA<int, N___A___<-99> >::foo__bar___foobar___
-#
---format=gnu --no-params
-foo__bar___foobar_____t2TA2ZiZt4N__A1i9
-TA<int, N__A<9> >::foo__bar___foobar___(void)
-TA<int, N__A<9> >::foo__bar___foobar___
-#
---format=gnu --no-params
-__tfP8sockaddr
-sockaddr * type_info function
-sockaddr * type_info function
-#
---format=gnu --no-params
-__tfPQ25libcwt16option_event_tct1Z12burst_app_ct
-libcw::option_event_tct<burst_app_ct> * type_info function
-libcw::option_event_tct<burst_app_ct> * type_info function
-#
---format=gnu --no-params
-__tiP8sockaddr
-sockaddr * type_info node
-sockaddr * type_info node
-#
---format=gnu --no-params
-__tiPQ25libcwt16option_event_tct1Z12burst_app_ct
-libcw::option_event_tct<burst_app_ct> * type_info node
-libcw::option_event_tct<burst_app_ct> * type_info node
-#
---format=gnu --no-params
-_27_GLOBAL_.N.__12burst_app_ct.app_instance
-{anonymous}::app_instance
-{anonymous}::app_instance
-#
---format=gnu --no-params
-_26_GLOBAL_$N$_tmp_n.iilg4Gya$app_instance
-{anonymous}::app_instance
-{anonymous}::app_instance
-#
---format=java
-_ZN4java3awt10ScrollPane7addImplEPNS0_9ComponentEPNS_4lang6ObjectEi
-java.awt.ScrollPane.addImpl(java.awt.Component, java.lang.Object, int)
-#
---format=java
-_ZN4java3awt4geom15AffineTransform9getMatrixEP6JArrayIdE
-java.awt.geom.AffineTransform.getMatrix(double[])
-#
---format=java
-_ZN23Mangle$Inner$InnerInner3fooEP6JArrayIPS0_IiEEdPS0_IPS0_IPS0_IPS0_IPN4java4lang6StringEEEEEPS0_IPS0_IPN6MangleEEE
-Mangle$Inner$InnerInner.foo(int[][], double, java.lang.String[][][][], Mangle[][])
-#
---format=java
-_ZN6JArray1tEP6JArrayIPS_E
-JArray.t(JArray[])
-#
---format=java
-_ZN4Prim1iEibcdfwPN4java4lang6StringEsx
-Prim.i(int, boolean, byte, double, float, char, java.lang.String, short, long)
-#
---format=java
-_ZN4java4util14Map__U24_Entry11class__U24_E
-java.util.Map$Entry.class$
-#
---format=java
-_ZN3org7eclipse3cdt5debug8internal4core5model9CVariable6sizeof$Ev
-org.eclipse.cdt.debug.internal.core.model.CVariable.sizeof()
-#
---format=hp --no-params
-_Utf58_0_1__1_2147483647__2147483648
-_Utf58_0_1__1_2147483647__2147483648
-_Utf58_0_1__1_2147483647__2147483648
-#
---format=gnu-v3 --no-params
-St9bad_alloc
-std::bad_alloc
-std::bad_alloc
-#
---format=gnu-v3 --no-params
-_ZN1f1fE
-f::f
-f::f
-#
---format=gnu-v3 --no-params
-_Z1fv
-f()
-f
-#
---format=gnu-v3 --no-params
-_Z1fi
-f(int)
-f
-#
---format=gnu-v3 --no-params
-_Z3foo3bar
-foo(bar)
-foo
-#
---format=gnu-v3 --no-params
-_Zrm1XS_
-operator%(X, X)
-operator%
-#
---format=gnu-v3 --no-params
-_ZplR1XS0_
-operator+(X&, X&)
-operator+
-#
---format=gnu-v3 --no-params
-_ZlsRK1XS1_
-operator<<(X const&, X const&)
-operator<<
-#
---format=gnu-v3 --no-params
-_ZN3FooIA4_iE3barE
-Foo<int [4]>::bar
-Foo<int [4]>::bar
-#
---format=gnu-v3 --no-params
-_Z1fIiEvi
-void f<int>(int)
-f<int>
-#
---format=gnu-v3 --no-params
-_Z5firstI3DuoEvS0_
-void first<Duo>(Duo)
-first<Duo>
-#
---format=gnu-v3 --no-params
-_Z5firstI3DuoEvT_
-void first<Duo>(Duo)
-first<Duo>
-#
---format=gnu-v3 --no-params
-_Z3fooIiFvdEiEvv
-void foo<int, void ()(double), int>()
-foo<int, void ()(double), int>
-#
---format=gnu-v3 --no-params
-_ZN1N1fE
-N::f
-N::f
-#
---format=gnu-v3 --no-params
-_ZN6System5Sound4beepEv
-System::Sound::beep()
-System::Sound::beep
-#
---format=gnu-v3 --no-params
-_ZN5Arena5levelE
-Arena::level
-Arena::level
-#
---format=gnu-v3 --no-params
-_ZN5StackIiiE5levelE
-Stack<int, int>::level
-Stack<int, int>::level
-#
---format=gnu-v3 --no-params
-_Z1fI1XEvPVN1AIT_E1TE
-void f<X>(A<X>::T volatile*)
-f<X>
-#
---format=gnu-v3 --no-params
-_ZngILi42EEvN1AIXplT_Li2EEE1TE
-void operator-<42>(A<(42) + (2)>::T)
-operator-<42>
-#
---format=gnu-v3 --no-params
-_Z4makeI7FactoryiET_IT0_Ev
-Factory<int> make<Factory, int>()
-make<Factory, int>
-#
---format=gnu-v3 --no-params
-_Z4makeI7FactoryiET_IT0_Ev
-Factory<int> make<Factory, int>()
-make<Factory, int>
-#
---format=gnu-v3 --no-params
-_Z3foo5Hello5WorldS0_S_
-foo(Hello, World, World, Hello)
-foo
-#
---format=gnu-v3 --no-params
-_Z3fooPM2ABi
-foo(int AB::**)
-foo
-#
---format=gnu-v3 --no-params
-_ZlsRSoRKSs
-operator<<(std::ostream&, std::string const&)
-operator<<
-#
---format=gnu-v3 --no-params
-_ZTI7a_class
-typeinfo for a_class
-typeinfo for a_class
-#
---format=gnu-v3 --no-params
-U4_farrVKPi
-int* const volatile restrict _far
-int* const volatile restrict _far
-# 
---format=gnu-v3 --no-params
-_Z3fooILi2EEvRAplT_Li1E_i
-void foo<2>(int (&) [(2) + (1)])
-foo<2>
-# 
---format=gnu-v3 --no-params
-_Z1fM1AKFvvE
-f(void (A::*)() const)
-f
-#
---format=gnu-v3 --no-params
-_Z3fooc
-foo(char)
-foo
-#
---format=gnu-v3 --no-params
-2CBIL_Z3foocEE
-CB<foo(char)>
-CB<foo(char)>
-#
---format=gnu-v3 --no-params
-2CBIL_Z7IsEmptyEE
-CB<IsEmpty>
-CB<IsEmpty>
-#
---format=gnu-v3 --no-params
-_ZZN1N1fEiE1p
-N::f(int)::p
-N::f(int)::p
-#
---format=gnu-v3 --no-params
-_ZZN1N1fEiEs
-N::f(int)::string literal
-N::f(int)::string literal
-# 
---format=gnu-v3 --no-params
-_Z1fPFvvEM1SFvvE
-f(void (*)(), void (S::*)())
-f
-#
---format=gnu-v3 --no-params
-_ZN1N1TIiiE2mfES0_IddE
-N::T<int, int>::mf(N::T<double, double>)
-N::T<int, int>::mf
-# 
---format=gnu-v3 --no-params
-_ZSt5state
-std::state
-std::state
-# 
---format=gnu-v3 --no-params
-_ZNSt3_In4wardE
-std::_In::ward
-std::_In::ward
-#
---format=gnu-v3 --no-params
-_Z1fKPFiiE
-f(int (* const)(int))
-f
-#
---format=gnu-v3 --no-params
-_Z1fAszL_ZZNK1N1A1fEvE3foo_0E_i
-f(int [sizeof (N::A::f() const::foo)])
-f
-#
---format=gnu-v3 --no-params
-_Z1fA37_iPS_
-f(int [37], int (*) [37])
-f
-#
---format=gnu-v3 --no-params
-_Z1fM1AFivEPS0_
-f(int (A::*)(), int (*)())
-f
-#
---format=gnu-v3 --no-params
-_Z1fPFPA1_ivE
-f(int (*(*)()) [1])
-f
-#
---format=gnu-v3 --no-params
-_Z1fPKM1AFivE
-f(int (A::* const*)())
-f
-#
---format=gnu-v3 --no-params
-_Z1jM1AFivEPS1_
-j(int (A::*)(), int (A::**)())
-j
-#
---format=gnu-v3 --no-params
-_Z1sPA37_iPS0_
-s(int (*) [37], int (**) [37])
-s
-#
---format=gnu-v3 --no-params
-_Z3fooA30_A_i
-foo(int [30][])
-foo
-#
---format=gnu-v3 --no-params
-_Z3kooPA28_A30_i
-koo(int (*) [28][30])
-koo
-#
---format=gnu-v3 --no-params
-_ZlsRKU3fooU4bart1XS0_
-operator<<(X bart foo const&, X bart)
-operator<<
-#
---format=gnu-v3 --no-params
-_ZlsRKU3fooU4bart1XS2_
-operator<<(X bart foo const&, X bart foo const)
-operator<<
-#
---format=gnu-v3 --no-params
-_Z1fM1AKFivE
-f(int (A::*)() const)
-f
-#
---format=gnu-v3 --no-params
-_Z3absILi11EEvv
-void abs<11>()
-abs<11>
-#
---format=gnu-v3 --no-params
-_ZN1AIfEcvT_IiEEv
-A<float>::operator int<int>()
-A<float>::operator int<int>
-#
---format=gnu-v3 --no-params
-_ZN12libcw_app_ct10add_optionIS_EEvMT_FvPKcES3_cS3_S3_
-void libcw_app_ct::add_option<libcw_app_ct>(void (libcw_app_ct::*)(char const*), char const*, char, char const*, char const*)
-libcw_app_ct::add_option<libcw_app_ct>
-#
---format=gnu-v3 --no-params
-_ZGVN5libcw24_GLOBAL__N_cbll.cc0ZhUKa23compiler_bug_workaroundISt6vectorINS_13omanip_id_tctINS_5debug32memblk_types_manipulator_data_ctEEESaIS6_EEE3idsE
-guard variable for libcw::(anonymous namespace)::compiler_bug_workaround<std::vector<libcw::omanip_id_tct<libcw::debug::memblk_types_manipulator_data_ct>, std::allocator<libcw::omanip_id_tct<libcw::debug::memblk_types_manipulator_data_ct> > > >::ids
-guard variable for libcw::(anonymous namespace)::compiler_bug_workaround<std::vector<libcw::omanip_id_tct<libcw::debug::memblk_types_manipulator_data_ct>, std::allocator<libcw::omanip_id_tct<libcw::debug::memblk_types_manipulator_data_ct> > > >::ids
-#
---format=gnu-v3 --no-params
-_ZN5libcw5debug13cwprint_usingINS_9_private_12GlobalObjectEEENS0_17cwprint_using_tctIT_EERKS5_MS5_KFvRSt7ostreamE
-libcw::debug::cwprint_using_tct<libcw::_private_::GlobalObject> libcw::debug::cwprint_using<libcw::_private_::GlobalObject>(libcw::_private_::GlobalObject const&, void (libcw::_private_::GlobalObject::*)(std::ostream&) const)
-libcw::debug::cwprint_using<libcw::_private_::GlobalObject>
-#
---format=gnu-v3 --no-params
-_ZNKSt14priority_queueIP27timer_event_request_base_ctSt5dequeIS1_SaIS1_EE13timer_greaterE3topEv
-std::priority_queue<timer_event_request_base_ct*, std::deque<timer_event_request_base_ct*, std::allocator<timer_event_request_base_ct*> >, timer_greater>::top() const
-std::priority_queue<timer_event_request_base_ct*, std::deque<timer_event_request_base_ct*, std::allocator<timer_event_request_base_ct*> >, timer_greater>::top
-#
---format=gnu-v3 --no-params
-_ZNKSt15_Deque_iteratorIP15memory_block_stRKS1_PS2_EeqERKS5_
-std::_Deque_iterator<memory_block_st*, memory_block_st* const&, memory_block_st* const*>::operator==(std::_Deque_iterator<memory_block_st*, memory_block_st* const&, memory_block_st* const*> const&) const
-std::_Deque_iterator<memory_block_st*, memory_block_st* const&, memory_block_st* const*>::operator==
-#
---format=gnu-v3 --no-params
-_ZNKSt17__normal_iteratorIPK6optionSt6vectorIS0_SaIS0_EEEmiERKS6_
-std::__normal_iterator<option const*, std::vector<option, std::allocator<option> > >::operator-(std::__normal_iterator<option const*, std::vector<option, std::allocator<option> > > const&) const
-std::__normal_iterator<option const*, std::vector<option, std::allocator<option> > >::operator-
-#
---format=gnu-v3 --no-params
-_ZNSbIcSt11char_traitsIcEN5libcw5debug27no_alloc_checking_allocatorEE12_S_constructIPcEES6_T_S7_RKS3_
-char* std::basic_string<char, std::char_traits<char>, libcw::debug::no_alloc_checking_allocator>::_S_construct<char*>(char*, char*, libcw::debug::no_alloc_checking_allocator const&)
-std::basic_string<char, std::char_traits<char>, libcw::debug::no_alloc_checking_allocator>::_S_construct<char*>
-#
---format=gnu-v3 --no-params
-_Z1fI1APS0_PKS0_EvT_T0_T1_PA4_S3_M1CS8_
-void f<A, A*, A const*>(A, A*, A const*, A const* (*) [4], A const* (* C::*) [4])
-f<A, A*, A const*>
-#
---format=gnu-v3 --no-params
-_Z3fooiPiPS_PS0_PS1_PS2_PS3_PS4_PS5_PS6_PS7_PS8_PS9_PSA_PSB_PSC_
-foo(int, int*, int**, int***, int****, int*****, int******, int*******, int********, int*********, int**********, int***********, int************, int*************, int**************, int***************)
-foo
-#
---format=gnu-v3 --no-params
-_ZSt1BISt1DIP1ARKS2_PS3_ES0_IS2_RS2_PS2_ES2_ET0_T_SB_SA_PT1_
-std::D<A*, A*&, A**> std::B<std::D<A*, A* const&, A* const*>, std::D<A*, A*&, A**>, A*>(std::D<A*, A* const&, A* const*>, std::D<A*, A* const&, A* const*>, std::D<A*, A*&, A**>, A**)
-std::B<std::D<A*, A* const&, A* const*>, std::D<A*, A*&, A**>, A*>
-#
---format=gnu-v3 --no-params
-_X11TransParseAddress
-_X11TransParseAddress
-_X11TransParseAddress
-#
---format=gnu-v3 --no-params
-_ZNSt13_Alloc_traitsISbIcSt18string_char_traitsIcEN5libcw5debug9_private_17allocator_adaptorIcSt24__default_alloc_templateILb0ELi327664EELb1EEEENS5_IS9_S7_Lb1EEEE15_S_instancelessE
-std::_Alloc_traits<std::basic_string<char, std::string_char_traits<char>, libcw::debug::_private_::allocator_adaptor<char, std::__default_alloc_template<false, 327664>, true> >, libcw::debug::_private_::allocator_adaptor<std::basic_string<char, std::string_char_traits<char>, libcw::debug::_private_::allocator_adaptor<char, std::__default_alloc_template<false, 327664>, true> >, std::__default_alloc_template<false, 327664>, true> >::_S_instanceless
-std::_Alloc_traits<std::basic_string<char, std::string_char_traits<char>, libcw::debug::_private_::allocator_adaptor<char, std::__default_alloc_template<false, 327664>, true> >, libcw::debug::_private_::allocator_adaptor<std::basic_string<char, std::string_char_traits<char>, libcw::debug::_private_::allocator_adaptor<char, std::__default_alloc_template<false, 327664>, true> >, std::__default_alloc_template<false, 327664>, true> >::_S_instanceless
-#
---format=gnu-v3 --no-params
-_GLOBAL__I__Z2fnv
-global constructors keyed to _Z2fnv
-global constructors keyed to _Z2fnv
-#
---format=gnu-v3 --no-params
-_Z1rM1GFivEMS_KFivES_M1HFivES1_4whatIKS_E5what2IS8_ES3_
-r(int (G::*)(), int (G::*)() const, G, int (H::*)(), int (G::*)(), what<G const>, what2<G const>, int (G::*)() const)
-r
-#
-# This is from the gdb testsuite gdb.cp/cplusfuncs.exp.
---format=gnu-v3 --no-params
-_Z10hairyfunc5PFPFilEPcE
-hairyfunc5(int (*(*)(char*))(long))
-hairyfunc5
-#
-# This is from gcc PR 8861
---format=gnu-v3 --no-params
-_Z1fILi1ELc120EEv1AIXplT_cviLd810000000000000000703DAD7A370C5EEE
-void f<1, (char)120>(A<(1) + ((int)((double)[810000000000000000703DAD7A370C5]))>)
-f<1, (char)120>
-#
-# This is also from gcc PR 8861
---format=gnu-v3 --no-params
-_Z1fILi1EEv1AIXplT_cvingLf3f800000EEE
-void f<1>(A<(1) + ((int)(-((float)[3f800000])))>)
-f<1>
-#
-# This is from a libstdc++ debug mode patch.
---format=gnu-v3 --no-params
-_ZNK11__gnu_debug16_Error_formatter14_M_format_wordImEEvPciPKcT_
-void __gnu_debug::_Error_formatter::_M_format_word<unsigned long>(char*, int, char const*, unsigned long) const
-__gnu_debug::_Error_formatter::_M_format_word<unsigned long>
-#
-# The new demangler used to core dump on this.
---format=gnu-v3 --no-params
-_ZSt18uninitialized_copyIN9__gnu_cxx17__normal_iteratorIPSt4pairISsPFbP6sqlitePPcEESt6vectorIS9_SaIS9_EEEESE_ET0_T_SG_SF_
-__gnu_cxx::__normal_iterator<std::pair<std::string, bool (*)(sqlite*, char**)>*, std::vector<std::pair<std::string, bool (*)(sqlite*, char**)>, std::allocator<std::pair<std::string, bool (*)(sqlite*, char**)> > > > std::uninitialized_copy<__gnu_cxx::__normal_iterator<std::pair<std::string, bool (*)(sqlite*, char**)>*, std::vector<std::pair<std::string, bool (*)(sqlite*, char**)>, std::allocator<std::pair<std::string, bool (*)(sqlite*, char**)> > > >, __gnu_cxx::__normal_iterator<std::pair<std::string, bool (*)(sqlite*, char**)>*, std::vector<std::pair<std::string, bool (*)(sqlite*, char**)>, std::allocator<std::pair<std::string, bool (*)(sqlite*, char**)> > > > >(__gnu_cxx::__normal_iterator<std::pair<std::string, bool (*)(sqlite*, char**)>*, std::vector<std::pair<std::string, bool (*)(sqlite*, char**)>, std::allocator<std::pair<std::string, bool (*)(sqlite*, char**)> > > >, __gnu_cxx::__normal_iterator<std::pair<std::string, bool (*)(sqlite*, char**)>*, std::vector<std::pair<std::string, bool (*)(sqlite*, char**)>, std::allocator<std::pair<std::string, bool (*)(sqlite*, char**)> > > >, __gnu_cxx::__normal_iterator<std::pair<std::string, bool (*)(sqlite*, char**)>*, std::vector<std::pair<std::string, bool (*)(sqlite*, char**)>, std::allocator<std::pair<std::string, bool (*)(sqlite*, char**)> > > >)
-std::uninitialized_copy<__gnu_cxx::__normal_iterator<std::pair<std::string, bool (*)(sqlite*, char**)>*, std::vector<std::pair<std::string, bool (*)(sqlite*, char**)>, std::allocator<std::pair<std::string, bool (*)(sqlite*, char**)> > > >, __gnu_cxx::__normal_iterator<std::pair<std::string, bool (*)(sqlite*, char**)>*, std::vector<std::pair<std::string, bool (*)(sqlite*, char**)>, std::allocator<std::pair<std::string, bool (*)(sqlite*, char**)> > > > >
-#
-# The new demangler used to fail on this.
---format=gnu-v3 --no-params
-_Z1fP1cIPFiiEE
-f(c<int (*)(int)>*)
-f
-#
-# Wrap expressions using '>' in an extra layer of parens to avoid
-# confusion with the '>' which ends the template parameters.
---format=gnu-v3 --no-params
-_Z4dep9ILi3EEvP3fooIXgtT_Li2EEE
-void dep9<3>(foo<((3) > (2))>*)
-dep9<3>
-#
-# Watch out for templated version of `operator<'--it needs an extra
-# space.
---format=gnu-v3 --no-params
-_ZStltI9file_pathSsEbRKSt4pairIT_T0_ES6_
-bool std::operator< <file_path, std::string>(std::pair<file_path, std::string> const&, std::pair<file_path, std::string> const&)
-std::operator< <file_path, std::string>
-#
-# More hairy qualifier handling.
---format=gnu-v3 --no-params
-_Z9hairyfuncM1YKFPVPFrPA2_PM1XKFKPA3_ilEPcEiE
-hairyfunc(int (* const (X::** (* restrict (* volatile* (Y::*)(int) const)(char*)) [2])(long) const) [3])
-hairyfunc
-#
-# Check that negative numbers are handled correctly.
---format=gnu-v3 --no-params
-_Z1fILin1EEvv
-void f<-1>()
-f<-1>
-#
-# Check a destructor of a standard substitution.
---format=gnu-v3 --no-params
-_ZNSdD0Ev
-std::basic_iostream<char, std::char_traits<char> >::~basic_iostream()
-std::basic_iostream<char, std::char_traits<char> >::~basic_iostream
-#
-# Another case where we got member function qualifiers wrong.
---format=gnu-v3 --no-params
-_ZNK15nsBaseHashtableI15nsUint32HashKey8nsCOMPtrI4IFooEPS2_E13EnumerateReadEPF15PLDHashOperatorRKjS4_PvES9_
-nsBaseHashtable<nsUint32HashKey, nsCOMPtr<IFoo>, IFoo*>::EnumerateRead(PLDHashOperator (*)(unsigned int const&, IFoo*, void*), void*) const
-nsBaseHashtable<nsUint32HashKey, nsCOMPtr<IFoo>, IFoo*>::EnumerateRead
-#
-# Another member function qualifier test case, when the member function
-# returns a pointer to function.
---format=gnu-v3 --no-params
-_ZNK1C1fIiEEPFivEv
-int (*C::f<int>() const)()
-C::f<int>
-#
-# Another case where we got member function qualifiers wrong.
---format=gnu-v3 --no-params
-_ZZ3BBdI3FooEvvENK3Fob3FabEv
-void BBd<Foo>()::Fob::Fab() const
-void BBd<Foo>()::Fob::Fab
-#
-# The same idea one level deeper.
---format=gnu-v3 --no-params
-_ZZZ3BBdI3FooEvvENK3Fob3FabEvENK3Gob3GabEv
-void BBd<Foo>()::Fob::Fab() const::Gob::Gab() const
-void BBd<Foo>()::Fob::Fab() const::Gob::Gab
-#
-# Yet another member function qualifier problem.
---format=gnu-v3 --no-params
-_ZNK5boost6spirit5matchI13rcs_deltatextEcvMNS0_4impl5dummyEFvvEEv
-boost::spirit::match<rcs_deltatext>::operator void (boost::spirit::impl::dummy::*)()() const
-boost::spirit::match<rcs_deltatext>::operator void (boost::spirit::impl::dummy::*)()
-#
-# Multi-dimensional arrays with qualifiers on the inner dimensions.
---format=gnu-v3 --no-params
-_Z3fooIA6_KiEvA9_KT_rVPrS4_
-void foo<int const [6]>(int const [9][6], int restrict const (* volatile restrict) [9][6])
-foo<int const [6]>
-#
-# From PR libstdc++/12736
---format=gnu-v3 --no-params
-_Z3fooIA3_iEvRKT_
-void foo<int [3]>(int const (&) [3])
-foo<int [3]>
-#
-# Related to PR libstdc++/12736
---format=gnu-v3 --no-params
-_Z3fooIPA3_iEvRKT_
-void foo<int (*) [3]>(int (* const&) [3])
-foo<int (*) [3]>
-#
-# This used to crash the demangler--PR 16240
---format=gnu-v3 --no-params
-_ZN13PatternDriver23StringScalarDeleteValueC1ERKNS_25ConflateStringScalarValueERKNS_25AbstractStringScalarValueERKNS_12TemplateEnumINS_12pdcomplementELZNS_16complement_namesEELZNS_14COMPLEMENTENUMEEEE
-_ZN13PatternDriver23StringScalarDeleteValueC1ERKNS_25ConflateStringScalarValueERKNS_25AbstractStringScalarValueERKNS_12TemplateEnumINS_12pdcomplementELZNS_16complement_namesEELZNS_14COMPLEMENTENUMEEEE
-PatternDriver::StringScalarDeleteValue::StringScalarDeleteValue
-#
-# This used to cause the demangler to walk into undefined memory--PR 22268
---format=gnu-v3 --no-params
-ALsetchannels
-ALsetchannels
-ALsetchannels
-# Test GNU V3 constructor and destructor identification.
-# 0 means it is not a constructor/destructor.
-# Other integers correspond to enum gnu_v3_{c,d}tor_kinds in demangle.h.
---is-v3-ctor
-_GLOBAL__I__Z2fnv
-0
-#
---is-v3-dtor
-_GLOBAL__I__Z2fnv
-0
-#
---is-v3-ctor
-_ZNSdC1Ev
-1
-#
---is-v3-dtor
-_ZNSdC1Ev
-0
-#
---is-v3-ctor
-_ZNSdD0Ev
-0
-#
---is-v3-dtor
-_ZNSdD0Ev
-1
-#
---is-v3-ctor
-_ZNSdC2Ev
-2
-#
---is-v3-dtor
-_ZNSdC2Ev
-0
-#
---is-v3-ctor
-_ZNSdD1Ev
-0
-#
---is-v3-dtor
-_ZNSdD1Ev
-2
-#
-# This caused an infinite loop.
-#
-# This is generated by an EDG compiler (kcc 4.0).  To demangle it
-# correctly, I believe that we have to understand that the J37J deep
-# in the string somehow refers back to the type starting 37 characters
-# in from some starting point, so that it winds up being the type
-# starting with 41THandle....  However, lacking a spec for EDG
-# demangling, it's hard to implement this.
-#
-# In the meantime, this symbol can be successfully demangled in GNU
-# mode.  Of course the result is more or less nonsense, but an older
-# version of g++ would indeed generate this mangled name given the
-# appropriate input, so the demangling is correct.
---format=auto --no-params
-__CPR212____ct__Q3_3std141list__tm__128_Q2_3edm41THandle__tm__26_Q2_4emid15EMparticleChunkQ2_3std68allocator__tm__51_Q2_3edmJ37J14const_iteratorFRCQ3_3std18list__tm__7_Z1ZZ2Z8iterator
-_Z1ZZ2Z::__CPR212____ct__Q3_3std141list__tm__128_Q2_3edm41THandle__tm__26_Q2_4emid15EMparticleChunkQ2_3std68allocator__tm__51_Q2_3edmJ37J14const_iteratorFRCQ3_3std18list__tm(iterator)
-_Z1ZZ2Z::__CPR212____ct__Q3_3std141list__tm__128_Q2_3edm41THandle__tm__26_Q2_4emid15EMparticleChunkQ2_3std68allocator__tm__51_Q2_3edmJ37J14const_iteratorFRCQ3_3std18list__tm
-#
-# This used to cause a crash. It doesn't follow the C++ encoding so
-# the demangled name should be identical to the original symbol name.
---format=auto --no-params
-_test_array__L_1__B23b___clean.6
-_test_array__L_1__B23b___clean.6
-_test_array__L_1__B23b___clean.6
-#
---format=java
-_ZGAN4java4lang5Class7forNameEPNS0_6StringE
-hidden alias for java.lang.Class.forName(java.lang.String)
-#
-# Test cases to verify encoding that determines if a return type is present
-# Related to PR9861
---format=java
-_ZN4java4lang4Math4acosEJdd
-java.lang.Math.acos(double)double
-#
---format=auto
-_ZN4java4lang4Math4acosEJdd
-double java::lang::Math::acos(double)
-#
---format=auto
-_ZN4java4lang4Math4acosEJvd
-void java::lang::Math::acos(double)
-#
---format=auto --ret-postfix
-_ZN4java4lang4Math4acosEJdd
-java::lang::Math::acos(double)double
-#
---format=gnu-v3 --no-params --ret-postfix
-_Z4makeI7FactoryiET_IT0_Ev
-make<Factory, int>()Factory<int>
-make<Factory, int>
diff --git a/libiberty/testsuite/test-demangle.c b/libiberty/testsuite/test-demangle.c
deleted file mode 100644
index 9379399..0000000
--- a/libiberty/testsuite/test-demangle.c
+++ /dev/null
@@ -1,297 +0,0 @@
-/* Demangler test program,
-   Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
-   Written by Zack Weinberg <zack@codesourcery.com
-
-   This file is part of GNU libiberty.
-
-   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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include "ansidecl.h"
-#include <stdio.h>
-#include "libiberty.h"
-#include "demangle.h"
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-#if HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-
-struct line
-{
-  size_t alloced;
-  char *data;
-};
-
-static unsigned int lineno;
-
-/* Safely read a single line of arbitrary length from standard input.  */
-
-#define LINELEN 80
-
-static void
-getline(buf)
-     struct line *buf;
-{
-  char *data = buf->data;
-  size_t alloc = buf->alloced;
-  size_t count = 0;
-  int c;
-
-  if (data == 0)
-    {
-      data = xmalloc (LINELEN);
-      alloc = LINELEN;
-    }
-
-  /* Skip comment lines.  */
-  while ((c = getchar()) == '#')
-    {
-      while ((c = getchar()) != EOF && c != '\n');
-      lineno++;
-    }
-
-  /* c is the first character on the line, and it's not a comment
-     line: copy this line into the buffer and return.  */
-  while (c != EOF && c != '\n')
-    {
-      if (count + 1 >= alloc)
-	{
-	  alloc *= 2;
-	  data = xrealloc (data, alloc);
-	}
-      data[count++] = c;
-      c = getchar();
-    }
-  lineno++;
-  data[count] = '\0';
-
-  buf->data = data;
-  buf->alloced = alloc;
-}
-
-static void
-fail (lineno, opts, in, out, exp)
-     int lineno;
-     const char *opts;
-     const char *in;
-     const char *out;
-     const char *exp;
-{
-  printf ("\
-FAIL at line %d, options %s:\n\
-in:  %s\n\
-out: %s\n\
-exp: %s\n",
-	  lineno, opts, in, out != NULL ? out : "(null)", exp);
-}
-
-/* The tester operates on a data file consisting of groups of lines:
-   options
-   input to be demangled
-   expected output
-
-   Supported options:
-     --format=<name>     Sets the demangling style.
-     --no-params         There are two lines of expected output; the first
-                         is with DMGL_PARAMS, the second is without it.
-     --is-v3-ctor        Calls is_gnu_v3_mangled_ctor on input; expected
-                         output is an integer representing ctor_kind.
-     --is-v3-dtor        Likewise, but for dtors.
-     --ret-postfix       Passes the DMGL_RET_POSTFIX option
-
-   For compatibility, just in case it matters, the options line may be
-   empty, to mean --format=auto.  If it doesn't start with --, then it
-   may contain only a format name.
-*/
-
-int
-main(argc, argv)
-     int argc;
-     char **argv;
-{
-  enum demangling_styles style = auto_demangling;
-  int no_params;
-  int is_v3_ctor;
-  int is_v3_dtor;
-  int ret_postfix;
-  struct line format;
-  struct line input;
-  struct line expect;
-  char *result;
-  int failures = 0;
-  int tests = 0;
-
-  if (argc > 1)
-    {
-      fprintf (stderr, "usage: %s < test-set\n", argv[0]);
-      return 2;
-    }
-
-  format.data = 0;
-  input.data = 0;
-  expect.data = 0;
-
-  for (;;)
-    {
-      getline (&format);
-      if (feof (stdin))
-	break;
-
-      getline (&input);
-      getline (&expect);
-
-      tests++;
-
-      no_params = 0;
-      ret_postfix = 0;
-      is_v3_ctor = 0;
-      is_v3_dtor = 0;
-      if (format.data[0] == '\0')
-	style = auto_demangling;
-      else if (format.data[0] != '-')
-	{
-	  style = cplus_demangle_name_to_style (format.data);
-	  if (style == unknown_demangling)
-	    {
-	      printf ("FAIL at line %d: unknown demangling style %s\n",
-		      lineno, format.data);
-	      failures++;
-	      continue;
-	    }
-	}
-      else
-	{
-	  char *p;
-	  char *opt;
-
-	  p = format.data;
-	  while (*p != '\0')
-	    {
-	      char c;
-
-	      opt = p;
-	      p += strcspn (p, " \t=");
-	      c = *p;
-	      *p = '\0';
-	      if (strcmp (opt, "--format") == 0 && c == '=')
-		{
-		  char *fstyle;
-
-		  *p = c;
-		  ++p;
-		  fstyle = p;
-		  p += strcspn (p, " \t");
-		  c = *p;
-		  *p = '\0';
-		  style = cplus_demangle_name_to_style (fstyle);
-		  if (style == unknown_demangling)
-		    {
-		      printf ("FAIL at line %d: unknown demangling style %s\n",
-			      lineno, fstyle);
-		      failures++;
-		      continue;
-		    }
-		}
-	      else if (strcmp (opt, "--no-params") == 0)
-		no_params = 1;
-	      else if (strcmp (opt, "--is-v3-ctor") == 0)
-		is_v3_ctor = 1;
-	      else if (strcmp (opt, "--is-v3-dtor") == 0)
-		is_v3_dtor = 1;
-	      else if (strcmp (opt, "--ret-postfix") == 0)
-		ret_postfix = 1;
-	      else
-		{
-		  printf ("FAIL at line %d: unrecognized option %s\n",
-			  lineno, opt);
-		  failures++;
-		  continue;
-		}
-	      *p = c;
-	      p += strspn (p, " \t");
-	    }
-	}
-
-      if (is_v3_ctor || is_v3_dtor)
-	{
-	  char buf[20];
-
-	  if (is_v3_ctor)
-	    {
-	      enum gnu_v3_ctor_kinds kc;
-
-	      kc = is_gnu_v3_mangled_ctor (input.data);
-	      sprintf (buf, "%d", (int) kc);
-	    }
-	  else
-	    {
-	      enum gnu_v3_dtor_kinds kd;
-
-	      kd = is_gnu_v3_mangled_dtor (input.data);
-	      sprintf (buf, "%d", (int) kd);
-	    }
-
-	  if (strcmp (buf, expect.data) != 0)
-	    {
-	      fail (lineno, format.data, input.data, buf, expect.data);
-	      failures++;
-	    }
-
-	  continue;
-	}
-
-      cplus_demangle_set_style (style);
-
-      result = cplus_demangle (input.data,
-			       DMGL_PARAMS|DMGL_ANSI|DMGL_TYPES
-			       |(ret_postfix ? DMGL_RET_POSTFIX : 0));
-
-      if (result
-	  ? strcmp (result, expect.data)
-	  : strcmp (input.data, expect.data))
-	{
-	  fail (lineno, format.data, input.data, result, expect.data);
-	  failures++;
-	}
-      free (result);
-
-      if (no_params)
-	{
-	  getline (&expect);
-	  result = cplus_demangle (input.data, DMGL_ANSI|DMGL_TYPES);
-
-	  if (result
-	      ? strcmp (result, expect.data)
-	      : strcmp (input.data, expect.data))
-	    {
-	      fail (lineno, format.data, input.data, result, expect.data);
-	      failures++;
-	    }
-	  free (result);
-	}
-    }
-
-  free (format.data);
-  free (input.data);
-  free (expect.data);
-
-  printf ("%s: %d tests, %d failures\n", argv[0], tests, failures);
-  return failures ? 1 : 0;
-}
diff --git a/libiberty/testsuite/test-expandargv.c b/libiberty/testsuite/test-expandargv.c
deleted file mode 100644
index 9d1af01..0000000
--- a/libiberty/testsuite/test-expandargv.c
+++ /dev/null
@@ -1,296 +0,0 @@
-/* expandargv test program,
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   Written by Carlos O'Donell <carlos@codesourcery.com>
-
-   This file is part of the libiberty library, which is part of GCC.
-
-   This file 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.
-
-   In addition to the permissions in the GNU General Public License, the
-   Free Software Foundation gives you unlimited permission to link the
-   compiled version of this file into combinations with other programs,
-   and to distribute those combinations without any restriction coming
-   from the use of this file.  (The General Public License restrictions
-   do apply in other respects; for example, they cover modification of
-   the file, and distribution when not linked into a combined
-   executable.)
-
-   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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. 
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include "libiberty.h"
-#include <stdio.h>
-#include <errno.h>
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-
-#ifndef EXIT_SUCCESS
-#define EXIT_SUCCESS 0
-#endif
-
-#ifndef EXIT_FAILURE
-#define EXIT_FAILURE 1
-#endif
-
-static void fatal_error (int, const char *, int) ATTRIBUTE_NORETURN;
-void writeout_test (int, const char *);
-void run_replaces (char *);
-void hook_char_replace (char *, size_t, char, char);
-int run_tests (const char **);
-void erase_test (int);
-
-/* Test input data, argv before, and argv after:
- 
-   The \n is an important part of test_data since expandargv
-   may have to work in environments where \n is translated
-   as \r\n. Thus \n is included in the test data for the file. 
-
-   We use \b to indicate that the test data is the null character.
-   This is because we use \0 normally to represent the end of the 
-   file data, so we need something else for this. */
-
-#define FILENAME_PATTERN "test-expandargv-%d.lst"
-#define ARGV0 "test-expandargv"
-
-const char *test_data[] = {
-  /* Test 0 - Check for expansion with \r\n */
-  "a\r\nb",	/* Test 0 data */
-  ARGV0,
-  "@test-expandargv-0.lst",
-  0, /* End of argv[] before expansion */
-  ARGV0,
-  "a",
-  "b",
-  0, /* End of argv[] after expansion */
-
-  /* Test 1 - Check for expansion with \n */
-  "a\nb",	/* Test 1 data */
-  ARGV0,
-  "@test-expandargv-1.lst",
-  0,
-  ARGV0,
-  "a",
-  "b",
-  0,
-
-  /* Test 2 - Check for expansion with \0 */
-  "a\bb",	/* Test 2 data */
-  ARGV0,
-  "@test-expandargv-2.lst",
-  0,
-  ARGV0,
-  "a",
-  0,
-
-  /* Test 3 - Check for expansion with only \0 */
-  "\b",		/* Test 3 data */
-  ARGV0,
-  "@test-expandargv-3.lst",
-  0,
-  ARGV0,
-  0,
-
-  0 /* Test done marker, don't remove. */
-};
-
-/* Print a fatal error and exit.  LINE is the line number where we
-   detected the error, ERRMSG is the error message to print, and ERR
-   is 0 or an errno value to print.  */
-
-static void
-fatal_error (int line, const char *errmsg, int err)
-{
-  fprintf (stderr, "test-expandargv:%d: %s", line, errmsg);
-  if (errno != 0)
-    fprintf (stderr, ": %s", xstrerror (err));
-  fprintf (stderr, "\n");
-  exit (EXIT_FAILURE);
-}
-
-/* hook_char_replace:
-     Replace 'replacethis' with 'withthis' */
-
-void
-hook_char_replace (char *string, size_t len, char replacethis, char withthis)
-{
-  int i = 0;
-  for (i = 0; i < len; i++)
-    if (string[i] == replacethis)
-      string[i] = withthis;
-}
-
-/* run_replaces:
-     Hook here all the character for character replaces.
-     Be warned that expanding the string or contracting the string
-     should be handled with care. */
-
-void
-run_replaces (char * string)
-{
-  /* Store original string size */
-  size_t len = strlen (string);
-  hook_char_replace (string, len, '\b', '\0');
-}
-
-/* write_test:
-   Write test datafile */
-
-void
-writeout_test (int test, const char * test_data)
-{
-  char filename[256];
-  FILE *fd;
-  size_t len;
-  char * parse;
-
-  /* Unique filename per test */
-  sprintf (filename, FILENAME_PATTERN, test);
-  fd = fopen (filename, "w");
-  if (fd == NULL)
-    fatal_error (__LINE__, "Failed to create test file.", errno);
-
-  /* Generate RW copy of data for replaces */
-  len = strlen (test_data);
-  parse = malloc (sizeof (char) * (len + 1));
-  if (parse == NULL)
-    fatal_error (__LINE__, "Failed to malloc parse.", errno);
-      
-  memcpy (parse, test_data, sizeof (char) * len);
-  /* Run all possible replaces */
-  run_replaces (parse);
-
-  fwrite (parse, len, sizeof (char), fd);
-  free (parse);
-  fclose (fd);
-}
-
-/* erase_test:
-     Erase the test file */
-
-void 
-erase_test (int test)
-{
-  char filename[256]; 
-  sprintf (filename, FILENAME_PATTERN, test);
-  if (unlink (filename) != 0)
-    fatal_error (__LINE__, "Failed to erase test file.", errno);
-}
-
-
-/* run_tests:
-    Run expandargv
-    Compare argv before and after.
-    Return number of fails */
-
-int
-run_tests (const char **test_data)
-{
-  int argc_after, argc_before;
-  char ** argv_before, ** argv_after;
-  int i, j, k, fails, failed;
-
-  i = j = fails = 0;
-  /* Loop over all the tests */
-  while (test_data[j])
-    {
-      /* Write test data */
-      writeout_test (i, test_data[j++]);
-      /* Copy argv before */
-      argv_before = dupargv ((char **) &test_data[j]);
-
-      /* Count argc before/after */
-      argc_before = 0;
-      argc_after = 0;
-      while (test_data[j + argc_before])
-        argc_before++;
-      j += argc_before + 1; /* Skip null */
-      while (test_data[j + argc_after])
-        argc_after++;
-
-      /* Copy argv after */
-      argv_after = dupargv ((char **) &test_data[j]);
-
-      /* Run all possible replaces */
-      for (k = 0; k < argc_before; k++)
-        run_replaces (argv_before[k]);
-      for (k = 0; k < argc_after; k++)
-        run_replaces (argv_after[k]);
-
-      /* Run test: Expand arguments */
-      expandargv (&argc_before, &argv_before);
-
-      failed = 0;
-      /* Compare size first */
-      if (argc_before != argc_after)
-        {
-          printf ("FAIL: test-expandargv-%d. Number of arguments don't match.\n", i);
-	  failed++;
-        }
-      /* Compare each of the argv's ... */
-      else
-        for (k = 0; k < argc_after; k++)
-          if (strncmp (argv_before[k], argv_after[k], strlen(argv_after[k])) != 0)
-            {
-              printf ("FAIL: test-expandargv-%d. Arguments don't match.\n", i);
-              failed++;
-            }
-
-      if (!failed)
-        printf ("PASS: test-expandargv-%d.\n", i);
-      else
-        fails++;
-
-      freeargv (argv_before);
-      freeargv (argv_after);
-      /* Advance to next test */
-      j += argc_after + 1;
-      /* Erase test file */
-      erase_test (i);
-      i++;
-    }
-  return fails;
-}
-
-/* main:
-    Run tests. 
-    Check result and exit with appropriate code. */
-
-int 
-main(int argc, char **argv)
-{
-  int fails;
-  /* Repeat for all the tests:
-     - Parse data array and write into file.
-       - Run replace hooks before writing to file.
-     - Parse data array and build argv before/after.
-       - Run replace hooks on argv before/after
-     - Run expandargv.
-     - Compare output of expandargv argv to after argv.
-       - If they compare the same then test passes
-         else the test fails. 
-     - Erase test file. */
-
-  fails = run_tests (test_data);
-  if (!fails)
-    exit (EXIT_SUCCESS);
-  else
-    exit (EXIT_FAILURE);
-}
-
diff --git a/libiberty/testsuite/test-pexecute.c b/libiberty/testsuite/test-pexecute.c
deleted file mode 100644
index 8e01fda..0000000
--- a/libiberty/testsuite/test-pexecute.c
+++ /dev/null
@@ -1,522 +0,0 @@
-/* Pexecute test program,
-   Copyright (C) 2005 Free Software Foundation, Inc.
-   Written by Ian Lance Taylor <ian@airs.com>.
-
-   This file is part of GNU libiberty.
-
-   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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include "ansidecl.h"
-#include "libiberty.h"
-#include <stdio.h>
-#include <signal.h>
-#include <errno.h>
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-#include <sys/types.h>
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_SYS_WAIT_H
-#include <sys/wait.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_SYS_RESOURCE_H
-#include <sys/resource.h>
-#endif
-
-#ifndef WIFSIGNALED
-#define WIFSIGNALED(S) (((S) & 0xff) != 0 && ((S) & 0xff) != 0x7f)
-#endif
-#ifndef WTERMSIG
-#define WTERMSIG(S) ((S) & 0x7f)
-#endif
-#ifndef WIFEXITED
-#define WIFEXITED(S) (((S) & 0xff) == 0)
-#endif
-#ifndef WEXITSTATUS
-#define WEXITSTATUS(S) (((S) & 0xff00) >> 8)
-#endif
-#ifndef WSTOPSIG
-#define WSTOPSIG WEXITSTATUS
-#endif
-#ifndef WCOREDUMP
-#define WCOREDUMP(S) ((S) & WCOREFLG)
-#endif
-#ifndef WCOREFLG
-#define WCOREFLG 0200
-#endif
-
-#ifndef EXIT_SUCCESS
-#define EXIT_SUCCESS 0
-#endif
-
-#ifndef EXIT_FAILURE
-#define EXIT_FAILURE 1
-#endif
-
-/* When this program is run with no arguments, it runs some tests of
-   the libiberty pexecute functions.  As a test program, it simply
-   invokes itself with various arguments.
-
-   argv[1]:
-     *empty string*      Run tests, exit with success status
-     exit                Exit success
-     error               Exit error
-     abort               Abort
-     echo                Echo remaining arguments, exit success
-     echoerr             Echo next arg to stdout, next to stderr, repeat
-     copy                Copy stdin to stdout
-     write               Write stdin to file named in next argument
-*/
-
-static void fatal_error (int, const char *, int) ATTRIBUTE_NORETURN;
-static void error (int, const char *);
-static void check_line (int, FILE *, const char *);
-static void do_cmd (int, char **) ATTRIBUTE_NORETURN;
-
-/* The number of errors we have seen.  */
-
-static int error_count;
-
-/* Print a fatal error and exit.  LINE is the line number where we
-   detected the error, ERRMSG is the error message to print, and ERR
-   is 0 or an errno value to print.  */
-
-static void
-fatal_error (int line, const char *errmsg, int err)
-{
-  fprintf (stderr, "test-pexecute:%d: %s", line, errmsg);
-  if (errno != 0)
-    fprintf (stderr, ": %s", xstrerror (err));
-  fprintf (stderr, "\n");
-  exit (EXIT_FAILURE);
-}
-
-#define FATAL_ERROR(ERRMSG, ERR) fatal_error (__LINE__, ERRMSG, ERR)
-
-/* Print an error message and bump the error count.  LINE is the line
-   number where we detected the error, ERRMSG is the error to
-   print.  */
-
-static void
-error (int line, const char *errmsg)
-{
-  fprintf (stderr, "test-pexecute:%d: %s\n", line, errmsg);
-  ++error_count;
-}
-
-#define ERROR(ERRMSG) error (__LINE__, ERRMSG)
-
-/* Check a line in a file.  */
-
-static void
-check_line (int line, FILE *e, const char *str)
-{
-  const char *p;
-  int c;
-  char buf[1000];
-
-  p = str;
-  while (1)
-    {
-      c = getc (e);
-
-      if (*p == '\0')
-	{
-	  if (c != '\n')
-	    {
-	      snprintf (buf, sizeof buf, "got '%c' when expecting newline", c);
-	      fatal_error (line, buf, 0);
-	    }
-	  c = getc (e);
-	  if (c != EOF)
-	    {
-	      snprintf (buf, sizeof buf, "got '%c' when expecting EOF", c);
-	      fatal_error (line, buf, 0);
-	    }
-	  return;
-	}
-
-      if (c != *p)
-	{
-	  snprintf (buf, sizeof buf, "expected '%c', got '%c'", *p, c);
-	  fatal_error (line, buf, 0);
-	}
-
-      ++p;
-    }
-}
-
-#define CHECK_LINE(E, STR) check_line (__LINE__, E, STR)
-
-/* Main function for the pexecute tester.  Run the tests.  */
-
-int
-main (int argc, char **argv)
-{
-  int trace;
-  struct pex_obj *test_pex_tmp;
-  int test_pex_status;
-  FILE *test_pex_file;
-  struct pex_obj *pex1;
-  char *subargv[10];
-  int status;
-  FILE *e;
-  int statuses[10];
-
-  trace = 0;
-  if (argc > 1 && strcmp (argv[1], "-t") == 0)
-    {
-      trace = 1;
-      --argc;
-      ++argv;
-    }
-
-  if (argc > 1)
-    do_cmd (argc, argv);
-
-#define TEST_PEX_INIT(FLAGS, TEMPBASE)					\
-  (((test_pex_tmp = pex_init (FLAGS, "test-pexecute", TEMPBASE))	\
-    != NULL)								\
-   ? test_pex_tmp							\
-   : (FATAL_ERROR ("pex_init failed", 0), NULL))
-
-#define TEST_PEX_RUN(PEXOBJ, FLAGS, EXECUTABLE, ARGV, OUTNAME, ERRNAME)	\
-  do									\
-    {									\
-      int err;								\
-      const char *pex_run_err;						\
-      if (trace)							\
-	fprintf (stderr, "Line %d: running %s %s\n",			\
-		 __LINE__, EXECUTABLE, ARGV[0]);			\
-      pex_run_err = pex_run (PEXOBJ, FLAGS, EXECUTABLE, ARGV, OUTNAME,	\
-			     ERRNAME, &err);				\
-      if (pex_run_err != NULL)						\
-	FATAL_ERROR (pex_run_err, err);					\
-    }									\
-  while (0)
-
-#define TEST_PEX_GET_STATUS_1(PEXOBJ)					\
-  (pex_get_status (PEXOBJ, 1, &test_pex_status)				\
-   ? test_pex_status							\
-   : (FATAL_ERROR ("pex_get_status failed", errno), 1))
-
-#define TEST_PEX_GET_STATUS(PEXOBJ, COUNT, VECTOR)			\
-  do									\
-    {									\
-      if (!pex_get_status (PEXOBJ, COUNT, VECTOR))			\
-	FATAL_ERROR ("pex_get_status failed", errno);			\
-    }									\
-  while (0)
-
-#define TEST_PEX_READ_OUTPUT(PEXOBJ)					\
-  ((test_pex_file = pex_read_output (PEXOBJ, 0)) != NULL		\
-   ? test_pex_file							\
-   : (FATAL_ERROR ("pex_read_output failed", errno), NULL))
-
-  remove ("temp.x");
-  remove ("temp.y");
-
-  memset (subargv, 0, sizeof subargv);
-
-  subargv[0] = "./test-pexecute";
-
-  pex1 = TEST_PEX_INIT (PEX_USE_PIPES, NULL);
-  subargv[1] = "exit";
-  subargv[2] = NULL;
-  TEST_PEX_RUN (pex1, PEX_LAST, "./test-pexecute", subargv, NULL, NULL);
-  status = TEST_PEX_GET_STATUS_1 (pex1);
-  if (!WIFEXITED (status) || WEXITSTATUS (status) != EXIT_SUCCESS)
-    ERROR ("exit failed");
-  pex_free (pex1);
-
-  pex1 = TEST_PEX_INIT (PEX_USE_PIPES, NULL);
-  subargv[1] = "error";
-  subargv[2] = NULL;
-  TEST_PEX_RUN (pex1, PEX_LAST, "./test-pexecute", subargv, NULL, NULL);
-  status = TEST_PEX_GET_STATUS_1 (pex1);
-  if (!WIFEXITED (status) || WEXITSTATUS (status) != EXIT_FAILURE)
-    ERROR ("error test failed");
-  pex_free (pex1);
-
-  /* We redirect stderr to a file to avoid an error message which is
-     printed on mingw32 when the child calls abort.  */
-  pex1 = TEST_PEX_INIT (PEX_USE_PIPES, NULL);
-  subargv[1] = "abort";
-  subargv[2] = NULL;
-  TEST_PEX_RUN (pex1, PEX_LAST, "./test-pexecute", subargv, NULL, "temp.z");
-  status = TEST_PEX_GET_STATUS_1 (pex1);
-  if (!WIFSIGNALED (status) || WTERMSIG (status) != SIGABRT)
-    ERROR ("abort failed");
-  pex_free (pex1);
-  remove ("temp.z");
-
-  pex1 = TEST_PEX_INIT (PEX_USE_PIPES, "temp");
-  subargv[1] = "echo";
-  subargv[2] = "foo";
-  subargv[3] = NULL;
-  TEST_PEX_RUN (pex1, 0, "./test-pexecute", subargv, NULL, NULL);
-  e = TEST_PEX_READ_OUTPUT (pex1);
-  CHECK_LINE (e, "foo");
-  if (TEST_PEX_GET_STATUS_1 (pex1) != 0)
-    ERROR ("echo exit status failed");
-  pex_free (pex1);
-
-  pex1 = TEST_PEX_INIT (PEX_USE_PIPES, "temp");
-  subargv[1] = "echo";
-  subargv[2] = "bar";
-  subargv[3] = NULL;
-  TEST_PEX_RUN (pex1, PEX_SUFFIX, "./test-pexecute", subargv, ".x", NULL);
-  subargv[1] = "copy";
-  subargv[2] = NULL;
-  TEST_PEX_RUN (pex1, PEX_SUFFIX, "./test-pexecute", subargv, ".y", NULL);
-  e = TEST_PEX_READ_OUTPUT (pex1);
-  CHECK_LINE (e, "bar");
-  TEST_PEX_GET_STATUS (pex1, 2, statuses);
-  if (!WIFEXITED (statuses[0]) || WEXITSTATUS (statuses[0]) != EXIT_SUCCESS
-      || !WIFEXITED (statuses[1]) || WEXITSTATUS (statuses[1]) != EXIT_SUCCESS)
-    ERROR ("copy exit status failed");
-  pex_free (pex1);
-  if (fopen ("temp.x", "r") != NULL || fopen ("temp.y", "r") != NULL)
-    ERROR ("temporary files exist");
-
-  pex1 = TEST_PEX_INIT (0, "temp");
-  subargv[1] = "echo";
-  subargv[2] = "bar";
-  subargv[3] = NULL;
-  TEST_PEX_RUN (pex1, PEX_SUFFIX, "./test-pexecute", subargv, ".x", NULL);
-  subargv[1] = "copy";
-  subargv[2] = NULL;
-  TEST_PEX_RUN (pex1, PEX_SUFFIX, "./test-pexecute", subargv, ".y", NULL);
-  e = TEST_PEX_READ_OUTPUT (pex1);
-  CHECK_LINE (e, "bar");
-  TEST_PEX_GET_STATUS (pex1, 2, statuses);
-  if (!WIFEXITED (statuses[0]) || WEXITSTATUS (statuses[0]) != EXIT_SUCCESS
-      || !WIFEXITED (statuses[1]) || WEXITSTATUS (statuses[1]) != EXIT_SUCCESS)
-    ERROR ("copy exit status failed");
-  pex_free (pex1);
-  if (fopen ("temp.x", "r") != NULL || fopen ("temp.y", "r") != NULL)
-    ERROR ("temporary files exist");
-
-  pex1 = TEST_PEX_INIT (PEX_SAVE_TEMPS, "temp");
-  subargv[1] = "echo";
-  subargv[2] = "quux";
-  subargv[3] = NULL;
-  TEST_PEX_RUN (pex1, PEX_SUFFIX, "./test-pexecute", subargv, ".x", NULL);
-  subargv[1] = "copy";
-  subargv[2] = NULL;
-  TEST_PEX_RUN (pex1, PEX_SUFFIX, "./test-pexecute", subargv, ".y", NULL);
-  e = TEST_PEX_READ_OUTPUT (pex1);
-  CHECK_LINE (e, "quux");
-  TEST_PEX_GET_STATUS (pex1, 2, statuses);
-  if (!WIFEXITED (statuses[0]) || WEXITSTATUS (statuses[0]) != EXIT_SUCCESS
-      || !WIFEXITED (statuses[1]) || WEXITSTATUS (statuses[1]) != EXIT_SUCCESS)
-    ERROR ("copy temp exit status failed");
-  e = fopen ("temp.x", "r");
-  if (e == NULL)
-    FATAL_ERROR ("fopen temp.x failed in copy temp", errno);
-  CHECK_LINE (e, "quux");
-  fclose (e);
-  e = fopen ("temp.y", "r");
-  if (e == NULL)
-    FATAL_ERROR ("fopen temp.y failed in copy temp", errno);
-  CHECK_LINE (e, "quux");
-  fclose (e);
-  pex_free (pex1);
-  remove ("temp.x");
-  remove ("temp.y");
-
-  pex1 = TEST_PEX_INIT (PEX_USE_PIPES, "temp");
-  subargv[1] = "echoerr";
-  subargv[2] = "one";
-  subargv[3] = "two";
-  subargv[4] = NULL;
-  TEST_PEX_RUN (pex1, PEX_SUFFIX, "./test-pexecute", subargv, ".x", "temp2.x");
-  subargv[1] = "write";
-  subargv[2] = "temp2.y";
-  subargv[3] = NULL;
-  TEST_PEX_RUN (pex1, PEX_SUFFIX, "./test-pexecute", subargv, ".y", NULL);
-  TEST_PEX_GET_STATUS (pex1, 2, statuses);
-  if (!WIFEXITED (statuses[0]) || WEXITSTATUS (statuses[0]) != EXIT_SUCCESS
-      || !WIFEXITED (statuses[1]) || WEXITSTATUS (statuses[1]) != EXIT_SUCCESS)
-    ERROR ("echoerr exit status failed");
-  pex_free (pex1);
-  if (fopen ("temp.x", "r") != NULL || fopen ("temp.y", "r") != NULL)
-    ERROR ("temporary files exist");
-  e = fopen ("temp2.x", "r");
-  if (e == NULL)
-    FATAL_ERROR ("fopen temp2.x failed in echoerr", errno);
-  CHECK_LINE (e, "two");
-  fclose (e);
-  e = fopen ("temp2.y", "r");
-  if (e == NULL)
-    FATAL_ERROR ("fopen temp2.y failed in echoerr", errno);
-  CHECK_LINE (e, "one");
-  fclose (e);
-  remove ("temp2.x");
-  remove ("temp2.y");
-
-  /* Test the old pexecute interface.  */
-  {
-    int pid1, pid2;
-    char *errmsg_fmt;
-    char *errmsg_arg;
-    char errbuf1[1000];
-    char errbuf2[1000];
-
-    subargv[1] = "echo";
-    subargv[2] = "oldpexecute";
-    subargv[3] = NULL;
-    pid1 = pexecute ("./test-pexecute", subargv, "test-pexecute", "temp",
-		     &errmsg_fmt, &errmsg_arg, PEXECUTE_FIRST);
-    if (pid1 < 0)
-      {
-	snprintf (errbuf1, sizeof errbuf1, errmsg_fmt, errmsg_arg);
-	snprintf (errbuf2, sizeof errbuf2, "pexecute 1 failed: %s", errbuf1);
-	FATAL_ERROR (errbuf2, 0);
-      }
-
-    subargv[1] = "write";
-    subargv[2] = "temp.y";
-    subargv[3] = NULL;
-    pid2 = pexecute ("./test-pexecute", subargv, "test-pexecute", "temp",
-		     &errmsg_fmt, &errmsg_arg, PEXECUTE_LAST);
-    if (pid2 < 0)
-      {
-	snprintf (errbuf1, sizeof errbuf1, errmsg_fmt, errmsg_arg);
-	snprintf (errbuf2, sizeof errbuf2, "pexecute 2 failed: %s", errbuf1);
-	FATAL_ERROR (errbuf2, 0);
-      }
-
-    if (pwait (pid1, &status, 0) < 0)
-      FATAL_ERROR ("write pwait 1 failed", errno);
-    if (!WIFEXITED (status) || WEXITSTATUS (status) != EXIT_SUCCESS)
-      ERROR ("write exit status 1 failed");
-
-    if (pwait (pid2, &status, 0) < 0)
-      FATAL_ERROR ("write pwait 1 failed", errno);
-    if (!WIFEXITED (status) || WEXITSTATUS (status) != EXIT_SUCCESS)
-      ERROR ("write exit status 2 failed");
-
-    e = fopen ("temp.y", "r");
-    if (e == NULL)
-      FATAL_ERROR ("fopen temp.y failed in copy temp", errno);
-    CHECK_LINE (e, "oldpexecute");
-    fclose (e);
-
-    remove ("temp.y");
-  }
-
-  if (trace)
-    fprintf (stderr, "Exiting with status %d\n", error_count);
-
-  return error_count;
-}
-
-/* Execute one of the special testing commands.  */
-
-static void
-do_cmd (int argc, char **argv)
-{
-  const char *s;
-
-  /* Try to prevent generating a core dump.  */
-#ifdef RLIMIT_CORE
- {
-   struct rlimit r;
-
-   r.rlim_cur = 0;
-   r.rlim_max = 0;
-   setrlimit (RLIMIT_CORE, &r);
- }
-#endif
-
-  s = argv[1];
-  if (strcmp (s, "exit") == 0)
-    exit (EXIT_SUCCESS);
-  else if (strcmp (s, "echo") == 0)
-    {
-      int i;
-
-      for (i = 2; i < argc; ++i)
-	{
-	  if (i > 2)
-	    putchar (' ');
-	  fputs (argv[i], stdout);
-	}
-      putchar ('\n');
-      exit (EXIT_SUCCESS);
-    }
-  else if (strcmp (s, "echoerr") == 0)
-    {
-      int i;
-
-      for (i = 2; i < argc; ++i)
-	{
-	  if (i > 3)
-	    putc (' ', (i & 1) == 0 ? stdout : stderr);
-	  fputs (argv[i], (i & 1) == 0 ? stdout : stderr);
-	}
-      putc ('\n', stdout);
-      putc ('\n', stderr);
-      exit (EXIT_SUCCESS);
-    }
-  else if (strcmp (s, "error") == 0)
-    exit (EXIT_FAILURE);
-  else if (strcmp (s, "abort") == 0)
-    abort ();
-  else if (strcmp (s, "copy") == 0)
-    {
-      int c;
-
-      while ((c = getchar ()) != EOF)
-	putchar (c);
-      exit (EXIT_SUCCESS);
-    }
-  else if (strcmp (s, "write") == 0)
-    {
-      FILE *e;
-      int c;
-
-      e = fopen (argv[2], "w");
-      if (e == NULL)
-	FATAL_ERROR ("fopen for write failed", errno);
-      while ((c = getchar ()) != EOF)
-	putc (c, e);
-      if (fclose (e) != 0)
-	FATAL_ERROR ("fclose for write failed", errno);
-      exit (EXIT_SUCCESS);
-    }
-  else
-    {
-      char buf[1000];
-
-      snprintf (buf, sizeof buf, "unrecognized command %s", argv[1]);
-      FATAL_ERROR (buf, 0);
-    }
-
-  exit (EXIT_FAILURE);
-}
diff --git a/libiberty/tmpnam.c b/libiberty/tmpnam.c
deleted file mode 100644
index cc34333..0000000
--- a/libiberty/tmpnam.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-
-@deftypefn Supplemental char* tmpnam (char *@var{s})
-
-This function attempts to create a name for a temporary file, which
-will be a valid file name yet not exist when @code{tmpnam} checks for
-it.  @var{s} must point to a buffer of at least @code{L_tmpnam} bytes,
-or be @code{NULL}.  Use of this function creates a security risk, and it must
-not be used in new projects.  Use @code{mkstemp} instead.
-
-@end deftypefn
-
-*/
-
-#include <stdio.h>
-
-#ifndef L_tmpnam
-#define L_tmpnam 100
-#endif
-#ifndef P_tmpdir
-#define P_tmpdir "/usr/tmp"
-#endif
-
-static char tmpnam_buffer[L_tmpnam];
-static int tmpnam_counter;
-
-extern int getpid (void);
-
-char *
-tmpnam (char *s)
-{
-  int pid = getpid ();
-
-  if (s == NULL)
-    s = tmpnam_buffer;
-
-  /*  Generate the filename and make sure that there isn't one called
-      it already.  */
-
-  while (1)
-    {
-      FILE *f;
-      sprintf (s, "%s/%s%x.%x", P_tmpdir, "t", pid, tmpnam_counter);
-      f = fopen (s, "r");
-      if (f == NULL)
-	break;
-      tmpnam_counter++;
-      fclose (f);
-    }
-
-  return s;
-}
diff --git a/libiberty/unlink-if-ordinary.c b/libiberty/unlink-if-ordinary.c
deleted file mode 100644
index c03b4dd..0000000
--- a/libiberty/unlink-if-ordinary.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* unlink-if-ordinary.c - remove link to a file unless it is special
-   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
-
-This file is part of the libiberty library.  This library 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.
-
-This library 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 GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-As a special exception, if you link this library with files
-compiled with a GNU compiler to produce an executable, this does not cause
-the resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why
-the executable file might be covered by the GNU General Public License. */
-
-/*
-
-@deftypefn Supplemental int unlink_if_ordinary (const char*)
-
-Unlinks the named file, unless it is special (e.g. a device file).
-Returns 0 when the file was unlinked, a negative value (and errno set) when
-there was an error deleting the file, and a positive value if no attempt
-was made to unlink the file because it is special.
-
-@end deftypefn
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <sys/types.h>
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#if HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-
-#include "libiberty.h"
-
-#ifndef S_ISLNK
-#ifdef S_IFLNK
-#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
-#else
-#define S_ISLNK(m) 0
-#define lstat stat
-#endif
-#endif
-
-int
-unlink_if_ordinary (const char *name)
-{
-  struct stat st;
-
-  if (lstat (name, &st) == 0
-      && (S_ISREG (st.st_mode) || S_ISLNK (st.st_mode)))
-    return unlink (name);
-
-  return 1;
-}
diff --git a/libiberty/vasprintf.c b/libiberty/vasprintf.c
deleted file mode 100644
index b6cb94e..0000000
--- a/libiberty/vasprintf.c
+++ /dev/null
@@ -1,196 +0,0 @@
-/* Like vsprintf but provides a pointer to malloc'd storage, which must
-   be freed by the caller.
-   Copyright (C) 1994, 2003 Free Software Foundation, Inc.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <ansidecl.h>
-#include <stdarg.h>
-#if !defined (va_copy) && defined (__va_copy)
-# define va_copy(d,s)  __va_copy((d),(s))
-#endif
-#include <stdio.h>
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#else
-extern unsigned long strtoul ();
-extern PTR malloc ();
-#endif
-#include "libiberty.h"
-
-#ifdef TEST
-int global_total_width;
-#endif
-
-/*
-
-@deftypefn Extension int vasprintf (char **@var{resptr}, const char *@var{format}, va_list @var{args})
-
-Like @code{vsprintf}, but instead of passing a pointer to a buffer,
-you pass a pointer to a pointer.  This function will compute the size
-of the buffer needed, allocate memory with @code{malloc}, and store a
-pointer to the allocated memory in @code{*@var{resptr}}.  The value
-returned is the same as @code{vsprintf} would return.  If memory could
-not be allocated, minus one is returned and @code{NULL} is stored in
-@code{*@var{resptr}}.
-
-@end deftypefn
-
-*/
-
-static int int_vasprintf (char **, const char *, va_list);
-
-static int
-int_vasprintf (char **result, const char *format, va_list args)
-{
-  const char *p = format;
-  /* Add one to make sure that it is never zero, which might cause malloc
-     to return NULL.  */
-  int total_width = strlen (format) + 1;
-  va_list ap;
-
-#ifdef va_copy
-  va_copy (ap, args);
-#else
-  memcpy ((PTR) &ap, (PTR) &args, sizeof (va_list));
-#endif
-
-  while (*p != '\0')
-    {
-      if (*p++ == '%')
-	{
-	  while (strchr ("-+ #0", *p))
-	    ++p;
-	  if (*p == '*')
-	    {
-	      ++p;
-	      total_width += abs (va_arg (ap, int));
-	    }
-	  else
-	    total_width += strtoul (p, (char **) &p, 10);
-	  if (*p == '.')
-	    {
-	      ++p;
-	      if (*p == '*')
-		{
-		  ++p;
-		  total_width += abs (va_arg (ap, int));
-		}
-	      else
-	      total_width += strtoul (p, (char **) &p, 10);
-	    }
-	  while (strchr ("hlL", *p))
-	    ++p;
-	  /* Should be big enough for any format specifier except %s and floats.  */
-	  total_width += 30;
-	  switch (*p)
-	    {
-	    case 'd':
-	    case 'i':
-	    case 'o':
-	    case 'u':
-	    case 'x':
-	    case 'X':
-	    case 'c':
-	      (void) va_arg (ap, int);
-	      break;
-	    case 'f':
-	    case 'e':
-	    case 'E':
-	    case 'g':
-	    case 'G':
-	      (void) va_arg (ap, double);
-	      /* Since an ieee double can have an exponent of 307, we'll
-		 make the buffer wide enough to cover the gross case. */
-	      total_width += 307;
-	      break;
-	    case 's':
-	      total_width += strlen (va_arg (ap, char *));
-	      break;
-	    case 'p':
-	    case 'n':
-	      (void) va_arg (ap, char *);
-	      break;
-	    }
-	  p++;
-	}
-    }
-#ifdef va_copy
-  va_end (ap);
-#endif
-#ifdef TEST
-  global_total_width = total_width;
-#endif
-  *result = (char *) malloc (total_width);
-  if (*result != NULL)
-    return vsprintf (*result, format, args);
-  else
-    return -1;
-}
-
-int
-vasprintf (char **result, const char *format,
-#if defined (_BSD_VA_LIST_) && defined (__FreeBSD__)
-           _BSD_VA_LIST_ args)
-#else
-           va_list args)
-#endif
-{
-  return int_vasprintf (result, format, args);
-}
-
-#ifdef TEST
-static void ATTRIBUTE_PRINTF_1
-checkit (const char *format, ...)
-{
-  char *result;
-  VA_OPEN (args, format);
-  VA_FIXEDARG (args, const char *, format);
-  vasprintf (&result, format, args);
-  VA_CLOSE (args);
-
-  if (strlen (result) < (size_t) global_total_width)
-    printf ("PASS: ");
-  else
-    printf ("FAIL: ");
-  printf ("%d %s\n", global_total_width, result);
-
-  free (result);
-}
-
-extern int main (void);
-
-int
-main (void)
-{
-  checkit ("%d", 0x12345678);
-  checkit ("%200d", 5);
-  checkit ("%.300d", 6);
-  checkit ("%100.150d", 7);
-  checkit ("%s", "jjjjjjjjjiiiiiiiiiiiiiiioooooooooooooooooppppppppppppaa\n\
-777777777777777777333333333333366666666666622222222222777777777777733333");
-  checkit ("%f%s%d%s", 1.0, "foo", 77, "asdjffffffffffffffiiiiiiiiiiixxxxx");
-
-  return 0;
-}
-#endif /* TEST */
diff --git a/libiberty/vfork.c b/libiberty/vfork.c
deleted file mode 100644
index eb4ff62..0000000
--- a/libiberty/vfork.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Emulate vfork using just plain fork, for systems without a real vfork.
-   This function is in the public domain. */
-
-/*
-
-@deftypefn Supplemental int vfork (void)
-
-Emulates @code{vfork} by calling @code{fork} and returning its value.
-
-@end deftypefn
-
-*/
-
-#include "ansidecl.h"
-
-extern int fork (void);
-
-int
-vfork (void)
-{
-  return (fork ());
-}
diff --git a/libiberty/vfprintf.c b/libiberty/vfprintf.c
deleted file mode 100644
index 9bd3ed5..0000000
--- a/libiberty/vfprintf.c
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Provide a version vfprintf in terms of _doprnt.
-   By Kaveh Ghazi  (ghazi@caip.rutgers.edu)  3/29/98
-   Copyright (C) 1998 Free Software Foundation, Inc.
- */
-
-#include "ansidecl.h"
-#include <stdarg.h>
-#include <stdio.h>
-#undef vfprintf
-
-int
-vfprintf (FILE *stream, const char *format, va_list ap)
-{
-  return _doprnt (format, ap, stream);
-}
diff --git a/libiberty/vmsbuild.com b/libiberty/vmsbuild.com
deleted file mode 100644
index 497ea89..0000000
--- a/libiberty/vmsbuild.com
+++ /dev/null
@@ -1,165 +0,0 @@
-$! libiberty/vmsbuild.com -- build liberty.olb for VMS host, VMS target
-$!
-$ CC	= "gcc /noVerbose/Debug/Incl=([],[-.include])"
-$ LIBR	= "library /Obj"
-$ LINK	= "link"
-$ DELETE= "delete /noConfirm"
-$ SEARCH= "search /Exact"
-$ ECHO	= "write sys$output"
-$ ABORT	= "exit %x002C"
-$!
-$ LIB_NAME = "liberty.olb"	!this is what we're going to construct
-$ WORK_LIB = "new-lib.olb"	!used to guard against an incomplete build
-$
-$! manually copied from Makefile.in
-$ REQUIRED_OFILES = "argv.o basename.o choose-temp.o concat.o cplus-dem.o "-
-	+ "fdmatch.o fnmatch.o getopt.o getopt1.o getruntime.o hex.o "-
-	+ "floatformat.o objalloc.o obstack.o spaces.o strerror.o strsignal.o "-
-	+ "xatexit.o xexit.o xmalloc.o xmemdup.o xstrdup.o xstrerror.o"
-$! anything not caught by link+search of dummy.* should be added here
-$ EXTRA_OFILES = ""
-$!
-$! move to the directory which contains this command procedure
-$ old_dir = f$environ("DEFAULT")
-$ new_dir = f$parse("_._;",f$environ("PROCEDURE")) - "_._;"
-$ set default 'new_dir'
-$
-$ ECHO "Starting libiberty build..."
-$ create config.h
-/* libiberty config.h for VMS */
-#define NEED_sys_siglist
-#define NEED_strsignal
-#define NEED_psignal
-#define NEED_basename
-$ LIBR 'WORK_LIB' /Create
-$
-$! first pass: compile "required" modules
-$ ofiles = REQUIRED_OFILES + " " + EXTRA_OFILES
-$ pass = 1
-$ gosub do_ofiles
-$
-$! second pass: process dummy.c, using the first pass' results
-$ ECHO " now checking run-time library for missing functionality"
-$ if f$search("dummy.obj").nes."" then  DELETE dummy.obj;*
-$ define/noLog sys$error _NL:	!can't use /User_Mode here due to gcc
-$ define/noLog sys$output _NL:	! driver's use of multiple image activation
-$ on error then continue
-$ 'CC' dummy.c
-$ deassign sys$error   !restore, more or less
-$ deassign sys$output
-$ if f$search("dummy.obj").eqs."" then  goto pass2_failure1
-$! link dummy.obj, capturing full linker feedback in dummy.map
-$ oldmsg = f$environ("MESSAGE")
-$ set message /Facility/Severity/Identification/Text
-$ define/User sys$output _NL:
-$ define/User sys$error _NL:
-$ LINK/Map=dummy.map/noExe dummy.obj,'WORK_LIB'/Libr,-
-	gnu_cc:[000000]gcclib.olb/Libr,sys$library:vaxcrtl.olb/Libr
-$ set message 'oldmsg'
-$ if f$search("dummy.map").eqs."" then  goto pass2_failure2
-$ DELETE dummy.obj;*
-$ SEARCH dummy.map "%LINK-I-UDFSYM" /Output=dummy.list
-$ DELETE dummy.map;*
-$ ECHO " check completed"
-$! we now have a file with one entry per line of unresolvable symbols
-$ ofiles = ""
-$ if f$trnlnm("IFILE$").nes."" then  close/noLog ifile$
-$	open/Read ifile$ dummy.list
-$iloop: read/End=idone ifile$ iline
-$	iline = f$edit(iline,"COMPRESS,TRIM,LOWERCASE")
-$	ofiles = ofiles + " " + f$element(1," ",iline) + ".o"
-$	goto iloop
-$idone: close ifile$
-$ DELETE dummy.list;*
-$ on error then ABORT
-$
-$! third pass: compile "missing" modules collected in pass 2
-$ pass = 3
-$ gosub do_ofiles
-$
-$! finish up
-$ LIBR 'WORK_LIB' /Compress /Output='LIB_NAME'	!new-lib.olb -> liberty.olb
-$ DELETE 'WORK_LIB';*
-$
-$! all done
-$ ECHO "Completed libiberty build."
-$ type sys$input:
-
-  You many wish to do
-  $ COPY LIBERTY.OLB GNU_CC:[000000]
-  so that this run-time library resides in the same location as gcc's
-  support library.  When building gas, be sure to leave the original
-  copy of liberty.olb here so that gas's build procedure can find it.
-
-$ set default 'old_dir'
-$ exit
-$
-$!
-$! compile each element of the space-delimited list 'ofiles'
-$!
-$do_ofiles:
-$ ofiles = f$edit(ofiles,"COMPRESS,TRIM")
-$ i = 0
-$oloop:
-$ f = f$element(i," ",ofiles)
-$ if f.eqs." " then  goto odone
-$ f = f - ".o"	!strip dummy suffix
-$ ECHO "  ''f'"
-$ skip_f = 0
-$ if pass.eq.3 .and. f$search("''f'.c").eqs."" then  gosub chk_deffunc
-$ if .not.skip_f
-$ then
-$   'CC' 'f'.c
-$   LIBR 'WORK_LIB' 'f'.obj /Insert
-$   DELETE 'f'.obj;*
-$ endif
-$ i = i + 1
-$ goto oloop
-$odone:
-$ return
-$
-$!
-$! check functions.def for a DEFFUNC() entry corresponding to missing file 'f'.c
-$!
-$chk_deffunc:
-$ define/User sys$output _NL:
-$ define/User sys$error _NL:
-$ SEARCH functions.def "DEFFUNC","''f'" /Match=AND
-$ if (($status.and.%x7FFFFFFF) .eq. 1)
-$ then
-$   skip_f = 1
-$   open/Append config_h config.h
-$   write config_h "#define NEED_''f'"
-$   close config_h
-$ endif
-$ return
-$
-$!
-$pass2_failure1:
-$! if we reach here, dummy.c failed to compile and we're really stuck
-$ type sys$input:
-
-  Cannot compile the library contents checker (dummy.c + functions.def),
-  so cannot continue!
-
-$! attempt the compile again, without suppressing diagnostic messages this time
-$ on error then ABORT +0*f$verify(v)
-$ v = f$verify(1)
-$ 'CC' dummy.c
-$ ABORT +0*f$verify(v)	!'f$verify(0)'
-$!
-$pass2_failure2:
-$! should never reach here..
-$ type sys$input:
-
-  Cannot link the library contents checker (dummy.obj), so cannot continue!
-
-$! attempt the link again, without suppressing diagnostic messages this time
-$ on error then ABORT +0*f$verify(v)
-$ v = f$verify(1)
-$ LINK/Map=dummy.map/noExe dummy.obj,'WORK_LIB'/Libr,-
-	gnu_cc:[000000]gcclib.olb/Libr,sys$library:vaxcrtl.olb/Libr
-$ ABORT +0*f$verify(v)	!'f$verify(0)'
-$
-$! not reached
-$ exit
diff --git a/libiberty/vprintf.c b/libiberty/vprintf.c
deleted file mode 100644
index c255316..0000000
--- a/libiberty/vprintf.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
-
-@deftypefn Supplemental int vprintf (const char *@var{format}, va_list @var{ap})
-@deftypefnx Supplemental int vfprintf (FILE *@var{stream}, const char *@var{format}, va_list @var{ap})
-@deftypefnx Supplemental int vsprintf (char *@var{str}, const char *@var{format}, va_list @var{ap})
-
-These functions are the same as @code{printf}, @code{fprintf}, and
-@code{sprintf}, respectively, except that they are called with a
-@code{va_list} instead of a variable number of arguments.  Note that
-they do not call @code{va_end}; this is the application's
-responsibility.  In @libib{} they are implemented in terms of the
-nonstandard but common function @code{_doprnt}.
-
-@end deftypefn
-
-*/
-
-#include <ansidecl.h>
-#include <stdarg.h>
-#include <stdio.h>
-#undef vprintf
-int
-vprintf (const char *format, va_list ap)
-{
-  return vfprintf (stdout, format, ap);
-}
diff --git a/libiberty/vsnprintf.c b/libiberty/vsnprintf.c
deleted file mode 100644
index 7df5bd8..0000000
--- a/libiberty/vsnprintf.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/* Implement the vsnprintf function.
-   Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
-   Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>.
-
-This file is part of the libiberty library.  This library 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.
-
-This library 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 GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-As a special exception, if you link this library with files
-compiled with a GNU compiler to produce an executable, this does not cause
-the resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why
-the executable file might be covered by the GNU General Public License. */
-
-/*
-
-@deftypefn Supplemental int vsnprintf (char *@var{buf}, size_t @var{n}, const char *@var{format}, va_list @var{ap})
-
-This function is similar to vsprintf, but it will print at most
-@var{n} characters.  On error the return value is -1, otherwise it
-returns the number of characters that would have been printed had
-@var{n} been sufficiently large, regardless of the actual value of
-@var{n}.  Note some pre-C99 system libraries do not implement this
-correctly so users cannot generally rely on the return value if the
-system version of this function is used.
-
-@end deftypefn
-
-*/
-
-#include "config.h"
-#include "ansidecl.h"
-
-#include <stdarg.h>
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-#include "libiberty.h"
-
-/* This implementation relies on a working vasprintf.  */
-int
-vsnprintf (char *s, size_t n, const char *format, va_list ap)
-{
-  char *buf = 0;
-  int result = vasprintf (&buf, format, ap);
-
-  if (!buf)
-    return -1;
-  if (result < 0)
-    {
-      free (buf);
-      return -1;
-    }
-
-  result = strlen (buf);
-  if (n > 0)
-    {
-      if ((long) n > result)
-	memcpy (s, buf, result+1);
-      else
-        {
-	  memcpy (s, buf, n-1);
-	  s[n - 1] = 0;
-	}
-    }
-  free (buf);
-  return result;
-}
-
-#ifdef TEST
-/* Set the buffer to a known state.  */
-#define CLEAR(BUF) do { memset ((BUF), 'X', sizeof (BUF)); (BUF)[14] = '\0'; } while (0)
-/* For assertions.  */
-#define VERIFY(P) do { if (!(P)) abort(); } while (0)
-
-static int ATTRIBUTE_PRINTF_3
-checkit (char *s, size_t n, const char *format, ...)
-{
-  int result;
-  VA_OPEN (ap, format);
-  VA_FIXEDARG (ap, char *, s);
-  VA_FIXEDARG (ap, size_t, n);
-  VA_FIXEDARG (ap, const char *, format);
-  result = vsnprintf (s, n, format, ap);
-  VA_CLOSE (ap);
-  return result;
-}
-
-extern int main (void);
-int
-main (void)
-{
-  char buf[128];
-  int status;
-  
-  CLEAR (buf);
-  status = checkit (buf, 10, "%s:%d", "foobar", 9);
-  VERIFY (status==8 && memcmp (buf, "foobar:9\0XXXXX\0", 15) == 0);
-
-  CLEAR (buf);
-  status = checkit (buf, 9, "%s:%d", "foobar", 9);
-  VERIFY (status==8 && memcmp (buf, "foobar:9\0XXXXX\0", 15) == 0);
-
-  CLEAR (buf);
-  status = checkit (buf, 8, "%s:%d", "foobar", 9);
-  VERIFY (status==8 && memcmp (buf, "foobar:\0XXXXXX\0", 15) == 0);
-
-  CLEAR (buf);
-  status = checkit (buf, 7, "%s:%d", "foobar", 9);
-  VERIFY (status==8 && memcmp (buf, "foobar\0XXXXXXX\0", 15) == 0);
-
-  CLEAR (buf);
-  status = checkit (buf, 6, "%s:%d", "foobar", 9);
-  VERIFY (status==8 && memcmp (buf, "fooba\0XXXXXXXX\0", 15) == 0);
-
-  CLEAR (buf);
-  status = checkit (buf, 2, "%s:%d", "foobar", 9);
-  VERIFY (status==8 && memcmp (buf, "f\0XXXXXXXXXXXX\0", 15) == 0);
-
-  CLEAR (buf);
-  status = checkit (buf, 1, "%s:%d", "foobar", 9);
-  VERIFY (status==8 && memcmp (buf, "\0XXXXXXXXXXXXX\0", 15) == 0);
-
-  CLEAR (buf);
-  status = checkit (buf, 0, "%s:%d", "foobar", 9);
-  VERIFY (status==8 && memcmp (buf, "XXXXXXXXXXXXXX\0", 15) == 0);
-
-  return 0;
-}
-#endif /* TEST */
diff --git a/libiberty/vsprintf.c b/libiberty/vsprintf.c
deleted file mode 100644
index 99e7044..0000000
--- a/libiberty/vsprintf.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Simple implementation of vsprintf for systems without it.
-   Highly system-dependent, but should work on most "traditional"
-   implementations of stdio; newer ones should already have vsprintf.
-   Written by Per Bothner of Cygnus Support.
-   Based on libg++'s "form" (written by Doug Lea; dl@rocky.oswego.edu).
-   Copyright (C) 1991, 1995, 2002 Free Software Foundation, Inc.
-
-This file is part of the libiberty library.  This library 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.
-
-This library 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 GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-As a special exception, if you link this library with files
-compiled with a GNU compiler to produce an executable, this does not cause
-the resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why
-the executable file might be covered by the GNU General Public License. */
-
-#include <ansidecl.h>
-#include <stdarg.h>
-#include <stdio.h>
-#undef vsprintf
-
-#if defined _IOSTRG && defined _IOWRT
-
-int
-vsprintf (char *buf, const char *format, va_list ap)
-{
-  FILE b;
-  int ret;
-#ifdef VMS
-  b->_flag = _IOWRT|_IOSTRG;
-  b->_ptr = buf;
-  b->_cnt = 12000;
-#else
-  b._flag = _IOWRT|_IOSTRG;
-  b._ptr = buf;
-  b._cnt = 12000;
-#endif
-  ret = _doprnt(format, ap, &b);
-  putc('\0', &b);
-  return ret;
-
-}
-
-#endif
diff --git a/libiberty/waitpid.c b/libiberty/waitpid.c
deleted file mode 100644
index fd519d7..0000000
--- a/libiberty/waitpid.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
-
-@deftypefn Supplemental int waitpid (int @var{pid}, int *@var{status}, int)
-
-This is a wrapper around the @code{wait} function.  Any ``special''
-values of @var{pid} depend on your implementation of @code{wait}, as
-does the return value.  The third argument is unused in @libib{}.
-
-@end deftypefn
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include "ansidecl.h"
-
-/* On some systems (such as WindISS), you must include <sys/types.h>
-   to get the definition of "pid_t" before you include <sys/wait.h>.  */
-#include <sys/types.h>
-
-#ifdef HAVE_SYS_WAIT_H
-#include <sys/wait.h>
-#endif
-
-pid_t
-waitpid (pid_t pid, int *stat_loc, int options ATTRIBUTE_UNUSED)
-{
-  for (;;)
-    {
-      int wpid = wait(stat_loc);
-      if (wpid == pid || wpid == -1)
-	return wpid;
-    }
-}
diff --git a/libiberty/xatexit.c b/libiberty/xatexit.c
deleted file mode 100644
index 6fdad9e..0000000
--- a/libiberty/xatexit.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (c) 1990 Regents of the University of California.
- * All rights reserved.
- *
- * %sccs.include.redist.c%
- */
-
-
-/*
-
-@deftypefun int xatexit (void (*@var{fn}) (void))
-
-Behaves as the standard @code{atexit} function, but with no limit on
-the number of registered functions.  Returns 0 on success, or @minus{}1 on
-failure.  If you use @code{xatexit} to register functions, you must use
-@code{xexit} to terminate your program.
-
-@end deftypefun
-
-*/
-
-/* Adapted from newlib/libc/stdlib/{,at}exit.[ch].
-   If you use xatexit, you must call xexit instead of exit.  */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include "ansidecl.h"
-#include "libiberty.h"
-
-#include <stdio.h>
-
-#include <stddef.h>
-
-#if VMS
-#include <stdlib.h>
-#include <unixlib.h>
-#else
-/* For systems with larger pointers than ints, this must be declared.  */
-PTR malloc (size_t);
-#endif
-
-static void xatexit_cleanup (void);
-
-/* Pointer to function run by xexit.  */
-extern void (*_xexit_cleanup) (void);
-
-#define	XATEXIT_SIZE 32
-
-struct xatexit {
-	struct	xatexit *next;		/* next in list */
-	int	ind;			/* next index in this table */
-	void	(*fns[XATEXIT_SIZE]) (void);	/* the table itself */
-};
-
-/* Allocate one struct statically to guarantee that we can register
-   at least a few handlers.  */
-static struct xatexit xatexit_first;
-
-/* Points to head of LIFO stack.  */
-static struct xatexit *xatexit_head = &xatexit_first;
-
-/* Register function FN to be run by xexit.
-   Return 0 if successful, -1 if not.  */
-
-int
-xatexit (void (*fn) (void))
-{
-  register struct xatexit *p;
-
-  /* Tell xexit to call xatexit_cleanup.  */
-  if (!_xexit_cleanup)
-    _xexit_cleanup = xatexit_cleanup;
-
-  p = xatexit_head;
-  if (p->ind >= XATEXIT_SIZE)
-    {
-      if ((p = (struct xatexit *) malloc (sizeof *p)) == NULL)
-	return -1;
-      p->ind = 0;
-      p->next = xatexit_head;
-      xatexit_head = p;
-    }
-  p->fns[p->ind++] = fn;
-  return 0;
-}
-
-/* Call any cleanup functions.  */
-
-static void
-xatexit_cleanup (void)
-{
-  register struct xatexit *p;
-  register int n;
-
-  for (p = xatexit_head; p; p = p->next)
-    for (n = p->ind; --n >= 0;)
-      (*p->fns[n]) ();
-}
diff --git a/libiberty/xexit.c b/libiberty/xexit.c
deleted file mode 100644
index 421e5e2..0000000
--- a/libiberty/xexit.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* xexit.c -- Run any exit handlers, then exit.
-   Copyright (C) 1994, 95, 1997 Free Software Foundation, Inc.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If not, write
-to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-/*
-
-@deftypefn Replacement void xexit (int @var{code})
-
-Terminates the program.  If any functions have been registered with
-the @code{xatexit} replacement function, they will be called first.
-Termination is handled via the system's normal @code{exit} call.
-
-@end deftypefn
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <stdio.h>
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#include "libiberty.h"
-
-
-/* This variable is set by xatexit if it is called.  This way, xmalloc
-   doesn't drag xatexit into the link.  */
-void (*_xexit_cleanup) (void);
-
-void
-xexit (int code)
-{
-  if (_xexit_cleanup != NULL)
-    (*_xexit_cleanup) ();
-  exit (code);
-}
diff --git a/libiberty/xmalloc.c b/libiberty/xmalloc.c
deleted file mode 100644
index 3e97aab..0000000
--- a/libiberty/xmalloc.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/* memory allocation routines with error checking.
-   Copyright 1989, 90, 91, 92, 93, 94 Free Software Foundation, Inc.
-   
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-/*
-
-@deftypefn Replacement void* xmalloc (size_t)
-
-Allocate memory without fail.  If @code{malloc} fails, this will print
-a message to @code{stderr} (using the name set by
-@code{xmalloc_set_program_name},
-if any) and then call @code{xexit}.  Note that it is therefore safe for
-a program to contain @code{#define malloc xmalloc} in its source.
-
-@end deftypefn
-
-@deftypefn Replacement void* xrealloc (void *@var{ptr}, size_t @var{size})
-Reallocate memory without fail.  This routine functions like @code{realloc},
-but will behave the same as @code{xmalloc} if memory cannot be found.
-
-@end deftypefn
-
-@deftypefn Replacement void* xcalloc (size_t @var{nelem}, size_t @var{elsize})
-
-Allocate memory without fail, and set it to zero.  This routine functions
-like @code{calloc}, but will behave the same as @code{xmalloc} if memory
-cannot be found.
-
-@end deftypefn
-
-@deftypefn Replacement void xmalloc_set_program_name (const char *@var{name})
-
-You can use this to set the name of the program used by
-@code{xmalloc_failed} when printing a failure message.
-
-@end deftypefn
-
-@deftypefn Replacement void xmalloc_failed (size_t)
-
-This function is not meant to be called by client code, and is listed
-here for completeness only.  If any of the allocation routines fail, this
-function will be called to print an error message and terminate execution.
-
-@end deftypefn
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include "ansidecl.h"
-#include "libiberty.h"
-
-#include <stdio.h>
-
-#include <stddef.h>
-
-#if VMS
-#include <stdlib.h>
-#include <unixlib.h>
-#else
-/* For systems with larger pointers than ints, these must be declared.  */
-#  if HAVE_STDLIB_H && HAVE_UNISTD_H && HAVE_DECL_MALLOC \
-      && HAVE_DECL_REALLOC && HAVE_DECL_CALLOC && HAVE_DECL_SBRK
-#    include <stdlib.h>
-#    include <unistd.h>
-#  else
-#    ifdef __cplusplus
-extern "C" {
-#    endif /* __cplusplus */
-void *malloc (size_t);
-void *realloc (void *, size_t);
-void *calloc (size_t, size_t);
-void *sbrk (ptrdiff_t);
-#    ifdef __cplusplus
-}
-#    endif /* __cplusplus */
-#  endif /* HAVE_STDLIB_H ...  */
-#endif /* VMS */
-
-/* The program name if set.  */
-static const char *name = "";
-
-#ifdef HAVE_SBRK
-/* The initial sbrk, set when the program name is set. Not used for win32
-   ports other than cygwin32.  */
-static char *first_break = NULL;
-#endif /* HAVE_SBRK */
-
-void
-xmalloc_set_program_name (const char *s)
-{
-  name = s;
-#ifdef HAVE_SBRK
-  /* Win32 ports other than cygwin32 don't have brk() */
-  if (first_break == NULL)
-    first_break = (char *) sbrk (0);
-#endif /* HAVE_SBRK */
-}
-
-void
-xmalloc_failed (size_t size)
-{
-#ifdef HAVE_SBRK
-  extern char **environ;
-  size_t allocated;
-
-  if (first_break != NULL)
-    allocated = (char *) sbrk (0) - first_break;
-  else
-    allocated = (char *) sbrk (0) - (char *) &environ;
-  fprintf (stderr,
-	   "\n%s%sout of memory allocating %lu bytes after a total of %lu bytes\n",
-	   name, *name ? ": " : "",
-	   (unsigned long) size, (unsigned long) allocated);
-#else /* HAVE_SBRK */
-  fprintf (stderr,
-	   "\n%s%sout of memory allocating %lu bytes\n",
-	   name, *name ? ": " : "",
-	   (unsigned long) size);
-#endif /* HAVE_SBRK */
-  xexit (1);
-}  
-
-PTR
-xmalloc (size_t size)
-{
-  PTR newmem;
-
-  if (size == 0)
-    size = 1;
-  newmem = malloc (size);
-  if (!newmem)
-    xmalloc_failed (size);
-
-  return (newmem);
-}
-
-PTR
-xcalloc (size_t nelem, size_t elsize)
-{
-  PTR newmem;
-
-  if (nelem == 0 || elsize == 0)
-    nelem = elsize = 1;
-
-  newmem = calloc (nelem, elsize);
-  if (!newmem)
-    xmalloc_failed (nelem * elsize);
-
-  return (newmem);
-}
-
-PTR
-xrealloc (PTR oldmem, size_t size)
-{
-  PTR newmem;
-
-  if (size == 0)
-    size = 1;
-  if (!oldmem)
-    newmem = malloc (size);
-  else
-    newmem = realloc (oldmem, size);
-  if (!newmem)
-    xmalloc_failed (size);
-
-  return (newmem);
-}
diff --git a/libiberty/xmemdup.c b/libiberty/xmemdup.c
deleted file mode 100644
index d483116..0000000
--- a/libiberty/xmemdup.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* xmemdup.c -- Duplicate a memory buffer, using xcalloc.
-   This trivial function is in the public domain.
-   Jeff Garzik, September 1999.  */
-
-/*
-
-@deftypefn Replacement void* xmemdup (void *@var{input}, size_t @var{copy_size}, size_t @var{alloc_size})
-
-Duplicates a region of memory without fail.  First, @var{alloc_size} bytes
-are allocated, then @var{copy_size} bytes from @var{input} are copied into
-it, and the new memory is returned.  If fewer bytes are copied than were
-allocated, the remaining memory is zeroed.
-
-@end deftypefn
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include "ansidecl.h"
-#include "libiberty.h"
-
-#include <sys/types.h> /* For size_t. */
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-# ifdef HAVE_STRINGS_H
-#  include <strings.h>
-# endif
-#endif
-
-PTR
-xmemdup (const PTR input, size_t copy_size, size_t alloc_size)
-{
-  PTR output = xcalloc (1, alloc_size);
-  return (PTR) memcpy (output, input, copy_size);
-}
diff --git a/libiberty/xstrdup.c b/libiberty/xstrdup.c
deleted file mode 100644
index 9ac2ea0..0000000
--- a/libiberty/xstrdup.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* xstrdup.c -- Duplicate a string in memory, using xmalloc.
-   This trivial function is in the public domain.
-   Ian Lance Taylor, Cygnus Support, December 1995.  */
-
-/*
-
-@deftypefn Replacement char* xstrdup (const char *@var{s})
-
-Duplicates a character string without fail, using @code{xmalloc} to
-obtain memory.
-
-@end deftypefn
-
-*/
-
-#include <sys/types.h>
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-# ifdef HAVE_STRINGS_H
-#  include <strings.h>
-# endif
-#endif
-#include "ansidecl.h"
-#include "libiberty.h"
-
-char *
-xstrdup (const char *s)
-{
-  register size_t len = strlen (s) + 1;
-  register char *ret = XNEWVEC (char, len);
-  return (char *) memcpy (ret, s, len);
-}
diff --git a/libiberty/xstrerror.c b/libiberty/xstrerror.c
deleted file mode 100644
index 2ea2200..0000000
--- a/libiberty/xstrerror.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* xstrerror.c -- jacket routine for more robust strerror() usage.
-   Fri Jun 16 18:30:00 1995  Pat Rankin  <rankin@eql.caltech.edu>
-   This code is in the public domain.  */
-
-/*
-
-@deftypefn Replacement char* xstrerror (int @var{errnum})
-
-Behaves exactly like the standard @code{strerror} function, but
-will never return a @code{NULL} pointer.
-
-@end deftypefn
-
-*/
-
-#include <stdio.h>
-
-#include "config.h"
-#include "libiberty.h"
-
-#ifdef VMS
-#  include <errno.h>
-#  if !defined (__STRICT_ANSI__) && !defined (__HIDE_FORBIDDEN_NAMES)
-#    ifdef __cplusplus
-extern "C" {
-#    endif /* __cplusplus */
-extern char *strerror (int,...);
-#    define DONT_DECLARE_STRERROR
-#    ifdef __cplusplus
-}
-#    endif /* __cplusplus */
-#  endif
-#endif  /* VMS */
-
-
-#ifndef DONT_DECLARE_STRERROR
-#  ifdef __cplusplus
-extern "C" {
-#  endif /* __cplusplus */
-extern char *strerror (int);
-#  ifdef __cplusplus
-}
-#  endif /* __cplusplus */
-#endif
-
-/* If strerror returns NULL, we'll format the number into a static buffer.  */
-
-#define ERRSTR_FMT "undocumented error #%d"
-static char xstrerror_buf[sizeof ERRSTR_FMT + 20];
-
-/* Like strerror, but result is never a null pointer.  */
-
-char *
-xstrerror (int errnum)
-{
-  char *errstr;
-#ifdef VMS
-  char *(*vmslib_strerror) (int,...);
-
-  /* Override any possibly-conflicting declaration from system header.  */
-  vmslib_strerror = (char *(*) (int,...)) strerror;
-  /* Second argument matters iff first is EVMSERR, but it's simpler to
-     pass it unconditionally.  `vaxc$errno' is declared in <errno.h>
-     and maintained by the run-time library in parallel to `errno'.
-     We assume that `errnum' corresponds to the last value assigned to
-     errno by the run-time library, hence vaxc$errno will be relevant.  */
-  errstr = (*vmslib_strerror) (errnum, vaxc$errno);
-#else
-  errstr = strerror (errnum);
-#endif
-
-  /* If `errnum' is out of range, result might be NULL.  We'll fix that.  */
-  if (!errstr)
-    {
-      sprintf (xstrerror_buf, ERRSTR_FMT, errnum);
-      errstr = xstrerror_buf;
-    }
-  return errstr;
-}
diff --git a/libiberty/xstrndup.c b/libiberty/xstrndup.c
deleted file mode 100644
index 0a41f60..0000000
--- a/libiberty/xstrndup.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Implement the xstrndup function.
-   Copyright (C) 2005 Free Software Foundation, Inc.
-   Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
-
-/*
-
-@deftypefn Replacement char* xstrndup (const char *@var{s}, size_t @var{n})
-
-Returns a pointer to a copy of @var{s} with at most @var{n} characters
-without fail, using @code{xmalloc} to obtain memory.  The result is
-always NUL terminated.
-
-@end deftypefn
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <sys/types.h>
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-# ifdef HAVE_STRINGS_H
-#  include <strings.h>
-# endif
-#endif
-#include "ansidecl.h"
-#include "libiberty.h"
-
-char *
-xstrndup (const char *s, size_t n)
-{
-  char *result;
-  size_t len = strlen (s);
-
-  if (n < len)
-    len = n;
-
-  result = XNEWVEC (char, len + 1);
-
-  result[len] = '\0';
-  return (char *) memcpy (result, s, len);
-}
diff --git a/texinfo/texinfo.tex b/texinfo/texinfo.tex
new file mode 100644
index 0000000..6f322ea
--- /dev/null
+++ b/texinfo/texinfo.tex
@@ -0,0 +1,6931 @@
+% texinfo.tex -- TeX macros to handle Texinfo files.
+%
+% Load plain if necessary, i.e., if running under initex.
+\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
+%
+\def\texinfoversion{2004-02-19.09}
+%
+% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
+% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software
+% Foundation, Inc.
+%
+% This texinfo.tex file 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.
+%
+% This texinfo.tex file 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 texinfo.tex file; see the file COPYING.  If not, write
+% to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+% As a special exception, when this file is read by TeX when processing
+% a Texinfo source document, you may use the result without
+% restriction.  (This has been our intent since Texinfo was invented.)
+% 
+% Please try the latest version of texinfo.tex before submitting bug
+% reports; you can get the latest version from:
+%   http://www.gnu.org/software/texinfo/ (the Texinfo home page), or
+%   ftp://tug.org/tex/texinfo.tex
+%     (and all CTAN mirrors, see http://www.ctan.org).
+% The texinfo.tex in any given distribution could well be out
+% of date, so if that's what you're using, please check.
+%
+% Send bug reports to bug-texinfo@gnu.org.  Please include including a
+% complete document in each bug report with which we can reproduce the
+% problem.  Patches are, of course, greatly appreciated.
+%
+% To process a Texinfo manual with TeX, it's most reliable to use the
+% texi2dvi shell script that comes with the distribution.  For a simple
+% manual foo.texi, however, you can get away with this:
+%   tex foo.texi
+%   texindex foo.??
+%   tex foo.texi
+%   tex foo.texi
+%   dvips foo.dvi -o  # or whatever; this makes foo.ps.
+% The extra TeX runs get the cross-reference information correct.
+% Sometimes one run after texindex suffices, and sometimes you need more
+% than two; texi2dvi does it as many times as necessary.
+%
+% It is possible to adapt texinfo.tex for other languages, to some
+% extent.  You can get the existing language-specific files from the
+% full Texinfo distribution.
+% 
+% The GNU Texinfo home page is http://www.gnu.org/software/texinfo.
+
+
+\message{Loading texinfo [version \texinfoversion]:}
+
+% If in a .fmt file, print the version number
+% and turn on active characters that we couldn't do earlier because
+% they might have appeared in the input file name.
+\everyjob{\message{[Texinfo version \texinfoversion]}%
+  \catcode`+=\active \catcode`\_=\active}
+
+\message{Basics,}
+\chardef\other=12
+
+% We never want plain's \outer definition of \+ in Texinfo.
+% For @tex, we can use \tabalign.
+\let\+ = \relax
+
+% Save some plain tex macros whose names we will redefine.
+\let\ptexb=\b
+\let\ptexbullet=\bullet
+\let\ptexc=\c
+\let\ptexcomma=\,
+\let\ptexdot=\.
+\let\ptexdots=\dots
+\let\ptexend=\end
+\let\ptexequiv=\equiv
+\let\ptexexclam=\!
+\let\ptexfootnote=\footnote
+\let\ptexgtr=>
+\let\ptexhat=^
+\let\ptexi=\i
+\let\ptexindent=\indent
+\let\ptexnoindent=\noindent
+\let\ptexinsert=\insert
+\let\ptexlbrace=\{
+\let\ptexless=<
+\let\ptexplus=+
+\let\ptexrbrace=\}
+\let\ptexslash=\/
+\let\ptexstar=\*
+\let\ptext=\t
+
+% If this character appears in an error message or help string, it
+% starts a new line in the output.
+\newlinechar = `^^J
+
+% Use TeX 3.0's \inputlineno to get the line number, for better error
+% messages, but if we're using an old version of TeX, don't do anything.
+%
+\ifx\inputlineno\thisisundefined
+  \let\linenumber = \empty % Pre-3.0.
+\else
+  \def\linenumber{l.\the\inputlineno:\space}
+\fi
+
+% Set up fixed words for English if not already set.
+\ifx\putwordAppendix\undefined  \gdef\putwordAppendix{Appendix}\fi
+\ifx\putwordChapter\undefined   \gdef\putwordChapter{Chapter}\fi
+\ifx\putwordfile\undefined      \gdef\putwordfile{file}\fi
+\ifx\putwordin\undefined        \gdef\putwordin{in}\fi
+\ifx\putwordIndexIsEmpty\undefined     \gdef\putwordIndexIsEmpty{(Index is empty)}\fi
+\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi
+\ifx\putwordInfo\undefined      \gdef\putwordInfo{Info}\fi
+\ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi
+\ifx\putwordMethodon\undefined  \gdef\putwordMethodon{Method on}\fi
+\ifx\putwordNoTitle\undefined   \gdef\putwordNoTitle{No Title}\fi
+\ifx\putwordof\undefined        \gdef\putwordof{of}\fi
+\ifx\putwordon\undefined        \gdef\putwordon{on}\fi
+\ifx\putwordpage\undefined      \gdef\putwordpage{page}\fi
+\ifx\putwordsection\undefined   \gdef\putwordsection{section}\fi
+\ifx\putwordSection\undefined   \gdef\putwordSection{Section}\fi
+\ifx\putwordsee\undefined       \gdef\putwordsee{see}\fi
+\ifx\putwordSee\undefined       \gdef\putwordSee{See}\fi
+\ifx\putwordShortTOC\undefined  \gdef\putwordShortTOC{Short Contents}\fi
+\ifx\putwordTOC\undefined       \gdef\putwordTOC{Table of Contents}\fi
+%
+\ifx\putwordMJan\undefined \gdef\putwordMJan{January}\fi
+\ifx\putwordMFeb\undefined \gdef\putwordMFeb{February}\fi
+\ifx\putwordMMar\undefined \gdef\putwordMMar{March}\fi
+\ifx\putwordMApr\undefined \gdef\putwordMApr{April}\fi
+\ifx\putwordMMay\undefined \gdef\putwordMMay{May}\fi
+\ifx\putwordMJun\undefined \gdef\putwordMJun{June}\fi
+\ifx\putwordMJul\undefined \gdef\putwordMJul{July}\fi
+\ifx\putwordMAug\undefined \gdef\putwordMAug{August}\fi
+\ifx\putwordMSep\undefined \gdef\putwordMSep{September}\fi
+\ifx\putwordMOct\undefined \gdef\putwordMOct{October}\fi
+\ifx\putwordMNov\undefined \gdef\putwordMNov{November}\fi
+\ifx\putwordMDec\undefined \gdef\putwordMDec{December}\fi
+%
+\ifx\putwordDefmac\undefined    \gdef\putwordDefmac{Macro}\fi
+\ifx\putwordDefspec\undefined   \gdef\putwordDefspec{Special Form}\fi
+\ifx\putwordDefvar\undefined    \gdef\putwordDefvar{Variable}\fi
+\ifx\putwordDefopt\undefined    \gdef\putwordDefopt{User Option}\fi
+\ifx\putwordDeffunc\undefined   \gdef\putwordDeffunc{Function}\fi
+
+% In some macros, we cannot use the `\? notation---the left quote is
+% in some cases the escape char.
+\chardef\colonChar = `\:
+\chardef\commaChar = `\,
+\chardef\dotChar   = `\.
+\chardef\exclamChar= `\!
+\chardef\questChar = `\?
+\chardef\semiChar  = `\;
+\chardef\underChar = `\_
+
+\chardef\spaceChar = `\ %
+\chardef\spacecat = 10
+\def\spaceisspace{\catcode\spaceChar=\spacecat}
+
+% Ignore a token.
+%
+\def\gobble#1{}
+
+% The following is used inside several \edef's.
+\def\makecsname#1{\expandafter\noexpand\csname#1\endcsname}
+
+% Hyphenation fixes.
+\hyphenation{
+  Flor-i-da Ghost-script Ghost-view Mac-OS ap-pen-dix bit-map bit-maps
+  data-base data-bases eshell fall-ing half-way long-est man-u-script
+  man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm
+  par-a-digms rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces
+  stand-alone strong-est time-stamp time-stamps which-ever white-space
+  wide-spread wrap-around
+}
+
+% Margin to add to right of even pages, to left of odd pages.
+\newdimen\bindingoffset
+\newdimen\normaloffset
+\newdimen\pagewidth \newdimen\pageheight
+
+% For a final copy, take out the rectangles
+% that mark overfull boxes (in case you have decided
+% that the text looks ok even though it passes the margin).
+%
+\def\finalout{\overfullrule=0pt}
+
+% @| inserts a changebar to the left of the current line.  It should
+% surround any changed text.  This approach does *not* work if the
+% change spans more than two lines of output.  To handle that, we would
+% have adopt a much more difficult approach (putting marks into the main
+% vertical list for the beginning and end of each change).
+%
+\def\|{%
+  % \vadjust can only be used in horizontal mode.
+  \leavevmode
+  %
+  % Append this vertical mode material after the current line in the output.
+  \vadjust{%
+    % We want to insert a rule with the height and depth of the current
+    % leading; that is exactly what \strutbox is supposed to record.
+    \vskip-\baselineskip
+    %
+    % \vadjust-items are inserted at the left edge of the type.  So
+    % the \llap here moves out into the left-hand margin.
+    \llap{%
+      %
+      % For a thicker or thinner bar, change the `1pt'.
+      \vrule height\baselineskip width1pt
+      %
+      % This is the space between the bar and the text.
+      \hskip 12pt
+    }%
+  }%
+}
+
+% Sometimes it is convenient to have everything in the transcript file
+% and nothing on the terminal.  We don't just call \tracingall here,
+% since that produces some useless output on the terminal.  We also make
+% some effort to order the tracing commands to reduce output in the log
+% file; cf. trace.sty in LaTeX.
+%
+\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}%
+\def\loggingall{%
+  \tracingstats2
+  \tracingpages1
+  \tracinglostchars2  % 2 gives us more in etex
+  \tracingparagraphs1
+  \tracingoutput1
+  \tracingmacros2
+  \tracingrestores1
+  \showboxbreadth\maxdimen \showboxdepth\maxdimen
+  \ifx\eTeXversion\undefined\else % etex gives us more logging
+    \tracingscantokens1
+    \tracingifs1
+    \tracinggroups1
+    \tracingnesting2
+    \tracingassigns1
+  \fi
+  \tracingcommands3  % 3 gives us more in etex
+  \errorcontextlines16
+}%
+
+% add check for \lastpenalty to plain's definitions.  If the last thing
+% we did was a \nobreak, we don't want to insert more space.
+%
+\def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount
+  \removelastskip\penalty-50\smallskip\fi\fi}
+\def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount
+  \removelastskip\penalty-100\medskip\fi\fi}
+\def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount
+  \removelastskip\penalty-200\bigskip\fi\fi}
+
+% For @cropmarks command.
+% Do @cropmarks to get crop marks.
+%
+\newif\ifcropmarks
+\let\cropmarks = \cropmarkstrue
+%
+% Dimensions to add cropmarks at corners.
+% Added by P. A. MacKay, 12 Nov. 1986
+%
+\newdimen\outerhsize \newdimen\outervsize % set by the paper size routines
+\newdimen\cornerlong  \cornerlong=1pc
+\newdimen\cornerthick \cornerthick=.3pt
+\newdimen\topandbottommargin \topandbottommargin=.75in
+
+% Main output routine.
+\chardef\PAGE = 255
+\output = {\onepageout{\pagecontents\PAGE}}
+
+\newbox\headlinebox
+\newbox\footlinebox
+
+% \onepageout takes a vbox as an argument.  Note that \pagecontents
+% does insertions, but you have to call it yourself.
+\def\onepageout#1{%
+  \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
+  %
+  \ifodd\pageno  \advance\hoffset by \bindingoffset
+  \else \advance\hoffset by -\bindingoffset\fi
+  %
+  % Do this outside of the \shipout so @code etc. will be expanded in
+  % the headline as they should be, not taken literally (outputting ''code).
+  \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
+  \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
+  %
+  {%
+    % Have to do this stuff outside the \shipout because we want it to
+    % take effect in \write's, yet the group defined by the \vbox ends
+    % before the \shipout runs.
+    %
+    \escapechar = `\\     % use backslash in output files.
+    \indexdummies         % don't expand commands in the output.
+    \normalturnoffactive  % \ in index entries must not stay \, e.g., if
+                   % the page break happens to be in the middle of an example.
+    \shipout\vbox{%
+      % Do this early so pdf references go to the beginning of the page.
+      \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi
+      %
+      \ifcropmarks \vbox to \outervsize\bgroup
+        \hsize = \outerhsize
+        \vskip-\topandbottommargin
+        \vtop to0pt{%
+          \line{\ewtop\hfil\ewtop}%
+          \nointerlineskip
+          \line{%
+            \vbox{\moveleft\cornerthick\nstop}%
+            \hfill
+            \vbox{\moveright\cornerthick\nstop}%
+          }%
+          \vss}%
+        \vskip\topandbottommargin
+        \line\bgroup
+          \hfil % center the page within the outer (page) hsize.
+          \ifodd\pageno\hskip\bindingoffset\fi
+          \vbox\bgroup
+      \fi
+      %
+      \unvbox\headlinebox
+      \pagebody{#1}%
+      \ifdim\ht\footlinebox > 0pt
+        % Only leave this space if the footline is nonempty.
+        % (We lessened \vsize for it in \oddfootingxxx.)
+        % The \baselineskip=24pt in plain's \makefootline has no effect.
+        \vskip 2\baselineskip
+        \unvbox\footlinebox
+      \fi
+      %
+      \ifcropmarks
+          \egroup % end of \vbox\bgroup
+        \hfil\egroup % end of (centering) \line\bgroup
+        \vskip\topandbottommargin plus1fill minus1fill
+        \boxmaxdepth = \cornerthick
+        \vbox to0pt{\vss
+          \line{%
+            \vbox{\moveleft\cornerthick\nsbot}%
+            \hfill
+            \vbox{\moveright\cornerthick\nsbot}%
+          }%
+          \nointerlineskip
+          \line{\ewbot\hfil\ewbot}%
+        }%
+      \egroup % \vbox from first cropmarks clause
+      \fi
+    }% end of \shipout\vbox
+  }% end of group with \normalturnoffactive
+  \advancepageno
+  \ifnum\outputpenalty>-20000 \else\dosupereject\fi
+}
+
+\newinsert\margin \dimen\margin=\maxdimen
+
+\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
+{\catcode`\@ =11
+\gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi
+% marginal hacks, juha@viisa.uucp (Juha Takala)
+\ifvoid\margin\else % marginal info is present
+  \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi
+\dimen@=\dp#1 \unvbox#1
+\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi
+\ifr@ggedbottom \kern-\dimen@ \vfil \fi}
+}
+
+% Here are the rules for the cropmarks.  Note that they are
+% offset so that the space between them is truly \outerhsize or \outervsize
+% (P. A. MacKay, 12 November, 1986)
+%
+\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong}
+\def\nstop{\vbox
+  {\hrule height\cornerthick depth\cornerlong width\cornerthick}}
+\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong}
+\def\nsbot{\vbox
+  {\hrule height\cornerlong depth\cornerthick width\cornerthick}}
+
+% Parse an argument, then pass it to #1.  The argument is the rest of
+% the input line (except we remove a trailing comment).  #1 should be a
+% macro which expects an ordinary undelimited TeX argument.
+%
+\def\parsearg{\parseargusing{}}
+\def\parseargusing#1#2{%
+  \def\next{#2}%
+  \begingroup
+    \obeylines
+    \spaceisspace
+    #1%
+    \parseargline\empty% Insert the \empty token, see \finishparsearg below.
+}
+
+{\obeylines %
+  \gdef\parseargline#1^^M{%
+    \endgroup % End of the group started in \parsearg.
+    \argremovecomment #1\comment\ArgTerm%
+  }%
+}
+
+% First remove any @comment, then any @c comment.
+\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
+\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
+
+% Each occurence of `\^^M' or `<space>\^^M' is replaced by a single space.
+%
+% \argremovec might leave us with trailing space, e.g.,
+%    @end itemize  @c foo
+% This space token undergoes the same procedure and is eventually removed
+% by \finishparsearg.
+%
+\def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M}
+\def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M}
+\def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{%
+  \def\temp{#3}%
+  \ifx\temp\empty
+    % We cannot use \next here, as it holds the macro to run;
+    % thus we reuse \temp.
+    \let\temp\finishparsearg
+  \else
+    \let\temp\argcheckspaces
+  \fi
+  % Put the space token in:
+  \temp#1 #3\ArgTerm
+}
+
+% If a _delimited_ argument is enclosed in braces, they get stripped; so
+% to get _exactly_ the rest of the line, we had to prevent such situation.
+% We prepended an \empty token at the very beginning and we expand it now,
+% just before passing the control to \next.
+% (Similarily, we have to think about #3 of \argcheckspacesY above: it is
+% either the null string, or it ends with \^^M---thus there is no danger
+% that a pair of braces would be stripped.
+%
+% But first, we have to remove the trailing space token.
+%
+\def\finishparsearg#1 \ArgTerm{\expandafter\next\expandafter{#1}}
+
+% \parseargdef\foo{...}
+%	is roughly equivalent to
+% \def\foo{\parsearg\Xfoo}
+% \def\Xfoo#1{...}
+%
+% Actually, I use \csname\string\foo\endcsname, ie. \\foo, as it is my
+% favourite TeX trick.  --kasal, 16nov03
+
+\def\parseargdef#1{%
+  \expandafter \doparseargdef \csname\string#1\endcsname #1%
+}
+\def\doparseargdef#1#2{%
+  \def#2{\parsearg#1}%
+  \def#1##1%
+}
+
+% Several utility definitions with active space:
+{
+  \obeyspaces
+  \gdef\obeyedspace{ }
+
+  % Make each space character in the input produce a normal interword
+  % space in the output.  Don't allow a line break at this space, as this
+  % is used only in environments like @example, where each line of input
+  % should produce a line of output anyway.
+  %
+  \gdef\sepspaces{\obeyspaces\let =\tie}
+
+  % If an index command is used in an @example environment, any spaces
+  % therein should become regular spaces in the raw index file, not the
+  % expansion of \tie (\leavevmode \penalty \@M \ ).
+  \gdef\unsepspaces{\let =\space}
+}
+
+
+\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}
+
+% Define the framework for environments in texinfo.tex.  It's used like this:
+% 
+%   \envdef\foo{...}
+%   \def\Efoo{...}
+%   
+% It's the responsibility of \envdef to insert \begingroup before the
+% actual body; @end closes the group after calling \Efoo.  \envdef also
+% defines \thisenv, so the current environment is known; @end checks
+% whether the environment name matches.  The \checkenv macro can also be
+% used to check whether the current environment is the one expected.
+% 
+% Non-false conditionals (@iftex, @ifset) don't fit into this, so they
+% are not treated as enviroments; they don't open a group.  (The
+% implementation of @end takes care not to call \endgroup in this
+% special case.)
+
+
+% At runtime, environments start with this:
+\def\startenvironment#1{\begingroup\def\thisenv{#1}}
+% initialize
+\let\thisenv\empty
+
+% ... but they get defined via ``\envdef\foo{...}'':
+\long\def\envdef#1#2{\def#1{\startenvironment#1#2}}
+\def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}}
+
+% Check whether we're in the right environment:
+\def\checkenv#1{%
+  \def\temp{#1}%
+  \ifx\thisenv\temp
+  \else
+    \badenverr
+  \fi
+}
+
+% Evironment mismatch, #1 expected:
+\def\badenverr{%
+  \errhelp = \EMsimple
+  \errmessage{This command can appear only \inenvironment\temp,
+    not \inenvironment\thisenv}%
+}
+\def\inenvironment#1{%
+  \ifx#1\empty
+    out of any environment%
+  \else
+    in environment \expandafter\string#1%
+  \fi
+}
+
+% @end foo executes the definition of \Efoo.
+% But first, it executes a specialized version of \checkenv
+%
+\parseargdef\end{%
+  \if 1\csname iscond.#1\endcsname
+  \else
+    % The general wording of \badenverr may not be ideal, but... --kasal, 06nov03
+    \expandafter\checkenv\csname#1\endcsname
+    \csname E#1\endcsname
+    \endgroup
+  \fi
+}
+
+\newhelp\EMsimple{Press RETURN to continue.}
+
+
+%% Simple single-character @ commands
+
+% @@ prints an @
+% Kludge this until the fonts are right (grr).
+\def\@{{\tt\char64}}
+
+% This is turned off because it was never documented
+% and you can use @w{...} around a quote to suppress ligatures.
+%% Define @` and @' to be the same as ` and '
+%% but suppressing ligatures.
+%\def\`{{`}}
+%\def\'{{'}}
+
+% Used to generate quoted braces.
+\def\mylbrace {{\tt\char123}}
+\def\myrbrace {{\tt\char125}}
+\let\{=\mylbrace
+\let\}=\myrbrace
+\begingroup
+  % Definitions to produce \{ and \} commands for indices,
+  % and @{ and @} for the aux file.
+  \catcode`\{ = \other \catcode`\} = \other
+  \catcode`\[ = 1 \catcode`\] = 2
+  \catcode`\! = 0 \catcode`\\ = \other
+  !gdef!lbracecmd[\{]%
+  !gdef!rbracecmd[\}]%
+  !gdef!lbraceatcmd[@{]%
+  !gdef!rbraceatcmd[@}]%
+!endgroup
+
+% @comma{} to avoid , parsing problems.
+\let\comma = ,
+
+% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
+% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H.
+\let\, = \c
+\let\dotaccent = \.
+\def\ringaccent#1{{\accent23 #1}}
+\let\tieaccent = \t
+\let\ubaraccent = \b
+\let\udotaccent = \d
+
+% Other special characters: @questiondown @exclamdown @ordf @ordm
+% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss.
+\def\questiondown{?`}
+\def\exclamdown{!`}
+\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}}
+\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}}
+
+% Dotless i and dotless j, used for accents.
+\def\imacro{i}
+\def\jmacro{j}
+\def\dotless#1{%
+  \def\temp{#1}%
+  \ifx\temp\imacro \ptexi
+  \else\ifx\temp\jmacro \j
+  \else \errmessage{@dotless can be used only with i or j}%
+  \fi\fi
+}
+
+% The \TeX{} logo, as in plain, but resetting the spacing so that a
+% period following counts as ending a sentence.  (Idea found in latex.)
+% 
+\edef\TeX{\TeX \spacefactor=3000 }
+
+% @LaTeX{} logo.  Not quite the same results as the definition in
+% latex.ltx, since we use a different font for the raised A; it's most
+% convenient for us to use an explicitly smaller font, rather than using
+% the \scriptstyle font (since we don't reset \scriptstyle and
+% \scriptscriptstyle).
+% 
+\def\LaTeX{%
+  L\kern-.36em
+  {\setbox0=\hbox{T}%
+   \vbox to \ht0{\hbox{\selectfonts\lllsize A}\vss}}%
+  \kern-.15em
+  \TeX
+}
+
+% Be sure we're in horizontal mode when doing a tie, since we make space
+% equivalent to this in @example-like environments. Otherwise, a space
+% at the beginning of a line will start with \penalty -- and
+% since \penalty is valid in vertical mode, we'd end up putting the
+% penalty on the vertical list instead of in the new paragraph.
+{\catcode`@ = 11
+ % Avoid using \@M directly, because that causes trouble
+ % if the definition is written into an index file.
+ \global\let\tiepenalty = \@M
+ \gdef\tie{\leavevmode\penalty\tiepenalty\ }
+}
+
+% @: forces normal size whitespace following.
+\def\:{\spacefactor=1000 }
+
+% @* forces a line break.
+\def\*{\hfil\break\hbox{}\ignorespaces}
+
+% @/ allows a line break.
+\let\/=\allowbreak
+
+% @. is an end-of-sentence period.
+\def\.{.\spacefactor=3000 }
+
+% @! is an end-of-sentence bang.
+\def\!{!\spacefactor=3000 }
+
+% @? is an end-of-sentence query.
+\def\?{?\spacefactor=3000 }
+
+% @w prevents a word break.  Without the \leavevmode, @w at the
+% beginning of a paragraph, when TeX is still in vertical mode, would
+% produce a whole line of output instead of starting the paragraph.
+\def\w#1{\leavevmode\hbox{#1}}
+
+% @group ... @end group forces ... to be all on one page, by enclosing
+% it in a TeX vbox.  We use \vtop instead of \vbox to construct the box
+% to keep its height that of a normal line.  According to the rules for
+% \topskip (p.114 of the TeXbook), the glue inserted is
+% max (\topskip - \ht (first item), 0).  If that height is large,
+% therefore, no glue is inserted, and the space between the headline and
+% the text is small, which looks bad.
+%
+% Another complication is that the group might be very large.  This can
+% cause the glue on the previous page to be unduly stretched, because it
+% does not have much material.  In this case, it's better to add an
+% explicit \vfill so that the extra space is at the bottom.  The
+% threshold for doing this is if the group is more than \vfilllimit
+% percent of a page (\vfilllimit can be changed inside of @tex).
+%
+\newbox\groupbox
+\def\vfilllimit{0.7}
+%
+\envdef\group{%
+  \ifnum\catcode`\^^M=\active \else
+    \errhelp = \groupinvalidhelp
+    \errmessage{@group invalid in context where filling is enabled}%
+  \fi
+  \startsavinginserts
+  %
+  \setbox\groupbox = \vtop\bgroup
+    % Do @comment since we are called inside an environment such as
+    % @example, where each end-of-line in the input causes an
+    % end-of-line in the output.  We don't want the end-of-line after
+    % the `@group' to put extra space in the output.  Since @group
+    % should appear on a line by itself (according to the Texinfo
+    % manual), we don't worry about eating any user text.
+    \comment
+}
+%
+% The \vtop produces a box with normal height and large depth; thus, TeX puts
+% \baselineskip glue before it, and (when the next line of text is done)
+% \lineskip glue after it.  Thus, space below is not quite equal to space
+% above.  But it's pretty close.
+\def\Egroup{%
+    % To get correct interline space between the last line of the group
+    % and the first line afterwards, we have to propagate \prevdepth.
+    \endgraf % Not \par, as it may have been set to \lisppar.
+    \global\dimen1 = \prevdepth
+  \egroup           % End the \vtop.
+  % \dimen0 is the vertical size of the group's box.
+  \dimen0 = \ht\groupbox  \advance\dimen0 by \dp\groupbox
+  % \dimen2 is how much space is left on the page (more or less).
+  \dimen2 = \pageheight   \advance\dimen2 by -\pagetotal
+  % if the group doesn't fit on the current page, and it's a big big
+  % group, force a page break.
+  \ifdim \dimen0 > \dimen2
+    \ifdim \pagetotal < \vfilllimit\pageheight
+      \page
+    \fi
+  \fi
+  \box\groupbox
+  \prevdepth = \dimen1
+  \checkinserts
+}
+%
+% TeX puts in an \escapechar (i.e., `@') at the beginning of the help
+% message, so this ends up printing `@group can only ...'.
+%
+\newhelp\groupinvalidhelp{%
+group can only be used in environments such as @example,^^J%
+where each line of input produces a line of output.}
+
+% @need space-in-mils
+% forces a page break if there is not space-in-mils remaining.
+
+\newdimen\mil  \mil=0.001in
+
+% Old definition--didn't work.
+%\parseargdef\need{\par %
+%% This method tries to make TeX break the page naturally
+%% if the depth of the box does not fit.
+%{\baselineskip=0pt%
+%\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak
+%\prevdepth=-1000pt
+%}}
+
+\parseargdef\need{%
+  % Ensure vertical mode, so we don't make a big box in the middle of a
+  % paragraph.
+  \par
+  %
+  % If the @need value is less than one line space, it's useless.
+  \dimen0 = #1\mil
+  \dimen2 = \ht\strutbox
+  \advance\dimen2 by \dp\strutbox
+  \ifdim\dimen0 > \dimen2
+    %
+    % Do a \strut just to make the height of this box be normal, so the
+    % normal leading is inserted relative to the preceding line.
+    % And a page break here is fine.
+    \vtop to #1\mil{\strut\vfil}%
+    %
+    % TeX does not even consider page breaks if a penalty added to the
+    % main vertical list is 10000 or more.  But in order to see if the
+    % empty box we just added fits on the page, we must make it consider
+    % page breaks.  On the other hand, we don't want to actually break the
+    % page after the empty box.  So we use a penalty of 9999.
+    %
+    % There is an extremely small chance that TeX will actually break the
+    % page at this \penalty, if there are no other feasible breakpoints in
+    % sight.  (If the user is using lots of big @group commands, which
+    % almost-but-not-quite fill up a page, TeX will have a hard time doing
+    % good page breaking, for example.)  However, I could not construct an
+    % example where a page broke at this \penalty; if it happens in a real
+    % document, then we can reconsider our strategy.
+    \penalty9999
+    %
+    % Back up by the size of the box, whether we did a page break or not.
+    \kern -#1\mil
+    %
+    % Do not allow a page break right after this kern.
+    \nobreak
+  \fi
+}
+
+% @br   forces paragraph break (and is undocumented).
+
+\let\br = \par
+
+% @page forces the start of a new page.
+%
+\def\page{\par\vfill\supereject}
+
+% @exdent text....
+% outputs text on separate line in roman font, starting at standard page margin
+
+% This records the amount of indent in the innermost environment.
+% That's how much \exdent should take out.
+\newskip\exdentamount
+
+% This defn is used inside fill environments such as @defun.
+\parseargdef\exdent{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}
+
+% This defn is used inside nofill environments such as @example.
+\parseargdef\nofillexdent{{\advance \leftskip by -\exdentamount
+  \leftline{\hskip\leftskip{\rm#1}}}}
+
+% @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current
+% paragraph.  For more general purposes, use the \margin insertion
+% class.  WHICH is `l' or `r'.
+%
+\newskip\inmarginspacing \inmarginspacing=1cm
+\def\strutdepth{\dp\strutbox}
+%
+\def\doinmargin#1#2{\strut\vadjust{%
+  \nobreak
+  \kern-\strutdepth
+  \vtop to \strutdepth{%
+    \baselineskip=\strutdepth
+    \vss
+    % if you have multiple lines of stuff to put here, you'll need to
+    % make the vbox yourself of the appropriate size.
+    \ifx#1l%
+      \llap{\ignorespaces #2\hskip\inmarginspacing}%
+    \else
+      \rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2}%
+    \fi
+    \null
+  }%
+}}
+\def\inleftmargin{\doinmargin l}
+\def\inrightmargin{\doinmargin r}
+%
+% @inmargin{TEXT [, RIGHT-TEXT]}
+% (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right;
+% else use TEXT for both).
+%
+\def\inmargin#1{\parseinmargin #1,,\finish}
+\def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing.
+  \setbox0 = \hbox{\ignorespaces #2}%
+  \ifdim\wd0 > 0pt
+    \def\lefttext{#1}%  have both texts
+    \def\righttext{#2}%
+  \else
+    \def\lefttext{#1}%  have only one text
+    \def\righttext{#1}%
+  \fi
+  %
+  \ifodd\pageno
+    \def\temp{\inrightmargin\righttext}% odd page -> outside is right margin
+  \else
+    \def\temp{\inleftmargin\lefttext}%
+  \fi
+  \temp
+}
+
+% @include file    insert text of that file as input.
+%
+\def\include{\parseargusing\filenamecatcodes\includezzz}
+\def\includezzz#1{%
+  \pushthisfilestack
+  \def\thisfile{#1}%
+  {%
+    \makevalueexpandable
+    \def\temp{\input #1 }%
+    \expandafter
+  }\temp
+  \popthisfilestack
+}
+\def\filenamecatcodes{%
+  \catcode`\\=\other
+  \catcode`~=\other
+  \catcode`^=\other
+  \catcode`_=\other
+  \catcode`|=\other
+  \catcode`<=\other
+  \catcode`>=\other
+  \catcode`+=\other
+  \catcode`-=\other
+}
+
+\def\pushthisfilestack{%
+  \expandafter\pushthisfilestackX\popthisfilestack\StackTerm
+}
+\def\pushthisfilestackX{%
+  \expandafter\pushthisfilestackY\thisfile\StackTerm
+}
+\def\pushthisfilestackY #1\StackTerm #2\StackTerm {%
+  \gdef\popthisfilestack{\gdef\thisfile{#1}\gdef\popthisfilestack{#2}}%
+}
+
+\def\popthisfilestack{\errthisfilestackempty}
+\def\errthisfilestackempty{\errmessage{Internal error:
+  the stack of filenames is empty.}}
+
+\def\thisfile{}
+
+% @center line
+% outputs that line, centered.
+%
+\parseargdef\center{%
+  \ifhmode
+    \let\next\centerH
+  \else
+    \let\next\centerV
+  \fi
+  \next{\hfil \ignorespaces#1\unskip \hfil}%
+}
+\def\centerH#1{%
+  {%
+    \hfil\break
+    \advance\hsize by -\leftskip
+    \advance\hsize by -\rightskip
+    \line{#1}%
+    \break
+  }%
+}
+\def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}}
+
+% @sp n   outputs n lines of vertical space
+
+\parseargdef\sp{\vskip #1\baselineskip}
+
+% @comment ...line which is ignored...
+% @c is the same as @comment
+% @ignore ... @end ignore  is another way to write a comment
+
+\def\comment{\begingroup \catcode`\^^M=\other%
+\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
+\commentxxx}
+{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
+
+\let\c=\comment
+
+% @paragraphindent NCHARS
+% We'll use ems for NCHARS, close enough.
+% NCHARS can also be the word `asis' or `none'.
+% We cannot feasibly implement @paragraphindent asis, though.
+%
+\def\asisword{asis} % no translation, these are keywords
+\def\noneword{none}
+%
+\parseargdef\paragraphindent{%
+  \def\temp{#1}%
+  \ifx\temp\asisword
+  \else
+    \ifx\temp\noneword
+      \defaultparindent = 0pt
+    \else
+      \defaultparindent = #1em
+    \fi
+  \fi
+  \parindent = \defaultparindent
+}
+
+% @exampleindent NCHARS
+% We'll use ems for NCHARS like @paragraphindent.
+% It seems @exampleindent asis isn't necessary, but
+% I preserve it to make it similar to @paragraphindent.
+\parseargdef\exampleindent{%
+  \def\temp{#1}%
+  \ifx\temp\asisword
+  \else
+    \ifx\temp\noneword
+      \lispnarrowing = 0pt
+    \else
+      \lispnarrowing = #1em
+    \fi
+  \fi
+}
+
+% @firstparagraphindent WORD
+% If WORD is `none', then suppress indentation of the first paragraph
+% after a section heading.  If WORD is `insert', then do indent at such
+% paragraphs.
+%
+% The paragraph indentation is suppressed or not by calling
+% \suppressfirstparagraphindent, which the sectioning commands do.
+% We switch the definition of this back and forth according to WORD.
+% By default, we suppress indentation.
+%
+\def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent}
+\def\insertword{insert}
+%
+\parseargdef\firstparagraphindent{%
+  \def\temp{#1}%
+  \ifx\temp\noneword
+    \let\suppressfirstparagraphindent = \dosuppressfirstparagraphindent
+  \else\ifx\temp\insertword
+    \let\suppressfirstparagraphindent = \relax
+  \else
+    \errhelp = \EMsimple
+    \errmessage{Unknown @firstparagraphindent option `\temp'}%
+  \fi\fi
+}
+
+% Here is how we actually suppress indentation.  Redefine \everypar to
+% \kern backwards by \parindent, and then reset itself to empty.
+%
+% We also make \indent itself not actually do anything until the next
+% paragraph.
+%
+\gdef\dosuppressfirstparagraphindent{%
+  \gdef\indent{%
+    \restorefirstparagraphindent
+    \indent
+  }%
+  \gdef\noindent{%
+    \restorefirstparagraphindent
+    \noindent
+  }%
+  \global\everypar = {%
+    \kern -\parindent
+    \restorefirstparagraphindent
+  }%
+}
+
+\gdef\restorefirstparagraphindent{%
+  \global \let \indent = \ptexindent
+  \global \let \noindent = \ptexnoindent
+  \global \everypar = {}%
+}
+
+
+% @asis just yields its argument.  Used with @table, for example.
+%
+\def\asis#1{#1}
+
+% @math outputs its argument in math mode.
+%
+% One complication: _ usually means subscripts, but it could also mean
+% an actual _ character, as in @math{@var{some_variable} + 1}.  So make
+% _ active, and distinguish by seeing if the current family is \slfam,
+% which is what @var uses.
+{
+  \catcode\underChar = \active
+  \gdef\mathunderscore{%
+    \catcode\underChar=\active
+    \def_{\ifnum\fam=\slfam \_\else\sb\fi}%
+  }
+}
+% Another complication: we want \\ (and @\) to output a \ character.
+% FYI, plain.tex uses \\ as a temporary control sequence (why?), but
+% this is not advertised and we don't care.  Texinfo does not
+% otherwise define @\.
+%
+% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\.
+\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi}
+%
+\def\math{%
+  \tex
+  \mathunderscore
+  \let\\ = \mathbackslash
+  \mathactive
+  $\finishmath
+}
+\def\finishmath#1{#1$\endgroup}  % Close the group opened by \tex.
+
+% Some active characters (such as <) are spaced differently in math.
+% We have to reset their definitions in case the @math was an argument
+% to a command which sets the catcodes (such as @item or @section).
+%
+{
+  \catcode`^ = \active
+  \catcode`< = \active
+  \catcode`> = \active
+  \catcode`+ = \active
+  \gdef\mathactive{%
+    \let^ = \ptexhat
+    \let< = \ptexless
+    \let> = \ptexgtr
+    \let+ = \ptexplus
+  }
+}
+
+% @bullet and @minus need the same treatment as @math, just above.
+\def\bullet{$\ptexbullet$}
+\def\minus{$-$}
+
+% @dots{} outputs an ellipsis using the current font.
+% We do .5em per period so that it has the same spacing in a typewriter
+% font as three actual period characters.
+%
+\def\dots{%
+  \leavevmode
+  \hbox to 1.5em{%
+    \hskip 0pt plus 0.25fil
+    .\hfil.\hfil.%
+    \hskip 0pt plus 0.5fil
+  }%
+}
+
+% @enddots{} is an end-of-sentence ellipsis.
+%
+\def\enddots{%
+  \dots
+  \spacefactor=3000
+}
+
+% @comma{} is so commas can be inserted into text without messing up
+% Texinfo's parsing.
+% 
+\let\comma = ,
+
+% @refill is a no-op.
+\let\refill=\relax
+
+% If working on a large document in chapters, it is convenient to
+% be able to disable indexing, cross-referencing, and contents, for test runs.
+% This is done with @novalidate (before @setfilename).
+%
+\newif\iflinks \linkstrue % by default we want the aux files.
+\let\novalidate = \linksfalse
+
+% @setfilename is done at the beginning of every texinfo file.
+% So open here the files we need to have open while reading the input.
+% This makes it possible to make a .fmt file for texinfo.
+\def\setfilename{%
+   \fixbackslash  % Turn off hack to swallow `\input texinfo'.
+   \iflinks
+     \tryauxfile
+     % Open the new aux file.  TeX will close it automatically at exit.
+     \immediate\openout\auxfile=\jobname.aux
+   \fi % \openindices needs to do some work in any case.
+   \openindices
+   \let\setfilename=\comment % Ignore extra @setfilename cmds.
+   %
+   % If texinfo.cnf is present on the system, read it.
+   % Useful for site-wide @afourpaper, etc.
+   \openin 1 texinfo.cnf
+   \ifeof 1 \else \input texinfo.cnf \fi
+   \closein 1
+   %
+   \comment % Ignore the actual filename.
+}
+
+% Called from \setfilename.
+%
+\def\openindices{%
+  \newindex{cp}%
+  \newcodeindex{fn}%
+  \newcodeindex{vr}%
+  \newcodeindex{tp}%
+  \newcodeindex{ky}%
+  \newcodeindex{pg}%
+}
+
+% @bye.
+\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
+
+
+\message{pdf,}
+% adobe `portable' document format
+\newcount\tempnum
+\newcount\lnkcount
+\newtoks\filename
+\newcount\filenamelength
+\newcount\pgn
+\newtoks\toksA
+\newtoks\toksB
+\newtoks\toksC
+\newtoks\toksD
+\newbox\boxA
+\newcount\countA
+\newif\ifpdf
+\newif\ifpdfmakepagedest
+
+\ifx\pdfoutput\undefined
+  \pdffalse
+  \let\pdfmkdest = \gobble
+  \let\pdfurl = \gobble
+  \let\endlink = \relax
+  \let\linkcolor = \relax
+  \let\pdfmakeoutlines = \relax
+\else
+  \pdftrue
+  \pdfoutput = 1
+  \input pdfcolor
+  \pdfcatalog{/PageMode /UseOutlines}%
+  \def\dopdfimage#1#2#3{%
+    \def\imagewidth{#2}%
+    \def\imageheight{#3}%
+    % without \immediate, pdftex seg faults when the same image is
+    % included twice.  (Version 3.14159-pre-1.0-unofficial-20010704.)
+    \ifnum\pdftexversion < 14
+      \immediate\pdfimage
+    \else
+      \immediate\pdfximage
+    \fi
+      \ifx\empty\imagewidth\else width \imagewidth \fi
+      \ifx\empty\imageheight\else height \imageheight \fi
+      \ifnum\pdftexversion<13
+         #1.pdf%
+       \else
+         {#1.pdf}%
+       \fi
+    \ifnum\pdftexversion < 14 \else
+      \pdfrefximage \pdflastximage
+    \fi}
+  \def\pdfmkdest#1{{%
+    % We have to set dummies so commands such as @code in a section title
+    % aren't expanded.
+    \atdummies
+    \normalturnoffactive
+    \pdfdest name{#1} xyz%
+  }}
+  \def\pdfmkpgn#1{#1}
+  \let\linkcolor = \Blue  % was Cyan, but that seems light?
+  \def\endlink{\Black\pdfendlink}
+  % Adding outlines to PDF; macros for calculating structure of outlines
+  % come from Petr Olsak
+  \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0%
+    \else \csname#1\endcsname \fi}
+  \def\advancenumber#1{\tempnum=\expnumber{#1}\relax
+    \advance\tempnum by 1
+    \expandafter\xdef\csname#1\endcsname{\the\tempnum}}
+  %
+  % #1 is the section text.  #2 is the pdf expression for the number
+  % of subentries (or empty, for subsubsections).  #3 is the node
+  % text, which might be empty if this toc entry had no
+  % corresponding node.  #4 is the page number.
+  % 
+  \def\dopdfoutline#1#2#3#4{%
+    % Generate a link to the node text if that exists; else, use the
+    % page number.  We could generate a destination for the section
+    % text in the case where a section has no node, but it doesn't
+    % seem worthwhile, since most documents are normally structured.
+    \def\pdfoutlinedest{#3}%
+    \ifx\pdfoutlinedest\empty \def\pdfoutlinedest{#4}\fi
+    %
+    \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{#1}%
+  }
+  %
+  \def\pdfmakeoutlines{%
+    \begingroup
+      % Thanh's hack / proper braces in bookmarks
+      \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
+      \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
+      %
+      % Read toc silently, to get counts of subentries for \pdfoutline.
+      \def\numchapentry##1##2##3##4{%
+	\def\thischapnum{##2}%
+	\let\thissecnum\empty
+	\let\thissubsecnum\empty
+      }%
+      \def\numsecentry##1##2##3##4{%
+	\advancenumber{chap\thischapnum}%
+	\def\thissecnum{##2}%
+	\let\thissubsecnum\empty
+      }%
+      \def\numsubsecentry##1##2##3##4{%
+	\advancenumber{sec\thissecnum}%
+	\def\thissubsecnum{##2}%
+      }%
+      \def\numsubsubsecentry##1##2##3##4{%
+	\advancenumber{subsec\thissubsecnum}%
+      }%
+      \let\thischapnum\empty
+      \let\thissecnum\empty
+      \let\thissubsecnum\empty
+      %
+      % use \def rather than \let here because we redefine \chapentry et
+      % al. a second time, below.
+      \def\appentry{\numchapentry}%
+      \def\appsecentry{\numsecentry}%
+      \def\appsubsecentry{\numsubsecentry}%
+      \def\appsubsubsecentry{\numsubsubsecentry}%
+      \def\unnchapentry{\numchapentry}%
+      \def\unnsecentry{\numsecentry}%
+      \def\unnsubsecentry{\numsubsecentry}%
+      \def\unnsubsubsecentry{\numsubsubsecentry}%
+      \input \jobname.toc
+      %
+      % Read toc second time, this time actually producing the outlines.
+      % The `-' means take the \expnumber as the absolute number of
+      % subentries, which we calculated on our first read of the .toc above.
+      % 
+      % We use the node names as the destinations.
+      \def\numchapentry##1##2##3##4{%
+        \dopdfoutline{##1}{count-\expnumber{chap##2}}{##3}{##4}}%
+      \def\numsecentry##1##2##3##4{%
+        \dopdfoutline{##1}{count-\expnumber{sec##2}}{##3}{##4}}%
+      \def\numsubsecentry##1##2##3##4{%
+        \dopdfoutline{##1}{count-\expnumber{subsec##2}}{##3}{##4}}%
+      \def\numsubsubsecentry##1##2##3##4{% count is always zero
+        \dopdfoutline{##1}{}{##3}{##4}}%
+      %
+      % PDF outlines are displayed using system fonts, instead of
+      % document fonts.  Therefore we cannot use special characters,
+      % since the encoding is unknown.  For example, the eogonek from
+      % Latin 2 (0xea) gets translated to a | character.  Info from
+      % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100.
+      % 
+      % xx to do this right, we have to translate 8-bit characters to
+      % their "best" equivalent, based on the @documentencoding.  Right
+      % now, I guess we'll just let the pdf reader have its way.
+      \indexnofonts
+      \turnoffactive
+      \input \jobname.toc
+    \endgroup
+  }
+  %
+  \def\makelinks #1,{%
+    \def\params{#1}\def\E{END}%
+    \ifx\params\E
+      \let\nextmakelinks=\relax
+    \else
+      \let\nextmakelinks=\makelinks
+      \ifnum\lnkcount>0,\fi
+      \picknum{#1}%
+      \startlink attr{/Border [0 0 0]}
+        goto name{\pdfmkpgn{\the\pgn}}%
+      \linkcolor #1%
+      \advance\lnkcount by 1%
+      \endlink
+    \fi
+    \nextmakelinks
+  }
+  \def\picknum#1{\expandafter\pn#1}
+  \def\pn#1{%
+    \def\p{#1}%
+    \ifx\p\lbrace
+      \let\nextpn=\ppn
+    \else
+      \let\nextpn=\ppnn
+      \def\first{#1}
+    \fi
+    \nextpn
+  }
+  \def\ppn#1{\pgn=#1\gobble}
+  \def\ppnn{\pgn=\first}
+  \def\pdfmklnk#1{\lnkcount=0\makelinks #1,END,}
+  \def\skipspaces#1{\def\PP{#1}\def\D{|}%
+    \ifx\PP\D\let\nextsp\relax
+    \else\let\nextsp\skipspaces
+      \ifx\p\space\else\addtokens{\filename}{\PP}%
+        \advance\filenamelength by 1
+      \fi
+    \fi
+    \nextsp}
+  \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax}
+  \ifnum\pdftexversion < 14
+    \let \startlink \pdfannotlink
+  \else
+    \let \startlink \pdfstartlink
+  \fi
+  \def\pdfurl#1{%
+    \begingroup
+      \normalturnoffactive\def\@{@}%
+      \makevalueexpandable
+      \leavevmode\Red
+      \startlink attr{/Border [0 0 0]}%
+        user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
+    \endgroup}
+  \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
+  \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
+  \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
+  \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
+  \def\maketoks{%
+    \expandafter\poptoks\the\toksA|ENDTOKS|\relax
+    \ifx\first0\adn0
+    \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
+    \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
+    \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
+    \else
+      \ifnum0=\countA\else\makelink\fi
+      \ifx\first.\let\next=\done\else
+        \let\next=\maketoks
+        \addtokens{\toksB}{\the\toksD}
+        \ifx\first,\addtokens{\toksB}{\space}\fi
+      \fi
+    \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+    \next}
+  \def\makelink{\addtokens{\toksB}%
+    {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
+  \def\pdflink#1{%
+    \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}}
+    \linkcolor #1\endlink}
+  \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
+\fi % \ifx\pdfoutput
+
+
+\message{fonts,}
+
+% Change the current font style to #1, remembering it in \curfontstyle.
+% For now, we do not accumulate font styles: @b{@i{foo}} prints foo in
+% italics, not bold italics.
+% 
+\def\setfontstyle#1{%
+  \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd.
+  \csname ten#1\endcsname  % change the current font
+}
+
+% Select #1 fonts with the current style.
+% 
+\def\selectfonts#1{\csname #1fonts\endcsname \csname\curfontstyle\endcsname}
+
+\def\rm{\fam=0 \setfontstyle{rm}}
+\def\it{\fam=\itfam \setfontstyle{it}}
+\def\sl{\fam=\slfam \setfontstyle{sl}}
+\def\bf{\fam=\bffam \setfontstyle{bf}}
+\def\tt{\fam=\ttfam \setfontstyle{tt}}
+
+% Texinfo sort of supports the sans serif font style, which plain TeX does not.
+% So we set up a \sf.
+\newfam\sffam
+\def\sf{\fam=\sffam \setfontstyle{sf}}
+\let\li = \sf % Sometimes we call it \li, not \sf.
+
+% We don't need math for this font style.
+\def\ttsl{\setfontstyle{ttsl}}
+
+% Default leading.
+\newdimen\textleading  \textleading = 13.2pt
+
+% Set the baselineskip to #1, and the lineskip and strut size
+% correspondingly.  There is no deep meaning behind these magic numbers
+% used as factors; they just match (closely enough) what Knuth defined.
+%
+\def\lineskipfactor{.08333}
+\def\strutheightpercent{.70833}
+\def\strutdepthpercent {.29167}
+%
+\def\setleading#1{%
+  \normalbaselineskip = #1\relax
+  \normallineskip = \lineskipfactor\normalbaselineskip
+  \normalbaselines
+  \setbox\strutbox =\hbox{%
+    \vrule width0pt height\strutheightpercent\baselineskip
+                    depth \strutdepthpercent \baselineskip
+  }%
+}
+
+% Set the font macro #1 to the font named #2, adding on the
+% specified font prefix (normally `cm').
+% #3 is the font's design size, #4 is a scale factor
+\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4}
+
+% Use cm as the default font prefix.
+% To specify the font prefix, you must define \fontprefix
+% before you read in texinfo.tex.
+\ifx\fontprefix\undefined
+\def\fontprefix{cm}
+\fi
+% Support font families that don't use the same naming scheme as CM.
+\def\rmshape{r}
+\def\rmbshape{bx}               %where the normal face is bold
+\def\bfshape{b}
+\def\bxshape{bx}
+\def\ttshape{tt}
+\def\ttbshape{tt}
+\def\ttslshape{sltt}
+\def\itshape{ti}
+\def\itbshape{bxti}
+\def\slshape{sl}
+\def\slbshape{bxsl}
+\def\sfshape{ss}
+\def\sfbshape{ss}
+\def\scshape{csc}
+\def\scbshape{csc}
+
+% Text fonts (11.2pt, magstep1).
+\newcount\mainmagstep
+\ifx\bigger\relax
+  % not really supported.
+  \mainmagstep=\magstep1
+  \setfont\textrm\rmshape{12}{1000}
+  \setfont\texttt\ttshape{12}{1000}
+\else
+  \mainmagstep=\magstephalf
+  \setfont\textrm\rmshape{10}{\mainmagstep}
+  \setfont\texttt\ttshape{10}{\mainmagstep}
+\fi
+\setfont\textbf\bfshape{10}{\mainmagstep}
+\setfont\textit\itshape{10}{\mainmagstep}
+\setfont\textsl\slshape{10}{\mainmagstep}
+\setfont\textsf\sfshape{10}{\mainmagstep}
+\setfont\textsc\scshape{10}{\mainmagstep}
+\setfont\textttsl\ttslshape{10}{\mainmagstep}
+\font\texti=cmmi10 scaled \mainmagstep
+\font\textsy=cmsy10 scaled \mainmagstep
+
+% A few fonts for @defun names and args.
+\setfont\defbf\bfshape{10}{\magstep1}
+\setfont\deftt\ttshape{10}{\magstep1}
+\setfont\defttsl\ttslshape{10}{\magstep1}
+\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
+
+% Fonts for indices, footnotes, small examples (9pt).
+\setfont\smallrm\rmshape{9}{1000}
+\setfont\smalltt\ttshape{9}{1000}
+\setfont\smallbf\bfshape{10}{900}
+\setfont\smallit\itshape{9}{1000}
+\setfont\smallsl\slshape{9}{1000}
+\setfont\smallsf\sfshape{9}{1000}
+\setfont\smallsc\scshape{10}{900}
+\setfont\smallttsl\ttslshape{10}{900}
+\font\smalli=cmmi9
+\font\smallsy=cmsy9
+
+% Fonts for small examples (8pt).
+\setfont\smallerrm\rmshape{8}{1000}
+\setfont\smallertt\ttshape{8}{1000}
+\setfont\smallerbf\bfshape{10}{800}
+\setfont\smallerit\itshape{8}{1000}
+\setfont\smallersl\slshape{8}{1000}
+\setfont\smallersf\sfshape{8}{1000}
+\setfont\smallersc\scshape{10}{800}
+\setfont\smallerttsl\ttslshape{10}{800}
+\font\smalleri=cmmi8
+\font\smallersy=cmsy8
+
+% Fonts for title page (20.4pt):
+\setfont\titlerm\rmbshape{12}{\magstep3}
+\setfont\titleit\itbshape{10}{\magstep4}
+\setfont\titlesl\slbshape{10}{\magstep4}
+\setfont\titlett\ttbshape{12}{\magstep3}
+\setfont\titlettsl\ttslshape{10}{\magstep4}
+\setfont\titlesf\sfbshape{17}{\magstep1}
+\let\titlebf=\titlerm
+\setfont\titlesc\scbshape{10}{\magstep4}
+\font\titlei=cmmi12 scaled \magstep3
+\font\titlesy=cmsy10 scaled \magstep4
+\def\authorrm{\secrm}
+\def\authortt{\sectt}
+
+% Chapter (and unnumbered) fonts (17.28pt).
+\setfont\chaprm\rmbshape{12}{\magstep2}
+\setfont\chapit\itbshape{10}{\magstep3}
+\setfont\chapsl\slbshape{10}{\magstep3}
+\setfont\chaptt\ttbshape{12}{\magstep2}
+\setfont\chapttsl\ttslshape{10}{\magstep3}
+\setfont\chapsf\sfbshape{17}{1000}
+\let\chapbf=\chaprm
+\setfont\chapsc\scbshape{10}{\magstep3}
+\font\chapi=cmmi12 scaled \magstep2
+\font\chapsy=cmsy10 scaled \magstep3
+
+% Section fonts (14.4pt).
+\setfont\secrm\rmbshape{12}{\magstep1}
+\setfont\secit\itbshape{10}{\magstep2}
+\setfont\secsl\slbshape{10}{\magstep2}
+\setfont\sectt\ttbshape{12}{\magstep1}
+\setfont\secttsl\ttslshape{10}{\magstep2}
+\setfont\secsf\sfbshape{12}{\magstep1}
+\let\secbf\secrm
+\setfont\secsc\scbshape{10}{\magstep2}
+\font\seci=cmmi12 scaled \magstep1
+\font\secsy=cmsy10 scaled \magstep2
+
+% Subsection fonts (13.15pt).
+\setfont\ssecrm\rmbshape{12}{\magstephalf}
+\setfont\ssecit\itbshape{10}{1315}
+\setfont\ssecsl\slbshape{10}{1315}
+\setfont\ssectt\ttbshape{12}{\magstephalf}
+\setfont\ssecttsl\ttslshape{10}{1315}
+\setfont\ssecsf\sfbshape{12}{\magstephalf}
+\let\ssecbf\ssecrm
+\setfont\ssecsc\scbshape{10}{1315}
+\font\sseci=cmmi12 scaled \magstephalf
+\font\ssecsy=cmsy10 scaled 1315
+
+% Reduced fonts for @acro in text (10pt).
+\setfont\reducedrm\rmshape{10}{1000}
+\setfont\reducedtt\ttshape{10}{1000}
+\setfont\reducedbf\bfshape{10}{1000}
+\setfont\reducedit\itshape{10}{1000}
+\setfont\reducedsl\slshape{10}{1000}
+\setfont\reducedsf\sfshape{10}{1000}
+\setfont\reducedsc\scshape{10}{1000}
+\setfont\reducedttsl\ttslshape{10}{1000}
+\font\reducedi=cmmi10
+\font\reducedsy=cmsy10
+
+% In order for the font changes to affect most math symbols and letters,
+% we have to define the \textfont of the standard families.  Since
+% texinfo doesn't allow for producing subscripts and superscripts except
+% in the main text, we don't bother to reset \scriptfont and
+% \scriptscriptfont (which would also require loading a lot more fonts).
+%
+\def\resetmathfonts{%
+  \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy
+  \textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf
+  \textfont\ttfam=\tentt \textfont\sffam=\tensf
+}
+
+% The font-changing commands redefine the meanings of \tenSTYLE, instead
+% of just \STYLE.  We do this because \STYLE needs to also set the
+% current \fam for math mode.  Our \STYLE (e.g., \rm) commands hardwire
+% \tenSTYLE to set the current font.
+% 
+% Each font-changing command also sets the names \lsize (one size lower)
+% and \lllsize (three sizes lower).  These relative commands are used in
+% the LaTeX logo and acronyms.
+% 
+% This all needs generalizing, badly.
+% 
+\def\textfonts{%
+  \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
+  \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc
+  \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy
+  \let\tenttsl=\textttsl
+  \def\lsize{reduced}\def\lllsize{smaller}%
+  \resetmathfonts \setleading{\textleading}}
+\def\titlefonts{%
+  \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl
+  \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc
+  \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
+  \let\tenttsl=\titlettsl
+  \def\lsize{chap}\def\lllsize{subsec}%
+  \resetmathfonts \setleading{25pt}}
+\def\titlefont#1{{\titlefonts\rm #1}}
+\def\chapfonts{%
+  \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
+  \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
+  \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl
+  \def\lsize{sec}\def\lllsize{text}%
+  \resetmathfonts \setleading{19pt}}
+\def\secfonts{%
+  \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl
+  \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc
+  \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy
+  \let\tenttsl=\secttsl
+  \def\lsize{subsec}\def\lllsize{reduced}%
+  \resetmathfonts \setleading{16pt}}
+\def\subsecfonts{%
+  \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
+  \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
+  \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy
+  \let\tenttsl=\ssecttsl
+  \def\lsize{text}\def\lllsize{small}%
+  \resetmathfonts \setleading{15pt}}
+\let\subsubsecfonts = \subsecfonts
+\def\reducedfonts{%
+  \let\tenrm=\reducedrm \let\tenit=\reducedit \let\tensl=\reducedsl
+  \let\tenbf=\reducedbf \let\tentt=\reducedtt \let\reducedcaps=\reducedsc
+  \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy
+  \let\tenttsl=\reducedttsl
+  \def\lsize{small}\def\lllsize{smaller}%
+  \resetmathfonts \setleading{10.5pt}}
+\def\smallfonts{%
+  \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl
+  \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc
+  \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy
+  \let\tenttsl=\smallttsl
+  \def\lsize{smaller}\def\lllsize{smaller}%
+  \resetmathfonts \setleading{10.5pt}}
+\def\smallerfonts{%
+  \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl
+  \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc
+  \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy
+  \let\tenttsl=\smallerttsl
+  \def\lsize{smaller}\def\lllsize{smaller}%
+  \resetmathfonts \setleading{9.5pt}}
+
+% Set the fonts to use with the @small... environments.
+\let\smallexamplefonts = \smallfonts
+
+% About \smallexamplefonts.  If we use \smallfonts (9pt), @smallexample
+% can fit this many characters:
+%   8.5x11=86   smallbook=72  a4=90  a5=69
+% If we use \scriptfonts (8pt), then we can fit this many characters:
+%   8.5x11=90+  smallbook=80  a4=90+  a5=77
+% For me, subjectively, the few extra characters that fit aren't worth
+% the additional smallness of 8pt.  So I'm making the default 9pt.
+%
+% By the way, for comparison, here's what fits with @example (10pt):
+%   8.5x11=71  smallbook=60  a4=75  a5=58
+%
+% I wish the USA used A4 paper.
+% --karl, 24jan03.
+
+
+% Set up the default fonts, so we can use them for creating boxes.
+%
+\textfonts \rm
+
+% Define these so they can be easily changed for other fonts.
+\def\angleleft{$\langle$}
+\def\angleright{$\rangle$}
+
+% Count depth in font-changes, for error checks
+\newcount\fontdepth \fontdepth=0
+
+% Fonts for short table of contents.
+\setfont\shortcontrm\rmshape{12}{1000}
+\setfont\shortcontbf\bfshape{10}{\magstep1}  % no cmb12
+\setfont\shortcontsl\slshape{12}{1000}
+\setfont\shortconttt\ttshape{12}{1000}
+
+%% Add scribe-like font environments, plus @l for inline lisp (usually sans
+%% serif) and @ii for TeX italic
+
+% \smartitalic{ARG} outputs arg in italics, followed by an italic correction
+% unless the following character is such as not to need one.
+\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else
+                    \ptexslash\fi\fi\fi}
+\def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx}
+\def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx}
+
+% like \smartslanted except unconditionally uses \ttsl.
+% @var is set to this for defun arguments.
+\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx}
+
+% like \smartslanted except unconditionally use \sl.  We never want
+% ttsl for book titles, do we?
+\def\cite#1{{\sl #1}\futurelet\next\smartitalicx}
+
+\let\i=\smartitalic
+\let\var=\smartslanted
+\let\dfn=\smartslanted
+\let\emph=\smartitalic
+
+\def\b#1{{\bf #1}}
+\let\strong=\b
+
+% We can't just use \exhyphenpenalty, because that only has effect at
+% the end of a paragraph.  Restore normal hyphenation at the end of the
+% group within which \nohyphenation is presumably called.
+%
+\def\nohyphenation{\hyphenchar\font = -1  \aftergroup\restorehyphenation}
+\def\restorehyphenation{\hyphenchar\font = `- }
+
+% Set sfcode to normal for the chars that usually have another value.
+% Can't use plain's \frenchspacing because it uses the `\x notation, and
+% sometimes \x has an active definition that messes things up.
+%
+\catcode`@=11
+  \def\frenchspacing{%
+    \sfcode\dotChar  =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m
+    \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m
+  }
+\catcode`@=\other
+
+\def\t#1{%
+  {\tt \rawbackslash \frenchspacing #1}%
+  \null
+}
+\def\samp#1{`\tclose{#1}'\null}
+\setfont\keyrm\rmshape{8}{1000}
+\font\keysy=cmsy9
+\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
+  \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
+    \vbox{\hrule\kern-0.4pt
+     \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
+    \kern-0.4pt\hrule}%
+  \kern-.06em\raise0.4pt\hbox{\angleright}}}}
+% The old definition, with no lozenge:
+%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
+\def\ctrl #1{{\tt \rawbackslash \hat}#1}
+
+% @file, @option are the same as @samp.
+\let\file=\samp
+\let\option=\samp
+
+% @code is a modification of @t,
+% which makes spaces the same size as normal in the surrounding text.
+\def\tclose#1{%
+  {%
+    % Change normal interword space to be same as for the current font.
+    \spaceskip = \fontdimen2\font
+    %
+    % Switch to typewriter.
+    \tt
+    %
+    % But `\ ' produces the large typewriter interword space.
+    \def\ {{\spaceskip = 0pt{} }}%
+    %
+    % Turn off hyphenation.
+    \nohyphenation
+    %
+    \rawbackslash
+    \frenchspacing
+    #1%
+  }%
+  \null
+}
+
+% We *must* turn on hyphenation at `-' and `_' in @code.
+% Otherwise, it is too hard to avoid overfull hboxes
+% in the Emacs manual, the Library manual, etc.
+
+% Unfortunately, TeX uses one parameter (\hyphenchar) to control
+% both hyphenation at - and hyphenation within words.
+% We must therefore turn them both off (\tclose does that)
+% and arrange explicitly to hyphenate at a dash.
+%  -- rms.
+{
+  \catcode`\-=\active
+  \catcode`\_=\active
+  %
+  \global\def\code{\begingroup
+    \catcode`\-=\active \let-\codedash
+    \catcode`\_=\active \let_\codeunder
+    \codex
+  }
+}
+
+\def\realdash{-}
+\def\codedash{-\discretionary{}{}{}}
+\def\codeunder{%
+  % this is all so @math{@code{var_name}+1} can work.  In math mode, _
+  % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.)
+  % will therefore expand the active definition of _, which is us
+  % (inside @code that is), therefore an endless loop.
+  \ifusingtt{\ifmmode
+               \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_.
+             \else\normalunderscore \fi
+             \discretionary{}{}{}}%
+            {\_}%
+}
+\def\codex #1{\tclose{#1}\endgroup}
+
+% @kbd is like @code, except that if the argument is just one @key command,
+% then @kbd has no effect.
+
+% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
+%   `example' (@kbd uses ttsl only inside of @example and friends),
+%   or `code' (@kbd uses normal tty font always).
+\parseargdef\kbdinputstyle{%
+  \def\arg{#1}%
+  \ifx\arg\worddistinct
+    \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
+  \else\ifx\arg\wordexample
+    \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
+  \else\ifx\arg\wordcode
+    \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
+  \else
+    \errhelp = \EMsimple
+    \errmessage{Unknown @kbdinputstyle option `\arg'}%
+  \fi\fi\fi
+}
+\def\worddistinct{distinct}
+\def\wordexample{example}
+\def\wordcode{code}
+
+% Default is `distinct.'
+\kbdinputstyle distinct
+
+\def\xkey{\key}
+\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
+\ifx\one\xkey\ifx\threex\three \key{#2}%
+\else{\tclose{\kbdfont\look}}\fi
+\else{\tclose{\kbdfont\look}}\fi}
+
+% For @url, @env, @command quotes seem unnecessary, so use \code.
+\let\url=\code
+\let\env=\code
+\let\command=\code
+
+% @uref (abbreviation for `urlref') takes an optional (comma-separated)
+% second argument specifying the text to display and an optional third
+% arg as text to display instead of (rather than in addition to) the url
+% itself.  First (mandatory) arg is the url.  Perhaps eventually put in
+% a hypertex \special here.
+%
+\def\uref#1{\douref #1,,,\finish}
+\def\douref#1,#2,#3,#4\finish{\begingroup
+  \unsepspaces
+  \pdfurl{#1}%
+  \setbox0 = \hbox{\ignorespaces #3}%
+  \ifdim\wd0 > 0pt
+    \unhbox0 % third arg given, show only that
+  \else
+    \setbox0 = \hbox{\ignorespaces #2}%
+    \ifdim\wd0 > 0pt
+      \ifpdf
+        \unhbox0             % PDF: 2nd arg given, show only it
+      \else
+        \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url
+      \fi
+    \else
+      \code{#1}% only url given, so show it
+    \fi
+  \fi
+  \endlink
+\endgroup}
+
+% rms does not like angle brackets --karl, 17may97.
+% So now @email is just like @uref, unless we are pdf.
+%
+%\def\email#1{\angleleft{\tt #1}\angleright}
+\ifpdf
+  \def\email#1{\doemail#1,,\finish}
+  \def\doemail#1,#2,#3\finish{\begingroup
+    \unsepspaces
+    \pdfurl{mailto:#1}%
+    \setbox0 = \hbox{\ignorespaces #2}%
+    \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi
+    \endlink
+  \endgroup}
+\else
+  \let\email=\uref
+\fi
+
+% Check if we are currently using a typewriter font.  Since all the
+% Computer Modern typewriter fonts have zero interword stretch (and
+% shrink), and it is reasonable to expect all typewriter fonts to have
+% this property, we can check that font parameter.
+%
+\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
+
+% Typeset a dimension, e.g., `in' or `pt'.  The only reason for the
+% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt.
+%
+\def\dmn#1{\thinspace #1}
+
+\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
+
+% @l was never documented to mean ``switch to the Lisp font'',
+% and it is not used as such in any manual I can find.  We need it for
+% Polish suppressed-l.  --karl, 22sep96.
+%\def\l#1{{\li #1}\null}
+
+% Explicit font changes: @r, @sc, undocumented @ii.
+\def\r#1{{\rm #1}}              % roman font
+\def\sc#1{{\smallcaps#1}}       % smallcaps font
+\def\ii#1{{\it #1}}             % italic font
+
+\def\acronym#1{\doacronym #1,,\finish}
+\def\doacronym#1,#2,#3\finish{%
+  {\selectfonts\lsize #1}%
+  \def\temp{#2}%
+  \ifx\temp\empty \else
+    \space ({\unsepspaces \ignorespaces \temp \unskip})%
+  \fi
+}
+
+% @pounds{} is a sterling sign, which is in the CM italic font.
+% 
+\def\pounds{{\it\$}}
+
+% @registeredsymbol - R in a circle.  The font for the R should really
+% be smaller yet, but lllsize is the best we can do for now.
+% Adapted from the plain.tex definition of \copyright.
+%
+\def\registeredsymbol{%
+  $^{{\ooalign{\hfil\raise.07ex\hbox{\selectfonts\lllsize R}%
+               \hfil\crcr\Orb}}%
+    }$%
+}
+
+
+\message{page headings,}
+
+\newskip\titlepagetopglue \titlepagetopglue = 1.5in
+\newskip\titlepagebottomglue \titlepagebottomglue = 2pc
+
+% First the title page.  Must do @settitle before @titlepage.
+\newif\ifseenauthor
+\newif\iffinishedtitlepage
+
+% Do an implicit @contents or @shortcontents after @end titlepage if the
+% user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage.
+%
+\newif\ifsetcontentsaftertitlepage
+ \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue
+\newif\ifsetshortcontentsaftertitlepage
+ \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue
+
+\parseargdef\shorttitlepage{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}%
+        \endgroup\page\hbox{}\page}
+
+\envdef\titlepage{%
+  % Open one extra group, as we want to close it in the middle of \Etitlepage.
+  \begingroup
+    \parindent=0pt \textfonts
+    % Leave some space at the very top of the page.
+    \vglue\titlepagetopglue
+    % No rule at page bottom unless we print one at the top with @title.
+    \finishedtitlepagetrue
+    %
+    % Most title ``pages'' are actually two pages long, with space
+    % at the top of the second.  We don't want the ragged left on the second.
+    \let\oldpage = \page
+    \def\page{%
+      \iffinishedtitlepage\else
+	 \finishtitlepage
+      \fi
+      \let\page = \oldpage
+      \page
+      \null
+    }%
+}
+
+\def\Etitlepage{%
+    \iffinishedtitlepage\else
+	\finishtitlepage
+    \fi
+    % It is important to do the page break before ending the group,
+    % because the headline and footline are only empty inside the group.
+    % If we use the new definition of \page, we always get a blank page
+    % after the title page, which we certainly don't want.
+    \oldpage
+  \endgroup
+  %
+  % Need this before the \...aftertitlepage checks so that if they are
+  % in effect the toc pages will come out with page numbers.
+  \HEADINGSon
+  %
+  % If they want short, they certainly want long too.
+  \ifsetshortcontentsaftertitlepage
+    \shortcontents
+    \contents
+    \global\let\shortcontents = \relax
+    \global\let\contents = \relax
+  \fi
+  %
+  \ifsetcontentsaftertitlepage
+    \contents
+    \global\let\contents = \relax
+    \global\let\shortcontents = \relax
+  \fi
+}
+
+\def\finishtitlepage{%
+  \vskip4pt \hrule height 2pt width \hsize
+  \vskip\titlepagebottomglue
+  \finishedtitlepagetrue
+}
+
+%%% Macros to be used within @titlepage:
+
+\let\subtitlerm=\tenrm
+\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}
+
+\def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines
+		\let\tt=\authortt}
+
+\parseargdef\title{%
+  \checkenv\titlepage
+  \leftline{\titlefonts\rm #1}
+  % print a rule at the page bottom also.
+  \finishedtitlepagefalse
+  \vskip4pt \hrule height 4pt width \hsize \vskip4pt
+}
+
+\parseargdef\subtitle{%
+  \checkenv\titlepage
+  {\subtitlefont \rightline{#1}}%
+}
+
+% @author should come last, but may come many times.
+% It can also be used inside @quotation.
+% 
+\parseargdef\author{%
+  \def\temp{\quotation}%
+  \ifx\thisenv\temp
+    \def\quotationauthor{#1}% printed in \Equotation.
+  \else
+    \checkenv\titlepage
+    \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi
+    {\authorfont \leftline{#1}}%
+  \fi
+}
+
+
+%%% Set up page headings and footings.
+
+\let\thispage=\folio
+
+\newtoks\evenheadline    % headline on even pages
+\newtoks\oddheadline     % headline on odd pages
+\newtoks\evenfootline    % footline on even pages
+\newtoks\oddfootline     % footline on odd pages
+
+% Now make TeX use those variables
+\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
+                            \else \the\evenheadline \fi}}
+\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
+                            \else \the\evenfootline \fi}\HEADINGShook}
+\let\HEADINGShook=\relax
+
+% Commands to set those variables.
+% For example, this is what  @headings on  does
+% @evenheading @thistitle|@thispage|@thischapter
+% @oddheading @thischapter|@thispage|@thistitle
+% @evenfooting @thisfile||
+% @oddfooting ||@thisfile
+
+
+\def\evenheading{\parsearg\evenheadingxxx}
+\def\evenheadingxxx #1{\evenheadingyyy #1\|\|\|\|\finish}
+\def\evenheadingyyy #1\|#2\|#3\|#4\finish{%
+\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
+
+\def\oddheading{\parsearg\oddheadingxxx}
+\def\oddheadingxxx #1{\oddheadingyyy #1\|\|\|\|\finish}
+\def\oddheadingyyy #1\|#2\|#3\|#4\finish{%
+\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
+
+\parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}%
+
+\def\evenfooting{\parsearg\evenfootingxxx}
+\def\evenfootingxxx #1{\evenfootingyyy #1\|\|\|\|\finish}
+\def\evenfootingyyy #1\|#2\|#3\|#4\finish{%
+\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
+
+\def\oddfooting{\parsearg\oddfootingxxx}
+\def\oddfootingxxx #1{\oddfootingyyy #1\|\|\|\|\finish}
+\def\oddfootingyyy #1\|#2\|#3\|#4\finish{%
+  \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}%
+  %
+  % Leave some space for the footline.  Hopefully ok to assume
+  % @evenfooting will not be used by itself.
+  \global\advance\pageheight by -\baselineskip
+  \global\advance\vsize by -\baselineskip
+}
+
+\parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}}
+
+
+% @headings double      turns headings on for double-sided printing.
+% @headings single      turns headings on for single-sided printing.
+% @headings off         turns them off.
+% @headings on          same as @headings double, retained for compatibility.
+% @headings after       turns on double-sided headings after this page.
+% @headings doubleafter turns on double-sided headings after this page.
+% @headings singleafter turns on single-sided headings after this page.
+% By default, they are off at the start of a document,
+% and turned `on' after @end titlepage.
+
+\def\headings #1 {\csname HEADINGS#1\endcsname}
+
+\def\HEADINGSoff{%
+\global\evenheadline={\hfil} \global\evenfootline={\hfil}
+\global\oddheadline={\hfil} \global\oddfootline={\hfil}}
+\HEADINGSoff
+% When we turn headings on, set the page number to 1.
+% For double-sided printing, put current file name in lower left corner,
+% chapter name on inside top of right hand pages, document
+% title on inside top of left hand pages, and page numbers on outside top
+% edge of all pages.
+\def\HEADINGSdouble{%
+\global\pageno=1
+\global\evenfootline={\hfil}
+\global\oddfootline={\hfil}
+\global\evenheadline={\line{\folio\hfil\thistitle}}
+\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chapoddpage
+}
+\let\contentsalignmacro = \chappager
+
+% For single-sided printing, chapter title goes across top left of page,
+% page number on top right.
+\def\HEADINGSsingle{%
+\global\pageno=1
+\global\evenfootline={\hfil}
+\global\oddfootline={\hfil}
+\global\evenheadline={\line{\thischapter\hfil\folio}}
+\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chappager
+}
+\def\HEADINGSon{\HEADINGSdouble}
+
+\def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex}
+\let\HEADINGSdoubleafter=\HEADINGSafter
+\def\HEADINGSdoublex{%
+\global\evenfootline={\hfil}
+\global\oddfootline={\hfil}
+\global\evenheadline={\line{\folio\hfil\thistitle}}
+\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chapoddpage
+}
+
+\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex}
+\def\HEADINGSsinglex{%
+\global\evenfootline={\hfil}
+\global\oddfootline={\hfil}
+\global\evenheadline={\line{\thischapter\hfil\folio}}
+\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chappager
+}
+
+% Subroutines used in generating headings
+% This produces Day Month Year style of output.
+% Only define if not already defined, in case a txi-??.tex file has set
+% up a different format (e.g., txi-cs.tex does this).
+\ifx\today\undefined
+\def\today{%
+  \number\day\space
+  \ifcase\month
+  \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
+  \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
+  \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
+  \fi
+  \space\number\year}
+\fi
+
+% @settitle line...  specifies the title of the document, for headings.
+% It generates no output of its own.
+\def\thistitle{\putwordNoTitle}
+\def\settitle{\parsearg{\gdef\thistitle}}
+
+
+\message{tables,}
+% Tables -- @table, @ftable, @vtable, @item(x).
+
+% default indentation of table text
+\newdimen\tableindent \tableindent=.8in
+% default indentation of @itemize and @enumerate text
+\newdimen\itemindent  \itemindent=.3in
+% margin between end of table item and start of table text.
+\newdimen\itemmargin  \itemmargin=.1in
+
+% used internally for \itemindent minus \itemmargin
+\newdimen\itemmax
+
+% Note @table, @ftable, and @vtable define @item, @itemx, etc., with
+% these defs.
+% They also define \itemindex
+% to index the item name in whatever manner is desired (perhaps none).
+
+\newif\ifitemxneedsnegativevskip
+
+\def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi}
+
+\def\internalBitem{\smallbreak \parsearg\itemzzz}
+\def\internalBitemx{\itemxpar \parsearg\itemzzz}
+
+\def\itemzzz #1{\begingroup %
+  \advance\hsize by -\rightskip
+  \advance\hsize by -\tableindent
+  \setbox0=\hbox{\itemindicate{#1}}%
+  \itemindex{#1}%
+  \nobreak % This prevents a break before @itemx.
+  %
+  % If the item text does not fit in the space we have, put it on a line
+  % by itself, and do not allow a page break either before or after that
+  % line.  We do not start a paragraph here because then if the next
+  % command is, e.g., @kindex, the whatsit would get put into the
+  % horizontal list on a line by itself, resulting in extra blank space.
+  \ifdim \wd0>\itemmax
+    %
+    % Make this a paragraph so we get the \parskip glue and wrapping,
+    % but leave it ragged-right.
+    \begingroup
+      \advance\leftskip by-\tableindent
+      \advance\hsize by\tableindent
+      \advance\rightskip by0pt plus1fil
+      \leavevmode\unhbox0\par
+    \endgroup
+    %
+    % We're going to be starting a paragraph, but we don't want the
+    % \parskip glue -- logically it's part of the @item we just started.
+    \nobreak \vskip-\parskip
+    %
+    % Stop a page break at the \parskip glue coming up.  (Unfortunately
+    % we can't prevent a possible page break at the following
+    % \baselineskip glue.)  However, if what follows is an environment
+    % such as @example, there will be no \parskip glue; then
+    % the negative vskip we just would cause the example and the item to
+    % crash together.  So we use this bizarre value of 10001 as a signal
+    % to \aboveenvbreak to insert \parskip glue after all.
+    % (Possibly there are other commands that could be followed by
+    % @example which need the same treatment, but not section titles; or
+    % maybe section titles are the only special case and they should be
+    % penalty 10001...)
+    \penalty 10001
+    \endgroup
+    \itemxneedsnegativevskipfalse
+  \else
+    % The item text fits into the space.  Start a paragraph, so that the
+    % following text (if any) will end up on the same line.
+    \noindent
+    % Do this with kerns and \unhbox so that if there is a footnote in
+    % the item text, it can migrate to the main vertical list and
+    % eventually be printed.
+    \nobreak\kern-\tableindent
+    \dimen0 = \itemmax  \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0
+    \unhbox0
+    \nobreak\kern\dimen0
+    \endgroup
+    \itemxneedsnegativevskiptrue
+  \fi
+}
+
+\def\item{\errmessage{@item while not in a list environment}}
+\def\itemx{\errmessage{@itemx while not in a list environment}}
+
+% @table, @ftable, @vtable.
+\envdef\table{%
+  \let\itemindex\gobble
+  \tablex
+}
+\envdef\ftable{%
+  \def\itemindex ##1{\doind {fn}{\code{##1}}}%
+  \tablex
+}
+\envdef\vtable{%
+  \def\itemindex ##1{\doind {vr}{\code{##1}}}%
+  \tablex
+}
+\def\tablex#1{%
+  \def\itemindicate{#1}%
+  \parsearg\tabley
+}
+\def\tabley#1{%
+  {%
+    \makevalueexpandable
+    \edef\temp{\noexpand\tablez #1\space\space\space}%
+    \expandafter
+  }\temp \endtablez
+}
+\def\tablez #1 #2 #3 #4\endtablez{%
+  \aboveenvbreak
+  \ifnum 0#1>0 \advance \leftskip by #1\mil \fi
+  \ifnum 0#2>0 \tableindent=#2\mil \fi
+  \ifnum 0#3>0 \advance \rightskip by #3\mil \fi
+  \itemmax=\tableindent
+  \advance \itemmax by -\itemmargin
+  \advance \leftskip by \tableindent
+  \exdentamount=\tableindent
+  \parindent = 0pt
+  \parskip = \smallskipamount
+  \ifdim \parskip=0pt \parskip=2pt \fi
+  \let\item = \internalBitem
+  \let\itemx = \internalBitemx
+}
+\def\Etable{\endgraf\afterenvbreak}
+\let\Eftable\Etable
+\let\Evtable\Etable
+\let\Eitemize\Etable
+\let\Eenumerate\Etable
+
+% This is the counter used by @enumerate, which is really @itemize
+
+\newcount \itemno
+
+\envdef\itemize{\parsearg\doitemize}
+
+\def\doitemize#1{%
+  \aboveenvbreak
+  \itemmax=\itemindent
+  \advance\itemmax by -\itemmargin
+  \advance\leftskip by \itemindent
+  \exdentamount=\itemindent
+  \parindent=0pt
+  \parskip=\smallskipamount
+  \ifdim\parskip=0pt \parskip=2pt \fi
+  \def\itemcontents{#1}%
+  % @itemize with no arg is equivalent to @itemize @bullet.
+  \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi
+  \let\item=\itemizeitem
+}
+
+% Definition of @item while inside @itemize and @enumerate.
+%
+\def\itemizeitem{%
+  \advance\itemno by 1  % for enumerations
+  {\let\par=\endgraf \smallbreak}% reasonable place to break
+  {%
+   % If the document has an @itemize directly after a section title, a
+   % \nobreak will be last on the list, and \sectionheading will have
+   % done a \vskip-\parskip.  In that case, we don't want to zero
+   % parskip, or the item text will crash with the heading.  On the
+   % other hand, when there is normal text preceding the item (as there
+   % usually is), we do want to zero parskip, or there would be too much
+   % space.  In that case, we won't have a \nobreak before.  At least
+   % that's the theory.
+   \ifnum\lastpenalty<10000 \parskip=0in \fi
+   \noindent
+   \hbox to 0pt{\hss \itemcontents \kern\itemmargin}%
+   \vadjust{\penalty 1200}}% not good to break after first line of item.
+  \flushcr
+}
+
+% \splitoff TOKENS\endmark defines \first to be the first token in
+% TOKENS, and \rest to be the remainder.
+%
+\def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}%
+
+% Allow an optional argument of an uppercase letter, lowercase letter,
+% or number, to specify the first label in the enumerated list.  No
+% argument is the same as `1'.
+%
+\envparseargdef\enumerate{\enumeratey #1  \endenumeratey}
+\def\enumeratey #1 #2\endenumeratey{%
+  % If we were given no argument, pretend we were given `1'.
+  \def\thearg{#1}%
+  \ifx\thearg\empty \def\thearg{1}\fi
+  %
+  % Detect if the argument is a single token.  If so, it might be a
+  % letter.  Otherwise, the only valid thing it can be is a number.
+  % (We will always have one token, because of the test we just made.
+  % This is a good thing, since \splitoff doesn't work given nothing at
+  % all -- the first parameter is undelimited.)
+  \expandafter\splitoff\thearg\endmark
+  \ifx\rest\empty
+    % Only one token in the argument.  It could still be anything.
+    % A ``lowercase letter'' is one whose \lccode is nonzero.
+    % An ``uppercase letter'' is one whose \lccode is both nonzero, and
+    %   not equal to itself.
+    % Otherwise, we assume it's a number.
+    %
+    % We need the \relax at the end of the \ifnum lines to stop TeX from
+    % continuing to look for a <number>.
+    %
+    \ifnum\lccode\expandafter`\thearg=0\relax
+      \numericenumerate % a number (we hope)
+    \else
+      % It's a letter.
+      \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax
+        \lowercaseenumerate % lowercase letter
+      \else
+        \uppercaseenumerate % uppercase letter
+      \fi
+    \fi
+  \else
+    % Multiple tokens in the argument.  We hope it's a number.
+    \numericenumerate
+  \fi
+}
+
+% An @enumerate whose labels are integers.  The starting integer is
+% given in \thearg.
+%
+\def\numericenumerate{%
+  \itemno = \thearg
+  \startenumeration{\the\itemno}%
+}
+
+% The starting (lowercase) letter is in \thearg.
+\def\lowercaseenumerate{%
+  \itemno = \expandafter`\thearg
+  \startenumeration{%
+    % Be sure we're not beyond the end of the alphabet.
+    \ifnum\itemno=0
+      \errmessage{No more lowercase letters in @enumerate; get a bigger
+                  alphabet}%
+    \fi
+    \char\lccode\itemno
+  }%
+}
+
+% The starting (uppercase) letter is in \thearg.
+\def\uppercaseenumerate{%
+  \itemno = \expandafter`\thearg
+  \startenumeration{%
+    % Be sure we're not beyond the end of the alphabet.
+    \ifnum\itemno=0
+      \errmessage{No more uppercase letters in @enumerate; get a bigger
+                  alphabet}
+    \fi
+    \char\uccode\itemno
+  }%
+}
+
+% Call \doitemize, adding a period to the first argument and supplying the
+% common last two arguments.  Also subtract one from the initial value in
+% \itemno, since @item increments \itemno.
+%
+\def\startenumeration#1{%
+  \advance\itemno by -1
+  \doitemize{#1.}\flushcr
+}
+
+% @alphaenumerate and @capsenumerate are abbreviations for giving an arg
+% to @enumerate.
+%
+\def\alphaenumerate{\enumerate{a}}
+\def\capsenumerate{\enumerate{A}}
+\def\Ealphaenumerate{\Eenumerate}
+\def\Ecapsenumerate{\Eenumerate}
+
+
+% @multitable macros
+% Amy Hendrickson, 8/18/94, 3/6/96
+%
+% @multitable ... @end multitable will make as many columns as desired.
+% Contents of each column will wrap at width given in preamble.  Width
+% can be specified either with sample text given in a template line,
+% or in percent of \hsize, the current width of text on page.
+
+% Table can continue over pages but will only break between lines.
+
+% To make preamble:
+%
+% Either define widths of columns in terms of percent of \hsize:
+%   @multitable @columnfractions .25 .3 .45
+%   @item ...
+%
+%   Numbers following @columnfractions are the percent of the total
+%   current hsize to be used for each column. You may use as many
+%   columns as desired.
+
+
+% Or use a template:
+%   @multitable {Column 1 template} {Column 2 template} {Column 3 template}
+%   @item ...
+%   using the widest term desired in each column.
+
+% Each new table line starts with @item, each subsequent new column
+% starts with @tab. Empty columns may be produced by supplying @tab's
+% with nothing between them for as many times as empty columns are needed,
+% ie, @tab@tab@tab will produce two empty columns.
+
+% @item, @tab do not need to be on their own lines, but it will not hurt
+% if they are.
+
+% Sample multitable:
+
+%   @multitable {Column 1 template} {Column 2 template} {Column 3 template}
+%   @item first col stuff @tab second col stuff @tab third col
+%   @item
+%   first col stuff
+%   @tab
+%   second col stuff
+%   @tab
+%   third col
+%   @item first col stuff @tab second col stuff
+%   @tab Many paragraphs of text may be used in any column.
+%
+%         They will wrap at the width determined by the template.
+%   @item@tab@tab This will be in third column.
+%   @end multitable
+
+% Default dimensions may be reset by user.
+% @multitableparskip is vertical space between paragraphs in table.
+% @multitableparindent is paragraph indent in table.
+% @multitablecolmargin is horizontal space to be left between columns.
+% @multitablelinespace is space to leave between table items, baseline
+%                                                            to baseline.
+%   0pt means it depends on current normal line spacing.
+%
+\newskip\multitableparskip
+\newskip\multitableparindent
+\newdimen\multitablecolspace
+\newskip\multitablelinespace
+\multitableparskip=0pt
+\multitableparindent=6pt
+\multitablecolspace=12pt
+\multitablelinespace=0pt
+
+% Macros used to set up halign preamble:
+%
+\let\endsetuptable\relax
+\def\xendsetuptable{\endsetuptable}
+\let\columnfractions\relax
+\def\xcolumnfractions{\columnfractions}
+\newif\ifsetpercent
+
+% #1 is the @columnfraction, usually a decimal number like .5, but might
+% be just 1.  We just use it, whatever it is.
+% 
+\def\pickupwholefraction#1 {%
+  \global\advance\colcount by 1
+  \expandafter\xdef\csname col\the\colcount\endcsname{#1\hsize}%
+  \setuptable
+}
+
+\newcount\colcount
+\def\setuptable#1{%
+  \def\firstarg{#1}%
+  \ifx\firstarg\xendsetuptable
+    \let\go = \relax
+  \else
+    \ifx\firstarg\xcolumnfractions
+      \global\setpercenttrue
+    \else
+      \ifsetpercent
+         \let\go\pickupwholefraction
+      \else
+         \global\advance\colcount by 1
+         \setbox0=\hbox{#1\unskip\space}% Add a normal word space as a
+                   % separator; typically that is always in the input, anyway.
+         \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}%
+      \fi
+    \fi
+    \ifx\go\pickupwholefraction
+      % Put the argument back for the \pickupwholefraction call, so
+      % we'll always have a period there to be parsed.
+      \def\go{\pickupwholefraction#1}%
+    \else
+      \let\go = \setuptable
+    \fi%
+  \fi
+  \go
+}
+
+% multitable-only commands.
+%
+% @headitem starts a heading row, which we typeset in bold.
+% Assignments have to be global since we are inside the implicit group
+% of an alignment entry.  Note that \everycr resets \everytab.
+\def\headitem{\checkenv\multitable \crcr \global\everytab={\bf}\the\everytab}%
+%
+% A \tab used to include \hskip1sp.  But then the space in a template
+% line is not enough.  That is bad.  So let's go back to just `&' until
+% we encounter the problem it was intended to solve again.
+%					--karl, nathan@acm.org, 20apr99.
+\def\tab{\checkenv\multitable &\the\everytab}%
+
+% @multitable ... @end multitable definitions:
+%
+\newtoks\everytab  % insert after every tab.
+%
+\envdef\multitable{%
+  \vskip\parskip
+  \startsavinginserts
+  %
+  % @item within a multitable starts a normal row.
+  \let\item\crcr
+  %
+  \tolerance=9500
+  \hbadness=9500
+  \setmultitablespacing
+  \parskip=\multitableparskip
+  \parindent=\multitableparindent
+  \overfullrule=0pt
+  \global\colcount=0
+  %
+  \everycr = {%
+    \noalign{%
+      \global\everytab={}%
+      \global\colcount=0 % Reset the column counter.
+      % Check for saved footnotes, etc.
+      \checkinserts
+      % Keeps underfull box messages off when table breaks over pages.
+      %\filbreak
+	% Maybe so, but it also creates really weird page breaks when the
+	% table breaks over pages. Wouldn't \vfil be better?  Wait until the
+	% problem manifests itself, so it can be fixed for real --karl.
+    }%
+  }%
+  %
+  \parsearg\domultitable
+}
+\def\domultitable#1{%
+  % To parse everything between @multitable and @item:
+  \setuptable#1 \endsetuptable
+  %
+  % This preamble sets up a generic column definition, which will
+  % be used as many times as user calls for columns.
+  % \vtop will set a single line and will also let text wrap and
+  % continue for many paragraphs if desired.
+  \halign\bgroup &%
+    \global\advance\colcount by 1
+    \multistrut
+    \vtop{%
+      % Use the current \colcount to find the correct column width:
+      \hsize=\expandafter\csname col\the\colcount\endcsname
+      %
+      % In order to keep entries from bumping into each other
+      % we will add a \leftskip of \multitablecolspace to all columns after
+      % the first one.
+      %
+      % If a template has been used, we will add \multitablecolspace
+      % to the width of each template entry.
+      %
+      % If the user has set preamble in terms of percent of \hsize we will
+      % use that dimension as the width of the column, and the \leftskip
+      % will keep entries from bumping into each other.  Table will start at
+      % left margin and final column will justify at right margin.
+      %
+      % Make sure we don't inherit \rightskip from the outer environment.
+      \rightskip=0pt
+      \ifnum\colcount=1
+	% The first column will be indented with the surrounding text.
+	\advance\hsize by\leftskip
+      \else
+	\ifsetpercent \else
+	  % If user has not set preamble in terms of percent of \hsize
+	  % we will advance \hsize by \multitablecolspace.
+	  \advance\hsize by \multitablecolspace
+	\fi
+       % In either case we will make \leftskip=\multitablecolspace:
+      \leftskip=\multitablecolspace
+      \fi
+      % Ignoring space at the beginning and end avoids an occasional spurious
+      % blank line, when TeX decides to break the line at the space before the
+      % box from the multistrut, so the strut ends up on a line by itself.
+      % For example:
+      % @multitable @columnfractions .11 .89
+      % @item @code{#}
+      % @tab Legal holiday which is valid in major parts of the whole country.
+      % Is automatically provided with highlighting sequences respectively
+      % marking characters.
+      \noindent\ignorespaces##\unskip\multistrut
+    }\cr
+}
+\def\Emultitable{%
+  \crcr
+  \egroup % end the \halign
+  \global\setpercentfalse
+}
+
+\def\setmultitablespacing{% test to see if user has set \multitablelinespace.
+% If so, do nothing. If not, give it an appropriate dimension based on
+% current baselineskip.
+\ifdim\multitablelinespace=0pt
+\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
+\global\advance\multitablelinespace by-\ht0
+%% strut to put in table in case some entry doesn't have descenders,
+%% to keep lines equally spaced
+\let\multistrut = \strut
+\else
+%% FIXME: what is \box0 supposed to be?
+\gdef\multistrut{\vrule height\multitablelinespace depth\dp0
+width0pt\relax} \fi
+%% Test to see if parskip is larger than space between lines of
+%% table. If not, do nothing.
+%%        If so, set to same dimension as multitablelinespace.
+\ifdim\multitableparskip>\multitablelinespace
+\global\multitableparskip=\multitablelinespace
+\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
+                                      %% than skip between lines in the table.
+\fi%
+\ifdim\multitableparskip=0pt
+\global\multitableparskip=\multitablelinespace
+\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
+                                      %% than skip between lines in the table.
+\fi}
+
+
+\message{conditionals,}
+
+% @iftex, @ifnotdocbook, @ifnothtml, @ifnotinfo, @ifnotplaintext,
+% @ifnotxml always succeed.  They currently do nothing; we don't
+% attempt to check whether the conditionals are properly nested.  But we
+% have to remember that they are conditionals, so that @end doesn't
+% attempt to close an environment group.
+%
+\def\makecond#1{%
+  \expandafter\let\csname #1\endcsname = \relax
+  \expandafter\let\csname iscond.#1\endcsname = 1
+}
+\makecond{iftex}
+\makecond{ifnotdocbook}
+\makecond{ifnothtml}
+\makecond{ifnotinfo}
+\makecond{ifnotplaintext}
+\makecond{ifnotxml}
+
+% Ignore @ignore, @ifhtml, @ifinfo, and the like.
+%
+\def\direntry{\doignore{direntry}}
+\def\documentdescription{\doignore{documentdescription}}
+\def\docbook{\doignore{docbook}}
+\def\html{\doignore{html}}
+\def\ifdocbook{\doignore{ifdocbook}}
+\def\ifhtml{\doignore{ifhtml}}
+\def\ifinfo{\doignore{ifinfo}}
+\def\ifnottex{\doignore{ifnottex}}
+\def\ifplaintext{\doignore{ifplaintext}}
+\def\ifxml{\doignore{ifxml}}
+\def\ignore{\doignore{ignore}}
+\def\menu{\doignore{menu}}
+\def\xml{\doignore{xml}}
+
+% Ignore text until a line `@end #1', keeping track of nested conditionals.
+%
+% A count to remember the depth of nesting.
+\newcount\doignorecount
+
+\def\doignore#1{\begingroup
+  % Scan in ``verbatim'' mode:
+  \catcode`\@ = \other
+  \catcode`\{ = \other
+  \catcode`\} = \other
+  %
+  % Make sure that spaces turn into tokens that match what \doignoretext wants.
+  \spaceisspace
+  %
+  % Count number of #1's that we've seen.
+  \doignorecount = 0
+  %
+  % Swallow text until we reach the matching `@end #1'.
+  \dodoignore {#1}%
+}
+
+{ \catcode`_=11 % We want to use \_STOP_ which cannot appear in texinfo source.
+  \obeylines %
+  %
+  \gdef\dodoignore#1{%
+    % #1 contains the string `ifinfo'.
+    %
+    % Define a command to find the next `@end #1', which must be on a line
+    % by itself.
+    \long\def\doignoretext##1^^M@end #1{\doignoretextyyy##1^^M@#1\_STOP_}%
+    % And this command to find another #1 command, at the beginning of a
+    % line.  (Otherwise, we would consider a line `@c @ifset', for
+    % example, to count as an @ifset for nesting.)
+    \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}%
+    %
+    % And now expand that command.
+    \obeylines %
+    \doignoretext ^^M%
+  }%
+}
+
+\def\doignoreyyy#1{%
+  \def\temp{#1}%
+  \ifx\temp\empty			% Nothing found.
+    \let\next\doignoretextzzz
+  \else					% Found a nested condition, ...
+    \advance\doignorecount by 1
+    \let\next\doignoretextyyy		% ..., look for another.
+    % If we're here, #1 ends with ^^M\ifinfo (for example).
+  \fi
+  \next #1% the token \_STOP_ is present just after this macro.
+}
+
+% We have to swallow the remaining "\_STOP_".
+% 
+\def\doignoretextzzz#1{%
+  \ifnum\doignorecount = 0	% We have just found the outermost @end.
+    \let\next\enddoignore
+  \else				% Still inside a nested condition.
+    \advance\doignorecount by -1
+    \let\next\doignoretext      % Look for the next @end.
+  \fi
+  \next
+}
+
+% Finish off ignored text.
+\def\enddoignore{\endgroup\ignorespaces}
+
+
+% @set VAR sets the variable VAR to an empty value.
+% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE.
+%
+% Since we want to separate VAR from REST-OF-LINE (which might be
+% empty), we can't just use \parsearg; we have to insert a space of our
+% own to delimit the rest of the line, and then take it out again if we
+% didn't need it.
+% We rely on the fact that \parsearg sets \catcode`\ =10.
+%
+\parseargdef\set{\setyyy#1 \endsetyyy}
+\def\setyyy#1 #2\endsetyyy{%
+  {%
+    \makevalueexpandable
+    \def\temp{#2}%
+    \edef\next{\gdef\makecsname{SET#1}}%
+    \ifx\temp\empty
+      \next{}%
+    \else
+      \setzzz#2\endsetzzz
+    \fi
+  }%
+}
+% Remove the trailing space \setxxx inserted.
+\def\setzzz#1 \endsetzzz{\next{#1}}
+
+% @clear VAR clears (i.e., unsets) the variable VAR.
+%
+\parseargdef\clear{%
+  {%
+    \makevalueexpandable
+    \global\expandafter\let\csname SET#1\endcsname=\relax
+  }%
+}
+
+% @value{foo} gets the text saved in variable foo.
+\def\value{\begingroup\makevalueexpandable\valuexxx}
+\def\valuexxx#1{\expandablevalue{#1}\endgroup}
+{
+  \catcode`\- = \active \catcode`\_ = \active
+  %
+  \gdef\makevalueexpandable{%
+    \let\value = \expandablevalue
+    % We don't want these characters active, ...
+    \catcode`\-=\other \catcode`\_=\other
+    % ..., but we might end up with active ones in the argument if
+    % we're called from @code, as @code{@value{foo-bar_}}, though.
+    % So \let them to their normal equivalents.
+    \let-\realdash \let_\normalunderscore
+  }
+}
+
+% We have this subroutine so that we can handle at least some @value's
+% properly in indexes (we call \makevalueexpandable in \indexdummies).
+% The command has to be fully expandable (if the variable is set), since
+% the result winds up in the index file.  This means that if the
+% variable's value contains other Texinfo commands, it's almost certain
+% it will fail (although perhaps we could fix that with sufficient work
+% to do a one-level expansion on the result, instead of complete).
+%
+\def\expandablevalue#1{%
+  \expandafter\ifx\csname SET#1\endcsname\relax
+    {[No value for ``#1'']}%
+    \message{Variable `#1', used in @value, is not set.}%
+  \else
+    \csname SET#1\endcsname
+  \fi
+}
+
+% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
+% with @set.
+%
+% To get special treatment of `@end ifset,' call \makeond and the redefine.
+%
+\makecond{ifset}
+\def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}}
+\def\doifset#1#2{%
+  {%
+    \makevalueexpandable
+    \let\next=\empty
+    \expandafter\ifx\csname SET#2\endcsname\relax
+      #1% If not set, redefine \next.
+    \fi
+    \expandafter
+  }\next
+}
+\def\ifsetfail{\doignore{ifset}}
+
+% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
+% defined with @set, or has been undefined with @clear.
+%
+% The `\else' inside the `\doifset' parameter is a trick to reuse the
+% above code: if the variable is not set, do nothing, if it is set,
+% then redefine \next to \ifclearfail.
+%
+\makecond{ifclear}
+\def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}}
+\def\ifclearfail{\doignore{ifclear}}
+
+% @dircategory CATEGORY  -- specify a category of the dir file
+% which this file should belong to.  Ignore this in TeX.
+\let\dircategory=\comment
+
+% @defininfoenclose.
+\let\definfoenclose=\comment
+
+
+\message{indexing,}
+% Index generation facilities
+
+% Define \newwrite to be identical to plain tex's \newwrite
+% except not \outer, so it can be used within \newindex.
+{\catcode`\@=11
+\gdef\newwrite{\alloc@7\write\chardef\sixt@@n}}
+
+% \newindex {foo} defines an index named foo.
+% It automatically defines \fooindex such that
+% \fooindex ...rest of line... puts an entry in the index foo.
+% It also defines \fooindfile to be the number of the output channel for
+% the file that accumulates this index.  The file's extension is foo.
+% The name of an index should be no more than 2 characters long
+% for the sake of vms.
+%
+\def\newindex#1{%
+  \iflinks
+    \expandafter\newwrite \csname#1indfile\endcsname
+    \openout \csname#1indfile\endcsname \jobname.#1 % Open the file
+  \fi
+  \expandafter\xdef\csname#1index\endcsname{%     % Define @#1index
+    \noexpand\doindex{#1}}
+}
+
+% @defindex foo  ==  \newindex{foo}
+%
+\def\defindex{\parsearg\newindex}
+
+% Define @defcodeindex, like @defindex except put all entries in @code.
+%
+\def\defcodeindex{\parsearg\newcodeindex}
+%
+\def\newcodeindex#1{%
+  \iflinks
+    \expandafter\newwrite \csname#1indfile\endcsname
+    \openout \csname#1indfile\endcsname \jobname.#1
+  \fi
+  \expandafter\xdef\csname#1index\endcsname{%
+    \noexpand\docodeindex{#1}}%
+}
+
+
+% @synindex foo bar    makes index foo feed into index bar.
+% Do this instead of @defindex foo if you don't want it as a separate index.
+%
+% @syncodeindex foo bar   similar, but put all entries made for index foo
+% inside @code.
+%
+\def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}}
+\def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}}
+
+% #1 is \doindex or \docodeindex, #2 the index getting redefined (foo),
+% #3 the target index (bar).
+\def\dosynindex#1#2#3{%
+  % Only do \closeout if we haven't already done it, else we'll end up
+  % closing the target index.
+  \expandafter \ifx\csname donesynindex#2\endcsname \undefined
+    % The \closeout helps reduce unnecessary open files; the limit on the
+    % Acorn RISC OS is a mere 16 files.
+    \expandafter\closeout\csname#2indfile\endcsname
+    \expandafter\let\csname\donesynindex#2\endcsname = 1
+  \fi
+  % redefine \fooindfile:
+  \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname
+  \expandafter\let\csname#2indfile\endcsname=\temp
+  % redefine \fooindex:
+  \expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}%
+}
+
+% Define \doindex, the driver for all \fooindex macros.
+% Argument #1 is generated by the calling \fooindex macro,
+%  and it is "foo", the name of the index.
+
+% \doindex just uses \parsearg; it calls \doind for the actual work.
+% This is because \doind is more useful to call from other macros.
+
+% There is also \dosubind {index}{topic}{subtopic}
+% which makes an entry in a two-level index such as the operation index.
+
+\def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer}
+\def\singleindexer #1{\doind{\indexname}{#1}}
+
+% like the previous two, but they put @code around the argument.
+\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
+\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
+
+% Take care of Texinfo commands that can appear in an index entry.
+% Since there are some commands we want to expand, and others we don't,
+% we have to laboriously prevent expansion for those that we don't.
+%
+\def\indexdummies{%
+  \def\@{@}% change to @@ when we switch to @ as escape char in index files.
+  \def\ {\realbackslash\space }%
+  % Need these in case \tex is in effect and \{ is a \delimiter again.
+  % But can't use \lbracecmd and \rbracecmd because texindex assumes
+  % braces and backslashes are used only as delimiters.
+  \let\{ = \mylbrace
+  \let\} = \myrbrace
+  %
+  % \definedummyword defines \#1 as \realbackslash #1\space, thus
+  % effectively preventing its expansion.  This is used only for control
+  % words, not control letters, because the \space would be incorrect
+  % for control characters, but is needed to separate the control word
+  % from whatever follows.
+  %
+  % For control letters, we have \definedummyletter, which omits the
+  % space.
+  %
+  % These can be used both for control words that take an argument and
+  % those that do not.  If it is followed by {arg} in the input, then
+  % that will dutifully get written to the index (or wherever).
+  %
+  \def\definedummyword##1{%
+    \expandafter\def\csname ##1\endcsname{\realbackslash ##1\space}%
+  }%
+  \def\definedummyletter##1{%
+    \expandafter\def\csname ##1\endcsname{\realbackslash ##1}%
+  }%
+  %
+  % Do the redefinitions.
+  \commondummies
+}
+
+% For the aux file, @ is the escape character.  So we want to redefine
+% everything using @ instead of \realbackslash.  When everything uses
+% @, this will be simpler.
+%
+\def\atdummies{%
+  \def\@{@@}%
+  \def\ {@ }%
+  \let\{ = \lbraceatcmd
+  \let\} = \rbraceatcmd
+  %
+  % (See comments in \indexdummies.)
+  \def\definedummyword##1{%
+    \expandafter\def\csname ##1\endcsname{@##1\space}%
+  }%
+  \def\definedummyletter##1{%
+    \expandafter\def\csname ##1\endcsname{@##1}%
+  }%
+  %
+  % Do the redefinitions.
+  \commondummies
+}
+
+% Called from \indexdummies and \atdummies.  \definedummyword and
+% \definedummyletter must be defined first.
+%
+\def\commondummies{%
+  %
+  \normalturnoffactive
+  %
+  \commondummiesnofonts
+  %
+  \definedummyletter{_}%
+  %
+  % Non-English letters.
+  \definedummyword{AA}%
+  \definedummyword{AE}%
+  \definedummyword{L}%
+  \definedummyword{OE}%
+  \definedummyword{O}%
+  \definedummyword{aa}%
+  \definedummyword{ae}%
+  \definedummyword{l}%
+  \definedummyword{oe}%
+  \definedummyword{o}%
+  \definedummyword{ss}%
+  \definedummyword{exclamdown}%
+  \definedummyword{questiondown}%
+  \definedummyword{ordf}%
+  \definedummyword{ordm}%
+  %
+  % Although these internal commands shouldn't show up, sometimes they do.
+  \definedummyword{bf}%
+  \definedummyword{gtr}%
+  \definedummyword{hat}%
+  \definedummyword{less}%
+  \definedummyword{sf}%
+  \definedummyword{sl}%
+  \definedummyword{tclose}%
+  \definedummyword{tt}%
+  %
+  \definedummyword{LaTeX}%
+  \definedummyword{TeX}%
+  %
+  % Assorted special characters.
+  \definedummyword{bullet}%
+  \definedummyword{copyright}%
+  \definedummyword{registeredsymbol}%
+  \definedummyword{dots}%
+  \definedummyword{enddots}%
+  \definedummyword{equiv}%
+  \definedummyword{error}%
+  \definedummyword{expansion}%
+  \definedummyword{minus}%
+  \definedummyword{pounds}%
+  \definedummyword{point}%
+  \definedummyword{print}%
+  \definedummyword{result}%
+  %
+  % Handle some cases of @value -- where it does not contain any
+  % (non-fully-expandable) commands.
+  \makevalueexpandable
+  %
+  % Normal spaces, not active ones.
+  \unsepspaces
+  %
+  % No macro expansion.
+  \turnoffmacros
+}
+
+% \commondummiesnofonts: common to \commondummies and \indexnofonts.
+%
+% Better have this without active chars.
+{
+  \catcode`\~=\other
+  \gdef\commondummiesnofonts{%
+    % Control letters and accents.
+    \definedummyletter{!}%
+    \definedummyletter{"}%
+    \definedummyletter{'}%
+    \definedummyletter{*}%
+    \definedummyletter{,}%
+    \definedummyletter{.}%
+    \definedummyletter{/}%
+    \definedummyletter{:}%
+    \definedummyletter{=}%
+    \definedummyletter{?}%
+    \definedummyletter{^}%
+    \definedummyletter{`}%
+    \definedummyletter{~}%
+    \definedummyword{u}%
+    \definedummyword{v}%
+    \definedummyword{H}%
+    \definedummyword{dotaccent}%
+    \definedummyword{ringaccent}%
+    \definedummyword{tieaccent}%
+    \definedummyword{ubaraccent}%
+    \definedummyword{udotaccent}%
+    \definedummyword{dotless}%
+    %
+    % Texinfo font commands.
+    \definedummyword{b}%
+    \definedummyword{i}%
+    \definedummyword{r}%
+    \definedummyword{sc}%
+    \definedummyword{t}%
+    %
+    % Commands that take arguments.
+    \definedummyword{acronym}%
+    \definedummyword{cite}%
+    \definedummyword{code}%
+    \definedummyword{command}%
+    \definedummyword{dfn}%
+    \definedummyword{emph}%
+    \definedummyword{env}%
+    \definedummyword{file}%
+    \definedummyword{kbd}%
+    \definedummyword{key}%
+    \definedummyword{math}%
+    \definedummyword{option}%
+    \definedummyword{samp}%
+    \definedummyword{strong}%
+    \definedummyword{tie}%
+    \definedummyword{uref}%
+    \definedummyword{url}%
+    \definedummyword{var}%
+    \definedummyword{verb}%
+    \definedummyword{w}%
+  }
+}
+
+% \indexnofonts is used when outputting the strings to sort the index
+% by, and when constructing control sequence names.  It eliminates all
+% control sequences and just writes whatever the best ASCII sort string
+% would be for a given command (usually its argument).
+%
+\def\indexnofonts{%
+  \def\definedummyword##1{%
+    \expandafter\let\csname ##1\endcsname\asis
+  }%
+  \let\definedummyletter=\definedummyword
+  %
+  \commondummiesnofonts
+  %
+  % Don't no-op \tt, since it isn't a user-level command
+  % and is used in the definitions of the active chars like <, >, |, etc.
+  % Likewise with the other plain tex font commands.
+  %\let\tt=\asis
+  %
+  \def\ { }%
+  \def\@{@}%
+  % how to handle braces?
+  \def\_{\normalunderscore}%
+  %
+  % Non-English letters.
+  \def\AA{AA}%
+  \def\AE{AE}%
+  \def\L{L}%
+  \def\OE{OE}%
+  \def\O{O}%
+  \def\aa{aa}%
+  \def\ae{ae}%
+  \def\l{l}%
+  \def\oe{oe}%
+  \def\o{o}%
+  \def\ss{ss}%
+  \def\exclamdown{!}%
+  \def\questiondown{?}%
+  \def\ordf{a}%
+  \def\ordm{o}%
+  %
+  \def\LaTeX{LaTeX}%
+  \def\TeX{TeX}%
+  %
+  % Assorted special characters.
+  % (The following {} will end up in the sort string, but that's ok.)
+  \def\bullet{bullet}%
+  \def\copyright{copyright}%
+  \def\registeredsymbol{R}%
+  \def\dots{...}%
+  \def\enddots{...}%
+  \def\equiv{==}%
+  \def\error{error}%
+  \def\expansion{==>}%
+  \def\minus{-}%
+  \def\pounds{pounds}%
+  \def\point{.}%
+  \def\print{-|}%
+  \def\result{=>}%
+}
+
+\let\indexbackslash=0  %overridden during \printindex.
+\let\SETmarginindex=\relax % put index entries in margin (undocumented)?
+
+% Most index entries go through here, but \dosubind is the general case.
+% #1 is the index name, #2 is the entry text.
+\def\doind#1#2{\dosubind{#1}{#2}{}}
+
+% Workhorse for all \fooindexes.
+% #1 is name of index, #2 is stuff to put there, #3 is subentry --
+% empty if called from \doind, as we usually are (the main exception
+% is with most defuns, which call us directly).
+%
+\def\dosubind#1#2#3{%
+  \iflinks
+  {%
+    % Store the main index entry text (including the third arg).
+    \toks0 = {#2}%
+    % If third arg is present, precede it with a space.
+    \def\thirdarg{#3}%
+    \ifx\thirdarg\empty \else
+      \toks0 = \expandafter{\the\toks0 \space #3}%
+    \fi
+    %
+    \edef\writeto{\csname#1indfile\endcsname}%
+    %
+    \ifvmode
+      \dosubindsanitize
+    \else
+      \dosubindwrite
+    \fi
+  }%
+  \fi
+}
+
+% Write the entry in \toks0 to the index file:
+%
+\def\dosubindwrite{%
+  % Put the index entry in the margin if desired.
+  \ifx\SETmarginindex\relax\else
+    \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}%
+  \fi
+  %
+  % Remember, we are within a group.
+  \indexdummies % Must do this here, since \bf, etc expand at this stage
+  \escapechar=`\\
+  \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now
+      % so it will be output as is; and it will print as backslash.
+  %
+  % Process the index entry with all font commands turned off, to
+  % get the string to sort by.
+  {\indexnofonts
+   \edef\temp{\the\toks0}% need full expansion
+   \xdef\indexsorttmp{\temp}%
+  }%
+  %
+  % Set up the complete index entry, with both the sort key and
+  % the original text, including any font commands.  We write
+  % three arguments to \entry to the .?? file (four in the
+  % subentry case), texindex reduces to two when writing the .??s
+  % sorted result.
+  \edef\temp{%
+    \write\writeto{%
+      \string\entry{\indexsorttmp}{\noexpand\folio}{\the\toks0}}%
+  }%
+  \temp
+}
+
+% Take care of unwanted page breaks:
+%
+% If a skip is the last thing on the list now, preserve it
+% by backing up by \lastskip, doing the \write, then inserting
+% the skip again.  Otherwise, the whatsit generated by the
+% \write will make \lastskip zero.  The result is that sequences
+% like this:
+% @end defun
+% @tindex whatever
+% @defun ...
+% will have extra space inserted, because the \medbreak in the
+% start of the @defun won't see the skip inserted by the @end of
+% the previous defun.
+%
+% But don't do any of this if we're not in vertical mode.  We
+% don't want to do a \vskip and prematurely end a paragraph.
+%
+% Avoid page breaks due to these extra skips, too.
+%
+% But wait, there is a catch there:
+% We'll have to check whether \lastskip is zero skip.  \ifdim is not
+% sufficient for this purpose, as it ignores stretch and shrink parts
+% of the skip.  The only way seems to be to check the textual
+% representation of the skip.
+%
+% The following is almost like \def\zeroskipmacro{0.0pt} except that
+% the ``p'' and ``t'' characters have catcode \other, not 11 (letter).
+%
+\edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname}
+%
+% ..., ready, GO:
+%
+\def\dosubindsanitize{%
+  % \lastskip and \lastpenalty cannot both be nonzero simultaneously.
+  \skip0 = \lastskip
+  \edef\lastskipmacro{\the\lastskip}%
+  \count255 = \lastpenalty
+  %
+  % If \lastskip is nonzero, that means the last item was a
+  % skip.  And since a skip is discardable, that means this
+  % -\skip0 glue we're inserting is preceded by a
+  % non-discardable item, therefore it is not a potential
+  % breakpoint, therefore no \nobreak needed.
+  \ifx\lastskipmacro\zeroskipmacro
+  \else
+    \vskip-\skip0
+  \fi
+  %
+  \dosubindwrite
+  %
+  \ifx\lastskipmacro\zeroskipmacro
+    % if \lastskip was zero, perhaps the last item was a
+    % penalty, and perhaps it was >=10000, e.g., a \nobreak.
+    % In that case, we want to re-insert the penalty; since we
+    % just inserted a non-discardable item, any following glue
+    % (such as a \parskip) would be a breakpoint.  For example:
+    %   @deffn deffn-whatever
+    %   @vindex index-whatever
+    %   Description.
+    % would allow a break between the index-whatever whatsit
+    % and the "Description." paragraph.
+    \ifnum\count255>9999 \nobreak \fi
+  \else
+    % On the other hand, if we had a nonzero \lastskip,
+    % this make-up glue would be preceded by a non-discardable item
+    % (the whatsit from the \write), so we must insert a \nobreak.
+    \nobreak\vskip\skip0
+  \fi
+}
+
+% The index entry written in the file actually looks like
+%  \entry {sortstring}{page}{topic}
+% or
+%  \entry {sortstring}{page}{topic}{subtopic}
+% The texindex program reads in these files and writes files
+% containing these kinds of lines:
+%  \initial {c}
+%     before the first topic whose initial is c
+%  \entry {topic}{pagelist}
+%     for a topic that is used without subtopics
+%  \primary {topic}
+%     for the beginning of a topic that is used with subtopics
+%  \secondary {subtopic}{pagelist}
+%     for each subtopic.
+
+% Define the user-accessible indexing commands
+% @findex, @vindex, @kindex, @cindex.
+
+\def\findex {\fnindex}
+\def\kindex {\kyindex}
+\def\cindex {\cpindex}
+\def\vindex {\vrindex}
+\def\tindex {\tpindex}
+\def\pindex {\pgindex}
+
+\def\cindexsub {\begingroup\obeylines\cindexsub}
+{\obeylines %
+\gdef\cindexsub "#1" #2^^M{\endgroup %
+\dosubind{cp}{#2}{#1}}}
+
+% Define the macros used in formatting output of the sorted index material.
+
+% @printindex causes a particular index (the ??s file) to get printed.
+% It does not print any chapter heading (usually an @unnumbered).
+%
+\parseargdef\printindex{\begingroup
+  \dobreak \chapheadingskip{10000}%
+  %
+  \smallfonts \rm
+  \tolerance = 9500
+  \everypar = {}% don't want the \kern\-parindent from indentation suppression.
+  %
+  % See if the index file exists and is nonempty.
+  % Change catcode of @ here so that if the index file contains
+  % \initial {@}
+  % as its first line, TeX doesn't complain about mismatched braces
+  % (because it thinks @} is a control sequence).
+  \catcode`\@ = 11
+  \openin 1 \jobname.#1s
+  \ifeof 1
+    % \enddoublecolumns gets confused if there is no text in the index,
+    % and it loses the chapter title and the aux file entries for the
+    % index.  The easiest way to prevent this problem is to make sure
+    % there is some text.
+    \putwordIndexNonexistent
+  \else
+    %
+    % If the index file exists but is empty, then \openin leaves \ifeof
+    % false.  We have to make TeX try to read something from the file, so
+    % it can discover if there is anything in it.
+    \read 1 to \temp
+    \ifeof 1
+      \putwordIndexIsEmpty
+    \else
+      % Index files are almost Texinfo source, but we use \ as the escape
+      % character.  It would be better to use @, but that's too big a change
+      % to make right now.
+      \def\indexbackslash{\backslashcurfont}%
+      \catcode`\\ = 0
+      \escapechar = `\\
+      \begindoublecolumns
+      \input \jobname.#1s
+      \enddoublecolumns
+    \fi
+  \fi
+  \closein 1
+\endgroup}
+
+% These macros are used by the sorted index file itself.
+% Change them to control the appearance of the index.
+
+\def\initial#1{{%
+  % Some minor font changes for the special characters.
+  \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt
+  %
+  % Remove any glue we may have, we'll be inserting our own.
+  \removelastskip
+  %
+  % We like breaks before the index initials, so insert a bonus.
+  \penalty -300
+  %
+  % Typeset the initial.  Making this add up to a whole number of
+  % baselineskips increases the chance of the dots lining up from column
+  % to column.  It still won't often be perfect, because of the stretch
+  % we need before each entry, but it's better.
+  %
+  % No shrink because it confuses \balancecolumns.
+  \vskip 1.67\baselineskip plus .5\baselineskip
+  \leftline{\secbf #1}%
+  \vskip .33\baselineskip plus .1\baselineskip
+  %
+  % Do our best not to break after the initial.
+  \nobreak
+}}
+
+% \entry typesets a paragraph consisting of the text (#1), dot leaders, and
+% then page number (#2) flushed to the right margin.  It is used for index
+% and table of contents entries.  The paragraph is indented by \leftskip.
+%
+% A straightforward implementation would start like this:
+%	\def\entry#1#2{...
+% But this frozes the catcodes in the argument, and can cause problems to
+% @code, which sets - active.  This problem was fixed by a kludge---
+% ``-'' was active throughout whole index, but this isn't really right.
+% 
+% The right solution is to prevent \entry from swallowing the whole text.
+%                                 --kasal, 21nov03
+\def\entry{%
+  \begingroup
+    %
+    % Start a new paragraph if necessary, so our assignments below can't
+    % affect previous text.
+    \par
+    %
+    % Do not fill out the last line with white space.
+    \parfillskip = 0in
+    %
+    % No extra space above this paragraph.
+    \parskip = 0in
+    %
+    % Do not prefer a separate line ending with a hyphen to fewer lines.
+    \finalhyphendemerits = 0
+    %
+    % \hangindent is only relevant when the entry text and page number
+    % don't both fit on one line.  In that case, bob suggests starting the
+    % dots pretty far over on the line.  Unfortunately, a large
+    % indentation looks wrong when the entry text itself is broken across
+    % lines.  So we use a small indentation and put up with long leaders.
+    %
+    % \hangafter is reset to 1 (which is the value we want) at the start
+    % of each paragraph, so we need not do anything with that.
+    \hangindent = 2em
+    %
+    % When the entry text needs to be broken, just fill out the first line
+    % with blank space.
+    \rightskip = 0pt plus1fil
+    %
+    % A bit of stretch before each entry for the benefit of balancing
+    % columns.
+    \vskip 0pt plus1pt
+    %
+    % Swallow the left brace of the text (first parameter):
+    \afterassignment\doentry
+    \let\temp =
+}
+\def\doentry{%
+    \bgroup % Instead of the swallowed brace.
+      \noindent
+      \aftergroup\finishentry
+      % And now comes the text of the entry.
+}
+\def\finishentry#1{%
+    % #1 is the page number.
+    %
+    % The following is kludged to not output a line of dots in the index if
+    % there are no page numbers.  The next person who breaks this will be
+    % cursed by a Unix daemon.
+    \def\tempa{{\rm }}%
+    \def\tempb{#1}%
+    \edef\tempc{\tempa}%
+    \edef\tempd{\tempb}%
+    \ifx\tempc\tempd
+      \ %
+    \else
+      %
+      % If we must, put the page number on a line of its own, and fill out
+      % this line with blank space.  (The \hfil is overwhelmed with the
+      % fill leaders glue in \indexdotfill if the page number does fit.)
+      \hfil\penalty50
+      \null\nobreak\indexdotfill % Have leaders before the page number.
+      %
+      % The `\ ' here is removed by the implicit \unskip that TeX does as
+      % part of (the primitive) \par.  Without it, a spurious underfull
+      % \hbox ensues.
+      \ifpdf
+	\pdfgettoks#1.%
+	\ \the\toksA
+      \else
+	\ #1%
+      \fi
+    \fi
+    \par
+  \endgroup
+}
+
+% Like \dotfill except takes at least 1 em.
+\def\indexdotfill{\cleaders
+  \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill}
+
+\def\primary #1{\line{#1\hfil}}
+
+\newskip\secondaryindent \secondaryindent=0.5cm
+\def\secondary#1#2{{%
+  \parfillskip=0in
+  \parskip=0in
+  \hangindent=1in
+  \hangafter=1
+  \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill
+  \ifpdf
+    \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
+  \else
+    #2
+  \fi
+  \par
+}}
+
+% Define two-column mode, which we use to typeset indexes.
+% Adapted from the TeXbook, page 416, which is to say,
+% the manmac.tex format used to print the TeXbook itself.
+\catcode`\@=11
+
+\newbox\partialpage
+\newdimen\doublecolumnhsize
+
+\def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
+  % Grab any single-column material above us.
+  \output = {%
+    %
+    % Here is a possibility not foreseen in manmac: if we accumulate a
+    % whole lot of material, we might end up calling this \output
+    % routine twice in a row (see the doublecol-lose test, which is
+    % essentially a couple of indexes with @setchapternewpage off).  In
+    % that case we just ship out what is in \partialpage with the normal
+    % output routine.  Generally, \partialpage will be empty when this
+    % runs and this will be a no-op.  See the indexspread.tex test case.
+    \ifvoid\partialpage \else
+      \onepageout{\pagecontents\partialpage}%
+    \fi
+    %
+    \global\setbox\partialpage = \vbox{%
+      % Unvbox the main output page.
+      \unvbox\PAGE
+      \kern-\topskip \kern\baselineskip
+    }%
+  }%
+  \eject % run that output routine to set \partialpage
+  %
+  % Use the double-column output routine for subsequent pages.
+  \output = {\doublecolumnout}%
+  %
+  % Change the page size parameters.  We could do this once outside this
+  % routine, in each of @smallbook, @afourpaper, and the default 8.5x11
+  % format, but then we repeat the same computation.  Repeating a couple
+  % of assignments once per index is clearly meaningless for the
+  % execution time, so we may as well do it in one place.
+  %
+  % First we halve the line length, less a little for the gutter between
+  % the columns.  We compute the gutter based on the line length, so it
+  % changes automatically with the paper format.  The magic constant
+  % below is chosen so that the gutter has the same value (well, +-<1pt)
+  % as it did when we hard-coded it.
+  %
+  % We put the result in a separate register, \doublecolumhsize, so we
+  % can restore it in \pagesofar, after \hsize itself has (potentially)
+  % been clobbered.
+  %
+  \doublecolumnhsize = \hsize
+    \advance\doublecolumnhsize by -.04154\hsize
+    \divide\doublecolumnhsize by 2
+  \hsize = \doublecolumnhsize
+  %
+  % Double the \vsize as well.  (We don't need a separate register here,
+  % since nobody clobbers \vsize.)
+  \vsize = 2\vsize
+}
+
+% The double-column output routine for all double-column pages except
+% the last.
+%
+\def\doublecolumnout{%
+  \splittopskip=\topskip \splitmaxdepth=\maxdepth
+  % Get the available space for the double columns -- the normal
+  % (undoubled) page height minus any material left over from the
+  % previous page.
+  \dimen@ = \vsize
+  \divide\dimen@ by 2
+  \advance\dimen@ by -\ht\partialpage
+  %
+  % box0 will be the left-hand column, box2 the right.
+  \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
+  \onepageout\pagesofar
+  \unvbox255
+  \penalty\outputpenalty
+}
+%
+% Re-output the contents of the output page -- any previous material,
+% followed by the two boxes we just split, in box0 and box2.
+\def\pagesofar{%
+  \unvbox\partialpage
+  %
+  \hsize = \doublecolumnhsize
+  \wd0=\hsize \wd2=\hsize
+  \hbox to\pagewidth{\box0\hfil\box2}%
+}
+%
+% All done with double columns.
+\def\enddoublecolumns{%
+  \output = {%
+    % Split the last of the double-column material.  Leave it on the
+    % current page, no automatic page break.
+    \balancecolumns
+    %
+    % If we end up splitting too much material for the current page,
+    % though, there will be another page break right after this \output
+    % invocation ends.  Having called \balancecolumns once, we do not
+    % want to call it again.  Therefore, reset \output to its normal
+    % definition right away.  (We hope \balancecolumns will never be
+    % called on to balance too much material, but if it is, this makes
+    % the output somewhat more palatable.)
+    \global\output = {\onepageout{\pagecontents\PAGE}}%
+  }%
+  \eject
+  \endgroup % started in \begindoublecolumns
+  %
+  % \pagegoal was set to the doubled \vsize above, since we restarted
+  % the current page.  We're now back to normal single-column
+  % typesetting, so reset \pagegoal to the normal \vsize (after the
+  % \endgroup where \vsize got restored).
+  \pagegoal = \vsize
+}
+%
+% Called at the end of the double column material.
+\def\balancecolumns{%
+  \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120.
+  \dimen@ = \ht0
+  \advance\dimen@ by \topskip
+  \advance\dimen@ by-\baselineskip
+  \divide\dimen@ by 2 % target to split to
+  %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}%
+  \splittopskip = \topskip
+  % Loop until we get a decent breakpoint.
+  {%
+    \vbadness = 10000
+    \loop
+      \global\setbox3 = \copy0
+      \global\setbox1 = \vsplit3 to \dimen@
+    \ifdim\ht3>\dimen@
+      \global\advance\dimen@ by 1pt
+    \repeat
+  }%
+  %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}%
+  \setbox0=\vbox to\dimen@{\unvbox1}%
+  \setbox2=\vbox to\dimen@{\unvbox3}%
+  %
+  \pagesofar
+}
+\catcode`\@ = \other
+
+
+\message{sectioning,}
+% Chapters, sections, etc.
+
+% \unnumberedno is an oxymoron, of course.  But we count the unnumbered
+% sections so that we can refer to them unambiguously in the pdf
+% outlines by their "section number".  We avoid collisions with chapter
+% numbers by starting them at 10000.  (If a document ever has 10000
+% chapters, we're in trouble anyway, I'm sure.)
+\newcount\unnumberedno \unnumberedno = 10000
+\newcount\chapno
+\newcount\secno        \secno=0
+\newcount\subsecno     \subsecno=0
+\newcount\subsubsecno  \subsubsecno=0
+
+% This counter is funny since it counts through charcodes of letters A, B, ...
+\newcount\appendixno  \appendixno = `\@
+%
+% \def\appendixletter{\char\the\appendixno}
+% We do the following ugly conditional instead of the above simple
+% construct for the sake of pdftex, which needs the actual
+% letter in the expansion, not just typeset.
+% 
+\def\appendixletter{%
+  \ifnum\appendixno=`A A%
+  \else\ifnum\appendixno=`B B%
+  \else\ifnum\appendixno=`C C%
+  \else\ifnum\appendixno=`D D%
+  \else\ifnum\appendixno=`E E%
+  \else\ifnum\appendixno=`F F%
+  \else\ifnum\appendixno=`G G%
+  \else\ifnum\appendixno=`H H%
+  \else\ifnum\appendixno=`I I%
+  \else\ifnum\appendixno=`J J%
+  \else\ifnum\appendixno=`K K%
+  \else\ifnum\appendixno=`L L%
+  \else\ifnum\appendixno=`M M%
+  \else\ifnum\appendixno=`N N%
+  \else\ifnum\appendixno=`O O%
+  \else\ifnum\appendixno=`P P%
+  \else\ifnum\appendixno=`Q Q%
+  \else\ifnum\appendixno=`R R%
+  \else\ifnum\appendixno=`S S%
+  \else\ifnum\appendixno=`T T%
+  \else\ifnum\appendixno=`U U%
+  \else\ifnum\appendixno=`V V%
+  \else\ifnum\appendixno=`W W%
+  \else\ifnum\appendixno=`X X%
+  \else\ifnum\appendixno=`Y Y%
+  \else\ifnum\appendixno=`Z Z%
+  % The \the is necessary, despite appearances, because \appendixletter is
+  % expanded while writing the .toc file.  \char\appendixno is not
+  % expandable, thus it is written literally, thus all appendixes come out
+  % with the same letter (or @) in the toc without it.
+  \else\char\the\appendixno
+  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+
+% Each @chapter defines this as the name of the chapter.
+% page headings and footings can use it.  @section does likewise.
+% However, they are not reliable, because we don't use marks.
+\def\thischapter{}
+\def\thissection{}
+
+\newcount\absseclevel % used to calculate proper heading level
+\newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count
+
+% @raisesections: treat @section as chapter, @subsection as section, etc.
+\def\raisesections{\global\advance\secbase by -1}
+\let\up=\raisesections % original BFox name
+
+% @lowersections: treat @chapter as section, @section as subsection, etc.
+\def\lowersections{\global\advance\secbase by 1}
+\let\down=\lowersections % original BFox name
+
+% Choose a numbered-heading macro
+% #1 is heading level if unmodified by @raisesections or @lowersections
+% #2 is text for heading
+\def\numhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
+\ifcase\absseclevel
+      \chapterzzz{#2}%
+  \or \seczzz{#2}%
+  \or \numberedsubseczzz{#2}%
+  \or \numberedsubsubseczzz{#2}%
+  \else
+    \ifnum \absseclevel<0 \chapterzzz{#2}%
+    \else \numberedsubsubseczzz{#2}%
+    \fi
+  \fi
+  \suppressfirstparagraphindent
+}
+
+% like \numhead, but chooses appendix heading levels
+\def\apphead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
+\ifcase\absseclevel
+      \appendixzzz{#2}%
+  \or \appendixsectionzzz{#2}%
+  \or \appendixsubseczzz{#2}%
+  \or \appendixsubsubseczzz{#2}%
+  \else
+    \ifnum \absseclevel<0 \appendixzzz{#2}%
+    \else \appendixsubsubseczzz{#2}%
+    \fi
+  \fi
+  \suppressfirstparagraphindent
+}
+
+% like \numhead, but chooses numberless heading levels
+\def\unnmhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
+  \ifcase\absseclevel
+      \unnumberedzzz{#2}%
+  \or \unnumberedseczzz{#2}%
+  \or \unnumberedsubseczzz{#2}%
+  \or \unnumberedsubsubseczzz{#2}%
+  \else
+    \ifnum \absseclevel<0 \unnumberedzzz{#2}%
+    \else \unnumberedsubsubseczzz{#2}%
+    \fi
+  \fi
+  \suppressfirstparagraphindent
+}
+
+% @chapter, @appendix, @unnumbered.  Increment top-level counter, reset
+% all lower-level sectioning counters to zero.
+% 
+% Also set \chaplevelprefix, which we prepend to @float sequence numbers
+% (e.g., figures), q.v.  By default (before any chapter), that is empty.
+\let\chaplevelprefix = \empty
+% 
+\outer\parseargdef\chapter{\numhead0{#1}} % normally numhead0 calls chapterzzz
+\def\chapterzzz#1{%
+  % section resetting is \global in case the chapter is in a group, such
+  % as an @include file.
+  \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
+    \global\advance\chapno by 1
+  %
+  % Used for \float.
+  \gdef\chaplevelprefix{\the\chapno.}%
+  \resetallfloatnos
+  %
+  \message{\putwordChapter\space \the\chapno}%
+  %
+  % Write the actual heading.
+  \chapmacro{#1}{Ynumbered}{\the\chapno}%
+  %
+  % So @section and the like are numbered underneath this chapter.
+  \global\let\section = \numberedsec
+  \global\let\subsection = \numberedsubsec
+  \global\let\subsubsection = \numberedsubsubsec
+}
+
+\outer\parseargdef\appendix{\apphead0{#1}} % normally apphead0 calls appendixzzz
+\def\appendixzzz#1{%
+  \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
+    \global\advance\appendixno by 1
+  \gdef\chaplevelprefix{\appendixletter.}%
+  \resetallfloatnos
+  %
+  \def\appendixnum{\putwordAppendix\space \appendixletter}%
+  \message{\appendixnum}%
+  %
+  \chapmacro{#1}{Yappendix}{\appendixletter}%
+  %
+  \global\let\section = \appendixsec
+  \global\let\subsection = \appendixsubsec
+  \global\let\subsubsection = \appendixsubsubsec
+}
+
+% @centerchap is like @unnumbered, but the heading is centered.
+\outer\parseargdef\centerchap{{\unnumberedyyy{#1}}}
+
+\outer\parseargdef\unnumbered{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
+\def\unnumberedzzz#1{%
+  \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
+    \global\advance\unnumberedno by 1
+  %
+  % Since an unnumbered has no number, no prefix for figures.
+  \global\let\chaplevelprefix = \empty
+  \resetallfloatnos
+  %
+  % This used to be simply \message{#1}, but TeX fully expands the
+  % argument to \message.  Therefore, if #1 contained @-commands, TeX
+  % expanded them.  For example, in `@unnumbered The @cite{Book}', TeX
+  % expanded @cite (which turns out to cause errors because \cite is meant
+  % to be executed, not expanded).
+  %
+  % Anyway, we don't want the fully-expanded definition of @cite to appear
+  % as a result of the \message, we just want `@cite' itself.  We use
+  % \the<toks register> to achieve this: TeX expands \the<toks> only once,
+  % simply yielding the contents of <toks register>.  (We also do this for
+  % the toc entries.)
+  \toks0 = {#1}%
+  \message{(\the\toks0)}%
+  %
+  \chapmacro{#1}{Ynothing}{\the\unnumberedno}%
+  %
+  \global\let\section = \unnumberedsec
+  \global\let\subsection = \unnumberedsubsec
+  \global\let\subsubsection = \unnumberedsubsubsec
+}
+
+% @top is like @unnumbered.
+\let\top\unnumbered
+
+% Sections.
+\outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz
+\def\seczzz#1{%
+  \global\subsecno=0 \global\subsubsecno=0  \global\advance\secno by 1
+  \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}%
+}
+
+\outer\parseargdef\appendixsection{\apphead1{#1}} % normally calls appendixsectionzzz
+\def\appendixsectionzzz#1{%
+  \global\subsecno=0 \global\subsubsecno=0  \global\advance\secno by 1
+  \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}%
+}
+\let\appendixsec\appendixsection
+
+\outer\parseargdef\unnumberedsec{\unnmhead1{#1}} % normally calls unnumberedseczzz
+\def\unnumberedseczzz#1{%
+  \global\subsecno=0 \global\subsubsecno=0  \global\advance\secno by 1
+  \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}%
+}
+
+% Subsections.
+\outer\parseargdef\numberedsubsec{\numhead2{#1}} % normally calls numberedsubseczzz
+\def\numberedsubseczzz#1{%
+  \global\subsubsecno=0  \global\advance\subsecno by 1
+  \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}%
+}
+
+\outer\parseargdef\appendixsubsec{\apphead2{#1}} % normally calls appendixsubseczzz
+\def\appendixsubseczzz#1{%
+  \global\subsubsecno=0  \global\advance\subsecno by 1
+  \sectionheading{#1}{subsec}{Yappendix}%
+                 {\appendixletter.\the\secno.\the\subsecno}%
+}
+
+\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
+\def\unnumberedsubseczzz#1{%
+  \global\subsubsecno=0  \global\advance\subsecno by 1
+  \sectionheading{#1}{subsec}{Ynothing}%
+                 {\the\unnumberedno.\the\secno.\the\subsecno}%
+}
+
+% Subsubsections.
+\outer\parseargdef\numberedsubsubsec{\numhead3{#1}} % normally numberedsubsubseczzz
+\def\numberedsubsubseczzz#1{%
+  \global\advance\subsubsecno by 1
+  \sectionheading{#1}{subsubsec}{Ynumbered}%
+                 {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}%
+}
+
+\outer\parseargdef\appendixsubsubsec{\apphead3{#1}} % normally appendixsubsubseczzz
+\def\appendixsubsubseczzz#1{%
+  \global\advance\subsubsecno by 1
+  \sectionheading{#1}{subsubsec}{Yappendix}%
+                 {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}%
+}
+
+\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
+\def\unnumberedsubsubseczzz#1{%
+  \global\advance\subsubsecno by 1
+  \sectionheading{#1}{subsubsec}{Ynothing}%
+                 {\the\unnumberedno.\the\secno.\the\subsecno.\the\subsubsecno}%
+}
+
+% These are variants which are not "outer", so they can appear in @ifinfo.
+% Actually, they are now be obsolete; ordinary section commands should work.
+\def\infotop{\parsearg\unnumberedzzz}
+\def\infounnumbered{\parsearg\unnumberedzzz}
+\def\infounnumberedsec{\parsearg\unnumberedseczzz}
+\def\infounnumberedsubsec{\parsearg\unnumberedsubseczzz}
+\def\infounnumberedsubsubsec{\parsearg\unnumberedsubsubseczzz}
+
+\def\infoappendix{\parsearg\appendixzzz}
+\def\infoappendixsec{\parsearg\appendixseczzz}
+\def\infoappendixsubsec{\parsearg\appendixsubseczzz}
+\def\infoappendixsubsubsec{\parsearg\appendixsubsubseczzz}
+
+\def\infochapter{\parsearg\chapterzzz}
+\def\infosection{\parsearg\sectionzzz}
+\def\infosubsection{\parsearg\subsectionzzz}
+\def\infosubsubsection{\parsearg\subsubsectionzzz}
+
+% These macros control what the section commands do, according
+% to what kind of chapter we are in (ordinary, appendix, or unnumbered).
+% Define them by default for a numbered chapter.
+\let\section = \numberedsec
+\let\subsection = \numberedsubsec
+\let\subsubsection = \numberedsubsubsec
+
+% Define @majorheading, @heading and @subheading
+
+% NOTE on use of \vbox for chapter headings, section headings, and such:
+%       1) We use \vbox rather than the earlier \line to permit
+%          overlong headings to fold.
+%       2) \hyphenpenalty is set to 10000 because hyphenation in a
+%          heading is obnoxious; this forbids it.
+%       3) Likewise, headings look best if no \parindent is used, and
+%          if justification is not attempted.  Hence \raggedright.
+
+
+\def\majorheading{%
+  {\advance\chapheadingskip by 10pt \chapbreak }%
+  \parsearg\chapheadingzzz
+}
+
+\def\chapheading{\chapbreak \parsearg\chapheadingzzz}
+\def\chapheadingzzz#1{%
+  {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+                    \parindent=0pt\raggedright
+                    \rm #1\hfill}}%
+  \bigskip \par\penalty 200\relax
+  \suppressfirstparagraphindent
+}
+
+% @heading, @subheading, @subsubheading.
+\parseargdef\heading{\sectionheading{#1}{sec}{Yomitfromtoc}{}
+  \suppressfirstparagraphindent}
+\parseargdef\subheading{\sectionheading{#1}{subsec}{Yomitfromtoc}{}
+  \suppressfirstparagraphindent}
+\parseargdef\subsubheading{\sectionheading{#1}{subsubsec}{Yomitfromtoc}{}
+  \suppressfirstparagraphindent}
+
+% These macros generate a chapter, section, etc. heading only
+% (including whitespace, linebreaking, etc. around it),
+% given all the information in convenient, parsed form.
+
+%%% Args are the skip and penalty (usually negative)
+\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
+
+\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
+
+%%% Define plain chapter starts, and page on/off switching for it
+% Parameter controlling skip before chapter headings (if needed)
+
+\newskip\chapheadingskip
+
+\def\chapbreak{\dobreak \chapheadingskip {-4000}}
+\def\chappager{\par\vfill\supereject}
+\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi}
+
+\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
+
+\def\CHAPPAGoff{%
+\global\let\contentsalignmacro = \chappager
+\global\let\pchapsepmacro=\chapbreak
+\global\let\pagealignmacro=\chappager}
+
+\def\CHAPPAGon{%
+\global\let\contentsalignmacro = \chappager
+\global\let\pchapsepmacro=\chappager
+\global\let\pagealignmacro=\chappager
+\global\def\HEADINGSon{\HEADINGSsingle}}
+
+\def\CHAPPAGodd{%
+\global\let\contentsalignmacro = \chapoddpage
+\global\let\pchapsepmacro=\chapoddpage
+\global\let\pagealignmacro=\chapoddpage
+\global\def\HEADINGSon{\HEADINGSdouble}}
+
+\CHAPPAGon
+
+\def\CHAPFplain{%
+\global\let\chapmacro=\chfplain
+\global\let\centerchapmacro=\centerchfplain}
+
+% Normal chapter opening.
+% 
+% #1 is the text, #2 is the section type (Ynumbered, Ynothing,
+% Yappendix, Yomitfromtoc), #3 the chapter number.
+% 
+% To test against our argument.
+\def\Ynothingkeyword{Ynothing}
+\def\Yomitfromtockeyword{Yomitfromtoc}
+\def\Yappendixkeyword{Yappendix}
+%
+\def\chfplain#1#2#3{%
+  \pchapsepmacro
+  {%
+    \chapfonts \rm
+    %
+    % Have to define \thissection before calling \donoderef, because the
+    % xref code eventually uses it.  On the other hand, it has to be called
+    % after \pchapsepmacro, or the headline will change too soon.
+    \gdef\thissection{#1}%
+    \gdef\thischaptername{#1}%
+    %
+    % Only insert the separating space if we have a chapter/appendix
+    % number, and don't print the unnumbered ``number''.
+    \def\temptype{#2}%
+    \ifx\temptype\Ynothingkeyword
+      \setbox0 = \hbox{}%
+      \def\toctype{unnchap}%
+      \def\thischapter{#1}%
+    \else\ifx\temptype\Yomitfromtockeyword
+      \setbox0 = \hbox{}% contents like unnumbered, but no toc entry
+      \def\toctype{omit}%
+      \xdef\thischapter{}%
+    \else\ifx\temptype\Yappendixkeyword
+      \setbox0 = \hbox{\putwordAppendix{} #3\enspace}%
+      \def\toctype{app}%
+      % We don't substitute the actual chapter name into \thischapter
+      % because we don't want its macros evaluated now.  And we don't
+      % use \thissection because that changes with each section.
+      %
+      \xdef\thischapter{\putwordAppendix{} \appendixletter:
+                        \noexpand\thischaptername}%
+    \else
+      \setbox0 = \hbox{#3\enspace}%
+      \def\toctype{numchap}%
+      \xdef\thischapter{\putwordChapter{} \the\chapno:
+                        \noexpand\thischaptername}%
+    \fi\fi\fi
+    %
+    % Write the toc entry for this chapter.  Must come before the
+    % \donoderef, because we include the current node name in the toc
+    % entry, and \donoderef resets it to empty.
+    \writetocentry{\toctype}{#1}{#3}%
+    %
+    % For pdftex, we have to write out the node definition (aka, make
+    % the pdfdest) after any page break, but before the actual text has
+    % been typeset.  If the destination for the pdf outline is after the
+    % text, then jumping from the outline may wind up with the text not
+    % being visible, for instance under high magnification.
+    \donoderef{#2}%
+    %
+    % Typeset the actual heading.
+    \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
+          \hangindent=\wd0 \centerparametersmaybe
+          \unhbox0 #1\par}%
+  }%
+  \nobreak\bigskip % no page break after a chapter title
+  \nobreak
+}
+
+% @centerchap -- centered and unnumbered.
+\let\centerparametersmaybe = \relax
+\def\centerchfplain#1{{%
+  \def\centerparametersmaybe{%
+    \advance\rightskip by 3\rightskip
+    \leftskip = \rightskip
+    \parfillskip = 0pt
+  }%
+  \chfplain{#1}{Ynothing}{}%
+}}
+
+\CHAPFplain % The default
+
+% I don't think this chapter style is supported any more, so I'm not
+% updating it with the new noderef stuff.  We'll see.  --karl, 11aug03.
+% 
+\def\unnchfopen #1{%
+\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+                       \parindent=0pt\raggedright
+                       \rm #1\hfill}}\bigskip \par\nobreak
+}
+
+\def\chfopen #1#2{\chapoddpage {\chapfonts
+\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
+\par\penalty 5000 %
+}
+
+\def\centerchfopen #1{%
+\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+                       \parindent=0pt
+                       \hfill {\rm #1}\hfill}}\bigskip \par\nobreak
+}
+
+\def\CHAPFopen{%
+\global\let\chapmacro=\chfopen
+\global\let\centerchapmacro=\centerchfopen}
+
+
+% Section titles.  These macros combine the section number parts and
+% call the generic \sectionheading to do the printing.
+% 
+\newskip\secheadingskip
+\def\secheadingbreak{\dobreak \secheadingskip{-1000}}
+
+% Subsection titles.
+\newskip\subsecheadingskip
+\def\subsecheadingbreak{\dobreak \subsecheadingskip{-500}}
+
+% Subsubsection titles.
+\def\subsubsecheadingskip{\subsecheadingskip}
+\def\subsubsecheadingbreak{\subsecheadingbreak}
+
+
+% Print any size, any type, section title.
+% 
+% #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is
+% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the
+% section number.
+% 
+\def\sectionheading#1#2#3#4{%
+  {%
+    % Switch to the right set of fonts.
+    \csname #2fonts\endcsname \rm
+    %
+    % Insert space above the heading.
+    \csname #2headingbreak\endcsname
+    %
+    % Only insert the space after the number if we have a section number.
+    \def\sectionlevel{#2}%
+    \def\temptype{#3}%
+    %
+    \ifx\temptype\Ynothingkeyword
+      \setbox0 = \hbox{}%
+      \def\toctype{unn}%
+      \gdef\thissection{#1}%
+    \else\ifx\temptype\Yomitfromtockeyword
+      % for @headings -- no section number, don't include in toc,
+      % and don't redefine \thissection.
+      \setbox0 = \hbox{}%
+      \def\toctype{omit}%
+      \let\sectionlevel=\empty
+    \else\ifx\temptype\Yappendixkeyword
+      \setbox0 = \hbox{#4\enspace}%
+      \def\toctype{app}%
+      \gdef\thissection{#1}%
+    \else
+      \setbox0 = \hbox{#4\enspace}%
+      \def\toctype{num}%
+      \gdef\thissection{#1}%
+    \fi\fi\fi
+    %
+    % Write the toc entry (before \donoderef).  See comments in \chfplain.
+    \writetocentry{\toctype\sectionlevel}{#1}{#4}%
+    %
+    % Write the node reference (= pdf destination for pdftex).
+    % Again, see comments in \chfplain.
+    \donoderef{#3}%
+    %
+    % Output the actual section heading.
+    \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
+          \hangindent=\wd0  % zero if no section number
+          \unhbox0 #1}%
+  }%
+  % Add extra space after the heading -- half of whatever came above it.
+  % Don't allow stretch, though.
+  \kern .5 \csname #2headingskip\endcsname
+  %
+  % Do not let the kern be a potential breakpoint, as it would be if it
+  % was followed by glue.
+  \nobreak
+  %
+  % We'll almost certainly start a paragraph next, so don't let that
+  % glue accumulate.  (Not a breakpoint because it's preceded by a
+  % discardable item.)
+  \vskip-\parskip
+  %
+  % This \nobreak is purely so the last item on the list is a \penalty
+  % of 10000.  This is so other code, for instance \parsebodycommon, can
+  % check for and avoid allowing breakpoints.  Otherwise, it would
+  % insert a valid breakpoint between:
+  %   @section sec-whatever
+  %   @deffn def-whatever
+  \nobreak
+}
+
+
+\message{toc,}
+% Table of contents.
+\newwrite\tocfile
+
+% Write an entry to the toc file, opening it if necessary.
+% Called from @chapter, etc.  
+% 
+% Example usage: \writetocentry{sec}{Section Name}{\the\chapno.\the\secno}
+% We append the current node name (if any) and page number as additional
+% arguments for the \{chap,sec,...}entry macros which will eventually
+% read this.  The node name is used in the pdf outlines as the
+% destination to jump to.
+% 
+% We open the .toc file for writing here instead of at @setfilename (or
+% any other fixed time) so that @contents can be anywhere in the document.
+% But if #1 is `omit', then we don't do anything.  This is used for the
+% table of contents chapter openings themselves.
+%
+\newif\iftocfileopened
+\def\omitkeyword{omit}%
+%
+\def\writetocentry#1#2#3{%
+  \edef\writetoctype{#1}%
+  \ifx\writetoctype\omitkeyword \else
+    \iftocfileopened\else
+      \immediate\openout\tocfile = \jobname.toc
+      \global\tocfileopenedtrue
+    \fi
+    %
+    \iflinks
+      \toks0 = {#2}%
+      \toks2 = \expandafter{\lastnode}%
+      \edef\temp{\write\tocfile{\realbackslash #1entry{\the\toks0}{#3}%
+                               {\the\toks2}{\noexpand\folio}}}%
+      \temp
+    \fi
+  \fi
+  %
+  % Tell \shipout to create a pdf destination on each page, if we're
+  % writing pdf.  These are used in the table of contents.  We can't
+  % just write one on every page because the title pages are numbered
+  % 1 and 2 (the page numbers aren't printed), and so are the first
+  % two pages of the document.  Thus, we'd have two destinations named
+  % `1', and two named `2'.
+  \ifpdf \global\pdfmakepagedesttrue \fi
+}
+
+\newskip\contentsrightmargin \contentsrightmargin=1in
+\newcount\savepageno
+\newcount\lastnegativepageno \lastnegativepageno = -1
+
+% Prepare to read what we've written to \tocfile.
+%
+\def\startcontents#1{%
+  % If @setchapternewpage on, and @headings double, the contents should
+  % start on an odd page, unlike chapters.  Thus, we maintain
+  % \contentsalignmacro in parallel with \pagealignmacro.
+  % From: Torbjorn Granlund <tege@matematik.su.se>
+  \contentsalignmacro
+  \immediate\closeout\tocfile
+  %
+  % Don't need to put `Contents' or `Short Contents' in the headline.
+  % It is abundantly clear what they are.
+  \def\thischapter{}%
+  \chapmacro{#1}{Yomitfromtoc}{}%
+  %
+  \savepageno = \pageno
+  \begingroup                  % Set up to handle contents files properly.
+    \catcode`\\=0  \catcode`\{=1  \catcode`\}=2  \catcode`\@=11
+    % We can't do this, because then an actual ^ in a section
+    % title fails, e.g., @chapter ^ -- exponentiation.  --karl, 9jul97.
+    %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi
+    \raggedbottom             % Worry more about breakpoints than the bottom.
+    \advance\hsize by -\contentsrightmargin % Don't use the full line length.
+    %
+    % Roman numerals for page numbers.
+    \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi
+}
+
+
+% Normal (long) toc.
+\def\contents{%
+  \startcontents{\putwordTOC}%
+    \openin 1 \jobname.toc
+    \ifeof 1 \else
+      \input \jobname.toc
+    \fi
+    \vfill \eject
+    \contentsalignmacro % in case @setchapternewpage odd is in effect
+    \ifeof 1 \else
+      \pdfmakeoutlines
+    \fi
+    \closein 1
+  \endgroup
+  \lastnegativepageno = \pageno
+  \global\pageno = \savepageno
+}
+
+% And just the chapters.
+\def\summarycontents{%
+  \startcontents{\putwordShortTOC}%
+    %
+    \let\numchapentry = \shortchapentry
+    \let\appentry = \shortchapentry
+    \let\unnchapentry = \shortunnchapentry
+    % We want a true roman here for the page numbers.
+    \secfonts
+    \let\rm=\shortcontrm \let\bf=\shortcontbf
+    \let\sl=\shortcontsl \let\tt=\shortconttt
+    \rm
+    \hyphenpenalty = 10000
+    \advance\baselineskip by 1pt % Open it up a little.
+    \def\numsecentry##1##2##3##4{}
+    \let\appsecentry = \numsecentry
+    \let\unnsecentry = \numsecentry
+    \let\numsubsecentry = \numsecentry
+    \let\appsubsecentry = \numsecentry
+    \let\unnsubsecentry = \numsecentry
+    \let\numsubsubsecentry = \numsecentry
+    \let\appsubsubsecentry = \numsecentry
+    \let\unnsubsubsecentry = \numsecentry
+    \openin 1 \jobname.toc
+    \ifeof 1 \else
+      \input \jobname.toc
+    \fi
+    \closein 1
+    \vfill \eject
+    \contentsalignmacro % in case @setchapternewpage odd is in effect
+  \endgroup
+  \lastnegativepageno = \pageno
+  \global\pageno = \savepageno
+}
+\let\shortcontents = \summarycontents
+
+% Typeset the label for a chapter or appendix for the short contents.
+% The arg is, e.g., `A' for an appendix, or `3' for a chapter.
+%
+\def\shortchaplabel#1{%
+  % This space should be enough, since a single number is .5em, and the
+  % widest letter (M) is 1em, at least in the Computer Modern fonts.
+  % But use \hss just in case.
+  % (This space doesn't include the extra space that gets added after
+  % the label; that gets put in by \shortchapentry above.)
+  % 
+  % We'd like to right-justify chapter numbers, but that looks strange
+  % with appendix letters.  And right-justifying numbers and
+  % left-justifying letters looks strange when there is less than 10
+  % chapters.  Have to read the whole toc once to know how many chapters
+  % there are before deciding ...
+  \hbox to 1em{#1\hss}%
+}
+
+% These macros generate individual entries in the table of contents.
+% The first argument is the chapter or section name.
+% The last argument is the page number.
+% The arguments in between are the chapter number, section number, ...
+
+% Chapters, in the main contents.
+\def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}}
+%
+% Chapters, in the short toc.
+% See comments in \dochapentry re vbox and related settings.
+\def\shortchapentry#1#2#3#4{%
+  \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}%
+}
+
+% Appendices, in the main contents.
+% Need the word Appendix, and a fixed-size box.
+% 
+\def\appendixbox#1{%
+  % We use M since it's probably the widest letter.
+  \setbox0 = \hbox{\putwordAppendix{} M}%
+  \hbox to \wd0{\putwordAppendix{} #1\hss}}
+%
+\def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\labelspace#1}{#4}}
+
+% Unnumbered chapters.
+\def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}}
+\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}}
+
+% Sections.
+\def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}}
+\let\appsecentry=\numsecentry
+\def\unnsecentry#1#2#3#4{\dosecentry{#1}{#4}}
+
+% Subsections.
+\def\numsubsecentry#1#2#3#4{\dosubsecentry{#2\labelspace#1}{#4}}
+\let\appsubsecentry=\numsubsecentry
+\def\unnsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}}
+
+% And subsubsections.
+\def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#2\labelspace#1}{#4}}
+\let\appsubsubsecentry=\numsubsubsecentry
+\def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#4}}
+
+% This parameter controls the indentation of the various levels.
+% Same as \defaultparindent.
+\newdimen\tocindent \tocindent = 15pt
+
+% Now for the actual typesetting. In all these, #1 is the text and #2 is the
+% page number.
+%
+% If the toc has to be broken over pages, we want it to be at chapters
+% if at all possible; hence the \penalty.
+\def\dochapentry#1#2{%
+   \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
+   \begingroup
+     \chapentryfonts
+     \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+   \endgroup
+   \nobreak\vskip .25\baselineskip plus.1\baselineskip
+}
+
+\def\dosecentry#1#2{\begingroup
+  \secentryfonts \leftskip=\tocindent
+  \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+\endgroup}
+
+\def\dosubsecentry#1#2{\begingroup
+  \subsecentryfonts \leftskip=2\tocindent
+  \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+\endgroup}
+
+\def\dosubsubsecentry#1#2{\begingroup
+  \subsubsecentryfonts \leftskip=3\tocindent
+  \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+\endgroup}
+
+% We use the same \entry macro as for the index entries.
+\let\tocentry = \entry
+
+% Space between chapter (or whatever) number and the title.
+\def\labelspace{\hskip1em \relax}
+
+\def\dopageno#1{{\rm #1}}
+\def\doshortpageno#1{{\rm #1}}
+
+\def\chapentryfonts{\secfonts \rm}
+\def\secentryfonts{\textfonts}
+\def\subsecentryfonts{\textfonts}
+\def\subsubsecentryfonts{\textfonts}
+
+
+\message{environments,}
+% @foo ... @end foo.
+
+% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
+%
+% Since these characters are used in examples, it should be an even number of
+% \tt widths. Each \tt character is 1en, so two makes it 1em.
+%
+\def\point{$\star$}
+\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
+\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
+\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
+\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
+
+% The @error{} command.
+% Adapted from the TeXbook's \boxit.
+%
+\newbox\errorbox
+%
+{\tentt \global\dimen0 = 3em}% Width of the box.
+\dimen2 = .55pt % Thickness of rules
+% The text. (`r' is open on the right, `e' somewhat less so on the left.)
+\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt}
+%
+\setbox\errorbox=\hbox to \dimen0{\hfil
+   \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
+   \advance\hsize by -2\dimen2 % Rules.
+   \vbox{%
+      \hrule height\dimen2
+      \hbox{\vrule width\dimen2 \kern3pt          % Space to left of text.
+         \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
+         \kern3pt\vrule width\dimen2}% Space to right.
+      \hrule height\dimen2}
+    \hfil}
+%
+\def\error{\leavevmode\lower.7ex\copy\errorbox}
+
+% @tex ... @end tex    escapes into raw Tex temporarily.
+% One exception: @ is still an escape character, so that @end tex works.
+% But \@ or @@ will get a plain tex @ character.
+
+\envdef\tex{%
+  \catcode `\\=0 \catcode `\{=1 \catcode `\}=2
+  \catcode `\$=3 \catcode `\&=4 \catcode `\#=6
+  \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie
+  \catcode `\%=14
+  \catcode `\+=\other
+  \catcode `\"=\other
+  \catcode `\|=\other
+  \catcode `\<=\other
+  \catcode `\>=\other
+  \escapechar=`\\
+  %
+  \let\b=\ptexb
+  \let\bullet=\ptexbullet
+  \let\c=\ptexc
+  \let\,=\ptexcomma
+  \let\.=\ptexdot
+  \let\dots=\ptexdots
+  \let\equiv=\ptexequiv
+  \let\!=\ptexexclam
+  \let\i=\ptexi
+  \let\indent=\ptexindent
+  \let\noindent=\ptexnoindent
+  \let\{=\ptexlbrace
+  \let\+=\tabalign
+  \let\}=\ptexrbrace
+  \let\/=\ptexslash
+  \let\*=\ptexstar
+  \let\t=\ptext
+  %
+  \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
+  \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}%
+  \def\@{@}%
+}
+% There is no need to define \Etex.
+
+% Define @lisp ... @end lisp.
+% @lisp environment forms a group so it can rebind things,
+% including the definition of @end lisp (which normally is erroneous).
+
+% Amount to narrow the margins by for @lisp.
+\newskip\lispnarrowing \lispnarrowing=0.4in
+
+% This is the definition that ^^M gets inside @lisp, @example, and other
+% such environments.  \null is better than a space, since it doesn't
+% have any width.
+\def\lisppar{\null\endgraf}
+
+% This space is always present above and below environments.
+\newskip\envskipamount \envskipamount = 0pt
+
+% Make spacing and below environment symmetrical.  We use \parskip here
+% to help in doing that, since in @example-like environments \parskip
+% is reset to zero; thus the \afterenvbreak inserts no space -- but the
+% start of the next paragraph will insert \parskip.
+%
+\def\aboveenvbreak{{%
+  % =10000 instead of <10000 because of a special case in \itemzzz, q.v.
+  \ifnum \lastpenalty=10000 \else
+    \advance\envskipamount by \parskip
+    \endgraf
+    \ifdim\lastskip<\envskipamount
+      \removelastskip
+      % it's not a good place to break if the last penalty was \nobreak
+      % or better ...
+      \ifnum\lastpenalty<10000 \penalty-50 \fi
+      \vskip\envskipamount
+    \fi
+  \fi
+}}
+
+\let\afterenvbreak = \aboveenvbreak
+
+% \nonarrowing is a flag.  If "set", @lisp etc don't narrow margins.
+\let\nonarrowing=\relax
+
+% @cartouche ... @end cartouche: draw rectangle w/rounded corners around
+% environment contents.
+\font\circle=lcircle10
+\newdimen\circthick
+\newdimen\cartouter\newdimen\cartinner
+\newskip\normbskip\newskip\normpskip\newskip\normlskip
+\circthick=\fontdimen8\circle
+%
+\def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth
+\def\ctr{{\hskip 6pt\circle\char'010}}
+\def\cbl{{\circle\char'012\hskip -6pt}}
+\def\cbr{{\hskip 6pt\circle\char'011}}
+\def\carttop{\hbox to \cartouter{\hskip\lskip
+        \ctl\leaders\hrule height\circthick\hfil\ctr
+        \hskip\rskip}}
+\def\cartbot{\hbox to \cartouter{\hskip\lskip
+        \cbl\leaders\hrule height\circthick\hfil\cbr
+        \hskip\rskip}}
+%
+\newskip\lskip\newskip\rskip
+
+\envdef\cartouche{%
+  \ifhmode\par\fi  % can't be in the midst of a paragraph.
+  \startsavinginserts
+  \lskip=\leftskip \rskip=\rightskip
+  \leftskip=0pt\rightskip=0pt % we want these *outside*.
+  \cartinner=\hsize \advance\cartinner by-\lskip
+  \advance\cartinner by-\rskip
+  \cartouter=\hsize
+  \advance\cartouter by 18.4pt	% allow for 3pt kerns on either
+				% side, and for 6pt waste from
+				% each corner char, and rule thickness
+  \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
+  % Flag to tell @lisp, etc., not to narrow margin.
+  \let\nonarrowing=\comment
+  \vbox\bgroup
+      \baselineskip=0pt\parskip=0pt\lineskip=0pt
+      \carttop
+      \hbox\bgroup
+	  \hskip\lskip
+	  \vrule\kern3pt
+	  \vbox\bgroup
+	      \kern3pt
+	      \hsize=\cartinner
+	      \baselineskip=\normbskip
+	      \lineskip=\normlskip
+	      \parskip=\normpskip
+	      \vskip -\parskip
+	      \comment % For explanation, see the end of \def\group.
+}
+\def\Ecartouche{%
+              \ifhmode\par\fi
+	      \kern3pt
+	  \egroup
+	  \kern3pt\vrule
+	  \hskip\rskip
+      \egroup
+      \cartbot
+  \egroup
+  \checkinserts
+}
+
+
+% This macro is called at the beginning of all the @example variants,
+% inside a group.
+\def\nonfillstart{%
+  \aboveenvbreak
+  \hfuzz = 12pt % Don't be fussy
+  \sepspaces % Make spaces be word-separators rather than space tokens.
+  \let\par = \lisppar % don't ignore blank lines
+  \obeylines % each line of input is a line of output
+  \parskip = 0pt
+  \parindent = 0pt
+  \emergencystretch = 0pt % don't try to avoid overfull boxes
+  % @cartouche defines \nonarrowing to inhibit narrowing
+  % at next level down.
+  \ifx\nonarrowing\relax
+    \advance \leftskip by \lispnarrowing
+    \exdentamount=\lispnarrowing
+  \fi
+  \let\exdent=\nofillexdent
+}
+
+% If you want all examples etc. small: @set dispenvsize small.
+% If you want even small examples the full size: @set dispenvsize nosmall.
+% This affects the following displayed environments:
+%    @example, @display, @format, @lisp
+%
+\def\smallword{small}
+\def\nosmallword{nosmall}
+\let\SETdispenvsize\relax
+\def\setnormaldispenv{%
+  \ifx\SETdispenvsize\smallword
+    \smallexamplefonts \rm
+  \fi
+}
+\def\setsmalldispenv{%
+  \ifx\SETdispenvsize\nosmallword
+  \else
+    \smallexamplefonts \rm
+  \fi
+}
+
+% We often define two environments, @foo and @smallfoo.
+% Let's do it by one command:
+\def\makedispenv #1#2{
+  \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}
+  \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}
+  \expandafter\let\csname E#1\endcsname \afterenvbreak
+  \expandafter\let\csname Esmall#1\endcsname \afterenvbreak
+}
+
+% Define two synonyms:
+\def\maketwodispenvs #1#2#3{
+  \makedispenv{#1}{#3}
+  \makedispenv{#2}{#3}
+}
+
+% @lisp: indented, narrowed, typewriter font; @example: same as @lisp.
+%
+% @smallexample and @smalllisp: use smaller fonts.
+% Originally contributed by Pavel@xerox.
+%
+\maketwodispenvs {lisp}{example}{%
+  \nonfillstart
+  \tt
+  \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
+  \gobble       % eat return
+}
+
+% @display/@smalldisplay: same as @lisp except keep current font.
+%
+\makedispenv {display}{%
+  \nonfillstart
+  \gobble
+}
+
+% @format/@smallformat: same as @display except don't narrow margins.
+%
+\makedispenv{format}{%
+  \let\nonarrowing = t%
+  \nonfillstart
+  \gobble
+}
+
+% @flushleft: same as @format, but doesn't obey \SETdispenvsize.
+\envdef\flushleft{%
+  \let\nonarrowing = t%
+  \nonfillstart
+  \gobble
+}
+\let\Eflushleft = \afterenvbreak
+
+% @flushright.
+%
+\envdef\flushright{%
+  \let\nonarrowing = t%
+  \nonfillstart
+  \advance\leftskip by 0pt plus 1fill
+  \gobble
+}
+\let\Eflushright = \afterenvbreak
+
+
+% @quotation does normal linebreaking (hence we can't use \nonfillstart)
+% and narrows the margins.  We keep \parskip nonzero in general, since
+% we're doing normal filling.  So, when using \aboveenvbreak and
+% \afterenvbreak, temporarily make \parskip 0.
+%
+\envdef\quotation{%
+  {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
+  \parindent=0pt
+  %
+  % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
+  \ifx\nonarrowing\relax
+    \advance\leftskip by \lispnarrowing
+    \advance\rightskip by \lispnarrowing
+    \exdentamount = \lispnarrowing
+    \let\nonarrowing = \relax
+  \fi
+  \parsearg\quotationlabel
+}
+
+% We have retained a nonzero parskip for the environment, since we're
+% doing normal filling.
+% 
+\def\Equotation{%
+  \par
+  \ifx\quotationauthor\undefined\else
+    % indent a bit.
+    \leftline{\kern 2\leftskip \sl ---\quotationauthor}%
+  \fi
+  {\parskip=0pt \afterenvbreak}%
+}
+
+% If we're given an argument, typeset it in bold with a colon after.
+\def\quotationlabel#1{%
+  \def\temp{#1}%
+  \ifx\temp\empty \else
+    {\bf #1: }%
+  \fi
+}
+
+
+% LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>}
+% If we want to allow any <char> as delimiter,
+% we need the curly braces so that makeinfo sees the @verb command, eg:
+% `@verbx...x' would look like the '@verbx' command.  --janneke@gnu.org
+%
+% [Knuth]: Donald Ervin Knuth, 1996.  The TeXbook.
+%
+% [Knuth] p.344; only we need to do the other characters Texinfo sets
+% active too.  Otherwise, they get lost as the first character on a
+% verbatim line.
+\def\dospecials{%
+  \do\ \do\\\do\{\do\}\do\$\do\&%
+  \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~%
+  \do\<\do\>\do\|\do\@\do+\do\"%
+}
+%
+% [Knuth] p. 380
+\def\uncatcodespecials{%
+  \def\do##1{\catcode`##1=\other}\dospecials}
+%
+% [Knuth] pp. 380,381,391
+% Disable Spanish ligatures ?` and !` of \tt font
+\begingroup
+  \catcode`\`=\active\gdef`{\relax\lq}
+\endgroup
+%
+% Setup for the @verb command.
+%
+% Eight spaces for a tab
+\begingroup
+  \catcode`\^^I=\active
+  \gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }}
+\endgroup
+%
+\def\setupverb{%
+  \tt  % easiest (and conventionally used) font for verbatim
+  \def\par{\leavevmode\endgraf}%
+  \catcode`\`=\active
+  \tabeightspaces
+  % Respect line breaks,
+  % print special symbols as themselves, and
+  % make each space count
+  % must do in this order:
+  \obeylines \uncatcodespecials \sepspaces
+}
+
+% Setup for the @verbatim environment
+%
+% Real tab expansion
+\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
+%
+\def\starttabbox{\setbox0=\hbox\bgroup}
+\begingroup
+  \catcode`\^^I=\active
+  \gdef\tabexpand{%
+    \catcode`\^^I=\active
+    \def^^I{\leavevmode\egroup
+      \dimen0=\wd0 % the width so far, or since the previous tab
+      \divide\dimen0 by\tabw
+      \multiply\dimen0 by\tabw % compute previous multiple of \tabw
+      \advance\dimen0 by\tabw  % advance to next multiple of \tabw
+      \wd0=\dimen0 \box0 \starttabbox
+    }%
+  }
+\endgroup
+\def\setupverbatim{%
+  \nonfillstart
+  \advance\leftskip by -\defbodyindent
+  % Easiest (and conventionally used) font for verbatim
+  \tt
+  \def\par{\leavevmode\egroup\box0\endgraf}%
+  \catcode`\`=\active
+  \tabexpand
+  % Respect line breaks,
+  % print special symbols as themselves, and
+  % make each space count
+  % must do in this order:
+  \obeylines \uncatcodespecials \sepspaces
+  \everypar{\starttabbox}%
+}
+
+% Do the @verb magic: verbatim text is quoted by unique
+% delimiter characters.  Before first delimiter expect a
+% right brace, after last delimiter expect closing brace:
+%
+%    \def\doverb'{'<char>#1<char>'}'{#1}
+%
+% [Knuth] p. 382; only eat outer {}
+\begingroup
+  \catcode`[=1\catcode`]=2\catcode`\{=\other\catcode`\}=\other
+  \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next]
+\endgroup
+%
+\def\verb{\begingroup\setupverb\doverb}
+%
+%
+% Do the @verbatim magic: define the macro \doverbatim so that
+% the (first) argument ends when '@end verbatim' is reached, ie:
+%
+%     \def\doverbatim#1@end verbatim{#1}
+%
+% For Texinfo it's a lot easier than for LaTeX,
+% because texinfo's \verbatim doesn't stop at '\end{verbatim}':
+% we need not redefine '\', '{' and '}'.
+%
+% Inspired by LaTeX's verbatim command set [latex.ltx]
+%
+\begingroup
+  \catcode`\ =\active
+  \obeylines %
+  % ignore everything up to the first ^^M, that's the newline at the end
+  % of the @verbatim input line itself.  Otherwise we get an extra blank
+  % line in the output.
+  \xdef\doverbatim#1^^M#2@end verbatim{#2\noexpand\end\gobble verbatim}%
+  % We really want {...\end verbatim} in the body of the macro, but
+  % without the active space; thus we have to use \xdef and \gobble.
+\endgroup
+%
+\envdef\verbatim{%
+    \setupverbatim\doverbatim
+}
+\let\Everbatim = \afterenvbreak
+
+
+% @verbatiminclude FILE - insert text of file in verbatim environment.
+%
+\def\verbatiminclude{\parseargusing\filenamecatcodes\doverbatiminclude}
+%
+\def\doverbatiminclude#1{%
+  {%
+    \makevalueexpandable
+    \setupverbatim
+    \input #1
+    \afterenvbreak
+  }%
+}
+
+% @copying ... @end copying.
+% Save the text away for @insertcopying later.  Many commands won't be
+% allowed in this context, but that's ok.
+%
+% We save the uninterpreted tokens, rather than creating a box.
+% Saving the text in a box would be much easier, but then all the
+% typesetting commands (@smallbook, font changes, etc.) have to be done
+% beforehand -- and a) we want @copying to be done first in the source
+% file; b) letting users define the frontmatter in as flexible order as
+% possible is very desirable.
+%
+\def\copying{\begingroup
+  % Define a command to swallow text until we reach `@end copying'.
+  % \ is the escape char in this texinfo.tex file, so it is the
+  % delimiter for the command; @ will be the escape char when we read
+  % it, but that doesn't matter.
+  \long\def\docopying##1\end copying{\gdef\copyingtext{##1}\enddocopying}%
+  %
+  % We must preserve ^^M's in the input file; see \insertcopying below.
+  \catcode`\^^M = \active
+  \docopying
+}
+
+% What we do to finish off the copying text.
+%
+\def\enddocopying{\endgroup\ignorespaces}
+
+% @insertcopying.  Here we must play games with ^^M's.  On the one hand,
+% we need them to delimit commands such as `@end quotation', so they
+% must be active.  On the other hand, we certainly don't want every
+% end-of-line to be a \par, as would happen with the normal active
+% definition of ^^M.  On the third hand, two ^^M's in a row should still
+% generate a \par.
+%
+% Our approach is to make ^^M insert a space and a penalty1 normally;
+% then it can also check if \lastpenalty=1.  If it does, then manually
+% do \par.
+%
+% This messes up the normal definitions of @c[omment], so we redefine
+% it.  Similarly for @ignore.  (These commands are used in the gcc
+% manual for man page generation.)
+%
+% Seems pretty fragile, most line-oriented commands will presumably
+% fail, but for the limited use of getting the copying text (which
+% should be quite simple) inserted, we can hope it's ok.
+%
+{\catcode`\^^M=\active %
+\gdef\insertcopying{\begingroup %
+  \parindent = 0pt  % looks wrong on title page
+  \def^^M{%
+    \ifnum \lastpenalty=1 %
+      \par %
+    \else %
+      \space \penalty 1 %
+    \fi %
+  }%
+  %
+  % Fix @c[omment] for catcode 13 ^^M's.
+  \def\c##1^^M{\ignorespaces}%
+  \let\comment = \c %
+  %
+  % Don't bother jumping through all the hoops that \doignore does, it
+  % would be very hard since the catcodes are already set.
+  \long\def\ignore##1\end ignore{\ignorespaces}%
+  %
+  \copyingtext %
+\endgroup}%
+}
+
+\message{defuns,}
+% @defun etc.
+
+\newskip\defbodyindent \defbodyindent=.4in
+\newskip\defargsindent \defargsindent=50pt
+\newskip\deflastargmargin \deflastargmargin=18pt
+
+% Start the processing of @deffn:
+\def\startdefun{%
+  \ifnum\lastpenalty<10000
+    \medbreak
+  \else
+    % If there are two @def commands in a row, we'll have a \nobreak,
+    % which is there to keep the function description together with its
+    % header.  But if there's nothing but headers, we need to allow a
+    % break somewhere.  Check for penalty 10002 (inserted by
+    % \defargscommonending) instead of 10000, since the sectioning
+    % commands insert a \penalty10000, and we don't want to allow a break
+    % between a section heading and a defun.
+    \ifnum\lastpenalty=10002 \penalty2000 \fi
+    %
+    % Similarly, after a section heading, do not allow a break.
+    % But do insert the glue.
+    \medskip  % preceded by discardable penalty, so not a breakpoint
+  \fi
+  %
+  \parindent=0in
+  \advance\leftskip by \defbodyindent
+  \exdentamount=\defbodyindent
+}
+
+\def\dodefunx#1{%
+  % First, check whether we are in the right environment:
+  \checkenv#1%
+  %
+  % As above, allow line break if we have multiple x headers in a row.
+  % It's not a great place, though.
+  \ifnum\lastpenalty=10002 \penalty3000 \fi
+  %
+  % And now, it's time to reuse the body of the original defun:
+  \expandafter\gobbledefun#1%
+}
+\def\gobbledefun#1\startdefun{}
+
+% \printdefunline \deffnheader{text}
+%
+\def\printdefunline#1#2{%
+  \begingroup
+    % call \deffnheader:
+    #1#2 \endheader
+    % common ending:
+    \interlinepenalty = 10000
+    \advance\rightskip by 0pt plus 1fil
+    \endgraf
+    \nobreak\vskip -\parskip
+    \penalty 10002  % signal to \startdefun and \dodefunx
+    % Some of the @defun-type tags do not enable magic parentheses,
+    % rendering the following check redundant.  But we don't optimize.
+    \checkparencounts
+  \endgroup
+}
+
+\def\Edefun{\endgraf\medbreak}
+
+% \makedefun{deffn} creates \deffn, \deffnx and \Edeffn;
+% the only thing remainnig is to define \deffnheader.
+%
+\def\makedefun#1{%
+  \expandafter\let\csname E#1\endcsname = \Edefun
+  \edef\temp{\noexpand\domakedefun
+    \makecsname{#1}\makecsname{#1x}\makecsname{#1header}}%
+  \temp
+}
+
+% \domakedefun \deffn \deffnx \deffnheader
+%
+% Define \deffn and \deffnx, without parameters.
+% \deffnheader has to be defined explicitly.
+%
+\def\domakedefun#1#2#3{%
+  \envdef#1{%
+    \startdefun
+    \parseargusing\activeparens{\printdefunline#3}%
+  }%
+  \def#2{\dodefunx#1}%
+  \def#3%
+}
+
+%%% Untyped functions:
+
+% @deffn category name args
+\makedefun{deffn}{\deffngeneral{}}
+
+% @deffn category class name args
+\makedefun{defop}#1 {\defopon{#1\ \putwordon}}
+
+% \defopon {category on}class name args
+\def\defopon#1#2 {\deffngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
+
+% \deffngeneral {subind}category name args
+%
+\def\deffngeneral#1#2 #3 #4\endheader{%
+  % Remember that \dosubind{fn}{foo}{} is equivalent to \doind{fn}{foo}.
+  \dosubind{fn}{\code{#3}}{#1}%
+  \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}%
+}
+
+%%% Typed functions:
+
+% @deftypefn category type name args
+\makedefun{deftypefn}{\deftypefngeneral{}}
+
+% @deftypeop category class type name args
+\makedefun{deftypeop}#1 {\deftypeopon{#1\ \putwordon}}
+
+% \deftypeopon {category on}class type name args
+\def\deftypeopon#1#2 {\deftypefngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
+
+% \deftypefngeneral {subind}category type name args
+%
+\def\deftypefngeneral#1#2 #3 #4 #5\endheader{%
+  \dosubind{fn}{\code{#4}}{#1}%
+  \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
+}
+
+%%% Typed variables:
+
+% @deftypevr category type var args
+\makedefun{deftypevr}{\deftypecvgeneral{}}
+
+% @deftypecv category class type var args
+\makedefun{deftypecv}#1 {\deftypecvof{#1\ \putwordof}}
+
+% \deftypecvof {category of}class type var args
+\def\deftypecvof#1#2 {\deftypecvgeneral{\putwordof\ \code{#2}}{#1\ \code{#2}} }
+
+% \deftypecvgeneral {subind}category type var args
+%
+\def\deftypecvgeneral#1#2 #3 #4 #5\endheader{%
+  \dosubind{vr}{\code{#4}}{#1}%
+  \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
+}
+
+%%% Untyped variables:
+
+% @defvr category var args
+\makedefun{defvr}#1 {\deftypevrheader{#1} {} }
+
+% @defcv category class var args
+\makedefun{defcv}#1 {\defcvof{#1\ \putwordof}}
+
+% \defcvof {category of}class var args
+\def\defcvof#1#2 {\deftypecvof{#1}#2 {} }
+
+%%% Type:
+% @deftp category name args
+\makedefun{deftp}#1 #2 #3\endheader{%
+  \doind{tp}{\code{#2}}%
+  \defname{#1}{}{#2}\defunargs{#3\unskip}%
+}
+
+% Remaining @defun-like shortcuts:
+\makedefun{defun}{\deffnheader{\putwordDeffunc} }
+\makedefun{defmac}{\deffnheader{\putwordDefmac} }
+\makedefun{defspec}{\deffnheader{\putwordDefspec} }
+\makedefun{deftypefun}{\deftypefnheader{\putwordDeffunc} }
+\makedefun{defvar}{\defvrheader{\putwordDefvar} }
+\makedefun{defopt}{\defvrheader{\putwordDefopt} }
+\makedefun{deftypevar}{\deftypevrheader{\putwordDefvar} }
+\makedefun{defmethod}{\defopon\putwordMethodon}
+\makedefun{deftypemethod}{\deftypeopon\putwordMethodon}
+\makedefun{defivar}{\defcvof\putwordInstanceVariableof}
+\makedefun{deftypeivar}{\deftypecvof\putwordInstanceVariableof}
+
+% \defname, which formats the name of the @def (not the args).
+% #1 is the category, such as "Function".
+% #2 is the return type, if any.
+% #3 is the function name.
+% 
+% We are followed by (but not passed) the arguments, if any.
+%
+\def\defname#1#2#3{%
+  % Get the values of \leftskip and \rightskip as they were outside the @def...
+  \advance\leftskip by -\defbodyindent
+  %
+  % How we'll format the type name.  Putting it in brackets helps
+  % distinguish it from the body text that may end up on the next line
+  % just below it.
+  \def\temp{#1}%
+  \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi}
+  %
+  % Figure out line sizes for the paragraph shape.
+  % The first line needs space for \box0; but if \rightskip is nonzero,
+  % we need only space for the part of \box0 which exceeds it:
+  \dimen0=\hsize  \advance\dimen0 by -\wd0  \advance\dimen0 by \rightskip
+  % The continuations:
+  \dimen2=\hsize  \advance\dimen2 by -\defargsindent
+  % (plain.tex says that \dimen1 should be used only as global.)
+  \parshape 2 0in \dimen0 \defargsindent \dimen2
+  %
+  % Put the type name to the right margin.
+  \noindent
+  \hbox to 0pt{%
+    \hfil\box0 \kern-\hsize
+    % \hsize has to be shortened this way:
+    \kern\leftskip
+    % Intentionally do not respect \rightskip, since we need the space.
+  }%
+  %
+  % Allow all lines to be underfull without complaint:
+  \tolerance=10000 \hbadness=10000
+  \exdentamount=\defbodyindent
+  {%
+    % defun fonts. We use typewriter by default (used to be bold) because:
+    % . we're printing identifiers, they should be in tt in principle.
+    % . in languages with many accents, such as Czech or French, it's
+    %   common to leave accents off identifiers.  The result looks ok in
+    %   tt, but exceedingly strange in rm.
+    % . we don't want -- and --- to be treated as ligatures.
+    % . this still does not fix the ?` and !` ligatures, but so far no
+    %   one has made identifiers using them :).
+    \df \tt
+    \def\temp{#2}% return value type
+    \ifx\temp\empty\else \tclose{\temp} \fi
+    #3% output function name
+  }%
+  {\rm\enskip}% hskip 0.5 em of \tenrm
+  %
+  \boldbrax
+  % arguments will be output next, if any.
+}
+
+% Print arguments in slanted roman (not ttsl), inconsistently with using
+% tt for the name.  This is because literal text is sometimes needed in
+% the argument list (groff manual), and ttsl and tt are not very
+% distinguishable.  Prevent hyphenation at `-' chars.
+% 
+\def\defunargs#1{%
+  % use sl by default (not ttsl), 
+  % tt for the names.
+  \df \sl \hyphenchar\font=0
+  %
+  % On the other hand, if an argument has two dashes (for instance), we
+  % want a way to get ttsl.  Let's try @var for that.
+  \let\var=\ttslanted
+  #1%
+  \sl\hyphenchar\font=45
+}
+
+% We want ()&[] to print specially on the defun line.
+%
+\def\activeparens{%
+  \catcode`\(=\active \catcode`\)=\active
+  \catcode`\[=\active \catcode`\]=\active
+  \catcode`\&=\active
+}
+
+% Make control sequences which act like normal parenthesis chars.
+\let\lparen = ( \let\rparen = )
+
+% Be sure that we always have a definition for `(', etc.  For example,
+% if the fn name has parens in it, \boldbrax will not be in effect yet,
+% so TeX would otherwise complain about undefined control sequence.
+{
+  \activeparens
+  \global\let(=\lparen \global\let)=\rparen
+  \global\let[=\lbrack \global\let]=\rbrack
+  \global\let& = \&
+
+  \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
+  \gdef\magicamp{\let&=\amprm}
+}
+
+\newcount\parencount
+
+% If we encounter &foo, then turn on ()-hacking afterwards
+\newif\ifampseen
+\def\amprm#1 {\ampseentrue{\bf\&#1 }}
+
+\def\parenfont{%
+  \ifampseen
+    % At the first level, print parens in roman,
+    % otherwise use the default font.
+    \ifnum \parencount=1 \rm \fi
+  \else
+    % The \sf parens (in \boldbrax) actually are a little bolder than
+    % the contained text.  This is especially needed for [ and ] .
+    \sf
+  \fi
+}
+\def\infirstlevel#1{%
+  \ifampseen
+    \ifnum\parencount=1
+      #1%
+    \fi
+  \fi
+}
+\def\bfafterword#1 {#1 \bf}
+
+\def\opnr{%
+  \global\advance\parencount by 1
+  {\parenfont(}%
+  \infirstlevel \bfafterword
+}
+\def\clnr{%
+  {\parenfont)}%
+  \infirstlevel \sl
+  \global\advance\parencount by -1
+}
+
+\newcount\brackcount
+\def\lbrb{%
+  \global\advance\brackcount by 1
+  {\bf[}%
+}
+\def\rbrb{%
+  {\bf]}%
+  \global\advance\brackcount by -1
+}
+
+\def\checkparencounts{%
+  \ifnum\parencount=0 \else \badparencount \fi
+  \ifnum\brackcount=0 \else \badbrackcount \fi
+}
+\def\badparencount{%
+  \errmessage{Unbalanced parentheses in @def}%
+  \global\parencount=0
+}
+\def\badbrackcount{%
+  \errmessage{Unbalanced square braces in @def}%
+  \global\brackcount=0
+}
+
+
+\message{macros,}
+% @macro.
+
+% To do this right we need a feature of e-TeX, \scantokens,
+% which we arrange to emulate with a temporary file in ordinary TeX.
+\ifx\eTeXversion\undefined
+  \newwrite\macscribble
+  \def\scantokens#1{%
+    \toks0={#1\endinput}%
+    \immediate\openout\macscribble=\jobname.tmp
+    \immediate\write\macscribble{\the\toks0}%
+    \immediate\closeout\macscribble
+    \input \jobname.tmp
+  }
+\fi
+
+\def\scanmacro#1{%
+  \begingroup
+    \newlinechar`\^^M
+    \let\xeatspaces\eatspaces
+    % Undo catcode changes of \startcontents and \doprintindex
+    \catcode`\@=0 \catcode`\\=\other \escapechar=`\@
+    % ... and \example
+    \spaceisspace
+    %
+    % Append \endinput to make sure that TeX does not see the ending newline.
+    %
+    % I've verified that it is necessary both for e-TeX and for ordinary TeX
+    %							--kasal, 29nov03
+    \scantokens{#1\endinput}%
+  \endgroup
+}
+
+\newcount\paramno   % Count of parameters
+\newtoks\macname    % Macro name
+\newif\ifrecursive  % Is it recursive?
+\def\macrolist{}    % List of all defined macros in the form
+                    % \do\macro1\do\macro2...
+
+% Utility routines.
+% This does \let #1 = #2, except with \csnames.
+\def\cslet#1#2{%
+\expandafter\expandafter
+\expandafter\let
+\expandafter\expandafter
+\csname#1\endcsname
+\csname#2\endcsname}
+
+% Trim leading and trailing spaces off a string.
+% Concepts from aro-bend problem 15 (see CTAN).
+{\catcode`\@=11
+\gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }}
+\gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@}
+\gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @}
+\def\unbrace#1{#1}
+\unbrace{\gdef\trim@@@ #1 } #2@{#1}
+}
+
+% Trim a single trailing ^^M off a string.
+{\catcode`\^^M=\other \catcode`\Q=3%
+\gdef\eatcr #1{\eatcra #1Q^^MQ}%
+\gdef\eatcra#1^^MQ{\eatcrb#1Q}%
+\gdef\eatcrb#1Q#2Q{#1}%
+}
+
+% Macro bodies are absorbed as an argument in a context where
+% all characters are catcode 10, 11 or 12, except \ which is active
+% (as in normal texinfo). It is necessary to change the definition of \.
+
+% It's necessary to have hard CRs when the macro is executed. This is
+% done by  making ^^M (\endlinechar) catcode 12 when reading the macro
+% body, and then making it the \newlinechar in \scanmacro.
+
+\def\macrobodyctxt{%
+  \catcode`\~=\other
+  \catcode`\^=\other
+  \catcode`\_=\other
+  \catcode`\|=\other
+  \catcode`\<=\other
+  \catcode`\>=\other
+  \catcode`\+=\other
+  \catcode`\{=\other
+  \catcode`\}=\other
+  \catcode`\@=\other
+  \catcode`\^^M=\other
+  \usembodybackslash}
+
+\def\macroargctxt{%
+  \catcode`\~=\other
+  \catcode`\^=\other
+  \catcode`\_=\other
+  \catcode`\|=\other
+  \catcode`\<=\other
+  \catcode`\>=\other
+  \catcode`\+=\other
+  \catcode`\@=\other
+  \catcode`\\=\other}
+
+% \mbodybackslash is the definition of \ in @macro bodies.
+% It maps \foo\ => \csname macarg.foo\endcsname => #N
+% where N is the macro parameter number.
+% We define \csname macarg.\endcsname to be \realbackslash, so
+% \\ in macro replacement text gets you a backslash.
+
+{\catcode`@=0 @catcode`@\=@active
+ @gdef@usembodybackslash{@let\=@mbodybackslash}
+ @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname}
+}
+\expandafter\def\csname macarg.\endcsname{\realbackslash}
+
+\def\macro{\recursivefalse\parsearg\macroxxx}
+\def\rmacro{\recursivetrue\parsearg\macroxxx}
+
+\def\macroxxx#1{%
+  \getargs{#1}%           now \macname is the macname and \argl the arglist
+  \ifx\argl\empty       % no arguments
+     \paramno=0%
+  \else
+     \expandafter\parsemargdef \argl;%
+  \fi
+  \if1\csname ismacro.\the\macname\endcsname
+     \message{Warning: redefining \the\macname}%
+  \else
+     \expandafter\ifx\csname \the\macname\endcsname \relax
+     \else \errmessage{Macro name \the\macname\space already defined}\fi
+     \global\cslet{macsave.\the\macname}{\the\macname}%
+     \global\expandafter\let\csname ismacro.\the\macname\endcsname=1%
+     % Add the macroname to \macrolist
+     \toks0 = \expandafter{\macrolist\do}%
+     \xdef\macrolist{\the\toks0
+       \expandafter\noexpand\csname\the\macname\endcsname}%
+  \fi
+  \begingroup \macrobodyctxt
+  \ifrecursive \expandafter\parsermacbody
+  \else \expandafter\parsemacbody
+  \fi}
+
+\parseargdef\unmacro{%
+  \if1\csname ismacro.#1\endcsname
+    \global\cslet{#1}{macsave.#1}%
+    \global\expandafter\let \csname ismacro.#1\endcsname=0%
+    % Remove the macro name from \macrolist:
+    \begingroup
+      \expandafter\let\csname#1\endcsname \relax
+      \let\do\unmacrodo
+      \xdef\macrolist{\macrolist}%
+    \endgroup
+  \else
+    \errmessage{Macro #1 not defined}%
+  \fi
+}
+
+% Called by \do from \dounmacro on each macro.  The idea is to omit any
+% macro definitions that have been changed to \relax.
+%
+\def\unmacrodo#1{%
+  \ifx#1\relax
+    % remove this
+  \else
+    \noexpand\do \noexpand #1%
+  \fi
+}
+
+% This makes use of the obscure feature that if the last token of a
+% <parameter list> is #, then the preceding argument is delimited by
+% an opening brace, and that opening brace is not consumed.
+\def\getargs#1{\getargsxxx#1{}}
+\def\getargsxxx#1#{\getmacname #1 \relax\getmacargs}
+\def\getmacname #1 #2\relax{\macname={#1}}
+\def\getmacargs#1{\def\argl{#1}}
+
+% Parse the optional {params} list.  Set up \paramno and \paramlist
+% so \defmacro knows what to do.  Define \macarg.blah for each blah
+% in the params list, to be ##N where N is the position in that list.
+% That gets used by \mbodybackslash (above).
+
+% We need to get `macro parameter char #' into several definitions.
+% The technique used is stolen from LaTeX:  let \hash be something
+% unexpandable, insert that wherever you need a #, and then redefine
+% it to # just before using the token list produced.
+%
+% The same technique is used to protect \eatspaces till just before
+% the macro is used.
+
+\def\parsemargdef#1;{\paramno=0\def\paramlist{}%
+        \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,}
+\def\parsemargdefxxx#1,{%
+  \if#1;\let\next=\relax
+  \else \let\next=\parsemargdefxxx
+    \advance\paramno by 1%
+    \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
+        {\xeatspaces{\hash\the\paramno}}%
+    \edef\paramlist{\paramlist\hash\the\paramno,}%
+  \fi\next}
+
+% These two commands read recursive and nonrecursive macro bodies.
+% (They're different since rec and nonrec macros end differently.)
+
+\long\def\parsemacbody#1@end macro%
+{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
+\long\def\parsermacbody#1@end rmacro%
+{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
+
+% This defines the macro itself. There are six cases: recursive and
+% nonrecursive macros of zero, one, and many arguments.
+% Much magic with \expandafter here.
+% \xdef is used so that macro definitions will survive the file
+% they're defined in; @include reads the file inside a group.
+\def\defmacro{%
+  \let\hash=##% convert placeholders to macro parameter chars
+  \ifrecursive
+    \ifcase\paramno
+    % 0
+      \expandafter\xdef\csname\the\macname\endcsname{%
+        \noexpand\scanmacro{\temp}}%
+    \or % 1
+      \expandafter\xdef\csname\the\macname\endcsname{%
+         \bgroup\noexpand\macroargctxt
+         \noexpand\braceorline
+         \expandafter\noexpand\csname\the\macname xxx\endcsname}%
+      \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
+         \egroup\noexpand\scanmacro{\temp}}%
+    \else % many
+      \expandafter\xdef\csname\the\macname\endcsname{%
+         \bgroup\noexpand\macroargctxt
+         \noexpand\csname\the\macname xx\endcsname}%
+      \expandafter\xdef\csname\the\macname xx\endcsname##1{%
+          \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
+      \expandafter\expandafter
+      \expandafter\xdef
+      \expandafter\expandafter
+        \csname\the\macname xxx\endcsname
+          \paramlist{\egroup\noexpand\scanmacro{\temp}}%
+    \fi
+  \else
+    \ifcase\paramno
+    % 0
+      \expandafter\xdef\csname\the\macname\endcsname{%
+        \noexpand\norecurse{\the\macname}%
+        \noexpand\scanmacro{\temp}\egroup}%
+    \or % 1
+      \expandafter\xdef\csname\the\macname\endcsname{%
+         \bgroup\noexpand\macroargctxt
+         \noexpand\braceorline
+         \expandafter\noexpand\csname\the\macname xxx\endcsname}%
+      \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
+        \egroup
+        \noexpand\norecurse{\the\macname}%
+        \noexpand\scanmacro{\temp}\egroup}%
+    \else % many
+      \expandafter\xdef\csname\the\macname\endcsname{%
+         \bgroup\noexpand\macroargctxt
+         \expandafter\noexpand\csname\the\macname xx\endcsname}%
+      \expandafter\xdef\csname\the\macname xx\endcsname##1{%
+          \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
+      \expandafter\expandafter
+      \expandafter\xdef
+      \expandafter\expandafter
+      \csname\the\macname xxx\endcsname
+      \paramlist{%
+          \egroup
+          \noexpand\norecurse{\the\macname}%
+          \noexpand\scanmacro{\temp}\egroup}%
+    \fi
+  \fi}
+
+\def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
+
+% \braceorline decides whether the next nonwhitespace character is a
+% {.  If so it reads up to the closing }, if not, it reads the whole
+% line.  Whatever was read is then fed to the next control sequence
+% as an argument (by \parsebrace or \parsearg)
+\def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx}
+\def\braceorlinexxx{%
+  \ifx\nchar\bgroup\else
+    \expandafter\parsearg
+  \fi \next}
+
+% We mant to disable all macros during \shipout so that they are not
+% expanded by \write.
+\def\turnoffmacros{\begingroup \def\do##1{\let\noexpand##1=\relax}%
+  \edef\next{\macrolist}\expandafter\endgroup\next}
+
+
+% @alias.
+% We need some trickery to remove the optional spaces around the equal
+% sign.  Just make them active and then expand them all to nothing.
+\def\alias{\parseargusing\obeyspaces\aliasxxx}
+\def\aliasxxx #1{\aliasyyy#1\relax}
+\def\aliasyyy #1=#2\relax{%
+  {%
+    \expandafter\let\obeyedspace=\empty
+    \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}%
+  }%
+  \next
+}
+
+
+\message{cross references,}
+
+\newwrite\auxfile
+
+\newif\ifhavexrefs    % True if xref values are known.
+\newif\ifwarnedxrefs  % True if we warned once that they aren't known.
+
+% @inforef is relatively simple.
+\def\inforef #1{\inforefzzz #1,,,,**}
+\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
+  node \samp{\ignorespaces#1{}}}
+
+% @node's only job in TeX is to define \lastnode, which is used in
+% cross-references.
+\parseargdef\node{\checkenv{}\nodexxx #1,\finishnodeparse}
+\def\nodexxx#1,#2\finishnodeparse{\gdef\lastnode{#1}}
+\let\nwnode=\node
+\let\lastnode=\empty
+
+% Write a cross-reference definition for the current node.  #1 is the
+% type (Ynumbered, Yappendix, Ynothing).
+% 
+\def\donoderef#1{%
+  \ifx\lastnode\empty\else
+    \setref{\lastnode}{#1}%
+    \global\let\lastnode=\empty
+  \fi
+}
+
+% @anchor{NAME} -- define xref target at arbitrary point.
+%
+\newcount\savesfregister
+%
+\def\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi}
+\def\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi}
+\def\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces}
+
+% \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an
+% anchor), which consists of three parts:
+% 1) NAME-title - the current sectioning name taken from \thissection,
+%                 or the anchor name.
+% 2) NAME-snt   - section number and type, passed as the SNT arg, or
+%                 empty for anchors.
+% 3) NAME-pg    - the page number.
+% 
+% This is called from \donoderef, \anchor, and \dofloat.  In the case of
+% floats, there is an additional part, which is not written here:
+% 4) NAME-lof   - the text as it should appear in a @listoffloats.
+% 
+\def\setref#1#2{%
+  \pdfmkdest{#1}%
+  \iflinks
+    {%
+      \atdummies  % preserve commands, but don't expand them
+      \turnoffactive
+      \otherbackslash
+      \edef\writexrdef##1##2{%
+	\write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef
+	  ##1}{##2}}% these are parameters of \writexrdef
+      }%
+      \toks0 = \expandafter{\thissection}%
+      \immediate \writexrdef{title}{\the\toks0 }%
+      \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
+      \writexrdef{pg}{\folio}% will be written later, during \shipout
+    }%
+  \fi
+}
+
+% @xref, @pxref, and @ref generate cross-references.  For \xrefX, #1 is
+% the node name, #2 the name of the Info cross-reference, #3 the printed
+% node name, #4 the name of the Info file, #5 the name of the printed
+% manual.  All but the node name can be omitted.
+%
+\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
+\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
+\def\ref#1{\xrefX[#1,,,,,,,]}
+\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
+  \unsepspaces
+  \def\printedmanual{\ignorespaces #5}%
+  \def\printedrefname{\ignorespaces #3}%
+  \setbox1=\hbox{\printedmanual\unskip}%
+  \setbox0=\hbox{\printedrefname\unskip}%
+  \ifdim \wd0 = 0pt
+    % No printed node name was explicitly given.
+    \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
+      % Use the node name inside the square brackets.
+      \def\printedrefname{\ignorespaces #1}%
+    \else
+      % Use the actual chapter/section title appear inside
+      % the square brackets.  Use the real section title if we have it.
+      \ifdim \wd1 > 0pt
+        % It is in another manual, so we don't have it.
+        \def\printedrefname{\ignorespaces #1}%
+      \else
+        \ifhavexrefs
+          % We know the real title if we have the xref values.
+          \def\printedrefname{\refx{#1-title}{}}%
+        \else
+          % Otherwise just copy the Info node name.
+          \def\printedrefname{\ignorespaces #1}%
+        \fi%
+      \fi
+    \fi
+  \fi
+  %
+  % Make link in pdf output.
+  \ifpdf
+    \leavevmode
+    \getfilename{#4}%
+    {\turnoffactive \otherbackslash
+     \ifnum\filenamelength>0
+       \startlink attr{/Border [0 0 0]}%
+         goto file{\the\filename.pdf} name{#1}%
+     \else
+       \startlink attr{/Border [0 0 0]}%
+         goto name{\pdfmkpgn{#1}}%
+     \fi
+    }%
+    \linkcolor
+  \fi
+  %
+  % Float references are printed completely differently: "Figure 1.2"
+  % instead of "[somenode], p.3".  We distinguish them by the
+  % LABEL-title being set to a magic string.
+  {%
+    % Have to otherify everything special to allow the \csname to
+    % include an _ in the xref name, etc.
+    \indexnofonts
+    \turnoffactive
+    \otherbackslash
+    \expandafter\global\expandafter\let\expandafter\Xthisreftitle
+      \csname XR#1-title\endcsname
+  }%
+  \iffloat\Xthisreftitle
+    % If the user specified the print name (third arg) to the ref,
+    % print it instead of our usual "Figure 1.2".
+    \ifdim\wd0 = 0pt
+      \refx{#1-snt}%
+    \else
+      \printedrefname
+    \fi
+    %
+    % if the user also gave the printed manual name (fifth arg), append
+    % "in MANUALNAME". 
+    \ifdim \wd1 > 0pt
+      \space \putwordin{} \cite{\printedmanual}%
+    \fi
+  \else
+    % node/anchor (non-float) references.
+    % 
+    % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
+    % insert empty discretionaries after hyphens, which means that it will
+    % not find a line break at a hyphen in a node names.  Since some manuals
+    % are best written with fairly long node names, containing hyphens, this
+    % is a loss.  Therefore, we give the text of the node name again, so it
+    % is as if TeX is seeing it for the first time.
+    \ifdim \wd1 > 0pt
+      \putwordsection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}%
+    \else
+      % _ (for example) has to be the character _ for the purposes of the
+      % control sequence corresponding to the node, but it has to expand
+      % into the usual \leavevmode...\vrule stuff for purposes of
+      % printing. So we \turnoffactive for the \refx-snt, back on for the
+      % printing, back off for the \refx-pg.
+      {\turnoffactive \otherbackslash
+       % Only output a following space if the -snt ref is nonempty; for
+       % @unnumbered and @anchor, it won't be.
+       \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
+       \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
+      }%
+      % output the `[mynode]' via a macro so it can be overridden.
+      \xrefprintnodename\printedrefname
+      %
+      % But we always want a comma and a space:
+      ,\space
+      %
+      % output the `page 3'.
+      \turnoffactive \otherbackslash \putwordpage\tie\refx{#1-pg}{}%
+    \fi
+  \fi
+  \endlink
+\endgroup}
+
+% This macro is called from \xrefX for the `[nodename]' part of xref
+% output.  It's a separate macro only so it can be changed more easily,
+% since square brackets don't work well in some documents.  Particularly
+% one that Bob is working on :).
+%
+\def\xrefprintnodename#1{[#1]}
+
+% Things referred to by \setref.
+%
+\def\Ynothing{}
+\def\Yomitfromtoc{}
+\def\Ynumbered{%
+  \ifnum\secno=0
+    \putwordChapter@tie \the\chapno
+  \else \ifnum\subsecno=0
+    \putwordSection@tie \the\chapno.\the\secno
+  \else \ifnum\subsubsecno=0
+    \putwordSection@tie \the\chapno.\the\secno.\the\subsecno
+  \else
+    \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno
+  \fi\fi\fi
+}
+\def\Yappendix{%
+  \ifnum\secno=0
+     \putwordAppendix@tie @char\the\appendixno{}%
+  \else \ifnum\subsecno=0
+     \putwordSection@tie @char\the\appendixno.\the\secno
+  \else \ifnum\subsubsecno=0
+    \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno
+  \else
+    \putwordSection@tie
+      @char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno
+  \fi\fi\fi
+}
+
+% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME.
+% If its value is nonempty, SUFFIX is output afterward.
+%
+\def\refx#1#2{%
+  {%
+    \indexnofonts
+    \otherbackslash
+    \expandafter\global\expandafter\let\expandafter\thisrefX
+      \csname XR#1\endcsname
+  }%
+  \ifx\thisrefX\relax
+    % If not defined, say something at least.
+    \angleleft un\-de\-fined\angleright
+    \iflinks
+      \ifhavexrefs
+        \message{\linenumber Undefined cross reference `#1'.}%
+      \else
+        \ifwarnedxrefs\else
+          \global\warnedxrefstrue
+          \message{Cross reference values unknown; you must run TeX again.}%
+        \fi
+      \fi
+    \fi
+  \else
+    % It's defined, so just use it.
+    \thisrefX
+  \fi
+  #2% Output the suffix in any case.
+}
+
+% This is the macro invoked by entries in the aux file.  Usually it's
+% just a \def (we prepend XR to the control sequence name to avoid
+% collisions).  But if this is a float type, we have more work to do.
+%
+\def\xrdef#1#2{%
+  \expandafter\gdef\csname XR#1\endcsname{#2}% remember this xref value.
+  %
+  % Was that xref control sequence that we just defined for a float?
+  \expandafter\iffloat\csname XR#1\endcsname
+    % it was a float, and we have the (safe) float type in \iffloattype.
+    \expandafter\let\expandafter\floatlist
+      \csname floatlist\iffloattype\endcsname
+    % 
+    % Is this the first time we've seen this float type?
+    \expandafter\ifx\floatlist\relax
+      \toks0 = {\do}% yes, so just \do
+    \else
+      % had it before, so preserve previous elements in list.
+      \toks0 = \expandafter{\floatlist\do}%
+    \fi
+    %
+    % Remember this xref in the control sequence \floatlistFLOATTYPE,
+    % for later use in \listoffloats.
+    \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0{#1}}%
+  \fi
+}
+
+% Read the last existing aux file, if any.  No error if none exists.
+% 
+\def\tryauxfile{%
+  \openin 1 \jobname.aux
+  \ifeof 1 \else
+    \readauxfile
+    \global\havexrefstrue
+  \fi
+  \closein 1
+}
+
+\def\readauxfile{\begingroup
+  \catcode`\^^@=\other
+  \catcode`\^^A=\other
+  \catcode`\^^B=\other
+  \catcode`\^^C=\other
+  \catcode`\^^D=\other
+  \catcode`\^^E=\other
+  \catcode`\^^F=\other
+  \catcode`\^^G=\other
+  \catcode`\^^H=\other
+  \catcode`\^^K=\other
+  \catcode`\^^L=\other
+  \catcode`\^^N=\other
+  \catcode`\^^P=\other
+  \catcode`\^^Q=\other
+  \catcode`\^^R=\other
+  \catcode`\^^S=\other
+  \catcode`\^^T=\other
+  \catcode`\^^U=\other
+  \catcode`\^^V=\other
+  \catcode`\^^W=\other
+  \catcode`\^^X=\other
+  \catcode`\^^Z=\other
+  \catcode`\^^[=\other
+  \catcode`\^^\=\other
+  \catcode`\^^]=\other
+  \catcode`\^^^=\other
+  \catcode`\^^_=\other
+  % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc.
+  % in xref tags, i.e., node names.  But since ^^e4 notation isn't
+  % supported in the main text, it doesn't seem desirable.  Furthermore,
+  % that is not enough: for node names that actually contain a ^
+  % character, we would end up writing a line like this: 'xrdef {'hat
+  % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first
+  % argument, and \hat is not an expandable control sequence.  It could
+  % all be worked out, but why?  Either we support ^^ or we don't.
+  %
+  % The other change necessary for this was to define \auxhat:
+  % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter
+  % and then to call \auxhat in \setq.
+  %
+  \catcode`\^=\other
+  %
+  % Special characters.  Should be turned off anyway, but...
+  \catcode`\~=\other
+  \catcode`\[=\other
+  \catcode`\]=\other
+  \catcode`\"=\other
+  \catcode`\_=\other
+  \catcode`\|=\other
+  \catcode`\<=\other
+  \catcode`\>=\other
+  \catcode`\$=\other
+  \catcode`\#=\other
+  \catcode`\&=\other
+  \catcode`\%=\other
+  \catcode`+=\other % avoid \+ for paranoia even though we've turned it off
+  %
+  % This is to support \ in node names and titles, since the \
+  % characters end up in a \csname.  It's easier than
+  % leaving it active and making its active definition an actual \
+  % character.  What I don't understand is why it works in the *value*
+  % of the xrdef.  Seems like it should be a catcode12 \, and that
+  % should not typeset properly.  But it works, so I'm moving on for
+  % now.  --karl, 15jan04.
+  \catcode`\\=\other
+  %
+  % Make the characters 128-255 be printing characters.
+  {%
+    \count 1=128
+    \def\loop{%
+      \catcode\count 1=\other
+      \advance\count 1 by 1
+      \ifnum \count 1<256 \loop \fi
+    }%
+  }%
+  %
+  % @ is our escape character in .aux files, and we need braces.
+  \catcode`\{=1
+  \catcode`\}=2
+  \catcode`\@=0
+  %
+  \input \jobname.aux
+\endgroup}
+
+
+\message{insertions,}
+% including footnotes.
+
+\newcount \footnoteno
+
+% The trailing space in the following definition for supereject is
+% vital for proper filling; pages come out unaligned when you do a
+% pagealignmacro call if that space before the closing brace is
+% removed. (Generally, numeric constants should always be followed by a
+% space to prevent strange expansion errors.)
+\def\supereject{\par\penalty -20000\footnoteno =0 }
+
+% @footnotestyle is meaningful for info output only.
+\let\footnotestyle=\comment
+
+{\catcode `\@=11
+%
+% Auto-number footnotes.  Otherwise like plain.
+\gdef\footnote{%
+  \let\indent=\ptexindent
+  \let\noindent=\ptexnoindent
+  \global\advance\footnoteno by \@ne
+  \edef\thisfootno{$^{\the\footnoteno}$}%
+  %
+  % In case the footnote comes at the end of a sentence, preserve the
+  % extra spacing after we do the footnote number.
+  \let\@sf\empty
+  \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\ptexslash\fi
+  %
+  % Remove inadvertent blank space before typesetting the footnote number.
+  \unskip
+  \thisfootno\@sf
+  \dofootnote
+}%
+
+% Don't bother with the trickery in plain.tex to not require the
+% footnote text as a parameter.  Our footnotes don't need to be so general.
+%
+% Oh yes, they do; otherwise, @ifset (and anything else that uses
+% \parseargline) fails inside footnotes because the tokens are fixed when
+% the footnote is read.  --karl, 16nov96.
+%
+\gdef\dofootnote{%
+  \insert\footins\bgroup
+  % We want to typeset this text as a normal paragraph, even if the
+  % footnote reference occurs in (for example) a display environment.
+  % So reset some parameters.
+  \hsize=\pagewidth
+  \interlinepenalty\interfootnotelinepenalty
+  \splittopskip\ht\strutbox % top baseline for broken footnotes
+  \splitmaxdepth\dp\strutbox
+  \floatingpenalty\@MM
+  \leftskip\z@skip
+  \rightskip\z@skip
+  \spaceskip\z@skip
+  \xspaceskip\z@skip
+  \parindent\defaultparindent
+  %
+  \smallfonts \rm
+  %
+  % Because we use hanging indentation in footnotes, a @noindent appears
+  % to exdent this text, so make it be a no-op.  makeinfo does not use
+  % hanging indentation so @noindent can still be needed within footnote
+  % text after an @example or the like (not that this is good style).
+  \let\noindent = \relax
+  %
+  % Hang the footnote text off the number.  Use \everypar in case the
+  % footnote extends for more than one paragraph.
+  \everypar = {\hang}%
+  \textindent{\thisfootno}%
+  %
+  % Don't crash into the line above the footnote text.  Since this
+  % expands into a box, it must come within the paragraph, lest it
+  % provide a place where TeX can split the footnote.
+  \footstrut
+  \futurelet\next\fo@t
+}
+}%end \catcode `\@=11
+
+% In case a @footnote appears in a vbox, save the footnote text and create
+% the real \insert just after the vbox finished.  Otherwise, the insertion
+% would be lost.
+% Similarily, if a @footnote appears inside an alignment, save the footnote
+% text to a box and make the \insert when a row of the table is finished.
+% And the same can be done for other insert classes.  --kasal, 16nov03.
+
+% Replace the \insert primitive by a cheating macro.
+% Deeper inside, just make sure that the saved insertions are not spilled
+% out prematurely.
+%
+\def\startsavinginserts{%
+  \ifx \insert\ptexinsert
+    \let\insert\saveinsert
+  \else
+    \let\checkinserts\relax
+  \fi
+}
+
+% This \insert replacement works for both \insert\footins{foo} and
+% \insert\footins\bgroup foo\egroup, but it doesn't work for \insert27{foo}.
+%
+\def\saveinsert#1{%
+  \edef\next{\noexpand\savetobox \makeSAVEname#1}%
+  \afterassignment\next
+  % swallow the left brace
+  \let\temp =
+}
+\def\makeSAVEname#1{\makecsname{SAVE\expandafter\gobble\string#1}}
+\def\savetobox#1{\global\setbox#1 = \vbox\bgroup \unvbox#1}
+
+\def\checksaveins#1{\ifvoid#1\else \placesaveins#1\fi}
+
+\def\placesaveins#1{%
+  \ptexinsert \csname\expandafter\gobblesave\string#1\endcsname
+    {\box#1}%
+}
+
+% eat @SAVE -- beware, all of them have catcode \other:
+{
+  \def\dospecials{\do S\do A\do V\do E} \uncatcodespecials  %  ;-)
+  \gdef\gobblesave @SAVE{}
+}
+
+% initialization:
+\def\newsaveins #1{%
+  \edef\next{\noexpand\newsaveinsX \makeSAVEname#1}%
+  \next
+}
+\def\newsaveinsX #1{%
+  \csname newbox\endcsname #1%
+  \expandafter\def\expandafter\checkinserts\expandafter{\checkinserts
+    \checksaveins #1}%
+}
+
+% initialize:
+\let\checkinserts\empty
+\newsaveins\footins
+\newsaveins\margin
+
+
+% @image.  We use the macros from epsf.tex to support this.
+% If epsf.tex is not installed and @image is used, we complain.
+%
+% Check for and read epsf.tex up front.  If we read it only at @image
+% time, we might be inside a group, and then its definitions would get
+% undone and the next image would fail.
+\openin 1 = epsf.tex
+\ifeof 1 \else
+  % Do not bother showing banner with epsf.tex v2.7k (available in
+  % doc/epsf.tex and on ctan).
+  \def\epsfannounce{\toks0 = }%
+  \input epsf.tex
+\fi
+\closein 1
+%
+% We will only complain once about lack of epsf.tex.
+\newif\ifwarnednoepsf
+\newhelp\noepsfhelp{epsf.tex must be installed for images to
+  work.  It is also included in the Texinfo distribution, or you can get
+  it from ftp://tug.org/tex/epsf.tex.}
+%
+\def\image#1{%
+  \ifx\epsfbox\undefined
+    \ifwarnednoepsf \else
+      \errhelp = \noepsfhelp
+      \errmessage{epsf.tex not found, images will be ignored}%
+      \global\warnednoepsftrue
+    \fi
+  \else
+    \imagexxx #1,,,,,\finish
+  \fi
+}
+%
+% Arguments to @image:
+% #1 is (mandatory) image filename; we tack on .eps extension.
+% #2 is (optional) width, #3 is (optional) height.
+% #4 is (ignored optional) html alt text.
+% #5 is (ignored optional) extension.
+% #6 is just the usual extra ignored arg for parsing this stuff.
+\newif\ifimagevmode
+\def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup
+  \catcode`\^^M = 5     % in case we're inside an example
+  \normalturnoffactive  % allow _ et al. in names
+  % If the image is by itself, center it.
+  \ifvmode
+    \imagevmodetrue
+    \nobreak\bigskip
+    % Usually we'll have text after the image which will insert
+    % \parskip glue, so insert it here too to equalize the space
+    % above and below.
+    \nobreak\vskip\parskip
+    \nobreak
+    \line\bgroup\hss
+  \fi
+  %
+  % Output the image.
+  \ifpdf
+    \dopdfimage{#1}{#2}{#3}%
+  \else
+    % \epsfbox itself resets \epsf?size at each figure.
+    \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
+    \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
+    \epsfbox{#1.eps}%
+  \fi
+  %
+  \ifimagevmode \hss \egroup \bigbreak \fi  % space after the image
+\endgroup}
+
+
+% @float FLOATTYPE,LOC ... @end float for displayed figures, tables, etc.
+% We don't actually implement floating yet, we just plop the float "here".
+% But it seemed the best name for the future.
+% 
+\envparseargdef\float{\dofloat #1,,,\finish}
+
+% #1 is the optional FLOATTYPE, the text label for this float, typically
+% "Figure", "Table", "Example", etc.  Can't contain commas.  If omitted,
+% this float will not be numbered and cannot be referred to.
+% 
+% #2 is the optional xref label.  Also must be present for the float to
+% be referable.
+% 
+% #3 is the optional positioning argument; for now, it is ignored.  It
+% will somehow specify the positions allowed to float to (here, top, bottom).
+% 
+% We keep a separate counter for each FLOATTYPE, which we reset at each
+% chapter-level command.
+\let\resetallfloatnos=\empty
+%
+\def\dofloat#1,#2,#3,#4\finish{%
+  \let\thiscaption=\empty
+  \let\thisshortcaption=\empty
+  %
+  % don't lose footnotes inside @float.
+  \startsavinginserts
+  %
+  \vtop\bgroup
+    \def\floattype{#1}%
+    \def\floatlabel{#2}%
+    \def\floatloc{#3}% we do nothing with this yet.
+    %
+    \ifx\floattype\empty
+      \let\safefloattype=\empty
+    \else
+      {%
+        % the floattype might have accents or other special characters,
+        % but we need to use it in a control sequence name.
+        \indexnofonts
+        \turnoffactive
+        \xdef\safefloattype{\floattype}%
+      }%
+    \fi
+    %
+    % If label is given but no type, we handle that as the empty type.
+    \ifx\floatlabel\empty \else
+      % We want each FLOATTYPE to be numbered separately (Figure 1,
+      % Table 1, Figure 2, ...).  (And if no label, no number.)
+      % 
+      \expandafter\getfloatno\csname\safefloattype floatno\endcsname
+      \global\advance\floatno by 1
+      %
+      {%
+        % This magic value for \thissection is output by \setref as the
+        % XREFLABEL-title value.  \xrefX uses it to distinguish float
+        % labels (which have a completely different output format) from
+        % node and anchor labels.  And \xrdef uses it to construct the
+        % lists of floats.
+        % 
+        \edef\thissection{\floatmagic=\safefloattype}%
+        \setref{\floatlabel}{Yfloat}%
+      }%
+    \fi
+    %
+    % start with \parskip glue, I guess.
+    \vskip\parskip
+    %
+    % Don't suppress indentation if a float happens to start a section.
+    \restorefirstparagraphindent
+}
+
+% we have these possibilities:
+% @float Foo,lbl & @caption{Cap}: Foo 1.1: Cap
+% @float Foo,lbl & no caption:    Foo 1.1
+% @float Foo & @caption{Cap}:     Foo: Cap
+% @float Foo & no caption:        Foo
+% @float ,lbl & Caption{Cap}:     1.1: Cap
+% @float ,lbl & no caption:       1.1
+% @float & @caption{Cap}:         Cap
+% @float & no caption:
+%
+\def\Efloat{%
+    \let\floatident = \empty
+    %
+    % In all cases, if we have a float type, it comes first.
+    \ifx\floattype\empty \else \def\floatident{\floattype}\fi
+    %
+    % If we have an xref label, the number comes next.
+    \ifx\floatlabel\empty \else
+      \ifx\floattype\empty \else % if also had float type, need tie first.
+        \appendtomacro\floatident{\tie}%
+      \fi
+      % the number.
+      \appendtomacro\floatident{\chaplevelprefix\the\floatno}%
+    \fi
+    %
+    % Start the printed caption with what we've constructed in
+    % \floatident, but keep it separate; we need \floatident again.
+    \let\captionline = \floatident
+    %
+    \ifx\thiscaption\empty \else
+      \ifx\floatident\empty \else
+	\appendtomacro\captionline{: }% had ident, so need a colon between
+      \fi
+      %
+      % caption text.
+      \appendtomacro\captionline\thiscaption
+    \fi
+    %
+    % If we have anything to print, print it, with space before.
+    % Eventually this needs to become an \insert.
+    \ifx\captionline\empty \else
+      \vskip.5\parskip
+      \captionline
+    \fi
+    %
+    % If have an xref label, write the list of floats info.  Do this
+    % after the caption, to avoid chance of it being a breakpoint.
+    \ifx\floatlabel\empty \else
+      % Write the text that goes in the lof to the aux file as
+      % \floatlabel-lof.  Besides \floatident, we include the short
+      % caption if specified, else the full caption if specified, else nothing.
+      {%
+        \atdummies \turnoffactive \otherbackslash
+        \immediate\write\auxfile{@xrdef{\floatlabel-lof}{%
+          \floatident
+          \ifx\thisshortcaption\empty
+            \ifx\thiscaption\empty \else : \thiscaption \fi
+          \else
+            : \thisshortcaption
+          \fi
+        }}%
+      }%
+    \fi
+    %
+    % Space below caption, if we printed anything.
+    \ifx\printedsomething\empty \else \vskip\parskip \fi
+  \egroup  % end of \vtop
+  \checkinserts
+}
+
+% Append the tokens #2 to the definition of macro #1, not expanding either.
+% 
+\newtoks\appendtomacroAtoks
+\newtoks\appendtomacroBtoks
+\def\appendtomacro#1#2{%
+  \appendtomacroAtoks = \expandafter{#1}%
+  \appendtomacroBtoks = {#2}%
+  \edef#1{\the\appendtomacroAtoks \the\appendtomacroBtoks}%
+}
+
+% @caption, @shortcaption are easy.
+% 
+\long\def\caption#1{\checkenv\float \def\thiscaption{#1}}
+\def\shortcaption#1{\checkenv\float \def\thisshortcaption{#1}}
+
+% The parameter is the control sequence identifying the counter we are
+% going to use.  Create it if it doesn't exist and assign it to \floatno.
+\def\getfloatno#1{%
+  \ifx#1\relax
+      % Haven't seen this figure type before.
+      \csname newcount\endcsname #1%
+      %
+      % Remember to reset this floatno at the next chap.
+      \expandafter\gdef\expandafter\resetallfloatnos
+        \expandafter{\resetallfloatnos #1=0 }%
+  \fi
+  \let\floatno#1%
+}
+
+% \setref calls this to get the XREFLABEL-snt value.  We want an @xref
+% to the FLOATLABEL to expand to "Figure 3.1".  We call \setref when we
+% first read the @float command.
+% 
+\def\Yfloat{\floattype@tie \chaplevelprefix\the\floatno}%
+
+% Magic string used for the XREFLABEL-title value, so \xrefX can
+% distinguish floats from other xref types.
+\def\floatmagic{!!float!!}
+
+% #1 is the control sequence we are passed; we expand into a conditional
+% which is true if #1 represents a float ref.  That is, the magic
+% \thissection value which we \setref above.
+% 
+\def\iffloat#1{\expandafter\doiffloat#1==\finish}
+%
+% #1 is (maybe) the \floatmagic string.  If so, #2 will be the
+% (safe) float type for this float.  We set \iffloattype to #2.
+% 
+\def\doiffloat#1=#2=#3\finish{%
+  \def\temp{#1}%
+  \def\iffloattype{#2}%
+  \ifx\temp\floatmagic
+}
+
+% @listoffloats FLOATTYPE - print a list of floats like a table of contents.
+% 
+\parseargdef\listoffloats{%
+  \def\floattype{#1}% floattype
+  {%
+    % the floattype might have accents or other special characters,
+    % but we need to use it in a control sequence name.
+    \indexnofonts
+    \turnoffactive
+    \xdef\safefloattype{\floattype}%
+  }%
+  %
+  % \xrdef saves the floats as a \do-list in \floatlistSAFEFLOATTYPE.
+  \expandafter\ifx\csname floatlist\safefloattype\endcsname \relax
+    \ifhavexrefs
+      % if the user said @listoffloats foo but never @float foo.
+      \message{\linenumber No `\safefloattype' floats to list.}%
+    \fi
+  \else
+    \begingroup
+      \leftskip=\tocindent  % indent these entries like a toc
+      \let\do=\listoffloatsdo
+      \csname floatlist\safefloattype\endcsname
+    \endgroup
+  \fi
+}
+
+% This is called on each entry in a list of floats.  We're passed the
+% xref label, in the form LABEL-title, which is how we save it in the
+% aux file.  We strip off the -title and look up \XRLABEL-lof, which
+% has the text we're supposed to typeset here.
+% 
+% Figures without xref labels will not be included in the list (since
+% they won't appear in the aux file).
+% 
+\def\listoffloatsdo#1{\listoffloatsdoentry#1\finish}
+\def\listoffloatsdoentry#1-title\finish{{%
+  % Can't fully expand XR#1-lof because it can contain anything.  Just
+  % pass the control sequence.  On the other hand, XR#1-pg is just the
+  % page number, and we want to fully expand that so we can get a link
+  % in pdf output.
+  \toksA = \expandafter{\csname XR#1-lof\endcsname}%
+  %
+  % use the same \entry macro we use to generate the TOC and index.
+  \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}%
+  \writeentry
+}}
+
+\message{localization,}
+% and i18n.
+
+% @documentlanguage is usually given very early, just after
+% @setfilename.  If done too late, it may not override everything
+% properly.  Single argument is the language abbreviation.
+% It would be nice if we could set up a hyphenation file here.
+%
+\parseargdef\documentlanguage{%
+  \tex % read txi-??.tex file in plain TeX.
+    % Read the file if it exists.
+    \openin 1 txi-#1.tex
+    \ifeof 1
+      \errhelp = \nolanghelp
+      \errmessage{Cannot read language file txi-#1.tex}%
+    \else
+      \input txi-#1.tex
+    \fi
+    \closein 1
+  \endgroup
+}
+\newhelp\nolanghelp{The given language definition file cannot be found or
+is empty.  Maybe you need to install it?  In the current directory
+should work if nowhere else does.}
+
+
+% @documentencoding should change something in TeX eventually, most
+% likely, but for now just recognize it.
+\let\documentencoding = \comment
+
+
+% Page size parameters.
+%
+\newdimen\defaultparindent \defaultparindent = 15pt
+
+\chapheadingskip = 15pt plus 4pt minus 2pt
+\secheadingskip = 12pt plus 3pt minus 2pt
+\subsecheadingskip = 9pt plus 2pt minus 2pt
+
+% Prevent underfull vbox error messages.
+\vbadness = 10000
+
+% Don't be so finicky about underfull hboxes, either.
+\hbadness = 2000
+
+% Following George Bush, just get rid of widows and orphans.
+\widowpenalty=10000
+\clubpenalty=10000
+
+% Use TeX 3.0's \emergencystretch to help line breaking, but if we're
+% using an old version of TeX, don't do anything.  We want the amount of
+% stretch added to depend on the line length, hence the dependence on
+% \hsize.  We call this whenever the paper size is set.
+%
+\def\setemergencystretch{%
+  \ifx\emergencystretch\thisisundefined
+    % Allow us to assign to \emergencystretch anyway.
+    \def\emergencystretch{\dimen0}%
+  \else
+    \emergencystretch = .15\hsize
+  \fi
+}
+
+% Parameters in order: 1) textheight; 2) textwidth; 3) voffset;
+% 4) hoffset; 5) binding offset; 6) topskip; 7) physical page height; 8)
+% physical page width.
+%
+% We also call \setleading{\textleading}, so the caller should define
+% \textleading.  The caller should also set \parskip.
+%
+\def\internalpagesizes#1#2#3#4#5#6#7#8{%
+  \voffset = #3\relax
+  \topskip = #6\relax
+  \splittopskip = \topskip
+  %
+  \vsize = #1\relax
+  \advance\vsize by \topskip
+  \outervsize = \vsize
+  \advance\outervsize by 2\topandbottommargin
+  \pageheight = \vsize
+  %
+  \hsize = #2\relax
+  \outerhsize = \hsize
+  \advance\outerhsize by 0.5in
+  \pagewidth = \hsize
+  %
+  \normaloffset = #4\relax
+  \bindingoffset = #5\relax
+  %
+  \ifpdf
+    \pdfpageheight #7\relax
+    \pdfpagewidth #8\relax
+  \fi
+  %
+  \setleading{\textleading}
+  %
+  \parindent = \defaultparindent
+  \setemergencystretch
+}
+
+% @letterpaper (the default).
+\def\letterpaper{{\globaldefs = 1
+  \parskip = 3pt plus 2pt minus 1pt
+  \textleading = 13.2pt
+  %
+  % If page is nothing but text, make it come out even.
+  \internalpagesizes{46\baselineskip}{6in}%
+                    {\voffset}{.25in}%
+                    {\bindingoffset}{36pt}%
+                    {11in}{8.5in}%
+}}
+
+% Use @smallbook to reset parameters for 7x9.5 (or so) format.
+\def\smallbook{{\globaldefs = 1
+  \parskip = 2pt plus 1pt
+  \textleading = 12pt
+  %
+  \internalpagesizes{7.5in}{5in}%
+                    {\voffset}{.25in}%
+                    {\bindingoffset}{16pt}%
+                    {9.25in}{7in}%
+  %
+  \lispnarrowing = 0.3in
+  \tolerance = 700
+  \hfuzz = 1pt
+  \contentsrightmargin = 0pt
+  \defbodyindent = .5cm
+}}
+
+% Use @afourpaper to print on European A4 paper.
+\def\afourpaper{{\globaldefs = 1
+  \parskip = 3pt plus 2pt minus 1pt
+  \textleading = 13.2pt
+  %
+  % Double-side printing via postscript on Laserjet 4050
+  % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm.
+  % To change the settings for a different printer or situation, adjust
+  % \normaloffset until the front-side and back-side texts align.  Then
+  % do the same for \bindingoffset.  You can set these for testing in
+  % your texinfo source file like this:
+  % @tex
+  % \global\normaloffset = -6mm
+  % \global\bindingoffset = 10mm
+  % @end tex
+  \internalpagesizes{51\baselineskip}{160mm}
+                    {\voffset}{\hoffset}%
+                    {\bindingoffset}{44pt}%
+                    {297mm}{210mm}%
+  %
+  \tolerance = 700
+  \hfuzz = 1pt
+  \contentsrightmargin = 0pt
+  \defbodyindent = 5mm
+}}
+
+% Use @afivepaper to print on European A5 paper.
+% From romildo@urano.iceb.ufop.br, 2 July 2000.
+% He also recommends making @example and @lisp be small.
+\def\afivepaper{{\globaldefs = 1
+  \parskip = 2pt plus 1pt minus 0.1pt
+  \textleading = 12.5pt
+  %
+  \internalpagesizes{160mm}{120mm}%
+                    {\voffset}{\hoffset}%
+                    {\bindingoffset}{8pt}%
+                    {210mm}{148mm}%
+  %
+  \lispnarrowing = 0.2in
+  \tolerance = 800
+  \hfuzz = 1.2pt
+  \contentsrightmargin = 0pt
+  \defbodyindent = 2mm
+  \tableindent = 12mm
+}}
+
+% A specific text layout, 24x15cm overall, intended for A4 paper.
+\def\afourlatex{{\globaldefs = 1
+  \afourpaper
+  \internalpagesizes{237mm}{150mm}%
+                    {\voffset}{4.6mm}%
+                    {\bindingoffset}{7mm}%
+                    {297mm}{210mm}%
+  %
+  % Must explicitly reset to 0 because we call \afourpaper.
+  \globaldefs = 0
+}}
+
+% Use @afourwide to print on A4 paper in landscape format.
+\def\afourwide{{\globaldefs = 1
+  \afourpaper
+  \internalpagesizes{241mm}{165mm}%
+                    {\voffset}{-2.95mm}%
+                    {\bindingoffset}{7mm}%
+                    {297mm}{210mm}%
+  \globaldefs = 0
+}}
+
+% @pagesizes TEXTHEIGHT[,TEXTWIDTH]
+% Perhaps we should allow setting the margins, \topskip, \parskip,
+% and/or leading, also. Or perhaps we should compute them somehow.
+%
+\parseargdef\pagesizes{\pagesizesyyy #1,,\finish}
+\def\pagesizesyyy#1,#2,#3\finish{{%
+  \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi
+  \globaldefs = 1
+  %
+  \parskip = 3pt plus 2pt minus 1pt
+  \setleading{\textleading}%
+  %
+  \dimen0 = #1
+  \advance\dimen0 by \voffset
+  %
+  \dimen2 = \hsize
+  \advance\dimen2 by \normaloffset
+  %
+  \internalpagesizes{#1}{\hsize}%
+                    {\voffset}{\normaloffset}%
+                    {\bindingoffset}{44pt}%
+                    {\dimen0}{\dimen2}%
+}}
+
+% Set default to letter.
+%
+\letterpaper
+
+
+\message{and turning on texinfo input format.}
+
+% Define macros to output various characters with catcode for normal text.
+\catcode`\"=\other
+\catcode`\~=\other
+\catcode`\^=\other
+\catcode`\_=\other
+\catcode`\|=\other
+\catcode`\<=\other
+\catcode`\>=\other
+\catcode`\+=\other
+\catcode`\$=\other
+\def\normaldoublequote{"}
+\def\normaltilde{~}
+\def\normalcaret{^}
+\def\normalunderscore{_}
+\def\normalverticalbar{|}
+\def\normalless{<}
+\def\normalgreater{>}
+\def\normalplus{+}
+\def\normaldollar{$}%$ font-lock fix
+
+% This macro is used to make a character print one way in \tt
+% (where it can probably be output as-is), and another way in other fonts,
+% where something hairier probably needs to be done.
+%
+% #1 is what to print if we are indeed using \tt; #2 is what to print
+% otherwise.  Since all the Computer Modern typewriter fonts have zero
+% interword stretch (and shrink), and it is reasonable to expect all
+% typewriter fonts to have this, we can check that font parameter.
+%
+\def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi}
+
+% Same as above, but check for italic font.  Actually this also catches
+% non-italic slanted fonts since it is impossible to distinguish them from
+% italic fonts.  But since this is only used by $ and it uses \sl anyway
+% this is not a problem.
+\def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi}
+
+% Turn off all special characters except @
+% (and those which the user can use as if they were ordinary).
+% Most of these we simply print from the \tt font, but for some, we can
+% use math or other variants that look better in normal text.
+
+\catcode`\"=\active
+\def\activedoublequote{{\tt\char34}}
+\let"=\activedoublequote
+\catcode`\~=\active
+\def~{{\tt\char126}}
+\chardef\hat=`\^
+\catcode`\^=\active
+\def^{{\tt \hat}}
+
+\catcode`\_=\active
+\def_{\ifusingtt\normalunderscore\_}
+% Subroutine for the previous macro.
+\def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }
+
+\catcode`\|=\active
+\def|{{\tt\char124}}
+\chardef \less=`\<
+\catcode`\<=\active
+\def<{{\tt \less}}
+\chardef \gtr=`\>
+\catcode`\>=\active
+\def>{{\tt \gtr}}
+\catcode`\+=\active
+\def+{{\tt \char 43}}
+\catcode`\$=\active
+\def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix
+
+% If a .fmt file is being used, characters that might appear in a file
+% name cannot be active until we have parsed the command line.
+% So turn them off again, and have \everyjob (or @setfilename) turn them on.
+% \otherifyactive is called near the end of this file.
+\def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
+
+\catcode`\@=0
+
+% \backslashcurfont outputs one backslash character in current font,
+% as in \char`\\.
+\global\chardef\backslashcurfont=`\\
+\global\let\rawbackslashxx=\backslashcurfont  % let existing .??s files work
+
+% \rawbackslash defines an active \ to do \backslashcurfont.
+% \otherbackslash defines an active \ to be a literal `\' character with
+% catcode other.
+{\catcode`\\=\active
+ @gdef@rawbackslash{@let\=@backslashcurfont}
+ @gdef@otherbackslash{@let\=@realbackslash}
+}
+
+% \realbackslash is an actual character `\' with catcode other.
+{\catcode`\\=\other @gdef@realbackslash{\}}
+
+% \normalbackslash outputs one backslash in fixed width font.
+\def\normalbackslash{{\tt\backslashcurfont}}
+
+\catcode`\\=\active
+
+% Used sometimes to turn off (effectively) the active characters
+% even after parsing them.
+@def@turnoffactive{%
+  @let"=@normaldoublequote
+  @let\=@realbackslash
+  @let~=@normaltilde
+  @let^=@normalcaret
+  @let_=@normalunderscore
+  @let|=@normalverticalbar
+  @let<=@normalless
+  @let>=@normalgreater
+  @let+=@normalplus
+  @let$=@normaldollar %$ font-lock fix
+  @unsepspaces
+}
+
+% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
+% the literal character `\'.  (Thus, \ is not expandable when this is in
+% effect.)
+%
+@def@normalturnoffactive{@turnoffactive @let\=@normalbackslash}
+
+% Make _ and + \other characters, temporarily.
+% This is canceled by @fixbackslash.
+@otherifyactive
+
+% If a .fmt file is being used, we don't want the `\input texinfo' to show up.
+% That is what \eatinput is for; after that, the `\' should revert to printing
+% a backslash.
+%
+@gdef@eatinput input texinfo{@fixbackslash}
+@global@let\ = @eatinput
+
+% On the other hand, perhaps the file did not have a `\input texinfo'. Then
+% the first `\{ in the file would cause an error. This macro tries to fix
+% that, assuming it is called before the first `\' could plausibly occur.
+% Also back turn on active characters that might appear in the input
+% file name, in case not using a pre-dumped format.
+%
+@gdef@fixbackslash{%
+  @ifx\@eatinput @let\ = @normalbackslash @fi
+  @catcode`+=@active
+  @catcode`@_=@active
+}
+
+% Say @foo, not \foo, in error messages.
+@escapechar = `@@
+
+% These look ok in all fonts, so just make them not special.
+@catcode`@& = @other
+@catcode`@# = @other
+@catcode`@% = @other
+
+
+@c Local variables:
+@c eval: (add-hook 'write-file-hooks 'time-stamp)
+@c page-delimiter: "^\\\\message"
+@c time-stamp-start: "def\\\\texinfoversion{"
+@c time-stamp-format: "%:y-%02m-%02d.%02H"
+@c time-stamp-end: "}"
+@c End:
+
+@c vim:sw=2:
+
+@ignore
+   arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115
+@end ignore